Postado Julho 31, 2013 11 anos Este é um post popular. Versão: 0.3.6pl1 TFS Função: Adiciona a velocidade de ataque de acordo com uma determinada skill e/ou arma. Aviso: A unidade que usamos aqui é o milissegundo (ms). 1ms = 0,001s 1s = 1000ms Instalação em player.cpp, procure a função: uint32_t Player::getAttackSpeed() e substitua ela inteira por: uint32_t Player::getAttackSpeed() { int32_t weaponAttackSpeed = 0; int32_t minimumAttackSpeed = 500; Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) weaponAttackSpeed = floor ((int)weapon->getAttackSpeed()); // FORMULA int32_t attackSpeed = vocation->getAttackSpeed() - (getSkill(SKILL_CLUB, SKILL_LEVEL) * 20) - weaponAttackSpeed; // CHECA A VELOCIDADE MÍNIMA if (attackSpeed && attackSpeed < minimumAttackSpeed) return minimumAttackSpeed; return attackSpeed; } Explicando Definimos um mínimo de velocidade caso a formula retorne um valor menor que 500, verificamos se a arma tem modificador de velocidade, ou seja, se a tag 'attackspeed' está definida no items.xml e então calculamos e retornamos o total. O total é definido pela seguinte formula: (Velocidade de Ataque da Vocations.xml ) - ( Skill Club * 20 ) - ( Velocidade de Ataque da Tag 'attackspeed' do Items.xml ) Configurações 500 - O Valor mínimo de velocidade de ataque, SKILL_CLUB - A skill que vai modificar a velocidade de ataque. 20 - O multiplicador, como default está definida 0,02 segundos a menos por skill. Como definir a tag no items.xml Embaixo do item desejado adicione a seguinte tag: <attribute key="attackspeed" value="X"/> Espero que ajude alguém e qualquer problema estou a disposição, me corrija se estiver errado pois não testei, apenas desenvolvi a lógica e fiz o teste de compilação, abraços. Editado Julho 31, 2013 11 anos por Henriqueberro (veja o histórico de edições) Skype: gpingulim E-mail: rafaelhenriqee@live.com
Postado Agosto 1, 2013 11 anos muito bom mano bem explicadinho gostei rep+ Contato : under12451 (Skype) Meus Tutoriais O Que é DDoS ? como se Proteger Por Tony Criando Servidor Poketibia Sistemas de Vips com [VIP] No Nome Cyclops - Mistrock - 100% AFK Como Editar um NPC 8.6 [ Itens e Preços] Editando Swords 8.6 Como Editar um NPC 8.6 [VENDA]
Postado Agosto 1, 2013 11 anos Autor Em 01/08/2013 em 00:38, TonyHalk disse: muito bom mano bem explicadinho gostei rep+ Muito obrigado, o código é de minha autoria, logo vou disponibilizar outras sistemas, agradeço o comentário e o rep, abraços. Skype: gpingulim E-mail: rafaelhenriqee@live.com
Postado Janeiro 11, 2016 9 anos Pode me ajudar no erro que dá no TFS 0.4? Da o seguinte erro na hora de compilar: In member function 'uint32_t Player::getAttackSpeed() const': 4262 C:\Users\Distro 0.4 rev 3884\player.cpp no matching function for call to 'Player::getWeapon() const' note C:\Users\Distro 0.4 rev 3884\player.cpp:273 candidates are: Item* Player::getWeapon(bool) note C:\Users\Distro 0.4 rev 3884\player.cpp:273 *** [obj//player.o] Error 1 Aqui está o código: uint32_t Player::getAttackSpeed() const { int32_t weaponAttackSpeed = 0; int32_t minimumAttackSpeed = 500; Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) weaponAttackSpeed = floor ((int)weapon->getAttackSpeed()); // FORMULA int32_t attackSpeed = vocation->getAttackSpeed() - (getSkill(SKILL_CLUB, SKILL_LEVEL) * 20) - weaponAttackSpeed; // CHECA A VELOCIDADE MÍNIMA if (attackSpeed && attackSpeed < minimumAttackSpeed) return minimumAttackSpeed; return attackSpeed; } Oi
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.