nogareD 6 Postado Agosto 13, 2011 Share Postado Agosto 13, 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. Link para o comentário https://xtibia.com/forum/topic/164869-montarias-c-attackspeed/ Compartilhar em outros sites More sharing options...
Tryller 192 Postado Setembro 30, 2011 Share Postado Setembro 30, 2011 Não vou falar nada..... apenas veja http://otland.net/f35/mounts-attackspeed-114486/ Link para o comentário https://xtibia.com/forum/topic/164869-montarias-c-attackspeed/#findComment-1109908 Compartilhar em outros sites More sharing options...
manolomano 3 Postado Dezembro 9, 2011 Share Postado Dezembro 9, 2011 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 More sharing options...
Posts Recomendados