antiblock
https://arwen2.global/

Mário.

Membro Elite
  • Content Count

    155
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by Mário.

  1. quest supremept begin -- Todas as quests começam obrigatóriamente desta forma: quest nomedaquest begin state start begin -- Eu considero isto como uma sub iniciação para o corpo da quest. Podes inserir qualquer tipo de função que tu quiseres function supreme() syschat("SupremePT") end -- Fecha o function when login with pc.get_name() == "SupremePT" begin -- Inicialização da quest. Daqui para baixo, insere o que quiseres. supremept.supreme() -- O corpo da quest. end -- Fecha o when end -- Fecha o state end -- Fecha a quest Não podes traduzir os códigos de lua para português, só o corpo dela e funções que tu possas criar (tal como eu fiz com o exemplo acima). Para introduzires uma quest, só precisas de dar ./qc nomedaquest.quest que será implementado no servidor, quer tenhas alterado algo ou não.
  2. Version 1.0.0

    39 downloads

    Boa noite, Quero apresentar a minha gamecore (incluindo a db) e o binário. Introdução Existem várias pessoas que até hoje não sabem ou não querem usar a source e de forma a poder ajuda-los, decidi criar este projeto que envolve toda a comunidade. O objetivo disto é dar-vos um código limpo, atualizado e (se possível) de acordo com o que o público geral quer, no entanto quero desde já realçar por enquanto, não estarei a dar prioridade ao projeto, por isso poderão esperar dias, semanas ou mesmo meses para uma nova versão. A gamecore contém partes que foram retiradas de outras sources de forma a estarem o mais atualizadas e completas possíveis. Estarei a disponibilizar a source, quer do binário quer do game & db como também já compilado, só precisarão de substituir. <- Farei isto sempre que inserir uma nova versão. Eis o que está na versão 1.0.0: --- Projeto / Project: gamecore 2017 Autor / Author: Mário Skype: i0web.69 --- Versão 1.0.0: [PT] Novas makefiles para o game e para a db // foram retiradas do meu projeto Retirado a conversão de texto entre as personagens de diferentes reinos Invés de aparecer "conta não existe", irá aparecer "a conta ou a password está incorreta" Removido o tempo de espera para criar uma guild e para remover alguém da mesma // invés de estarem sempre a usar /e guild_disband_delay 0 /e guild_withdraw_delay 0 Removido o limite de nível para usares a shout Imune desbugado GLOBAL CHAT com opção para desativar no CONFIG // adicionar no vosso config "GLOBAL CHAT: 1" (1 para ativar, 0 para desativar) Comando /ban para os GMs 4 inventários adicionado // thanks fliege 100% de probabilidade para adicionar pedras a armadura/arma Removido taxa de 3% quando vendes um item num NPC Corrigido o exploit do messenger Corrigido o exploit de guild Corrigido o HP negativo depois de teleportar Corrigido o exploit do cubo // thanks fliege [ENG] New makefiles for the game and db // they were removed from my personal project Removed the conversion of text between the characters from different kingdoms Instead of showing "account doesn't exit", it's going to show "the account or the password are wrong" Removed the time for wait to create or remove someone for a guild // instead of always using /e guild_disband_delay 0 /e guild_withdraw_delay 0 Removed the level's limit to use the shout Immune fixed GLOBAL CHAT with option to enable/disable in CONFIG // 1 for enable and 0 for disable Command /ban for the GMs 4 inventories // thanks fliege 100% sucess rate on attaching a stone to a item removed 3% tax when selling a item messenger exploit fixed guild exploit fixed Fixed the negative HP when you teleport Fixed the exploit from cube // thanks fliege Serverfiles recomendado: https://mega.nz/#!ZEFnBZzA!NreJvTgpQXnJQzSnNNedRAd1LjA0JJ9qxHYxDSAIi3w Cliente recomendado: https://mega.nz/#!hcd1XSDQ!DBFTC4k3Vq9UFzJv8ZFOc-Lp8J8OWUHUcSqhAes28gM OBS: Não irei dar prioridade a dúvidas ou erros sobre a compilação da source nem as/ao serverfiles/cliente e sim a qualquer bug que possam ter. Aproveito para dizer que posso dar uma solução que poderei não ter testado antes por falta de tempo. Darei suporte no tópico, mas tenham em consideração que sou um ser humano e como tal, poderei não ter tempo nem disposição. O que gostariam de ver na próxima versão? Digam-me nos comentários.
  3. yaaa, então como houve uma discussão sobre umas serverfiles (da autoria do zero se não estou enganado), vieram ao público umas protecções que estão a ser vendidas por um grupo a 60 euros, mais coisa menos coisa. Quais as protecções? O que está dentro do ficheiro: Download: https://mega.nz/#!EldgDaDC!NuKjNnTmgQqON5RJlaXg3qUwybAFXcWnCoZitrAjgYk VirusTotal RAR: https://virustotal.com/pt/file/365bb6728d04ed71b23e0feab35d08f16c0dabc5892675006736892d1ab73461/analysis/1460238452/ VirusTotal DLL: https://virustotal.com/pt/file/61c19c1da976f7870e056f243f436c25437b2db0bdbfe476aa1caf4ec0422aec/analysis/ A .dll já compilada está na pasta Source e tem como o nome de Poisoning.dll O resto, have fun.
  4. A culpa é totalmente da escola, deram uma falsa informação e agora não querem assumir as culpas. Recomendo-te a revoltares com a secretaria até que fizessem algo, nem que te dessem autorização para fazeres o exame da terceira fase. Tenta também falar com o diretor, visto que foi ele que deu a tal informação. Com o seu cargo, deve ter poder o suficiente para fazer algo, digo eu.
  5. Abre o system.py e procura por: sys.path.append("lib") Adiciona por baixo: app.__COMMAND_LINE__ = __COMMAND_LINE__
  6. Olá. Antes de mais, quero-te avisar que estás na área errada, para a próxima mete na aba das dúvidas! Em relação a quest, analisei o erro que aparece no teu print e reparei que o erro provém da linha 207: say_item(""70302, "") Falta uma vírgula antes do 70302 (é engraçado como o esquecimento de uma simples vírgula consegue originar um erro tão "complexo"), por isso substitui essa linha por isto: say_item("",70302, "")
  7. 3.1) CC | CV | MC VC | VV | VM MC | MV | MM 3.2) 15% (3/2 X 10) 3 representa a quantidade de prémios/slots que podem ganhar (seguindo a lógica que só é possível ganhar se for CC, VV ou MM) 2 representa o número de representantes 10 equaciona de forma a que a escala seja de 0-100 3.3) 11% (1 x 100 / 9) 1 representa a única combinação possível para ganhar o carro (CC) 100 representa o total em % dos slots 9 representa o número dos slots Atenção: Tudo o que disse pode estar certo como errado, não tenho matemática desde o 9 ano (estou no 2 ano da faculdade, para teres uma ideia do tempo) e segui pela lógica. Apenas tentei ajudar-te de forma a usares a minha burrice/esperteza para despertar alguma lógica, ou não, dos exercícios. Boa sorte!
  8. Os cangurus fêmeas têm três vaginas.
  9. Os bónus é no mesmo sentido. 41120 »ì»ç ITEM_COSTUME COSTUME_BODY 2 ANTI_WOLFMAN | ANTI_STACK | ANTI_DROP | ANTI_MALE NONE NONE NONE 0 0 0 0 0 REAL_TIME 2678400 LIMIT_NONE 0 APPLY_CAST_SPEED 20 APPLY_MAX_HP 1500 APPLY_ATTBONUS_HUMAN 10 5 0 0 40062 0 0 0 0 0 Usando o exemplo que te dei acima, o traje 41120 tem: 20% de rapidez de ataque (APPLY_CAST_SPEED 20) 1500 HP (APPLY_MAX_HP 1500) 10% Semi-Humanos (APPLY_ATTBONUS_HUMAN 10) Para mudares os valores, ou mesmo os bónus, só precisas de mudar de acordo com o que tu queres, por exemplo: 41120 »ì»ç ITEM_COSTUME COSTUME_BODY 2 ANTI_WOLFMAN | ANTI_STACK | ANTI_DROP | ANTI_MALE NONE NONE NONE 0 0 0 0 0 REAL_TIME 2678400 LIMIT_NONE 0 APPLY_ATTBONUS_HUMAN 5 APPLY_CRITICAL_PCT 5 APPLY_PENETRATE_PCT 5 5 0 0 40062 0 0 0 0 0 Mudei os bónus para: 5% Semi-Humanos (APPLY_ATTBONUS_HUMAN 5) 5% Chance de Críticos (APPLY_CRITICAL_PCT 5) 5% Chance de Perfurar (APPLY_PENETRATE_PCT 5)
  10. Abre o item_proto e procura o traje/pet que queres alterar pelo ID e muda o seu REAL_TIME para o valor que queres em segundos. Ex: 41120 »ì»ç ITEM_COSTUME COSTUME_BODY 2 ANTI_WOLFMAN | ANTI_STACK | ANTI_DROP | ANTI_MALE NONE NONE NONE 0 0 0 0 0 REAL_TIME 1814400 LIMIT_NONE 0 APPLY_CAST_SPEED 20 APPLY_MAX_HP 1500 APPLY_ATTBONUS_HUMAN 10 5 0 0 40062 0 0 0 0 0 O traje 41120 tem 1814400 segundos, o que equivale a 21 dias. Se quisesses modificar de forma a que ficasse para 30 dias (2678400 segundos), apenas substituías o valor: 41120 »ì»ç ITEM_COSTUME COSTUME_BODY 2 ANTI_WOLFMAN | ANTI_STACK | ANTI_DROP | ANTI_MALE NONE NONE NONE 0 0 0 0 0 REAL_TIME 2678400 LIMIT_NONE 0 APPLY_CAST_SPEED 20 APPLY_MAX_HP 1500 APPLY_ATTBONUS_HUMAN 10 5 0 0 40062 0 0 0 0 0
  11. Ontem estava a ver um vídeo do MKMT2 e reparei que quando a personagem carrega no ALT, o MN passa a ser visível da mesma forma como o HP é. Em pouco menos de 30 minutos, fiz a mesma coisa, provavelmente (ou não) do mesmo jeito que o Micael fez: Explicação A primeira coisa que fiz foi ir no game.py e ver qual era o valor que o LALT era atribuído. Ao ver que o mesmo estava para o self.ShowName(), fui no def dele e reparei que ele chamava valores que estão presentes em outros ficheiros: self.playerGauge.EnableShowAlways() Isto é bastante simples de ler, ele chama o def EnableShowAlways que se encontra no ficheiro uiPlayerGauge.py A partir daqui, foi muito mais fácil de entender as coisas, que irei demonstrar agora no Tutorial. Tutorial Criem um ficheiro no root chamado uiPlayerGauge1.py com o seguinte: # Importante: Não apagar este ficheiro, uma vez que é por causa dele que o MN será mostrado sempre que o jogador carregar na tecla ALT // Mário. import ui import player import chr import textTail class PlayerGauge(ui.Gauge): def __init__(self, parent): ui.Gauge.__init__(self) self.SetParent(parent) self.AddFlag("not_pick") self.MakeGauge(100, "blue") self.curSP = 0 self.maxSP = 0 self.showAlways = FALSE def __del__(self): ui.Gauge.__del__(self) def Hide(self): self.SetPosition(-100, -100) ui.Gauge.Hide(self) def OnUpdate(self): playerIndex = player.GetMainCharacterIndex() (x, y, z)=textTail.GetPosition(playerIndex) isChat = textTail.IsChat(playerIndex) ui.Gauge.SetPosition(self, int(x - self.GetWidth()/2), int(y + 15) + isChat*17) def RefreshGauge(self): self.curSP = player.GetStatus(player.SP) self.maxSP = player.GetStatus(player.MAX_SP) self.SetPercentage(self.curSP, self.maxSP) if self.showAlways: self.Show() else: if self.IsShow(): if self.curSP > self.maxSP / 2: self.Hide() else: if self.curSP < self.maxSP / 2: self.OnUpdate() self.Show() def EnableShowAlways(self): self.showAlways = TRUE self.RefreshGauge() def DisableShowAlways(self): self.showAlways = FALSE self.RefreshGauge() Importante: Eu uso python22, se usam o 27, mudem o TRUE para True e FALSE para False Abram o game.py e procurem por: import uiPlayerGauge Por baixo, adicionem: import uiPlayerGauge1 Procurem, duas vezes, por: self.playerGauge = None Por baixo, adicionem: self.playerGauge1 = None Procurem por: self.playerGauge = uiPlayerGauge.PlayerGauge(self) self.playerGauge.Hide() Por baixo, adicionem: self.playerGauge1 = uiPlayerGauge1.PlayerGauge(self) self.playerGauge1.Hide() Agora necessitamos que o valor do nosso ficheiro atualize sempre que o MN é perdido ou aumentado (seja com uma skill, ao chamar o cavalo, entre outros), por isso vamos no def RefreshStatus e procurem por: if self.playerGauge: self.playerGauge.RefreshGauge() Por baixo, adicionem: if self.playerGauge1: self.playerGauge1.RefreshGauge() Agora temos que ir no def ShowName e adicionar o nosso EnableShowAlways, por isso procurem por: self.playerGauge.EnableShowAlways() Por baixo, adicionem: self.playerGauge1.EnableShowAlways() Também vamos adicionar no def HideName, para tal procurem por: self.playerGauge.DisableShowAlways() Por baixo, adicionem: self.playerGauge1.DisableShowAlways() E já está, compilem e podem testar. Como podem ver, o trabalho não foi assim tanto, tal como tinha dito, não demorou nada mais que 30 minutos, apenas criei outro uiPlayerGauge e editei-o de forma a ir buscar o valor do MN. Existem melhores formas de fazerem isso sem a necessidade de criar outro ficheiro, esta foi a forma mais preguiçosa que achei (fiz isto hoje por volta das 03:30 da manhã, dêem-me um desconto), mas não deixa de mostrar o resultado. A comunidade portuguesa/brasileira tem a mania de copiar os tópicos e meter noutros fóruns sem meter os seus devidos créditos (falo disto por experiência própria em ver o meu trabalho a ser repassado sem o meu nome). Peço que se quiserem partilhar, não retirem o meu nome. Agradeço ao MKMT2 pela ideia, realmente é sempre uma mais valia saber o MN, mesmo que para alguns isso seja inútil. Dou suporte no tópico, em caso de não conseguirem.
  12. Ontem estava a ver um vídeo do MKMT2 e reparei que quando a personagem carrega no ALT, o MN passa a ser visível da mesma forma como o HP é. Em pouco menos de 30 minutos, fiz a mesma coisa, provavelmente (ou não) do mesmo jeito que o Micael fez: Explicação A partir daqui, foi muito mais fácil de entender as coisas, que irei demonstrar agora no Tutorial. Tutorial
  13. Como o título indica, venho apresentar-vos uma boa forma de protegerem qualquer tipo de .dll que um jogador tente injetar no vosso servidor. Quem fez tal "proteção" foi um rapaz chamado Koray (provavelmente poucos saberão quem ele é) e podem ficar descansados que é funcional, desde que sigam todos os passos do guia que eu fiz para a sua implementação. O que vai dentro do .rar é: GUIA: Vírus-total para os preguiçosos em clicarem no link: Download: https://mega.nz/#!w4lAVJ5C!bUdyfHs_9AC37_SvvPioc3fizLqmzVg89ndmphSmUgM VT: https://virustotal.com/pt/file/2bb0590de7f6aa4e82e9ed56e08bd022165ddc8d32d8cc322ee4baf87954b5b3/analysis/ Créditos: Koray GUIA: Mário
  14. Reparei que estão a usar as minhas serverfiles, coisa que me deixou um pouco sem noção (no bom sentido). Prevejo bastante trabalho para conseguirem trabalhar com elas, pois na altura não tinha nem 10% do conhecimento que tenho hoje. Obrigado e boa sorte.
  15. Apesar do tópico já ter perdido o seu interesse, venho apenas reforçar que não recomendo que tenham qualquer tipo de negócio com este sujeito. Na altura tinha ficado interessado neste tipo de 'hosting', sendo que o contactei pelo skype. O rapaz nem sequer deu-se ao trabalho de responder.
  16. Não demorou mais que 5 minutos para encontrar o fórum do rapaz. http://tug4eliteforum.forumeiros.com/
  17. O vídeo do Nuno Agonia não pode ser considerado 'válido' pela simples razão de ter testado em 2 smartphones que têm o GorillaGlass, que por sua vez faz isso tudo sem qualquer tipo de película. Podem ver o vídeo do Fala Vertão - cujo foi a inspiração do Nuno para fazer o vídeo - onde o resultado é diferente.
  18. Posso confirmar o primeiro aviso. Eu passo todos os dias na avenida de liberdade, pois ando na UAL e vejo um número crescente de polícias parados com os olhos assentes na estrada.
  19. Se o nome do teu site em conjunto com o domínio .com for a menos de 1 euro, eu compro-te.
  20. Podes sempre comprar o domínio .com na godaddy a menos de 1 euro. Comprei a dias atrás a 0,99.
  21. Então um tutorial muito simples e rápido. 1. Liga o VirtualBox; 2. Escreve o directório de onde vais instalar as serverfiles (ex: cd /usr/2e13r); 3. Mete o ficheiro que acabaste de instalar dentro desse directório (ex: cd /usr/2e13r); 4. Agora mete o seguinte comando: tar zxvf nomedoficheiro.taz (ex: 2e13rfiles.taz) e dá enter; 5. Agora escreve o comando: cd; 6. "" "" " "" : cd /var/db; 7. Mete o outro ficheiro, que deve ter o nome escrito como mysql.taz, dentro desse directório; 8. Escreve o seguinte comando: tar zxvf mysql.taz e dá enter; 9. Depois da pasta ter sido criada, vai a propriedades e dá permissões 777; 10. Faça bom proveito e divirta-se.
  22. Provavelmente nunca ouviste falar nas equipas que apostas (e também não deves ter pesquisado sobre eles) e apenas estás a seguir à base das odds estarem baixas. A minha recomendação é apenas tirarem umas férias disso e iniciarem a partir da terceira jornada das grandes ligas.
  23. Deixo aqui o novo link para o VDI: https://mega.nz/#!Nh9x3ISJ!FmGCihE-CgTpstqcmDbIuNarr33WyphmI31WGdWYhTc
  24. Quando refiro editados, refiro a 2 tipos: Armaduras & Espadas; Atributos. Não interessa se é um grande servidor, o pior tipo de corrupção é aquela que se faz por calada.
  25. Provavelmente é um char editado.