dano = dano - (dano * 0.2) se não for isso não saquei o que quer direito.
dano = dano - (dano * 0.2) se não for isso não saquei o que quer direito.
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0

4 horas atrás, nociam disse:
dano = dano - (dano * 0.2) se não for isso não saquei o que quer direito.
tipo: eu coloquei assim da maneira que está, porém o player deveria receber 800 de dano, e não recebe, recebe 1200 assim.
aí tentei colocar pra não receber o dano normal, apenas 80* dele, com um return false no final, mas daí ele não recebe nem um e nem outro
edit1 --
É pra ser tipo um absorvPercentAll = 20 do items.XML mas em vez de ser no item, ser quando o player estiver com um summon
Editado Agosto 12 por LeoPetryScript
info
Grupo: Conde
Registrado: 23/05/17
Posts: 584
Reputação: +113
Gênero: Masculino
Char no Tibia: Não Tenho

Tente assim:
function onStatsChange(cid, attacker, type, combat, value, summons) local summons = getCreatureSummons(cid) local angel = "death angel [0]" if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(angel) then if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then dano = dano - (value*0.2) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) end else return true end end end return true end
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0

5 minutos atrás, DarkWore disse:Tente assim:
function onStatsChange(cid, attacker, type, combat, value, summons) local summons = getCreatureSummons(cid) local angel = "death angel [0]" if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(angel) then if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then dano = dano - (value*0.2) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) end else return true end end end return true end
da erro pq nao reconhece dano = "dano" - (value*0.2)
43 minutos atrás, LeoPetryScript disse:da erro pq nao reconhece dano = "dano" - (value*0.2)
Provavelmente pq a variável 'dano' n foi declarada, tenta assim:
function onStatsChange(cid, attacker, type, combat, value, summons) local summons = getCreatureSummons(cid) local angel = "death angel [0]" if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(angel) then if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then value = value - (value*0.2) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) end else return true end end end return true end
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0

2 minutos atrás, lSainty disse:Provavelmente pq a variável 'dano' n foi declarada, tenta assim:
function onStatsChange(cid, attacker, type, combat, value, summons) local summons = getCreatureSummons(cid) local angel = "death angel [0]" if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(angel) then if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then value = value - (value*0.2) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) end else return true end end end return true end
testei com um monstro que hita sempre 1100-1200
ele começou a hitar 3200 com esse efeito ativo
2 minutos atrás, LeoPetryScript disse:testei com um monstro que hita sempre 1100-1200
ele começou a hitar 3200 com esse efeito ativo
Infelizmente eu n manjo dessas formulas de dano, mas n faz sentido visto que se o 'value' fosse 100 por exemplo, a conta seria: value = 100 - (100*0.2) = 80
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0

6 minutos atrás, lSainty disse:Infelizmente eu n manjo dessas formulas de dano, mas n faz sentido visto que se o 'value' fosse 100 por exemplo, a conta seria: value = 100 - (100*0.2) = 80
é que tem que ter tipo um return false pro dano primario, mas se eu coloco return false, n sai nenhum dano
8 minutos atrás, LeoPetryScript disse:é que tem que ter tipo um return false pro dano primario, mas se eu coloco return false, n sai nenhum dano
Dei uma pesquisada e creio que vc vai ter que fazer nas sources. Ao colocar return false (que cancela o dano "original" para causar apenas o do doTargetCombatHealth) ele entra no onStatsChange novamente e vira um loop cancelando o dano.
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0

29 minutos atrás, lSainty disse:Dei uma pesquisada e creio que vc vai ter que fazer nas sources. Ao colocar return false (que cancela o dano "original" para causar apenas o do doTargetCombatHealth) ele entra no onStatsChange novamente e vira um loop cancelando o dano.
não sei como faz isso, ai fiz diferente aqui, coloquei pra aparecer do lado do hit "-20%" ai coloquei
doTargetCombatHealth(attacker, cid, combat, dano, dano, nill)
Editado Agosto 12 por LeoPetryScript
info
Grupo: Campones
Registrado: 14/03/20
Posts: 25
Reputação: 0
quando player sofrer um ataque de 1000, receber só 800 de dano que no caso seria (80/100)
no caso abaixo, o player recebe os 1000 de dano + 20%, teria que ser - 20%
Editado Agosto 12 por LeoPetryScript