-- 100% made by Colandus (Except exhaustion system).
-- If you edit on this script, be sure that you leave the credits to me, Colandus.
function onUse(cid, item, frompos, item2, topos)
minMana = 30 -- How much mana minium will you get?
maxMana = 70 -- How much mana max will you get?
magToUse = 4 -- What magic level do you need to be to use the rune?
useStats = true -- Shall given mana be affected by player level and magic level?
runeID = 2270 -- Enter the item Id of the rune.
loseCharges = true -- Write "true" if it shall lose charges. If not, then write something else such as "false".
storeValue = 3567 -- Value where exhaust is saved.
exhaustTime = 2 -- 1 = 1 second of exhaustion.
animationColor = 41 -- The color of the "animation".
mLvlLowMsg = "Your magic level is too low." -- Appears when player got too low magic level.
missPlayerMsg = "You can only use this rune on players."-- Appears when you don't shoot on a player.
exhaustMsg = "You are exhausted." -- Appears when you are exhausted.
if item.itemid == runeID then
if getThingfromPos({x=topos.x, y=topos.y, z=topos.z, stackpos=253}).itemid > 0 then
if getPlayerMagLevel(cid) >= magToUse then
if (exhaust(cid, storeValue, 1) > 0) then
if loseCharges == true or loseCharges == True then
if item.type > 1 then
doChangeTypeItem(item.uid, item.type-1)
else
doRemoveItem(item.uid, 1)
end
end
newMana = math.random(minMana, maxMana)
if useStats then
newMana = newMana + getPlayerLevel(cid) + getPlayerMagLevel(cid)
end
manaNow = getPlayerMana(item2.uid)
doPlayerAddMana(item2.uid, 999999)
manaMax = getPlayerMana(item2.uid)
doPlayerAddMana(item2.uid, - manaMax + manaNow)
nMana = manaMax - manaNow
if newMana > nMana then
newMana = nMana
end
if getPlayerMana(item2.uid) == manaMax then
if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y then
doPlayerSendCancel(item2.uid, "Your mana is already full.")
doChangeTypeItem(item.uid, item.type)
else
doPlayerSendCancel(cid, "" .. getPlayerName(item2.uid) .. " mana is already full.")
doChangeTypeItem(item.uid, item.type)
end
else
if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y 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.")
doPlayerSendTextMessage(cid, 23, "You gave " .. getPlayerName(item2.uid) .. " " .. newMana .. " mana.")
end
doPlayerAddMana(item2.uid, newMana)
doSendAnimatedText(getPlayerPosition(item2.uid), newMana, animationColor)
end
else
doPlayerSendCancel(cid, exhaustMsg)
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendCancel(cid, mLvlLowMsg)
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
doPlayerSendCancel(cid, missPlayerMsg)
end
return 1
end
end
-- Exhaustion system (Made by Alreth, bugfix by me)
-- DO NOT EDIT!
function exhaust(cid, storeValue, exhaustTime)
newExhaust = os.time()
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
function comparePos(pos1,pos2)
return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z
end
Lua:-- 100% made by Colandus (Except exhaustion system). -- If you edit on this script, be sure that you leave the credits to me, Colandus. function onUse(cid, item, frompos, item2, topos) minMana = 30 -- How much mana minium will you get? maxMana = 70 -- How much mana max will you get? magToUse = 4 -- What magic level do you need to be to use the rune? useStats = true -- Shall given mana be affected by player level and magic level? runeID = 2270 -- Enter the item Id of the rune. loseCharges = true -- Write "true" if it shall lose charges. If not, then write something else such as "false". storeValue = 3567 -- Value where exhaust is saved. exhaustTime = 2 -- 1 = 1 second of exhaustion. animationColor = 41 -- The color of the "animation". mLvlLowMsg = "Your magic level is too low." -- Appears when player got too low magic level. missPlayerMsg = "You can only use this rune on players."-- Appears when you don't shoot on a player. exhaustMsg = "You are exhausted." -- Appears when you are exhausted. if item.itemid == runeID then if getThingfromPos({x=topos.x, y=topos.y, z=topos.z, stackpos=253}).itemid > 0 then if getPlayerMagLevel(cid) >= magToUse then if (exhaust(cid, storeValue, 1) > 0) then if loseCharges == true or loseCharges == True then if item.type > 1 then doChangeTypeItem(item.uid, item.type-1) else doRemoveItem(item.uid, 1) end end newMana = math.random(minMana, maxMana) if useStats then newMana = newMana + getPlayerLevel(cid) + getPlayerMagLevel(cid) end manaNow = getPlayerMana(item2.uid) doPlayerAddMana(item2.uid, 999999) manaMax = getPlayerMana(item2.uid) doPlayerAddMana(item2.uid, - manaMax + manaNow) nMana = manaMax - manaNow if newMana > nMana then newMana = nMana end if getPlayerMana(item2.uid) == manaMax then if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y then doPlayerSendCancel(item2.uid, "Your mana is already full.") doChangeTypeItem(item.uid, item.type) else doPlayerSendCancel(cid, "" .. getPlayerName(item2.uid) .. " mana is already full.") doChangeTypeItem(item.uid, item.type) end else if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y 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.") doPlayerSendTextMessage(cid, 23, "You gave " .. getPlayerName(item2.uid) .. " " .. newMana .. " mana.") end doPlayerAddMana(item2.uid, newMana) doSendAnimatedText(getPlayerPosition(item2.uid), newMana, animationColor) end else doPlayerSendCancel(cid, exhaustMsg) end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, mLvlLowMsg) end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, missPlayerMsg) end return 1 end end -- Exhaustion system (Made by Alreth, bugfix by me) -- DO NOT EDIT! function exhaust(cid, storeValue, exhaustTime) newExhaust = os.time() 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
Code:function comparePos(pos1,pos2) return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z end
put in global.lua or lib/functions.lua.
<action itemid="2270" script="manarune.lua" allowfaruse="1" blockwalls="0" />
rep++ ?
Credit, Colandus.
Need to reade the comments maby? i have allready done one for him
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
function onCastSpell(cid, var)
doPlayerAddMana(cid, math.random(600, 750))
return doCombat(cid, combat, var)
end
function onUse(cid, item, frompos, item2, topos)
minMana = 30 -- How much mana minium will you get?
maxMana = 70 -- How much mana max will you get?
magToUse = 4 -- What magic level do you need to be to use the rune?
useStats = true -- Shall given mana be affected by player level and magic level?
runeID = 2270 -- Enter the item Id of the rune.
loseCharges = true -- Write "true" if it shall lose charges. If not, then write something else such as "false".
storeValue = 3567 -- Value where exhaust is saved.
exhaustTime = 2 -- 1 = 1 second of exhaustion.
animationColor = 41 -- The color of the "animation".
mLvlLowMsg = "Your magic level is too low." -- Appears when player got too low magic level.
missPlayerMsg = "You can only use this rune on players."-- Appears when you don't shoot on a player.
exhaustMsg = "You are exhausted." -- Appears when you are exhausted.
(for question nr1) zarn you use an AAC?' -||- not yet but i will do later
(question nr2) you mean the afk time? -||- yes i mean
Lua:-- 100% made by Colandus (Except exhaustion system). -- If you edit on this script, be sure that you leave the credits to me, Colandus. function onUse(cid, item, frompos, item2, topos) minMana = 30 -- How much mana minium will you get? maxMana = 70 -- How much mana max will you get? magToUse = 4 -- What magic level do you need to be to use the rune? useStats = true -- Shall given mana be affected by player level and magic level? runeID = 2270 -- Enter the item Id of the rune. loseCharges = true -- Write "true" if it shall lose charges. If not, then write something else such as "false". storeValue = 3567 -- Value where exhaust is saved. exhaustTime = 2 -- 1 = 1 second of exhaustion. animationColor = 41 -- The color of the "animation". mLvlLowMsg = "Your magic level is too low." -- Appears when player got too low magic level. missPlayerMsg = "You can only use this rune on players."-- Appears when you don't shoot on a player. exhaustMsg = "You are exhausted." -- Appears when you are exhausted. if item.itemid == runeID then if getThingfromPos({x=topos.x, y=topos.y, z=topos.z, stackpos=253}).itemid > 0 then if getPlayerMagLevel(cid) >= magToUse then if (exhaust(cid, storeValue, 1) > 0) then if loseCharges == true or loseCharges == True then if item.type > 1 then doChangeTypeItem(item.uid, item.type-1) else doRemoveItem(item.uid, 1) end end newMana = math.random(minMana, maxMana) if useStats then newMana = newMana + getPlayerLevel(cid) + getPlayerMagLevel(cid) end manaNow = getPlayerMana(item2.uid) doPlayerAddMana(item2.uid, 999999) manaMax = getPlayerMana(item2.uid) doPlayerAddMana(item2.uid, - manaMax + manaNow) nMana = manaMax - manaNow if newMana > nMana then newMana = nMana end if getPlayerMana(item2.uid) == manaMax then if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y then doPlayerSendCancel(item2.uid, "Your mana is already full.") doChangeTypeItem(item.uid, item.type) else doPlayerSendCancel(cid, "" .. getPlayerName(item2.uid) .. " mana is already full.") doChangeTypeItem(item.uid, item.type) end else if getPlayerPosition(cid).x == getPlayerPosition(item2.uid).x and getPlayerPosition(cid).y == getPlayerPosition(item2.uid).y 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.") doPlayerSendTextMessage(cid, 23, "You gave " .. getPlayerName(item2.uid) .. " " .. newMana .. " mana.") end doPlayerAddMana(item2.uid, newMana) doSendAnimatedText(getPlayerPosition(item2.uid), newMana, animationColor) end else doPlayerSendCancel(cid, exhaustMsg) end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, mLvlLowMsg) end else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendCancel(cid, missPlayerMsg) end return 1 end end -- Exhaustion system (Made by Alreth, bugfix by me) -- DO NOT EDIT! function exhaust(cid, storeValue, exhaustTime) newExhaust = os.time() 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
Code:function comparePos(pos1,pos2) return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z end
put in global.lua or lib/functions.lua.
<action itemid="2270" script="manarune.lua" allowfaruse="1" blockwalls="0" />
rep++ ?
Credit, Colandus.
Is it any chance to "Upgrade" the mana rune with you reach a sertain level?