• 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!

OpenTibia SpellCreator: A graphical spell creation enviroment

@TGYoshi and all:

There was mention in the past, that the generated spells bug out when the player moves. On my server, this happens because the direction of the effect is determined by the server as each event is called (or, more specifically, as each "doCombat(cid, c, var)" is called). The solution I found was to paralyze the caster until the spell was over. Maybe some checkbox to add a self-paralyzing effect for the duration of the creation of new area affects could be added? If not, this is AT LEAST an idea for people. :D.
 
Hello, when i finish i get this code:

Code:
-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 700ms
local combat7_Healing_Effect = createCombatObject()
setCombatParam(combat7_Healing_Effect, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
setCombatParam(combat7_Healing_Effect, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat7_Healing_Effect,createCombatArea({{3}}))


-- Areas/Combat for 600ms
local combat6_Drain_Effect = createCombatObject()
setCombatParam(combat6_Drain_Effect, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat6_Drain_Effect, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN)
setCombatParam(combat6_Drain_Effect, COMBAT_PARAM_BLOCKARMOR, true)
setCombatArea(combat6_Drain_Effect,createCombatArea({{1, 1, 1},
{1, 2, 1},
{1, 1, 1}}))
function getDmg_Drain_Effect(cid, level, maglevel)
   return (75),(125)
end
setCombatCallback(combat6_Drain_Effect, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Drain_Effect")

-- Areas/Combat for 500ms
local combat5_Axe_Effect = createCombatObject()
setCombatParam(combat5_Axe_Effect, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDAXE)
setCombatParam(combat5_Axe_Effect, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5_Axe_Effect, COMBAT_PARAM_BLOCKSHIELD, true)
setCombatArea(combat5_Axe_Effect,createCombatArea({{1, 1, 1},
{1, 2, 1},
{1, 1, 1}}))
setCombatFormula(combat5_Axe_Effect, COMBAT_FORMULA_SKILL, 75, 10, 75, 10)

local con___combat5_Axe_Effect = createConditionObject(0)
setCombatCondition(combat5_Axe_Effect, con___combat5_Axe_Effect)

local con_Live_Drain__combat5_Axe_Effect = createConditionObject(0+CONDITION_BLEEDING+CONDITION_ATTRIBUTES+CONDITION_SPELLCOOLDOWN)
addDamageCondition(con_Live_Drain__combat5_Axe_Effect, 3, 2500, -25)
setCombatCondition(combat5_Axe_Effect, con_Live_Drain__combat5_Axe_Effect)
local dfcombat5_Axe_Effect = {CONST_ANI_WHIRLWINDAXE,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0}

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
   if (isCreature(cid)) then
     doCombat(cid, c, var)
     if (dirList ~= nil) then -- Emit distance effects
       local i = 2;
       while (i < #dirList) do
         doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
         i = i + 2
       end    
     end
   end
end

function onCastSpell(cid, var)
   local startPos = getCreaturePosition(cid)
   addEvent(RunPart,700,combat7_Healing_Effect,cid,var)
   addEvent(RunPart,600,combat6_Drain_Effect,cid,var)
   addEvent(RunPart,500,combat5_Axe_Effect,cid,var,dfcombat5_Axe_Effect,startPos)
   return true
end

... and doesn't work on TFS 8.6 mistic spirit. Cant load spells.xml :( pleas help how to i can put in engine ;P
The line that your spell is on in spells.xml (if you copied from the spell creator) will say event="script" value="blah.lua". Change event="script" value="blah.lua" to script="blah.lua".
 
I have an error..
"Unable to read beyond the end of the stream.".
How to repair it?
 
for some reason i can't view the spells effects o.o? :
pCxxL1v

i have net framework installed any ideas on how to fix this problem?
 
i got a problem, why dosnt Arrea Effect work with "directional"? When i cast the spell, the "Arreaf Effect" thing casts in random directions, mostly opposite to my direction. Why is that?
 
I'm trying to make monsterspelsl but.. They don't do any damage or they do damage when they shouldn't.

This is how the scripts looks:

Code:
-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{0, 0, 0, 1, 1, 1, 1, 1, 1, 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},
{1, 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, 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},
{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, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0}}))


-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{0, 0, 0, 1, 1, 1, 1, 1, 1, 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, 1, 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, 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, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}))


-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{0, 0, 1, 1, 1, 1, 1, 1, 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, 1, 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, 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, 3, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}))


-- Areas/Combat for 600ms
local combat6_Brush = createCombatObject()
setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat6_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1, 1},
{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, 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, 3, 0, 0, 0, 0}}))


-- Areas/Combat for 700ms
local combat7_Brush = createCombatObject()
setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat7_Brush,createCombatArea({{0, 0, 1, 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, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}))


-- Areas/Combat for 800ms
local combat8_Brush = createCombatObject()
setCombatParam(combat8_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat8_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat8_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 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, 1, 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, 3, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 1}}))


-- Areas/Combat for 900ms
local combat9_Brush = createCombatObject()
setCombatParam(combat9_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat9_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat9_Brush,createCombatArea({{0, 0, 1, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 3, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 1}}))


-- Areas/Combat for 1000ms
local combat10_Brush = createCombatObject()
setCombatParam(combat10_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat10_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat10_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 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, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 3, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 0}}))


-- Areas/Combat for 1100ms
local combat11_Brush = createCombatObject()
setCombatParam(combat11_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat11_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat11_Brush,createCombatArea({{0, 3, 0},
{1, 0, 1}}))


