• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

spell based on level

tuduras

Member
Joined
Jun 4, 2017
Messages
76
Solutions
1
Reaction score
11
Hello, I have got one problem,

Have this ue script:
LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 53)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -2.0, -6000, -1.6, -6000)

local arr = {
{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, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 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},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

how to paste this : based on level line :

Code:
function onGetFormulaValues(cid, level, maglevel)
   min = (maglevel*3) +(level/5) +76
   max = (maglevel*4) +(level/5) +108

   return -min, -max
end

setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")



Code:
Add it under
Code:
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
 
Hello, I have got one problem,
Your combat name is combat, not combat0_Brush.
Also when you set setCombatCallback to CALLBACK_PARAM_LEVELMAGICVALUE, you can remove setCombatFormula, as it won't be used anymore.
LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 53)

local arr = {
{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, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 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},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)

function onGetFormulaValues(cid, level, maglevel)
   min = (maglevel*3) +(level/5) +76
   max = (maglevel*4) +(level/5) +108

   return -min, -max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
@gesior I have a question ;> Can You paste some code to spell ? i tried few many times and I have no dmg>


LUA:
--By Dattler--
local atk1 = createCombatObject()
local atk2 = createCombatObject()
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 34)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.0, -20800, -1.6, -20800)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 0)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 34)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2.0, -3000, -1.6, -3000)
arr1 = {
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}
}
arr2 = {
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 1, 0, 2, 0, 1, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(atk1, area1)
setCombatArea(atk2, area2)
function onTargetTile(cid, pos)
    doCombat(cid,combat1,positionToVariant(pos))
end
function onTargetTile2(cid, pos)
    doCombat(cid,combat2,positionToVariant(pos))
end
setCombatCallback(atk1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
setCombatCallback(atk2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")
local function onCastSpell1(parameters)
    doCombat(parameters.cid, atk1, parameters.var)
end
local function onCastSpell2(parameters)
    doCombat(parameters.cid, atk2, parameters.var)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
return true
end



with this : --- >
Code:
function onGetFormulaValues(cid, level, maglevel)
   min = (maglevel*33) +(level*9) +76
   max = (maglevel*34) +(level*9) +108

   return -min, -max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
Post automatically merged:

I used this thread, but not work :
LUA:
https://otland.net/threads/how-do-i-add-another-visual-effect-to-combat-spell.265017/#post-2573542
 
Last edited:
Not every effect or command is the same for every serverversion, sometimes simply the name of the command or the effect is a bit different and then it won't work.
Spelleffects is, in general, listed in your sources in something called enums or something similar.
If you look in in sources and check for a file with the name "lua" in it you can see the list of commands that are available in lua.
I had the problem that I added some custom skills and they were supposed to increase the dmg of some spells.
I had to add a command to that lua-file so I had access.
Post automatically merged:

That is start of my list of spelleffects in lua_enums.cpp your file might have a different name and effects that might have different names aswell:

void LuaEnums::initConstMeEnums(lua_State* L) {
registerEnum(L, CONST_ME_NONE);
registerEnum(L, CONST_ME_DRAWBLOOD);
registerEnum(L, CONST_ME_LOSEENERGY);
registerEnum(L, CONST_ME_POFF);
registerEnum(L, CONST_ME_BLOCKHIT);
registerEnum(L, CONST_ME_EXPLOSIONAREA);
registerEnum(L, CONST_ME_EXPLOSIONHIT);
registerEnum(L, CONST_ME_FIREAREA);
registerEnum(L, CONST_ME_YELLOW_RINGS);
registerEnum(L, CONST_ME_GREEN_RINGS);
registerEnum(L, CONST_ME_HITAREA);
registerEnum(L, CONST_ME_TELEPORT);
registerEnum(L, CONST_ME_ENERGYHIT);
registerEnum(L, CONST_ME_MAGIC_BLUE);
registerEnum(L, CONST_ME_MAGIC_RED);
registerEnum(L, CONST_ME_MAGIC_GREEN);
registerEnum(L, CONST_ME_HITBYFIRE);
 
Last edited:

Similar threads

Back
Top