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

Target spell with random damage type

vexler222

Active Member
Joined
Apr 22, 2012
Messages
714
Solutions
15
Reaction score
46
Hi, i tried make target spell with random damage type, and in my script i don't get any errors but when i cast spell, it don't deal damage and i don't see effect :/
And second question, how to make target spell like old tibia in tfs 1.5? I try set range to 1, and casterTargetOrDirection to 0, but after change, when i cast spell it shoting under me, not in front of me

Lua:
local dmg_type = {
    [1] = {dmg = "COMBAT_EARTHDAMAGE", effect = "CONST_ME_CARNIPHILA"},
    [2] = {dmg = "COMBAT_FIREDAMAGE", effect = "CONST_ME_FIREATTACK"},
    [3] = {dmg = "COMBAT_ICEDAMAGE", effect = "CONST_ME_ICEATTACK"},
    [4] = {dmg = "COMBAT_DEATHDAMAGE", effect = "CONST_ME_MORTAREA"},
    [5] = {dmg = "COMBAT_HOLYDAMAGE", effect = "CONST_ME_HOLYDAMAGE"},
    [6] = {dmg = "COMBAT_PHYSICALDAMAGE", effect = "CONST_ME_HITAREA"},
    [7] = {dmg = "COMBAT_ENERGYDAMAGE", effect = "CONST_ME_ENERGYAREA"},
}
local rand = math.random(1,6)
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, dmg_type[rand].dmg)
combat:setParameter(COMBAT_PARAM_EFFECT, dmg_type[rand].effect)

function onGetFormulaValues(player, level, magicLevel)
    
    local min = (level / 3) + (magicLevel * 60.3) + 32
    local max = (level / 3) + (magicLevel * 65.4) + 48
    return - min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end
 
Lua:
local dmg_type = {
    [1] = {dmg = COMBAT_EARTHDAMAGE, effect = CONST_ME_CARNIPHILA},
    [2] = {dmg = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREATTACK},
    [3] = {dmg = COMBAT_ICEDAMAGE, effect = CONST_ME_ICEATTACK},
    [4] = {dmg = COMBAT_DEATHDAMAGE, effect = CONST_ME_MORTAREA},
    [5] = {dmg = COMBAT_HOLYDAMAGE, effect = CONST_ME_HOLYDAMAGE},
    [6] = {dmg = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_HITAREA},
    [7] = {dmg = COMBAT_ENERGYDAMAGE, effect = CONST_ME_ENERGYAREA},
}
local combat = Combat()
function onGetFormulaValues(player, level, magicLevel)
    local min = (level / 3) + (magicLevel * 60.3) + 32
    local max = (level / 3) + (magicLevel * 65.4) + 48
    return - min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
   local rand = math.random(1,#dmg_type)
    combat:setParameter(COMBAT_PARAM_TYPE, dmg_type[rand].dmg)
    combat:setParameter(COMBAT_PARAM_EFFECT, dmg_type[rand].effect)
    return combat:execute(creature, variant)
end
 
Lua:
local dmg_type = {
    [1] = {dmg = COMBAT_EARTHDAMAGE, effect = CONST_ME_CARNIPHILA},
    [2] = {dmg = COMBAT_FIREDAMAGE, effect = CONST_ME_FIREATTACK},
    [3] = {dmg = COMBAT_ICEDAMAGE, effect = CONST_ME_ICEATTACK},
    [4] = {dmg = COMBAT_DEATHDAMAGE, effect = CONST_ME_MORTAREA},
    [5] = {dmg = COMBAT_HOLYDAMAGE, effect = CONST_ME_HOLYDAMAGE},
    [6] = {dmg = COMBAT_PHYSICALDAMAGE, effect = CONST_ME_HITAREA},
    [7] = {dmg = COMBAT_ENERGYDAMAGE, effect = CONST_ME_ENERGYAREA},
}
local combat = Combat()
function onGetFormulaValues(player, level, magicLevel)
    local min = (level / 3) + (magicLevel * 60.3) + 32
    local max = (level / 3) + (magicLevel * 65.4) + 48
    return - min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
   local rand = math.random(1,#dmg_type)
    combat:setParameter(COMBAT_PARAM_TYPE, dmg_type[rand].dmg)
    combat:setParameter(COMBAT_PARAM_EFFECT, dmg_type[rand].effect)
    return combat:execute(creature, variant)
end
Thanks :D
Do you maybe know what to do about second question?
 
I think you must add 'combat area' to it, as in waves. Just create wave area with range 1 sqm.
O yea, i maked thanks for the advice
Btw if i good remember, in tfs 0.4 is function in spells.xml, "needtarget" or something like it, and when u set it to 1, we have spell target like in old tibia, so in tfs 1.x not exist it?
 
Back
Top