Manarune made by Colandus.
code
– Script 100% by Colandus (Except for the exhaustion system).
– If you edit this script, make sure to leave the credits to me, Colandus.
– >>CONFIG<< –
local REMOVE_CHARGES = true – true/false shall it remove charges?
local MIN_MANA = 100 – How much mana minium will you get?
local MAX_MANA = 300 – How much mana max will you get?
local USE_STATS = true – Shall given mana be affected by player level and magic level?
local STORE_VALUE = 3567 – Value where exhaust is saved.
local EXHAUST_TIME = 1 – Exhaust time in seconds.
local ANIMATION_COLOR = 41 – The color of the ”animation”.
– >>CONFIG<< –
local vocMultiply = {0.35, 0.35, 0.85, 1.05, 0, 0, 0.65, 1.05} – Remove and/or comment it out if you wish not to use it.
local removeMana = 0
function onUse(cid, item, frompos, item2, topos)
if isPlayer(item2.uid) == TRUE then
local maxMana = getPlayerMaxMana(item2.uid)
if vocMultiply and getPlayerVocation(cid) >= 1 and getPlayerVocation(cid)<= 8 then
removeMana = vocMultiply[getPlayerVocation(cid)]
end
local newMana = math.random(MIN_MANA, MAX_MANA)
if USE_STATS then
newMana = math.ceil(newMana + getPlayerLevel(cid) + getPlayerMagLevel(cid) - (newMana * removeMana))
end
if (maxMana – newMana) < 0 then
newMana = maxMana – getPlayerMana(cid)
end
if getPlayerMana(item2.uid) < maxMana then
if exhaust(cid, STORE_VALUE, EXHAUST_TIME) > 0 then
if REMOVE_CHARGES then
if item.type > 1 then
doChangeTypeItem(item.uid, item.type - 1)
else
doRemoveItem(item.uid, 1)
end
end
if comparePos(getPlayerPosition(cid), getPlayerPosition(item2.uid))then
doSendMagicEffect(getPlayerPosition(cid), 12)
doPlayerSendTextMessage(cid, 23, ”You received “ .. newMana .. ” mana.”)
else
doSendMagicEffect(getPlayerPosition(cid), 14)
doSendMagicEffect(getPlayerPosition(item2.uid), 12)
doPlayerSendTextMessage(item2.uid, 23, ”You received “ .. newMana .. ” mana from “ .. getPlayerName(cid) .. ”.”)
doPlayerSendTextMessage(cid, 23, ”You gave “ .. getPlayerName(item2.uid) .. ” “ .. newMana .. ” mana.”)
end
doPlayerAddMana(item2.uid, newMana)
doSendAnimatedText(getPlayerPosition(item2.uid), newMana, ANIMATION_COLOR)
else
doPlayerSendCancel(cid, ”You are exhausted.”)
end
else
if comparePos(getPlayerPosition(cid), getPlayerPosition(item2.uid)) then
doPlayerSendCancel(item2.uid, ”Your mana is already full.”)
else
doPlayerSendCancel(cid, getPlayerName(item2.uid) .. ” mana is already full.”)
end
doSendMagicEffect(getPlayerPosition(cid), 2)
end
else
doPlayerSendCancel(cid, ”You can only use this rune on players.”)
doSendMagicEffect(getPlayerPosition(cid), 2)
end
return 1
end
If you don’t already have the function ‘comparePos’, please copy this function and paste to global.lua (if you don’t have global.lua, then go to lib/functions.lua):
code
function comparePos(pos1,pos2)
return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z
end