• 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!

Lua Help BP give extra CAP

luccagomes

New Member
Joined
Jul 30, 2015
Messages
153
Reaction score
1
I have a backpack vip, when u equip it, earns thousand 1000 cap to more

But i have a problem, when u remove this backpack your cap go to 0

Script;
Code:
  <movevent type="Equip" itemid="10518" slot="backpack" event="script" value="magevipbag.lua">
     <vocation id="1"/>
     <vocation id="5" showInDescription="0"/>
   </movevent>
   <movevent type="DeEquip" itemid="10518" slot="backpack" event="script" value="magevipbag.lua"/>

Code:
local capacidade = 1000 -- aqui coloca quanto que vai almentar

function getPlayerCap(cid)
   local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
   if query:getID() ~= -1 then
     return tonumber(query:getDataString("cap"))
   end
   return 0
end

function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   return true
end

function onDeEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) - capacidade))
   return true
end
 
Code:
local capacidade = 1000 -- aqui coloca quanto que vai almentar

function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   return true
end

function onDeEquip(cid, item, slot)
local cap = getPlayerCap(cid) - 1000
   doPlayerSetMaxCapacity(cid, cap)
   return true
end
 
Would be cool if they couldn't move if their cap was at 0 or less or the more they carried the slower they moved.
 
Description
data/movements/scripts/magevipbag.lua:4: attempt to call global 'getPlayerCap' <a nil value>
stack traceback:
data/movements/scripts/magevipbag.lua:4 in function <data/movements/scripts/magevipbag.lua:3>

Code:
local capacidade = 1000 -- aqui coloca quanto que vai almentar

function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   return true
end

function onDeEquip(cid, item, slot)
local cap = getPlayerCap(cid) - 1000
   doPlayerSetMaxCapacity(cid, cap)
   return true
end
 
Code:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   return true
end

function onDeEquip(cid, item, slot)
local cap = getPlayerCap(cid) - 1000
   doPlayerSetMaxCapacity(cid, cap)
   return true
end
 
Code:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   return true
end

function onDeEquip(cid, item, slot)
local cap = getPlayerCap(cid) - 1000
   doPlayerSetMaxCapacity(cid, cap)
   return true
end

Before I ask I did
this code, dont work
set cap to 0
 
Code:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   doPlayerSave(cid)
   return true
end

function onDeEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid,getPlayerCap(cid) - capacidade)
   doPlayerSave(cid)
   return true
end
 
Code:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
   doPlayerSave(cid)
   return true
end

function onDeEquip(cid, item, slot)
   doPlayerSetMaxCapacity(cid,getPlayerCap(cid) - capacidade)
   doPlayerSave(cid)
   return true
end


Its dont work so fine...

I have test:

login: 4025 cap

on put BP: 7025 cap

on remove BP: 6025 cap
 
The function onEquip is triggered multiple times when you equip the item.
You can add this so it only does certain things once.
Code:
if getPlayerSlotItem(cid, slot).itemid == item.itemid then
     -- things that should only happen 1x when you equip the item
end
 
The function onEquip is triggered multiple times when you equip the item.
You can add this so it only does certain things once.
Code:
if getPlayerSlotItem(cid, slot).itemid == item.itemid then
     -- things that should only happen 1x when you equip the item
end

I try use it in my script, but now i cant equip this backpack
Code:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   if getPlayerSlotItem(cid, slot).itemid == item.itemid then
    doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
    doPlayerSave(cid)
    return true
   end
end

function onDeEquip(cid, item, slot)
  doPlayerSetMaxCapacity(cid,getPlayerCap(cid) - capacidade)
  doPlayerSave(cid)
  return true
end
 
return true should be above the last end else function onEquip doesn't return true but false, if it returns false you can't equip the item.
 
i already have this and can't equip the bp.

Lua:
function getPlayerCap(cid)
local query = db.getResult("SELECT `cap` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
if query:getID() ~= -1 then
return tonumber(query:getDataString("cap"))
end
return 0
end

local capacidade = 1000 -- aqui coloca quanto que vai almentar
function onEquip(cid, item, slot)
   if getPlayerSlotItem(cid, slot).itemid == item.itemid then
    doPlayerSetMaxCapacity(cid, (getPlayerCap(cid) + capacidade))
    doPlayerSave(cid)
   return true
      end
end

function onDeEquip(cid, item, slot)
  doPlayerSetMaxCapacity(cid,getPlayerCap(cid) - capacidade)
  doPlayerSave(cid)
  return true
end
 
Back
Top