[Spell] Duvida Sobre A Formula

DexFolks
em Lixeira Pública

DexFolks

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/10Posts: 2

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 ^^

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

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 ^^

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

DexFolks

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/10Posts: 2

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

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

[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)}
}

 

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

DexFolks

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/10Posts: 2

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 ^^

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

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.

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

fadoninho

IEAIAIO
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/10/10Posts: 5Char no Tibia: Chuk Norriss

é só mudar o range n éh ?

Abacate123

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 19/05/06Posts: 125

Que range? O da spell?

Mudar o range da spell não resolverá nada.

Apenas fará com que a spell atinga uma distância maior...

Atenciosamente Kiko5

--------------------------------------







kiko5fanmf0.gif

By: Anokinha

DexFolks

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/10Posts: 2

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