VO

Getcontainerslotsfree/getallcontainerfree

Por Vodkart, 25 de ago. de 2012 em Mods, funções e outros

8
2.3k
VodkartV
25 de agosto de 2012 às 21:09

São funções para retornar quantos slots livres a Bp ou as BP possui.

 

function getContainerSlotsFree(container) -- by vodka
return getContainerCap(container)-getContainerSize(container)
end
function getAllContainerFree(container)  -- by vodka
local containers,soma = {},0
for i = 0, getContainerSize(container)-1 do
local item = getContainerItem(container, i)
if isContainer(item.uid) then
table.insert(containers, item.uid)
end
end
for _, check in pairs(containers) do
soma = soma + getContainerSlotsFree(check)
end
return (soma + getContainerSlotsFree(container))
end

 

exemplo de talks

 

 

function onSay(cid, words, param)
local item = getContainerSlotsFree(getPlayerSlotItem(cid, 3).uid)
return doPlayerSendTextMessage(cid,18,'You have '..item..' slots free in your primary backpack')
end

 

nesse talk vai retornar quantos slot livres a primeira backpack tem, no caso á que está no slot dela.

 

 

 

 

 function onSay(cid, words, param)
local item = getAllContainerFree(getPlayerSlotItem(cid, 3).uid)
return doPlayerSendTextMessage(cid,18,'You have '..item..' slots free in your backpack')
end

 

nessa talk vai retornar quantos slots livres possui mesmo se tiver backpack dentro de backpack.

SkymagnumS
25 de agosto de 2012 às 21:11

Lol, bem legal mesmo parabéns reputado

15790911
25 de agosto de 2012 às 23:45

kkk vodkart ganha rep por tudo omg, mais eu ainda n entendi pra q serve esse script...

26 de agosto de 2012 às 00:29

Nada mal, parabéns!

 

Bem útil até. Abraço.

DerlexyD
30 de agosto de 2012 às 10:51

É possível usar essas funções criadas em meu servidor? Como fazer para adiciona-las no servidor?

VodkartV
30 de agosto de 2012 às 10:56

É só adicionar as funções em:

 

Data > lib > 050-function.lua

DerlexyD
30 de agosto de 2012 às 11:30

Ok. Desculpe a ignorancia HASUHUHAS mas estou apenas começando a aprender scripts ^^

vlw.

1 mês depois...
VincV
18 de setembro de 2012 às 15:53

seria melhor usando recursividade na get all,pra pega todas as bags(ai so pegaria as que tives dentro da primeira,mas n as que estivem dentro dessas)

acho que assim funciona,n testei

function getAllContainerFree(container)  -- by vodka

local containers,soma = {},0

for i = 0, getContainerSize(container)-1 do

local item = getContainerItem(container, i)

if isContainer(item.uid) then

soma = soma + getAllContainerFree(item.uid)

end

end

return (soma + getContainerSlotsFree(container))

end[code]