GA
dúvida

Spell de 'Dbuff'

Por gabriel28, 17 de jan. de 2016 em Scripts

25
3.9k
SkullsS
19 de janeiro de 2016 às 16:51

statschange tem um problema de callstack overflow que toda vez que vc trabalha com danos que vão ser recalculados vc precisa contornar com uma das soluções abaixo:

1- Usar a spell durar só 1 dano

2- Controlar o combat por storage (funciona mas é falho e custoso)

 

Vocês conseguiram fazer pro primeiro caso, mas a real é q a idéia inicial era a spell durar um tempo o debuff, e não só até o proximo dano.

Ela dura pra todos os danos do tipo fire nos proximos 10s..

felzanF
19 de janeiro de 2016 às 16:52

@@Night Wolf

 

A spell seta uma storage.

Quem leva dano (de algum tipo) e tem essa storage o dano é aumentado.

 

Night WolfN
19 de janeiro de 2016 às 17:10

sim, pra 1.x.. to falando em 0.4.

Não dá pra fazer return dos parametros e já dar o dano modificado (até onde eu sei), vc tem que editar o dano e criar um novo combat via função, esse combat vai ativar o callback statschange novamente, ver que ainda está dentro dos 10 segundos e recalcular o dano e criar um novo combat via função, esse combat vai ativar o callback statschange novamente, ver que ainda está dentro dos 10 segundos e recalcular o dano e criar um novo combat via função.

Se seu processador conseguir fazer 50 dessas checagens em 1 segundo, em 10 serão 500 multiplicações percentuais no dano inicial, passado 10 segundos o player iria morrer com 1 hit. Se 0.4 tivesse uma forma de fazer igual vc fez em 1.0 seria perfeito, mas acredito que não dá

felzanF
19 de janeiro de 2016 às 17:15

Ata :p

Faz tempo que não mexo com 0.x

gabriel28G
20 de janeiro de 2016 às 16:15

Eu testei a spell aqui e tava funcionando. O dano aumentava em quanto a spell debuff tava ativada e depois voltava ao normal. Não testei com vários chars atacando ao mesmo tempo, só um, porque meu not ta ruim e não ta dando pra abrir mais de um client sem lag nem o hamachi pros amigos tentarem junto.

SkullsS
20 de janeiro de 2016 às 21:34

Ah lobo, vc eh um cara inteligente. Basta por um storage de flag, ne?

 

Eu inclusive estou usando essa mesma lógica para fazer um sisteminha de dano acumulado onde, a cada tapa que um cara da no mesmo alvo, o dano eh ganha um bônus. Meu hit eh dano base * 1.1^n, onde n eh o número de tapas no mesmo alvo.

Editado Janeiro 20 por Skulls

Night WolfN
20 de janeiro de 2016 às 23:46

 

 

Ah lobo, vc eh um cara inteligente. Basta por um storage de flag, ne? Eu inclusive estou usando essa mesma lógica para fazer um sisteminha de dano acumulado onde, a cada tapa que um cara da no mesmo alvo, o dano eh ganha um bônus. Meu hit eh dano base * 1.1^n, onde n eh o número de tapas no mesmo alvo.


foi exatamente oque eu falei ali em cima..

 

statschange tem um problema de callstack overflow que toda vez que vc trabalha com danos que vão ser recalculados vc precisa contornar com uma das soluções abaixo: 1- Usar a spell durar só 1 dano 2- Controlar o combat por storage (funciona mas é falho e custoso)
gabriel28G
21 de janeiro de 2016 às 00:42

Ah lobo, vc eh um cara inteligente. Basta por um storage de flag, ne?

 

Eu inclusive estou usando essa mesma lógica para fazer um sisteminha de dano acumulado onde, a cada tapa que um cara da no mesmo alvo, o dano eh ganha um bônus. Meu hit eh dano base * 1.1^n, onde n eh o número de tapas no mesmo alvo.

 

Sendo assim, aquele script que você fez no outro post, vai acabar dando merda? rsrsrs

SkullsS
21 de janeiro de 2016 às 00:50

N ne, pq obviamente eu pus um storage.

Lobo, sim, mas no último post você falou até ia dar merda. Rs

Pq eh falho e custoso??

Night WolfN
21 de janeiro de 2016 às 19:15

pra cada dano são duas checagens, se for um sv com fast attack já dá ruim. Sem falar que tem um pequeno porém que você vai aprender se fizer a matéria de sistemas operacionais onde o tempo de execução de um ataque pode superar a velocidade de processamento do callback e aí dar um erro malígno. Tem muita gente que acredita que isso jamais poderia ocorrer mas a cada server save isso acontece hahaha tem que se planejar contra tudo isso; Eu evito muito fazer esse pog de flag