-
Content Count
140 -
Joined
-
Last visited
-
Days Won
22
Posts posted by .Rui
-
-
Não sabias a quantidade de linhas e paciência que poupavas em ter feito isto de outra maneira.
Usavas um for e uma tabela e em meia dúzia de linhas tinhas isso feito.
-
Obrigado, eu estou mesmo sem tempo para tal.
-
-
Sim é possível, se hoje tiver tempo livre ajudo-te nisso.
-
15 horas atrás, BPinto98 disse:Acima de tudo, usa cores que contrastem! Eu para te ser sincero só tinha visto quadrados azuis, sem nada escrito... Só depois de perceber que era um "boletim" de euromilhões é que fui ampliar a imagem para perceber se haviam números lá.
E eu penso que haja, mas ainda fiquei na dúvida ahhaha, pelo menos vejo umas manchas brancas ahhaha xD
Sim, há lá números hahaha, mas tens razão, estas cores não auxiliam em nada a alguém que esteja realmente a jogar. Ainda não tive tempo de voltar a pegar nisto porque tenho estado ocupado com a universidade mas mal o design fique definitivo eu posto um print aqui.
12 horas atrás, 'PACI disse:Se não tens acesso a design assets e o teu objetivo é construir algo simples e, ao mesmo tempo, apelativo com os recursos que o metin2 proporciona por defeito, podes optar por usar boxes, bars e lines (classes que podes encontrar no módulo ui), com um bocado de imaginação, consegues construir uma janela bem fixe em conjunção com algumas imagens do ui/windows.dds, ui/public*.dds ou até mesmo ui/taskbar.tga.
Olha que não é nada mal pensado. Talvez use os recursos default do metin para me ajudar no mostrador, sendo que era interessante utilizar as bolas e as estrelas no lugar dos retângulos azuis e vermelhos atuais.
Obrigado.
-
-
É verdade, mas a razão de começar nisto foi unicamente educativa, até porque não ando por dentro do mercado de metin. Na verdade fui desafiado por um amigo enquanto lhe fazia este sistema em quest. De qualquer das formas se for modificado de modo a que seja facilitado, não vejo porque não. Mas isso sou eu que não jogo metin.
9 minutos atrás, Ɇ₦₮Ɽ₳łⱠ₴ ₲Ɽł₦ĐɆⱤ disse:Não seria mais fácil um jogo de número aleatório tipo:
Escolhe o número de 1-50 (probabilidade acertar é de 2%) / 1-20 (5%)
E usando o random para generar um número aleatório e comparar se acertou o número ou não. E jogador apostava x yang /x moedas e se acertasse recebia o prémio y*x yang /y*x moedas.
Sim, é bastante mais simples, mas em termos educativos não transmite muito, que foi a principal intenção de ter começado a fazer este sistema. De qualquer das formas para fazer tal coisa não compensava o trabalho de criar uma interface própria sendo algo que se fazia muito facilmente em lua.
Paradox reacted to this -
Se essa é a probabilidade do euro milhões sim. A mecânica é exatamente igual. 5 números não repetidos de 1-50 e 2 estrelas de 1-9. Em termos de premiação, ainda só é premiado quem acerta tudo, e se mais que um jogador ganhar o prémio é repartido por X, sendo x o número de jogadores que ganharam. Queria primeiro acabar cliente side, onde só falta o design, para me poder dedicar a parte da premiação, onde estou a pensar utilizar as condições de premiação iguais às reais.
Paradox reacted to this -
O prémio depende da quantidade de players que jogam. Meti 200kk como default, mas consoante os jogadores jogam vai aumentando o prémio. Como default, por cada participação aumenta 10kk ao prémio. Mas sim, não é de todo mal pensado meter a MD's.
Thank's.
-
Desde já obrigado pelas opiniões.
Sim, acho que vou fazer isso de mudar os quadrados para bolas e mudar para estrelas. Os números em grande estão ali como mostrador. Para além dos botões ficarem down, vai mostrar no mostrador os números que o player tem selecionados. Mas não sei o que meter no mostrador sendo que tudo o que penso me faz lembrar uma calculadora antiga.
Em termos de poderem jogar a Yang ou Moedas do Dragão não é mal pensado. Mas eu fiz com que fosse uma réplica da realidade, isto é, tu registas o euro milhões e todas as sextas saí o resultado do sorteio. Até que ponto seria útil jogarem a MD's?
nagatto and morfo2 reacted to this -
Boa tarde,
Após terminar este sistema, reparei que o design não é o melhor, mas por azar não tenho ideia de que design meter aqui. Eu queria tentar meter algo que não seja tão foleiro como o regular: https://imgur.com/a/ZtEkGD7 , mas que não fugisse muito da realidade. Alguém tem alguma ideia?
Imagem de como está atualmente: https://imgur.com/wt5O69g
-
O jogo é muito divertido e conseguio captar a minha atenção pelo seu gameplay simples e divertido. Após viciar uns dias já estou nos 1200 troféus. Se quiserem adicionar: WorkHardz.
morfo2 reacted to this -
Olá, a que tipo de verificação te referes? Penso que só existem duas opções quando copias e colas, ou copias e colas texto ou ficheiros em geral sendo que para esta segunda opção é verificado no:
if (!handle) { CloseClipboard(); return; }
Em relação a verificar links, sendo isto um sistema de colar texto, um link é um simples texto, de que forma queres que seja verificado?
-
Boa noite,
Venho partilhar com vocês como é que podem habilitar o copy paste no vosso servidor. É algo que muita gente não tem conhecimento apesar de ser muito simples mesmo.
O Bug de copiar executáveis ou outros arquivos que não podem ser copiados e colados no jogo que posteriormente bloqueia a função em todo o computador até fecharem o cliente está resolvido. Penso que podem encontrar esse bug no Aeldra ainda.
Primeiramente abram o IME.cpp do vosso binário; Localização : Eterlib/IME.cpp.
Procurar:
m_bEnablePaste = false;
Substituir por:
m_bEnablePaste = true;
Procurar:
if (!__IsWritable(c)) return;
Substituir por:
if (c == 0x16) return;
Substituir todo o: void CIME::PasteTextFromClipBoard() por:
void CIME::PasteTextFromClipBoard() { if (!m_bEnablePaste | !OpenClipboard(NULL)) return; HANDLE handle = GetClipboardData(CF_TEXT); if (!handle) { CloseClipboard(); return; } char * buffer = (char*)GlobalLock(handle); std::string strClipboard = buffer; GlobalUnlock(handle); CloseClipboard(); if (strClipboard.empty()) return; const char* begin = strClipboard.c_str(); const char* end = begin + strClipboard.length(); wchar_t m_wText[IMESTR_MAXLEN]; int wstrLen = MultiByteToWideChar(ms_uInputCodePage, 0, begin, end - begin, m_wText, IMESTR_MAXLEN); InsertString(m_wText, wstrLen); if (ms_pEvent) ms_pEvent->OnUpdate(); }
Compilem o binário.
Abram o ui.py; Localização: root/ui.py
Procurem por:
def OnKeyDown(self, key):
Caso já tenham a condição que vos habilita o Ctrl+V ignorem este passo, caso contrário insiram esta condição antes do Return True:
if app.DIK_V == key and app.IsPressed(app.DIK_LCONTROL): ime.PasteTextFromClipBoard()
Caso tenham alguma dúvida avisem.
Boa noite.
-
Boa noite, sou o Rui, tenho 18 anos e estudo Engenharia Informática na Universidade de Braga. Dedico os meus tempos livros, maioritariamente, a programar random sistemas relativos a metin e ao desporto que pratico, badminton.
Em termos de programação, as linguagens que gosto mais são: c, c++, lua e python. Aderi ao fórum para aprender e partilhar conhecimento.
Ajuda com system negociação
in Dúvidas & Pedidos
Posted
Olá,
Em relação ao erro:
Procura por: "def Open" no uiExchange.py e vê os argumentos que esta função pede, depois vê onde a estás a chamar e confirma os argumentos enviados. Esse erro dá-se quando chamas uma função com menos/mais argumentos do que ela precisa.
Se quiseres compreender o erro:
Argumentos é tudo aquilo que está depois dos parênteses, por exemplo: "def exemplo(self, batata, cenoura)" , os argumentos são batata e cenoura. Se eu quiser chamar esta função e se estiver no mesmo arquivo uso: "self.exemplo(x,y), sendo x e y os valores que queres enviar para a função, preenchendo o lugar da batata e cenoura respetivamente.
Se estiveres noutro arquivo no mesmo diretório e quiseres chamar esta função, imaginando que que este arquivo se chama: exemplo.py:
Import Exemplo
self.Exemplo = Exemplo.NomeDaClass
self.Exemplo.Open(x,y) ## sendo x,y os valores que queres atribuir às batatad e cenouras.
E depois é só seguires a lógica.
Como não conheco esse sistema, nem nos apresentaste os arquivos, esta foi a melhor forma de te tentar explicar o erro.
OBS:. Nunca precisas de dar argumento para o self quando chamas a função.