• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Manarun Problem

Kippetjee

Member
Joined
Jun 17, 2009
Messages
1,197
Reaction score
11
Location
The Netherlands
Hello i need A mana rune script for 0.3.6pl1
for using Mana rune in PZ and that you can combo with mana rune and spells...

LUA:
 local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) ---- what the color of the effect. you can do like RED/BLUE
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

function onCastSpell(cid, var)
doPlayerAddMana(cid, 1000) ---- how much it heal .
return doCombat(cid, combat, var)
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.
 
Back
Top