Yan Oliveira 214 Postado Janeiro 29, 2021 Share Postado Janeiro 29, 2021 (editado) Olá pessoal! Esse é um tutorial bem simples para o player(master) não poder atacar seus summons e o summon do player(master) não atacar outros players. Esse tutorial é muito útil principalmente para quem está desenvolvendo derivados. *OBS: Esse tutorial só funciona para TFS 1.X (1.0+) Vamos ao tutorial!!! Siga os passos à seguir: 1- Abra sua source e procure o arquivo combat.cpp 2- Procure pela função: ReturnValue Combat::canTargetCreature(Player* attacker, Creature* target) 3- Insira o código à seguir dentro da função encontrada no passo anterior: // BLOCO QUE O PLAYER (MASTER) NÃO PODE ATACAR O SUMMON // if (target->isSummon()) { return RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE; } // BLOCO QUE O SUMMON DO PLAYER (MASTER) NÃO PODE ATACAR OUTRO JOGADOR // if (attacker->isSummon() && target->getPlayer()) { return RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER; } 4- Compile a source Pronto! Agora está terminado e você pode jogar! Um recurso simples, mas bem útil. Editado Janeiro 30, 2021 por Yan18 GamerGoiano reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/ Compartilhar em outros sites More sharing options...
Lordfire 309 Postado Janeiro 30, 2021 Share Postado Janeiro 30, 2021 Essa condição: attacker->getPlayer() é sempre verdadeira, então vc pode remover do if --- target->getCreature() target já é uma Creature, então isso sempre retorna o mesmo valor de target, vc pode escrever somente target --- Essa condição: attacker->getCreature()->isSummon() é sempre falsa e o if nunca vai ser executado Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/#findComment-1764312 Compartilhar em outros sites More sharing options...
Yan Oliveira 214 Postado Janeiro 30, 2021 Autor Share Postado Janeiro 30, 2021 8 horas atrás, Lordfire disse: Essa condição: attacker->getPlayer() é sempre verdadeira, então vc pode remover do if --- target->getCreature() target já é uma Creature, então isso sempre retorna o mesmo valor de target, vc pode escrever somente target --- Essa condição: attacker->getCreature()->isSummon() é sempre falsa e o if nunca vai ser executado Entendi! Obrigado pelo conselho e pelas dicas, estou aprimorando meu C++ (que ainda é básico). No caso da última condição que você disse que será sempre false, é porque o attacker (atacante) sempre será o player? Mesmo que ele tenha summons? Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/#findComment-1764313 Compartilhar em outros sites More sharing options...
Lordfire 309 Postado Janeiro 30, 2021 Share Postado Janeiro 30, 2021 @Yan18sim. Essa função só é executada com um player como `attacker`, então nunca vai acontecer de `isSummon` ser `true` Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/#findComment-1764324 Compartilhar em outros sites More sharing options...
Yan Oliveira 214 Postado Janeiro 31, 2021 Autor Share Postado Janeiro 31, 2021 1 hora atrás, Lordfire disse: @Yan18sim. Essa função só é executada com um player como `attacker`, então nunca vai acontecer de `isSummon` ser `true` Entendi, interessante. Ai no caso para o meu summon não atacar outro summon de outro player ou outro player, eu faço verificação no arquivo creatures.lua da pasta Data/Events correto? Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/#findComment-1764326 Compartilhar em outros sites More sharing options...
Bettim 0 Postado Outubro 29 Share Postado Outubro 29 Em 29/01/2021 em 05:59, Yan Oliveira disse: Olá pessoal! Esse é um tutorial bem simples para o player(master) não poder atacar seus summons e o summon do player(master) não atacar outros players. Esse tutorial é muito útil principalmente para quem está desenvolvendo derivados. *OBS: Esse tutorial só funciona para TFS 1.X (1.0+) Vamos ao tutorial!!! Siga os passos à seguir: 1- Abra sua source e procure o arquivo combat.cpp 2- Procure pela função: ReturnValue Combat::canTargetCreature(Player* attacker, Creature* target) 3- Insira o código à seguir dentro da função encontrada no passo anterior: // BLOCO QUE O PLAYER (MASTER) NÃO PODE ATACAR O SUMMON // if (target->isSummon()) { return RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE; } // BLOCO QUE O SUMMON DO PLAYER (MASTER) NÃO PODE ATACAR OUTRO JOGADOR // if (attacker->isSummon() && target->getPlayer()) { return RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER; } 4- Compile a source Pronto! Agora está terminado e você pode jogar! Um recurso simples, mas bem útil. Aliás, pra quem gosta de diversão online além dos jogos, recomendo dar uma olhada no mostbet casino — é um ótimo site de cassino online, perfeito pra relaxar depois de horas de programação ou testes no servidor. Essas pequenas modificações realmente fazem diferença, especialmente pra quem está personalizando servidores baseados em TFS. É um detalhe simples, mas melhora muito a jogabilidade e evita vários problemas com summons atacando quem não devem. Obrigado por compartilhar — com certeza vai ajudar muita gente que está desenvolvendo derivados! Link para o comentário https://xtibia.com/forum/topic/252753-c-tfs-1x-player-mestre-n%C3%A3o-pode-atacar-seus-summons-e-seus-summons-n%C3%A3o-atacam-outros-players/#findComment-1776485 Compartilhar em outros sites More sharing options...
Posts Recomendados