This is my first tutorial
Today i gonna explain how to make a manarune
First go to data/actions/scripts, make a new .lua file and call it 'manarune.lua'
In the document you have to fill this in
As you see you can edit it yourself.
Save this document, copy it and paste it in data/spells/scripts/healing.
After that you have to find id 2294 (or the id you wanna use) and change the name in Manarune, after this go to data/actions/actions.xml and add this line
After this, you got your manarune, it's not the best one but its 1 !
Have fun with it
Today i gonna explain how to make a manarune
First go to data/actions/scripts, make a new .lua file and call it 'manarune.lua'
In the document you have to fill this in
PHP:
function onUse(cid, item, frompos, item2, topos)
minMana = 1000 -- How much mana minium will you get?
maxMana = 10000 -- How much mana max will you get?
magToUse = 8 -- 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 = 2294 -- Enter the item Id of the rune.
loseCharges = false -- 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 = 44 -- 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.
------------------------------DONT CHANGE UNDER THIS LINE----------------------------------------------------------------------------------------
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
As you see you can edit it yourself.
Save this document, copy it and paste it in data/spells/scripts/healing.
After that you have to find id 2294 (or the id you wanna use) and change the name in Manarune, after this go to data/actions/actions.xml and add this line
PHP:
<action itemid="2294" script="manarune.lua" />
After this, you got your manarune, it's not the best one but its 1 !
Have fun with it