-- Areas/Combat for 1200ms
local combat12_Brush = createCombatObject()
setCombatParam(combat12_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat12_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat12_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 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, 1, 3, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}}))


-- Areas/Combat for 1300ms
local combat13_Brush = createCombatObject()
setCombatParam(combat13_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat13_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat13_Brush,createCombatArea({{1, 2, 1},
{0, 0, 0},
{1, 0, 1}}))


-- Areas/Combat for 1400ms
local combat14_Brush = createCombatObject()
setCombatParam(combat14_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat14_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat14_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 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, 1, 3, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}}))


-- Areas/Combat for 1500ms
local combat15_Brush = createCombatObject()
setCombatParam(combat15_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat15_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat15_Brush,createCombatArea({{1, 0, 1},
{0, 3, 0},
{1, 0, 1}}))


-- Areas/Combat for 1600ms
local combat16_Brush = createCombatObject()
setCombatParam(combat16_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat16_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat16_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 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, 1, 3, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}}))


-- Areas/Combat for 1700ms
local combat17_Brush = createCombatObject()
setCombatParam(combat17_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat17_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat17_Brush,createCombatArea({{1, 0, 1},
{0, 3, 0},
{1, 0, 1}}))


-- Areas/Combat for 1800ms
local combat18_Brush = createCombatObject()
setCombatParam(combat18_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat18_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat18_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 3, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}}))


-- Areas/Combat for 1900ms
local combat19_Brush = createCombatObject()
setCombatParam(combat19_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat19_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat19_Brush,createCombatArea({{1, 0, 1},
{0, 3, 0},
{1, 0, 1}}))


-- Areas/Combat for 2000ms
local combat20_Brush = createCombatObject()
setCombatParam(combat20_Brush, COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
setCombatParam(combat20_Brush, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat20_Brush,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 3, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}}))


-- Areas/Combat for 2700ms
local combat27_hyperbeam = createCombatObject()
setCombatParam(combat27_hyperbeam, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
setCombatParam(combat27_hyperbeam, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat27_hyperbeam,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 3, 1, 1, 1, 1}}))
function getDmg_hyperbeam(cid, level, maglevel)
    return (20000)*-1,(22000)*-1
end
setCombatCallback(combat27_hyperbeam, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_hyperbeam")
 
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList,y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList,z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList,z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end

function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
RunPart(combat0_Brush,cid,var)
addEvent(RunPart,200,combat2_Brush,cid,var)
addEvent(RunPart,400,combat4_Brush,cid,var)
addEvent(RunPart,600,combat6_Brush,cid,var)
addEvent(RunPart,700,combat7_Brush,cid,var)
addEvent(RunPart,800,combat8_Brush,cid,var)
addEvent(RunPart,900,combat9_Brush,cid,var)
addEvent(RunPart,1000,combat10_Brush,cid,var)
addEvent(RunPart,1100,combat11_Brush,cid,var)
addEvent(RunPart,1200,combat12_Brush,cid,var)
addEvent(RunPart,1300,combat13_Brush,cid,var)
addEvent(RunPart,1400,combat14_Brush,cid,var)
addEvent(RunPart,1500,combat15_Brush,cid,var)
addEvent(RunPart,1600,combat16_Brush,cid,var)
addEvent(RunPart,1700,combat17_Brush,cid,var)
addEvent(RunPart,1800,combat18_Brush,cid,var)
addEvent(RunPart,1900,combat19_Brush,cid,var)
addEvent(RunPart,2000,combat20_Brush,cid,var)
addEvent(RunPart,2700,combat27_hyperbeam,cid,var)
return true
end[/CODE]
So here's just for show untill last brush where it should deal damage.

This is the line in the xmonster.xml
Code:
<attack name="smokar" interval="2000" chance="20"/>

Next example will deal damage, but on every brush.. It also deals around 3.5k on each "brush" hit, Just by changing the line in xmonster.xml
Code:
<attack name="smokar" interval="2000" chance="20" min="-20000" max="-25000"/>

I have 2 custom made spell in this monster:
Code:
   <attack name="smokar" interval="2000" chance="20" min="-20000" max="-25000"/>
    <attack name="boil" interval="1000" chance="1000"/>[CODE]
Unless I put the min max dmg in there, none of them wil ldo any damage. But if i put the line to one of them, BOTH will suddenly do damage.

It's so weird can anyone help me?
 
Hello everyone!

Can someone explain me how these formulas work?

http://imageshack.com/a/img834/8739/tief.png

As you can see from the picture, there is a example: "100+level*10+maglevel*5"

So, i can't understand how they work.

Can someone tell me for example if i write

Min. Damage: XXX+level*XX+maglevel*X
Max. Damage: XXX+level*XX+maglevel*X

And tell me, how much the damage will be when its done.

Also, i'd like to know that does it work like this, in example is maglevel, so if i want to use sword skill (or all knight skills) i write like swordlevel or something like that?

Thank you, this is great program :)
~Teppo
 
"100+level*10+maglevel*5"
level example 30
maglvl exampla 13

30*10=300
13*3=39
100+300+39=439
max hit is 439
 
Anyone know a way to put pre written spells into this just to test them? when I save and try to put the code in that way I cant open the file properly. I am only using notepad so idk if that might be the problem or not.
 
Back
Top