Ir para conteúdo
LoManoMano

Montarias c/ attackspeed

Recommended Posts

LoManoMano    7
LoManoMano

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.

Compartilhar este post


Link para o post
Black Ice    2
Black Ice

Obrigado por sua contribuição, continue ajudando a seção crescer.

Aprovado

 

Tópico remunerado: Códigos para OpenTibia - 80 V$

Editado por Black Ice

Compartilhar este post


Link para o post
314256    2
314256

Ou man muito bom, valeu por comentar mostrar pro pessoal aqui

Compartilhar este post


Link para o post
Lyon    3
Lyon

Muito bom o code!!Valew!!

Compartilhar este post


Link para o post
Striker_Sky    0
Striker_Sky

Testando code ... Vou colocar ele no meu server 9.53 e te aviso.

Compartilhar este post


Link para o post
newotserv    0
newotserv

Poxa, achei super bacana! Agora eu tive uma ideia e queria saber se tem como fazer. Seria de as montarias também atacar. Isso tem como?

Compartilhar este post


Link para o post
newotserv    0
newotserv

Poxa, achei super bacana! Agora eu tive uma ideia e queria saber se tem como fazer. Seria de as montarias também atacar. Isso tem como?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×