Ir para conteúdo
  • 0

Ajuda script de SD


Bragony

Pergunta

Olá, boa tarde.

 

Gostaria de saber se é possível adaptar a fórmula antiga das SD's, como era feita, nos dias de hoje...

 

Segue o modelo do otserver 7.6:

 

-- doTargetMagic

-- attackType: Type of attack

-- cid: creature id.

-- Targetpos: Target position.

-- animationEffect: Projectile animation.

-- damageEffect: Effect to show when spell hits a player.

-- animationColor: Color of the text that is shown above the player when hit.

-- offensive: Indicates if the spell is a healing/attack spell.

-- drawblood: Determines if the spell causes blood splash.

-- minDmg: Minimal damage.

-- maxDmg: Maximum damage.

-- returns true if the spell was casted.

 

attackType = ATTACK_PHYSICAL

animationEffect = NM_ANI_SUDDENDEATH

 

hitEffect = NM_ME_MORT_AREA

damageEffect = NM_ME_DRAW_BLOOD

animationColor = RED

offensive = true

drawblood = true

 

SuddenDeathObject = (attackType, animationEffect, hitEffect, damageEffect, animationColor, offensive, drawblood, 0, 0)

 

function onCast(cid, creaturePos, level, maglv, var)

centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}

 

SuddenDeathObject.minDmg = (level * 2 + maglv *3) * 1.2 - 30

SuddenDeathObject.maxDmg = (level * 2 + maglv *3) * 1.6

 

return doTargetMagic(cid, centerpos, SuddenDeathObject:ordered())

end

 

 

E o modelo atual:

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.005, -25, -1.75, 0)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Muito obrigado dalvorsn, funcionou, agora está dando o hit corretamente!

 

Mas mesmo quando eu aperto a hotkey sem atacar ninguém, nao aparece o símbolo que costuma aparecer... Só funciona quando esta atacando e aperta a hotkey.

 

Só o que falta pra funcionar perfeitamente é isso.

 

Eu to pesquisando pq isso acontece, mas nao acho nada...

 

Ficaria muito grato se você me ajudasse um pouquinho mais... Amanha darei REP!

 

Obrigado...

 

Agradeço se mais alguém puder ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0

testa ae

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv* 2 + maglv*3) * 1.2 - 30)
local formula_max = -((lv* 2 + maglv*3) * 1.6)

if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Link para o comentário
Compartilhar em outros sites

  • 0

testa ae

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv* 2 + maglv*3) * 1.2 - 30)
local formula_max = -((lv* 2 + maglv*3) * 1.6)

if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

Funcionou perfeitamente!

 

Muito obrigado, darei REP+ quando puder dar...

 

Pode mover o tópico, foi resolvido!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...