LoManoMano 7 #1 Postado 13 Agosto, 2011 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 #2 Postado 15 Agosto, 2011 (editado) Obrigado por sua contribuição, continue ajudando a seção crescer. Aprovado Tópico remunerado: Códigos para OpenTibia - 80 V$ Editado 15 Agosto, 2011 por Black Ice Compartilhar este post Link para o post
314256 2 #3 Postado 16 Agosto, 2011 Ou man muito bom, valeu por comentar mostrar pro pessoal aqui Compartilhar este post Link para o post
Striker_Sky 0 #5 Postado 14 Julho, 2012 Testando code ... Vou colocar ele no meu server 9.53 e te aviso. Compartilhar este post Link para o post
newotserv 0 #6 Postado 8 Agosto, 2012 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 #7 Postado 8 Agosto, 2012 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