-
-
-
-
-
(Resolvido)[AJUDA] Offline Training Script
Na verdade, no global é assim. A ideia é que o shield demore menos pra subir pra recompensar quem não tem mente sã e ainda treina online huaauhu. Se mesmo assim tu quer deixar na msm velocidade, tenta assim: Na verdade, a única parte que eu alterei foi: player:addOfflineTrainingTries(SKILL_SHIELD, trainingTime / 4) A ideia é mudar o segundo parâmetro (estava trainingTime/4, eu pus (trainingTime / modifier) / 2). Quanto maior for o valor dele, mais upará a skill de shield.
-
- Atacar e usar runa ao mesmo tempo
-
-
-
Dúvidas sobre OTClient
Não faz sentido usar um módulo se tu não quer que alguém tenha acesso a ele. É plenamente possível configurar os parâmetros de sockets direto no código fonte em vez de carregar eles numa interface pra lua se tu não quer que elas sejam editáveis ou descobríveis, economiza memória e usa a melhor criptografia: código de máquina.
-
follow and attack
Ele ganhou reputação por postar uma dúvida? k
-
Spell scroll
Não vai funcionar, o servidor dele é 1.2 e o tutorial é para versão 0.4 Teste: local spellName = "" function onUse(player, item, fromPosition, target, toPosition, isHotkey) if not player:hasLearnedSpell(spellname) then player:learnSpell(spellname) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) player:sendTextMessage(MESSAGE_INFO_DESCR, "com esta runa anciã você aprendeu a magia " .. spellName) return true else player:sendTextMessage(MESSAGE_INFO_DESCR, "você já tem conhecimento dessa magia") return false end end Dá pra configurar as magias por atributos, também, pra ti não ficar criando um item para cada magia.
-
-
[C++] servidor tratando strings enviadas pelo client
Olá, estou criando um poketibia com base no branch master do TFS (embora isso não realmente importe, já que minha dúvida é sobre um método interna relacionada ao client, deve ser igual independente do protocolo). Avancei bastante, mas estaquei no seguinte: como verificar a string enviada pelo player ao servidor? Na verdade, fiz o seguinte exemplo e funcionou (é apenas o meaning da coisa): void Player::onCreatureSay(Creature* creature, SpeakClasses, const std::string& text) { const Player* jogador = creature->getPlayer(); if (jogador && jogador->getSummons() && text.find("foo") != std::string:npos) { jogador->sendCancelMessage("você digitou foo e tem um summon"); } } Mas, seria esse o meio mais conveniente de checar a entrada? Ou melhor, o meio mais rápido? Esse método é chamado pra todos espectadores ou só pra quem deu a entrada de texto? Bom citar que tive que dar override no onCreatureSay da classe Creature, já que por padrão a classe player não estende esse método, mas o chama. Eu dei uma olhada em outros métodos, e achei o seguinte: bool ChatChannel::talk(const Player&, SpeakClasses, std::string&). É um possível candidato? P.S.: sei que é possível com talkactions, mas não vejo porque scriptar uma funcionalidade que será nativa no meu servidor.
-
[PokeTibia] Recomendação para servidor sério
Vou dar uma breve explicação (se quiser mais detalhes pode vir pm): Antigamente, existiram dois grandes servidores de poketibia: SVKE e PAdventures. Não vou entrar muito em detalhes sobre eles porque tem controvérsias, mas resumindo: a comunidade participou e participa ativamente nas "ideias inovadoras" desses servidores de poketibias considerados grandes (as conversas com npc pelo botão direito, que foi popularizada pela pxg, por exemplo, pode ser encontrada disponível na otland). O que se tem na comunidade hoje em dia é: PDA: sem source, só tem a distro compilada (ou seja, bugs não poderão ser resolvidos), é a mais avançada em relação a sistemas, mas grande parte deles tem bugs ou foram implementados com gambiarras em lua que quase ninguém entende (nem tente entender elas, tu só vai ter dor de cabeça) Pokémon Dash: tem a source (pode resolver os bugs), muiiitas gambiarras em lua e sistemas defasados ou falta deles (tu consegue consertar tudo) Pokémon Flash: porra, isso é antigo demais SAHUSAHUSUHA, só ignora. Pra ti ter noção, algumas distros do pokémon flash nem moves (m1, m2 etc) tem. Tendo informação disso tudo, tu chega na seguinte conclusão: pra ti partir de qualquer base disponível na comunidade tu vai precisar estudar as gambiarras e sistemas dela na unha, já que grande parte da documentação foi perdida (por estar no xtibia ou pelos links terem ficado off). Outro comentário cabível é que: essas bases foram baseadas na versão 0.3.6 do theforgottenserver. Essa versão foi lançada em 2010. O código fonte em geral não usa açúcar sintático, é bagunçado, usa convenções antigas etc, além de ter vários bugs conhecidos (por ser antiga). Na minha singela opinião, se tu tiver conhecimento e quiser algo sério e que tu compreenda totalmente o funcionamento, faça o seguinte: vá no github do theforgottenserver, baixe a última versão (1.3), estude ela (tem a otland e a wiki no próprio github pra isso) e altere as sources para adaptar a um poketibia.
-
-
-
-
Como pegar todos os atributos de um item
Dá algum erro ou só crasha?
-
Como pegar todos os atributos de um item
substitua: itemattributes.cpp
-
Como pegar todos os atributos de um item
Apaguei um ":" sem querer, só deixar assim: std::map<std::string, ItemAttribute>* ItemAttributes::getAttributeMap()
-
Como pegar todos os atributos de um item
tente: luascript.cpp Relaxa, tá quase lá, ahuahuauh O problema aqui tá sendo como fazer essa função retornar uma tabela de chave e valor (aka {chave = "valor", chave2 = "valor2"), eu não sabia fazer isso, to aprendendo na mao SHUASUHASUHA. Do jeito que tu fez vai retornar só os valores, fica meio ruim pra ti manipular depois.
-
Como pegar todos os atributos de um item
tente: luascript.cpp
-
Como pegar todos os atributos de um item
já sabe: luascript.cpp
-
Como pegar todos os atributos de um item
uma hora vai, substitua: luascript.cpp
-
Como pegar todos os atributos de um item
Opa, não tinha lido que tu não conseguiu mudar a versão, desculpa ahuahua. Essa é a parte meio bad de fazer um código em c++ qnd alguém pede, pq tu não pode compilar pra ver os erros e resolver por ti próprio Substitua: luascript.cpp