BE
dúvida

GetPlayerStorageValue()

Por betownage, 22 de mar. de 2014 em Scripts

8
2.4k
betownageB
22 de março de 2014 às 12:58

Alguém poderia me explicar como esta função funciona exatamente? O que ela busca ou pode buscar?

Onde ficam armazenados os dados que ela busca?

 

Existe a função SetPlayerStorageValue(), como ela funciona também?

 

Aguardo

60Minutos6
22 de março de 2014 às 13:09

Uma funciona para tirar storage de um player, e a outra serve para dar storage ao player.

Editado Março 22 por 60Minutos

22 de março de 2014 às 13:14

Digamos que tem um baú de uma quest.

 

Ai é assim:

na tag de actions coloca um actionid"1234" e poe o arquivo "quest.lua"

em quest .lua vc colocaria

function onUse(cid, item, frompos, item2, topos) -- Ao dar use

 

if getPlayerStorageValue(cid,1234) == -1 then -- Checar se o player tem a storage 1234

doPlayerAddItem(cid,2160,1) -- se não tiver a storage 1234 vai dar 1 crystal coin (2160 = id do crystal coin, numero 1 igual a quantidade do item que vai dar)

setPlayerStorageValue(cid,1234,1) -- Setar a storage 1 ou seja, dar a storage para o player

elseif

doPlayerSendCancel(cid, This chest empty.) -- Se o player tentar dar use no baú novamente vai dizer "This chest empty." pois já fez a quest.

end

end

 

 

Ou seja, a função storage é usada para muitas coisas como quest e etc.. qualquer dúvida só dizer ai

60Minutos6
22 de março de 2014 às 13:20

Um exemplo de de remoção de storage:

if getPlayerStorageValue(cid, 54321) >= 1 then
if getPlayerStorageValue(cid, 12345) ~= 1 then
setPlayerStorageValue(cid, 12345, 1)
end 
elseif getPlayerStorageValue(cid, 54321) ~= 1 then
if getPlayerStorageValue(cid, 12345) == 1 then
doTeleportThing(cid, pos, true).")
doPlayerSendTextMessage(cid, 22, "Você perdeu sua storage.")
setPlayerStorageValue(cid, 44444, 0)
end
end  
return true
end  

Editado Março 22 por 60Minutos

betownageB
22 de março de 2014 às 13:28

Legal, e onde fica armazenado esse "Set 1" que voces colocaram?

No Banco? Se sim, é necessário criar uma coluna pro player antes?

60Minutos6
22 de março de 2014 às 13:30

não precisa criar nenhuma coluna de player, vc usa normalmente sem fazer nenhuma alteração no seu OT

RigByR
22 de março de 2014 às 13:50

Vo tentar esplica do meu jeito:

Todos player tem todas as storage só que todas(TODAS MESMO) começa no valor de -1

 

Principais funções usando storage

getPlayerStorageValue(cid, key) == valor -- cheka o valor da storage
setPlayerStorageValue(cid, key, valor) -- muda o valor da storage pra outra

Exemplo:

Uma quest

Function onUse(cid, item, fromPosition, itemEx, toPosition) -- função usa
     if getPlayerStorageValue(cid, 123456) == -1 then --Se a storage for igual e -1 ele continua
          doPlayerSendCancel(cid, "Você ganho a storage.")
          setPlayerStorageValue(cid, 123456, 1) -- mudo o valor da storage 123456 para 1
     else -- caso a storage dele não seja -1
          doPlayerSendCancel(cid, "Você ha ganho a storage.")
     end -- fecho o if
     return true
end -- fecho a função

Onde a storage fica guardada: Eu acho que fica na db.

Editado Março 22 por RigBy

betownageB
22 de março de 2014 às 14:29

Entendi as funções já.
No caso então, ele detecta, não importa o número da storage, já existe então uma storage nmr 12489172412? algo do genero?

Na real, vo olhar o banco e ver.
Resolvido.

Editado Março 22 por betownage