HE

Modificador de attackspeed em Item e/ou skill.

Por henriqueberro, 31 de jul. de 2013 em Linguagens de Programação

attackspeed
velocidade de ataque
speed
sources
compilar
attack
items
velocidade
skill modificando attackspeed
19
4.5k
31 de julho de 2013 às 10:41

Versão: 0.3.6pl1 TFS

Função: Adiciona a velocidade de ataque de acordo com uma determinada skill e/ou arma.

Autor: henriqueberro (eu).

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, o código inteiro é de minha autoria e livre para modificações e uso, abraços.

Editado Julho 31 por henriqueberro

BeekiB
31 de julho de 2013 às 12:46

ótimo código, é de sua autoria?

31 de julho de 2013 às 12:47

ótimo código, é de sua autoria?

 

sim, e obrigado!

BeekiB
31 de julho de 2013 às 12:51

Legal, adicione seus créditos no final do tópico, fica mais fácil se caso houver alguém, que, modifique e reposte tal código.

 

 

Fixado, (:

31 de julho de 2013 às 12:56

Legal, adicione seus créditos no final do tópico, fica mais fácil se caso houver alguém, que, modifique e reposte tal código.

 

 

Fixado, (:

obrigado pelo lembrete e pelo fixo, os próximos não vou esquecer, abraços.

1 mês depois...
koeteK
24 de agosto de 2013 às 12:29

 

 

500 - O Valor mínimo de velocidade de ataque,

Eu poderia mudar o minimo de ataque speed sem dar erro nenhum?

e vai funcionar?

26 de agosto de 2013 às 08:58

 

 

 

500 - O Valor mínimo de velocidade de ataque,

Eu poderia mudar o minimo de ataque speed sem dar erro nenhum?

e vai funcionar?

 

 

sim, mas recomendo no mínimo um valor de 250 que corresponde a 4 ataques por segundo, abraços.

1 mês depois...
23 de setembro de 2013 às 01:07

onde eu edito isso? em qual pasta?

23 de setembro de 2013 às 08:56

onde eu edito isso? em qual pasta?

 

Recomendo que você dê uma olhada na parte de iniciantes e tutoriais de compilação, é bem simples e sem complicações, abraços!

MeunometemvinteletraM
23 de setembro de 2013 às 16:20

onde eu edito isso? em qual pasta?

É no player.cpp..

Ta escrito la em cima '-'

Esse arquivo encontra-se nas sources do ot

@Tópico
Ótimo código, poderei fazer bom uso desse sistema.
Obrigado por compartilhar conosco :3
8 meses depois...
MatheusEnjoyM
01 de maio de 2014 às 20:51

Teria como mudar isso, fazer com que o atk speed seja relacionado a weapon?

Cada arma um atk speed?

1 ano depois...
ClarymC
21 de março de 2016 às 01:15

Alguém pode adaptar o codigo pra TFS 0.4 rev 3884? To precisando muito dele!!!

SkullsS
23 de março de 2016 às 21:46

Interessante o tópico e a ideia, entretanto, conhecendo as limitações do tfs, tenho minhas dúvidas se é realmente funcional.
Acredito que aumenta sim o attack speed, mas não da forma que você pensa que está aumentando.

ClarymC
23 de março de 2016 às 22:04

Interessante o tópico e a ideia, entretanto, conhecendo as limitações do tfs, tenho minhas dúvidas se é realmente funcional.

Acredito que aumenta sim o attack speed, mas não da forma que você pensa que está aumentando.

 

Mas então os "fast attacks" dos famosos baiaks, eles não funcionam do jeito que deveriam?

SkullsS
23 de março de 2016 às 22:10

Se usar de base a source do TFS e não tiver alterado a limitação, não =/


Não é via de regra, existem modos de solucionar o problema.