Ir para conteúdo

[C++] [TFS 1.X] Player (Mestre) Não Pode Atacar Seus Summons e Seus Summons Não Atacam Outros Players


Posts Recomendados

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 por Yan18
  • Yan Oliveira changed the title to [C++] [TFS 1.X] Player (Mestre) Não Pode Atacar Seus Summons e Seus Summons Não Atacam Outros Players

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

 

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?

 

 

@Yan18sim. Essa função só é executada com um player como `attacker`, então nunca vai acontecer de `isSummon` ser `true`

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?

  • 4 years later...
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!

×
×
  • Criar Novo...