-- 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 = 300 -- How much mana minium will you get?
local MAX_MANA = 370 -- How much mana max will you get?
local USE_STATS = false -- 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 = 190 -- 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) == 1 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((not(isSorcerer(item2.uid) or isDruid(item2.uid)) or getPlayerLevel(item2.uid) < 80) and getPlayerCustomFlagValue(item2.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
doCreatureSay(item2.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
return TRUE
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 fluid on players.")
doSendMagicEffect(getPlayerPosition(cid), 2)
end
return 1
end