Ir para conteúdo

Posts Recomendados

Fala galera,

 

Vi um código bem parecido com este na seção da OTLand faz algum tempo, mas não funcionou aqui, então fiz o meu próprio ;).

Este código adiciona um campo de nome "attackspeed" no mounts.xml, que serve pra diminuir o delay entre cada ataque.

Como funciona: Se eu colocar attackspeed="1000" na montaria Racing Bird, quando eu estiver usando-a, darei um hit a cada 2000-1000 ms, se não estiver usando, dou a cada 2000 ms.

 

Agora, o código:

 

em mounts.cpp, ache:

int32_t speed = 0;
if(readXMLInteger(p, "speed", intValue))
	speed = intValue;

 

Adicione 2 linhas abaixo:

int32_t attackSpeed = 0;
if(readXMLInteger(p, "attackspeed", intValue))
	attackSpeed = intValue;

 

ache:

Mount* mount = new Mount(name, mountId, clientId,
speed, premium, storageId, storageValue);

 

troque por:

Mount* mount = new Mount(name, mountId, clientId,
speed, attackSpeed, premium, storageId, storageValue);

 

agora em mounts.h, ache:

Mount(std::string _name, uint16_t _id, uint16_t _clientId, int32_t _speed,
		bool _premium, std::string _storageId, std::string _storageValue)

 

troque por:

Mount(std::string _name, uint16_t _id, uint16_t _clientId, int32_t _speed, int32_t _attackSpeed,
		bool _premium, std::string _storageId, std::string _storageValue)

 

ache:

id = _id;

 

adicione abaixo:

attackSpeed = _attackSpeed;

 

ache:

uint32_t getSpeed() const {return speed;}

 

adicione abaixo:

uint32_t getAttackSpeed() const {return attackSpeed;}

 

ache:

int32_t speed;

 

troque por:

int32_t speed, attackSpeed;

 

Agora em player.cpp, ache:

uint32_t Player::getAttackSpeed()

 

Troque toda a função por esta:

uint32_t Player::getAttackSpeed() const
{
Mount* mount = Mounts::getInstance()->getMountByCid(currentOutfit.lookMount);
if(!mounted){
return ((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size())));
} else if(mount->getAttackSpeed() > 0){
return ((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() : (vocation->getAttackSpeed() - mount->getAttackSpeed() / std::max((size_t)1, getWeapons().size())));
}
else {
return ((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size())));
}
}

 

Agora terminou, acho.

 

Créditos: Deragon (eu)

Obs: postei na otland também, lá sou eu.

Link para o comentário
https://xtibia.com/forum/topic/164869-montarias-c-attackspeed/
Compartilhar em outros sites

  • 1 month later...
  • 2 months later...

Vi um código bem parecido com este na seção da OTLand faz algum tempo, mas não funcionou aqui, então fiz o meu próprio ;).

valeu ai por ler, idiota

sem falar que tá "tudo igual", sim claro, o seu é pra opentibia, o meu pra tfs

quer créditos pela ideia? acho que não hem, não existe isso

Link para o comentário
https://xtibia.com/forum/topic/164869-montarias-c-attackspeed/#findComment-1147979
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...