Ir para conteúdo

Como impedir que jogadores ganhem experiência ao matar outros jogadores no PVP TFS 0.4

Featured Replies

Postado

Se você está enfrentando o problema de jogadores ganhando experiência ao matar outros jogadores em um servidor PVP, e já tentou várias soluções sem sucesso, este tutorial vai te ajudar a resolver isso. A modificação que vou mostrar foi eficaz para mim e pode ser a solução para o seu servidor também.

 

Passo 1: Acesse o arquivo creature.cpp

Primeiro, abra o arquivo creature.cpp, que está localizado na pasta src ou sources do seu servidor. Esse arquivo contém a lógica das criaturas, incluindo a parte de quando um jogador mata outra criatura.

 

Passo 2: Localize o  onAttackedCreatureKilled

Dentro do arquivo, procure pela função onAttackedCreatureKilled:

 

void Creature::onAttackedCreatureKilled(Creature* target)
{
    if(target == this)
        return;

    double gainExp = target->getGainedExperience(this);
    onGainExperience(gainExp, !target->getPlayer(), false);
}

 

Altere para

 

void Creature::onAttackedCreatureKilled(Creature* target)
{
    if (target == this)
        return;

    // Verifica se o atacante e o alvo são jogadores
    Player* attackerPlayer = this->getPlayer();
    Player* targetPlayer = target->getPlayer();

    if (attackerPlayer && targetPlayer) 
        return;

    if (!attackerPlayer && targetPlayer) {
        double gainExp = target->getGainedExperience(this);
        onGainExperience(gainExp, !target->getPlayer(), false);
    }
        
    else if (attackerPlayer) {
        double gainExp = target->getGainedExperience(this);
        onGainExperience(gainExp, true, false);
    }
}

 

Agora Recompile modo Rebuilder (LIMPA) e pronto!!!

 

Aqui está o que mudou:

*A primeira modificação verifica se o atacante e o alvo são jogadores. Se ambos forem jogadores, não será concedida experiência.

*Se o atacante for um monstro, a experiência será concedida normalmente ao jogador.

*Se o atacante for um jogador, ele ganhará a experiência normalmente.

 

Créditos @L3K0T

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo