Postado Setembro 19, 2015 9 anos Título auto explicativo, alguém poderia me explicar o que é storage ? E como elas funcionam ? Editado Setembro 21, 2015 9 anos por RXSora (veja o histórico de edições)
Postado Setembro 19, 2015 9 anos É um valor que fica armazenado na database e pode ser utilizado para diversas funções, como: Quests, talkactions com delay, quests continuas, entre outros. Um exemplo de quest: function onUse(cid, item) if getPlayerStorageValue(cid, 55555) <= 0 then -- Se storage 55555 do player for menor ou igual a 0 então faça. doPlayerAddItem(cid, item, quantia) -- Adiciona item e quantia ao player. setPlayerStorageValue(cid, 55555, 1) -- Altera a storage 55555 do player para 1, sendo assim não irá executar o comando novamente. else -- Se storage 55555 do player não for menor ou igual a 0 então... doPlayerSendCancel(cid, 'Você já completou esta quest.') -- Mensagem de falha. end return true end Nesse script usei a storage para o player não conseguir fazer a quest varias vezes. Os comandos para alterar e gerar storage são: setPlayerStorageValue(cid, storage, valor) -- Altera a storage do player para o valor citado. getPlayerStorageValue(cid, storage) -- Gera o valor da storage citada. Não manjo muito de explicar essas coisas, caso tenha alguma dúvida, avise. ➥ Regras | Seções OTServ | Seções BOT
Postado Setembro 20, 2015 9 anos Autor É um valor que fica armazenado na database e pode ser utilizado para diversas funções, como: Quests, talkactions com delay, quests continuas, entre outros. Um exemplo de quest: function onUse(cid, item) if getPlayerStorageValue(cid, 55555) <= 0 then -- Se storage 55555 do player for menor ou igual a 0 então faça. doPlayerAddItem(cid, item, quantia) -- Adiciona item e quantia ao player. setPlayerStorageValue(cid, 55555, 1) -- Altera a storage 55555 do player para 1, sendo assim não irá executar o comando novamente. else -- Se storage 55555 do player não for menor ou igual a 0 então... doPlayerSendCancel(cid, 'Você já completou esta quest.') -- Mensagem de falha. end return trueendNesse script usei a storage para o player não conseguir fazer a quest varias vezes. Os comandos para alterar e gerar storage são: setPlayerStorageValue(cid, storage, valor) -- Altera a storage do player para o valor citado.getPlayerStorageValue(cid, storage) -- Gera o valor da storage citada.Não manjo muito de explicar essas coisas, caso tenha alguma dúvida, avise. Desculpa a demora pra responder, tava sem net. Vê se eu entendi direitinho. Todos os player tem seus storages, do 0 ao infinito. Aí por exemplo o storage 55555 dele era 0, a função occoreria se fosse 0 ou menor. Como a storage 55555 era 0 ele ganhou os itens, e logo depois a Storage 55555 dele mudou pra 1, logo se ele tentasse pegar o item de novo, a storage 55555 dele taria 1, e como tem que ser <0, ele não conseguiria pegar dnv, certo ? Eu posso usar isso em um SQM, tipo, so pode passar por aqui se tiver completado tal quest e mudado o storage X pra 1 ? Editado Setembro 20, 2015 9 anos por RXSora (veja o histórico de edições)
Postado Outubro 14, 2015 9 anos Correto, e pode sim, basta checar em um movement. if getPlayerStorageValue(cid, 55555) < 0 then doTeleportThing(cid, fromPosition) else doPlayerSendTextMessage(cid, 25, 'ÁreaVIP!' end ➥ Regras | Seções OTServ | Seções BOT
Postado Outubro 14, 2015 9 anos Só para completar o que o Wakon disse: Storage é basicamente um histórico que pode ser usado para os players (storages) ou para o servidor (global storages). A tabela de storage são compostas por 3 coluna: A primeira guarda o id do player (para saber a quem se refere), a segunda a key (chave que referencia a storage), e a terceira o value (valor daquela chave para determinado player). As funções para manipular as storages são: • setPlayerStorageValue(cid, key, value) Essa função muda o value de determinada key do jogador referenciado em CID • getPlayerStorageValue(cid, key) Essa função retorna o value de determinada key do jogador referenciado em CID Você pode usa-las para infinitas coisas ... é só usar a criatividade! STYLLER OT 2022
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.