Ir para conteúdo

[Spell] Duvida Sobre A Formula


DexFolks

Posts Recomendados

ola, no meu ot eu tenho uma magia com o seguinte script

local scom1 = createCombatObject()

local scom2 = createCombatObject()

local scom3 = createCombatObject()

local scom4 = createCombatObject()

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255)

setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 3)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 13)

setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 255)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -4.5, -9)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, 13)

setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 255)

setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -4.5, -9)

 

local combat4 = createCombatObject()

setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)

setCombatParam(combat4, COMBAT_PARAM_EFFECT, 13)

setCombatParam(combat4, COMBAT_PARAM_DISTANCEEFFECT, 255)

setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -4.5, -9)

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},

{0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},

{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

}

 

arr2 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

}

 

arr3 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

}

 

arr4 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},

{0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},

{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},

{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

local area4 = createCombatArea(arr4)

setCombatArea(scom1, area1)

setCombatArea(scom2, area2)

setCombatArea(scom3, area3)

setCombatArea(scom4, area4)

 

function onTargetTile(cid, pos)

doCombat(cid,combat1,positionToVariant(pos))

end

 

function onTargetTile2(cid, pos)

doCombat(cid,combat2,positionToVariant(pos))

end

 

function onTargetTile3(cid, pos)

doCombat(cid,combat3,positionToVariant(pos))

end

 

function onTargetTile4(cid, pos)

doCombat(cid,combat4,positionToVariant(pos))

end

 

setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

setCombatCallback(scom2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

setCombatCallback(scom3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3")

setCombatCallback(scom4, CALLBACK_PARAM_TARGETTILE, "onTargetTile4")

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, scom1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, scom2, parameters.var)

end

 

local function onCastSpell3(parameters)

doCombat(parameters.cid, scom3, parameters.var)

end

 

local function onCastSpell4(parameters)

doCombat(parameters.cid, scom4, parameters.var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 50, parameters)

addEvent(onCastSpell2, 50, parameters)

addEvent(onCastSpell3, 100, parameters)

addEvent(onCastSpell4, 150, parameters)

 

return TRUE

end

 

mais a formula de dano dela eh muito ruim, com o passar do lvl ,o dano da magia sobe muito pouco

 

eu queria mudar a formula dela para isso

 

function getCombatFormulas(cid, lv, maglv)

local formula_min = -((lv*5 + maglv*0.9) * 1)

local formula_max = -((lv*5 + maglv*1.1) * 1)

 

if(formula_max < formula_min) then

local tmp = formula_max

formula_max = formula_min

formula_min = tmp

end

return formula_min, formula_max

end

 

eu ja tentei de tudo quanto eh jeito, e ao invez de mudar o dano da magia, ela simplesmente n hita nada, alguem por favor poderia me explicar o q eu devo mudar no script da minha spell?

 

é necessario mexer no arquivo function da pasta lib?

 

agradeço as respostas ^^

Editado por DexFolks
Link para o comentário
Compartilhar em outros sites

setCombatFormula(combat, type, mina, minb, maxa, maxb)

É com esse comando que você modifica a formula de sua spell.

Não sei se da para colocar sua função na formula, mas fiz de uma forma diferente.

 

local formula = {
mina = {-((getPlayerLevel(cid)*5 + getPlayerMagLevel(cid)*0.9) * 1)},
minb = {-((getPlayerLevel(cid)*5 + getPlayerMagLevel(cid)*0.9) * 1)},
maxa = { -((getPlayerLevel(cid)*5 + getPlayerMagLevel(cid)*1.1) * 1)},
maxb = { -((getPlayerLevel(cid)*5 + getPlayerMagLevel(cid)*1.1) * 1)}
}

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 3)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, formula[mina], formula[minb], formula[maxa], formula[maxb])

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 255)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, formula[mina], formula[minb], formula[maxa], formula[maxb])

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 255)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, formula[mina], formula[minb], formula[maxa], formula[maxb])

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 13)
setCombatParam(combat4, COMBAT_PARAM_DISTANCEEFFECT, 255)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, formula[mina], formula[minb], formula[maxa], formula[maxb])

 

não tenho certeza se vai funcionar, mas tenho quase certeza.

Boa sorte com sua spell ai ^^

Link para o comentário
Compartilhar em outros sites

muito obrigado pela sua ajuda, mais não funcionou ;/

quando eu colokei isso no script e dei reload apareceu isso

 

[08/10/2010 14:32:48] [Error - Spell Interface]

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua

[08/10/2010 14:32:48] Description:

[08/10/2010 14:32:48] (internalGetPlayerInfo) Player not found when requesting player info #3

 

[08/10/2010 14:32:48] [Error - Spell Interface]

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua

[08/10/2010 14:32:48] Description:

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua:7: attempt to perform arithmetic on a boolean value

[08/10/2010 14:32:48] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/fire heat.lua)

 

o q isso significa? x.x

Link para o comentário
Compartilhar em outros sites

[08/10/2010 14:32:48] [Error - Spell Interface]

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua

[08/10/2010 14:32:48] Description:

[08/10/2010 14:32:48] (internalGetPlayerInfo) Player not found when requesting player info #3

 

[08/10/2010 14:32:48] [Error - Spell Interface]

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua

[08/10/2010 14:32:48] Description:

[08/10/2010 14:32:48] data/spells/scripts/attack/fire heat.lua:7: attempt to perform arithmetic on a boolean value

[08/10/2010 14:32:48] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/fire heat.lua)

 

Ele não consegiu achar o player, dai o script travou e não foi carregado.

 

Acho que sei qual foi o erro. Modifique essa parte:

local formula = {
mina = {-((getPlayerLevel(parameters.cid)*5 + getPlayerMagLevel(parameters.cid)*0.9) * 1)},
minb = {-((getPlayerLevel(parameters.cid)*5 + getPlayerMagLevel(parameters.cid)*0.9) * 1)},
maxa = {-((getPlayerLevel(parameters.cid)*5 + getPlayerMagLevel(parameters.cid)*1.1) * 1)},
maxb = {-((getPlayerLevel(parameters.cid)*5 + getPlayerMagLevel(parameters.cid)*1.1) * 1)}
}

 

Link para o comentário
Compartilhar em outros sites

n funcionou de novo :/

 

apareceu isso agora:

[08/10/2010 18:13:53] [Error - Spell Interface]

[08/10/2010 18:13:53] data/spells/scripts/attack/fire heat.lua

[08/10/2010 18:13:53] Description:

[08/10/2010 18:13:53] data/spells/scripts/attack/fire heat.lua:7: attempt to index global 'parameters' (a nil value)

[08/10/2010 18:13:53] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/fire heat.lua)

 

mesmo ñ funcionando, vlw mesmo pela insistencia em me ajudar ^^

Link para o comentário
Compartilhar em outros sites

Cara, pelo que percebi, não vai dar para colocar o level/maglevel do jogador na formula não...

local formula = {
mina = {-6.5},
minb = {-7},
maxa = {-11},
maxb = {-12}
}

Ponha isso que com certeza funcionará. O dano da skill esta maior que antes com esses números ai.

Link para o comentário
Compartilhar em outros sites

ixi... q droga, parece q 8.5 nem 8.6 da mais pra por a formula assim ;S

era muito mais facil dakele jeito, essa nova formula eh muito confusa pra mim, n consigo entende a base dela pra descobri o dano usando alguma formula matemática x.x

 

mais vlw ai a ajuda ^^, +rep pra vc :D

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...