• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

when using colandus advanced manarune code (helppp)

Doggynub

LUA / C++
Joined
Sep 28, 2008
Messages
2,541
Reaction score
186
I use
server:TFS 0.2.4 (8.50)
error:
Code:
Lua Script Error: [Action Interface]
data/actions/scripts/other/manarune.lua:onUse

data/actions/scripts/other/manarune.lua:15: attempt to index global 'item2' (a n
il value)
stack traceback:
        data/actions/scripts/other/manarune.lua:15: in function <data/actions/sc
ripts/other/manarune.lua:14>



script i use:
LUA:
-- 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 = false -- true/false shall it remove charges?
local MIN_MANA = 10000 -- How much mana minium will you get?
local MAX_MANA = 10000 -- 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 = 0 -- Exhaust time in seconds.
local ANIMATION_COLOR = 41 -- 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, fromPosition, itemEx, toPosition)
    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 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 rune on players.")
        doSendMagicEffect(getPlayerPosition(cid), 2)
    end
    return True
end
 
Last edited by a moderator:
change all "item2" for "itemEx"

For example "item2.uid" to "itemEx.uid"

This is because some time ago function "onUse" has this parameters:
LUA:
function onUse(cid, item, frompos, item2, topos)

Now is:
LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition

PD:

Change all "frompos" to "fromPosition" and all "topos" to "toPosition"
 
but i still get that error


Code:
Lua Script Error: [Action Interface]
data/actions/scripts/other/manarune.lua:onUse

data/actions/scripts/other/manarune.lua:28: attempt to call global 'exhaust' (a
nil value)
stack traceback:
        data/actions/scripts/other/manarune.lua:28: in function <data/actions/sc
ripts/other/manarune.lua:14>
 
Last edited:
Back
Top