Is there any way that this manarune script can be done as in great mana potion?
here script mr
--Created to make the script easy to manipulate
--If used without using server potion exhaust (EX: potExhaust = false), it will work regardless of server
--Remember, true = yes, false = no, in the config
function onUse(cid, item, frompos, item2, topos)
--Config
local reqml = 8 --Magic Level required to use it
local reqlvl = 250 --Character Level required to use it
local potExhaust = false -- causes exhaust like potions (false creates seperate exhaust for mana rune)
--Maximum amount of mana to be added
local minMana = ((getPlayerLevel(cid) * 1.5 + getPlayerMagLevel(cid) * 1.6) * 1.25) + 20
local maxMana = ((getPlayerLevel(cid) * 1.5 + getPlayerMagLevel(cid) * 1.6) * 1.25) + 20
local ani = 1 --Animation to be sent to player when used (these can be found in your global.lua; search for CONST_ME_)
--If you don't want it to give health, set both to 0
local minHealth = ((getPlayerLevel(cid) * 0 + getPlayerMagLevel(cid) * 0) * 0.0) + 0 --Minimum amount of health to be added
local maxHealth = ((getPlayerLevel(cid) * 0 + getPlayerMagLevel(cid) * 0) * 0.0) + 0 --Maximum amount of health to be added
if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == 6536 and getPlayerStorageValue(cid, 50781) == 1 then
minHealth = minHealth * 0.0 --Minimum amount of health to be added
maxHealth = maxHealth * 0.0 --Maximum amount of health to be added
end
--If you're not using potion exhaust (potExhaust = false) edit the following the way you'd like
local storeValue = 50995 --The storage value that will be used for exhaust if you have potexhaust to false
local exhaustTime = 1 --Exhaust in seconds
local infinite = true --Will it cause rune to lose charges
local canUseInPz = true --If true, mana rune may be used in PZ, otherwise, it will not work.
local player_say = "Ahhh..." --What player says after successfully using the mana rune
local error_ml = "You don't have the required magic level to use that rune." --What the cancel says when ml is too low
local error_lvl = "You don't have the required magic level to use that rune." --What the cancel says when level is too low
local error_notPlayer = "You can only use this rune on players." --What the cancel says when you try to use it on something not a player
local error_exhaust = "You are exhausted." --What the cancel says when you are exhausted
local error_pz = "You may not use this in Protected Zones." --What the cancel says when you are in PZ and canUseInPz is false
------------------------------------------- DO NOT EDIT BELOW THIS LINE!! -------------------------------------------
---------------------------START Check for Errors--------------------------------
--If doesn't allow use in PZ, send poof and cancel message
if canUseInPz == false and getTilePzInfo(getPlayerPosition(cid)) == 1 then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_pz)
return 0
end
--If not high enough level, send poof and cancel message
if getPlayerLevel(cid) < reqlvl then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_lvl)
return 0
end
--if character is not knight, sejnd poof and cancel message
if((not(isKnight(cid)) or getPlayerLevel(cid) < 250) and getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_lvl)
return 0
end
--If ml is too low, send poof and cancel message
if getPlayerMagLevel(cid) < reqml then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_ml)
return 0
end
--If it's not a player, send poof and cancel message
if isPlayer(item2.uid) == FALSE then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_notPlayer)
return 0
end
--Check if exhausted
if potExhaust == false then --If not using Potion Exhaust
if exhaust(cid, storeValue, exhaustTime) == 0 then
doSendMagicEffect(frompos, CONST_ME_POFF)
doPlayerSendCancel(cid, error_exhaust)
return 0
end
else --If you are using potion exhaust
if hasCondition(cid, CONDITION_EXHAUSTED) == 1 then
doPlayerSendCancel(cid, error_exhaust)
return 0
end
end
---------------------------END Check for Errors--------------------------------
doSendMagicEffect(topos, ani)
doCreatureAddHealth(item2.uid, math.random(minHealth, maxHealth))
doPlayerAddMana(item2.uid, math.random(minMana, maxMana))
if infinite == false then
if item.type > 1 then
doChangeTypeItem(item.uid,item.type-1)
else
doRemoveItem(item.uid,1)
end
end
end
--Exhaust System created by Alreth
--Edited by OsoSangre
function exhaust(cid, storeValue, exhaustTime)
local newExhaust = os.time()
local oldExhaust = getPlayerStorageValue(cid, storeValue)
if (oldExhaust == nil or oldExhaust < 0) then
oldExhaust = 0
end
if (exhaustTime == nil or exhaustTime < 0) then
exhaustTime = 1
end
diffTime = os.difftime(newExhaust, oldExhaust)
if (diffTime >= exhaustTime) then
setPlayerStorageValue(cid, storeValue, newExhaust)
return 1
else
return 0
end
end