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

Mana drain that deal dmg to ppl/monster

clario

OTS based on Heroes III Might and Magic
Joined
Feb 4, 2018
Messages
98
Reaction score
5
Mana drain that deal dmg to ppl/monster and get same mana number of dmg deal .

im currently using this one:
local voc = 1, 2

function onCastSpell(cid, var)
local target = getCreatureTarget(cid)
local cidpos = getCreaturePosition(cid)
local targetpos = getCreaturePosition(target)
if getPlayerVocation(target) == voc then
drain = ((getCreatureMaxMana(target)/100) * (getPlayerLevel(cid)/7.5))-math.random(2, 43)
else
drain = ((getCreatureMaxMana(target)/100) * (getPlayerLevel(cid)/10))-math.random(2, 43)
end

if isPlayer(cid) and isPlayer(target) then
if getCreatureMana(target) < drain and getCreatureMana(target) > 0 then
local drain = getCreatureMana(target)
doCreatureAddMana(cid, drain)
doCreatureAddMana(target, -drain)
doSendMagicEffect(targetpos, 30)
doSendMagicEffect(cidpos, 30)
doSendDistanceShoot(targetpos, cidpos, 35)
return LUA_NO_ERROR
elseif getCreatureMana(target) > drain then
doCreatureAddMana(cid, drain)
doCreatureAddMana(target, -drain)
doSendMagicEffect(targetpos, 30)
doSendMagicEffect(cidpos, 30)
doSendDistanceShoot(targetpos, cidpos, 35)
return LUA_NO_ERROR
elseif getCreatureMana(target) == 0 then
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
return LUA_ERROR
elseif getCreatureMaxMana(target) < drain and getCreatureMana(target) > 0 then
local drain = getCreatureMaxMana(target)
doCreatureAddMana(cid, drain)
doCreatureAddMana(target, -drain)
doSendMagicEffect(targetpos, 30)
doSendMagicEffect(cidpos, 30)
doSendDistanceShoot(targetpos, cidpos, 35)
return LUA_NO_ERROR
end
end
end

But its not working on monser , just need much simple i think than this one...
 
Mana drain that deal dmg to ppl/monster and get same mana number of dmg deal .

im currently using this one:


But its not working on monser , just need much simple i think than this one...
Na potwory może być tak.
Dodaj linijke, że odejmuje manę na target i na graczach też powinno ładnie śmigać.
Lua:
local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
    setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
function onGetFormulaValues(cid, level, maglevel)
    min = -((level * 1.0) * 5.0) -- Minimalne obrażenia // Możesz to dowolnie konfigurować
    max = -((level * 1.0) * 5.0) -- Maksymalne obrażenia // Możesz to dowolnie konfigurować
 
    return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local level = getPlayerLevel(cid)
local mlevel = getPlayerMagLevel(cid)
local manaLow = ((level * 1.0) * 1.0) + ((mlevel * 5.0) * 1.0) -- Minimum dodanej many // Możesz to dowolnie konfigurować
local manaMax = ((level * 1.0) * 1.0) + ((mlevel * 5.0) * 1.0) -- Maximum dodanej many // Możesz to dowolnie konfigurować
local manaGain = math.random(manaLow, manaMax)
    doPlayerAddMana(cid, manaGain)
    doSendMagicEffect(cid, CONST_ME_MAGIC_BLUE)
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
not working ;S
eF0tUEi.png
 
not working ;S
eF0tUEi.png
Lua:
local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
    setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
function onGetFormulaValues(cid, level, maglevel)
    min = -((level * 1.0) * 5.0) -- Minimalne obrażenia // Możesz to dowolnie konfigurować
    max = -((level * 1.0) * 5.0) -- Maksymalne obrażenia // Możesz to dowolnie konfigurować
    return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
local level = getPlayerLevel(cid)
local mlevel = getPlayerMagLevel(cid)
local manaLow = ((level * 1.0) * 1.0) + ((mlevel * 5.0) * 1.0) -- Minimum dodanej many // Możesz to dowolnie konfigurować
local manaMax = ((level * 1.0) * 1.0) + ((mlevel * 5.0) * 1.0) -- Maximum dodanej many // Możesz to dowolnie konfigurować
local manaGain = math.random(manaLow, manaMax)
    doPlayerAddMana(cid, manaGain)
    doSendMagicEffect(cid, CONST_ME_MAGIC_BLUE)
    return doCombat(cid, combat, var)
end
 
Back
Top