Ir para conteúdo

Fist Fighting/Attackspeed


Oneshot

Posts Recomendados

Nome: Fist Fighting/Attackspeed

Tipo: C++

Autor: Oneshot

 


 

Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera.

 

Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo.

 

Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo

 

Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++.

 

 


 

Abra seu player.cpp, procure por isso:

 

Player::getAttackSpeed()

 

Substitua toda a função, dependendo da versão de seu servidor:

 

0.3.6


uint32_t Player::getAttackSpeed()
{
Item* weapon = getWeapon();
if(weapon && weapon->getAttackSpeed() != 0)
	return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));

return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));
}

 

0.4


uint32_t Player::getAttackSpeed() const
{
return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)))));
}

 


 

Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.

 

Abraços.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk....

 

Xorei véi . mais ai, ele da uns warnings . é normal?

Link para o comentário
Compartilhar em outros sites

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk....

 

Xorei véi . mais ai, ele da uns warnings . é normal?

 

Cara, na boa, está totalmente funcional sem nenhum bug. É uma modificação ridícula que não acarreta nenhuma mudança drástica no servidor.

 

Se não está funcionando aí, o problema é aí, não com meu código.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

Completamente infuncional o codigo no 0.3.6pl1 tfs 8.54.

 

Desculpe minha grosseria, mas infelizmente só aí no seu servidor problemático. Testei aqui.

 

Grande abraço.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

Sempre da warning e umas coisinhas, mas conssegui resolver mudando parte do codigo.

 

Certo, depois poste a sua resolução aqui.

 

Abraços.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

Nome: Fist Fighting/Attackspeed

Tipo: C++

Autor: Oneshot

 


 

Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera.

 

Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo.

 

Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo

 

Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++.

 

 


 

Abra seu player.cpp, procure por isso:

 

Player::getAttackSpeed()

 

Substitua toda a função, dependendo da versão de seu servidor:

 

0.3.6


uint32_t Player::getAttackSpeed()
{
Item* weapon = getWeapon();
if(weapon && weapon->getAttackSpeed() != 0)
	return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));

return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));
}

 

0.4


uint32_t Player::getAttackSpeed() const
{
return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)))));
}

 


 

Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.

 

Abraços.

 

Desculpe está revivendo o tópico, enfim para deixar que um player com fist 90 ganhe 50% de attack com faço? meixo aqui

(1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)))));

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...