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

Solved Mana Runes

Anthony King

New Member
Joined
Sep 12, 2014
Messages
11
Reaction score
0
Anyone know how I can get this mana rune script to give mana between two set numbers. Instead of scale based on magic lvl.
Like give mana between 700-1200?

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
function onGetFormulaValues(cid, level, maglevel)
    local min = level / 5 + maglevel * 15
    local max = level / 5 + maglevel * 20
    return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
function onGetFormulaValues(cid)
local min = 700
local max = 1200
return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
 
Last edited:
Just to add, I have a manarune that heals between two different values depending on vocation. (It's an action, not spell)
Code:
function onUse(cid, item, fromPosition, itemEx, topos)
local exH = 9494
local exT = 2.00 -- Exhausted time in seconds here buddy
local voc = getPlayerVocation(cid)

if not isPlayer(itemEx.uid) then
   return false
   end
if(exhaustion.check(cid, exH) == false) then
   if isInArray({1, 5, 9, 2, 6, 10}, voc) then
   local max, min = 420, 490 -- Maximun and Minimun values for Sorcerers and Druids
   local finalM = math.random(max, min)
doSendMagicEffect(topos,30)
doCreatureSay(cid,"Aaah..Mana",19)
doPlayerAddMana(cid, finalM)
exhaustion.set(cid, exH, exT)
   elseif isInArray({3, 7, 11}, voc) then
   local max, min = 330, 390 -- Maximun and Minimun values for Paladins
   local finalM = math.random(max, min)
doSendMagicEffect(topos,30)
doCreatureSay(cid,"Aaah..Mana",19)
doPlayerAddMana(cid, finalM)
exhaustion.set(cid, exH, exT)
   elseif isInArray({4, 8, 12}, voc) then
   local max, min = 180, 250 -- Maximun and Minimun values for Knights
   local finalM = math.random(max, min)
doSendMagicEffect(topos,30)
doCreatureSay(cid,"Aaah..Mana",19)
doPlayerAddMana(cid, finalM)
exhaustion.set(cid, exH, exT)
   end
else
doPlayerSendCancel(cid, "You are exhausted for ".. exhaustion.get(cid, exH) .." seconds.")
end
return true
end
 
Back
Top