GA
pedido

Só pode usar o comando com certa storage

Por Gabrielkss, 14 de set. de 2015 em Scripts

resolvido
script
10
1.8k
GabrielkssG
14 de setembro de 2015 às 15:58

Gostaria de saber se tem como modificar esse script, para que só possa usar uma storage especifica...

 

local items = {{2160, 50}, {2163, 100}, {2563, 100}, ...} --{{ID_do_item, quantia_requerida}, {ID_do_item, quantia_requerida}, ...}
function onSay(cid)
local str = ""
for _, item in pairs(items) do
if str == "" then
str = getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"
else
str = str.."\n"..getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"
end
end
doPlayerPopupFYI(cid, "You have:\n"..str)
return true
end
Por favor ajudem.
SkyLighS
14 de setembro de 2015 às 16:18


local items = {{2160, 50}, {2163, 100}, {2563, 100}, ...} --{{ID_do_item, quantia_requerida}, {ID_do_item, quantia_requerida}, ...}

local s = 00001 --- id da storage

 

function onSay(cid)

local str = ""

for _, item in pairs(items) do

if str == "" then

str = getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"

else

str = str.."\n"..getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"

end

if getPlayerStorageValue(cid, s) then

doPlayerSendCancel(cid,"MENSAGEM DE AVISO PRA QUANDO NÃO TÊ STORAGE")

end

doPlayerPopupFYI(cid, "You have:\n"..str)

end

return true

end

 

GabrielkssG
14 de setembro de 2015 às 16:26

Deu certo não, ele continua abrindo, e ainda fica abrindo de 1 por 1 ai vai mostrando os outros items que precisa...

SkyLighS
14 de setembro de 2015 às 17:01

é alguma storage vip? se sim me passe a storage?

GabrielkssG
14 de setembro de 2015 às 17:22

Não, storage qualquer...

MartelixM
14 de setembro de 2015 às 17:29
4 coisas:

colocar "return" antes de "doPlayerSendCancel"

Colocar uma checagem na storage, por exemplo: "if getPlayerStorageValue(cid, s) == X then" (valor no lugar de X)

Coloca a checagem da storage antes do comando "for" para não utilizar memória pra nada no servidor caso o player não tenha a storage.

E tira o "doPlayerPopupFYI" de dentro da estrutura do comando "for".

Editado Setembro 14 por Martelix

LumusL
14 de setembro de 2015 às 17:30
Melhor resposta

Tente:

local items = {{2160, 50}, {2163, 100}, {2563, 100}, ...}     --{{ID_do_item, quantia_requerida}, {ID_do_item, quantia_requerida}, ...}
local stg = 45713 --valor da storage
function onSay(cid)
if getPlayerStorageValue(cid, stg) >= 1 then
    local str = ""
    for _, item in pairs(items) do
        if str == "" then
            str = getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"
        else
            str = str.."\n"..getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]"
        end
    end
    doPlayerPopupFYI(cid, "You have:\n"..str)
else
    doPlayerSendCancel(cid,"Você não pode usar este comando.")
end
    return true
end
MartelixM
14 de setembro de 2015 às 17:39

Não recomendo você usar o script exatamente como está acima.

Usa esse: ~~

 

EDIT: O script acima está correto, pensei que o comando FYI estava dentro da estrutura "for", erro meu :p

Editado Setembro 14 por Martelix

GabrielkssG
14 de setembro de 2015 às 17:47

Obrigado, deu certo

zipter98Z
14 de setembro de 2015 às 19:05

Tópico movido para dúvidas / pedidos resolvidos.