Ir para conteúdo
  • 0

Tem algum programa que identifique fast atk?


knightkunn

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Vá em vocations.xml, e faça o mesmo, com todas vocações, bem irei mostrar a minha de exemplo:

 

     <vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="1" gainhpamount="10" gainmanaticks="1" gainmanaamount="4" manamultiplier="2.9" attackspeed="1600" soulmax="100" gainsoulticks="120" fromvoc="4">
       <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.1" magHealingDamage="1.3" defense="1.0" magDefense="1.0" armor="1.0"/>
       <skill fist="1.1" club="2.0" sword="1.1" axe="2.0" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>

 

Aodne está "attackspeed" seria a velocidade do ataque, se eu não me engano basta diminuir o valor para que ataquem mais lentamente, teste e poste resultados. @AVISO: Por favor não faça mais de 1 tópico!

Link para o comentário
Compartilhar em outros sites

  • 0

@Roksas

 

Não é isso que o dono do tópico quer. Ele quer uma maneira de parar aqueles que usam Elfbot para acelerar os ataques ao máximo.

 

@knightkunn

 

void Player::doAttacking(uint32_t)
{
   if(!lastAttack)
       lastAttack = OTSYS_TIME() - getAttackSpeed() - 1;
   else if((OTSYS_TIME() - lastAttack) < getAttackSpeed())
       return;

   if(hasCondition(CONDITION_PACIFIED) && !hasCustomFlag(PlayerCustomFlag_IgnorePacification))
   {
       lastAttack = OTSYS_TIME();
       return;
   }

   Item* item = getWeapon(false);
   if(const Weapon* _weapon = g_weapons->getWeapon(item))
   {
       if(_weapon->interruptSwing() && !canDoAction())
       {
           SchedulerTask* task = createSchedulerTask(getNextActionTime(),
               boost::bind(&Game::checkCreatureAttack, &g_game, getID()));
           setNextActionTask(task);
       }
       else
       {
           if((!_weapon->hasExhaustion() || !hasCondition(CONDITION_EXHAUST)) && _weapon->useWeapon(this, item, attackedCreature))
               lastAttack = OTSYS_TIME();

           updateWeapon();
       }
   }
   else if(Weapon::useFist(this, attackedCreature))
       lastAttack = OTSYS_TIME();
}

 

Isto acima, é um exemplo da parte responsável por administrar os ataques dos jogadores no código-fonte do servidor, é ela que controla o intervalo de tempo entre um ataque e outro.

 

Uma maneira simples de parar o fast attack, é criar uma variável que controle os intervalos de tempo e identifique jogadores que estejam atacando muitas vezes em um curto intervalo. Sendo possível com isso, banir tais jogadores.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...