GA
tfs 0.3

Storage + timer

Por Gabriel Netto, 04 de ago. de 2016 em Scripts

tfs 1.0
storage
how to
como usar
key
value
timer
tempo
8
2.7k
04 de agosto de 2016 às 16:38

E aí, galera, tranquilo?
Tô aqui pra pedirem q me sanem uma dúvida que tá foda.
Como funciona exatamente o doPlayerSetStorageValue(cid, x, key)? O -1 seria para remover e o 1 para adicionar, certo?
Vi em alguns scripts que caso a storage seja temporária eu altero na key também, mas queria saber como usar. Uso os.time? Como usar? EHAUEHAHEU


Valeus D: 

rorixR
04 de agosto de 2016 às 16:41

-1 indica que o jogador não tem a storage,

o 1 significa que alguma quest deu ele esse storage, lembrando que vc pode dar não só 1 como storage, pode dar qualqur numero, por exemplo

doPlayerSetStorage(cid, 100,10)

neste caso setou o valor 10 para storage 100 do player

04 de agosto de 2016 às 16:44


@rorix: Sim, e se eu setar ela como -1 depois dele ganhar ela vai excluir a storage do player (parar de ocupar espaço) ou só indicar que ele não tem ela?
 

Editado Agosto 4 por Gabriel Netto

rorixR
04 de agosto de 2016 às 17:04

se vc por -1 vai zerar a storage de novo, ele podera fazer a quest novamente

04 de agosto de 2016 às 17:12

E quanto a setar um time pra storage, tu não sabe? :/

zipter98Z
06 de agosto de 2016 às 13:00

A ideia não é necessariamente essa. Independentemente do value (key é a storage), o jogador tem uma. O valor padrão é -1, mas isso não significa que a criatura (seja um monstro ou um player) não possui uma storage. Significa que ela não foi alterada (logo, uma linha na tabela do banco de dados não foi criada), ou, caso tenha sido, tenha voltado ao valor padrão (o valor na tabela do banco de dados continuará). A ideia de que -1 represente não ter a storage e 1 ter foi apenas uma ideia adotada e padronizada nos códigos. Entretanto, você pode sem problemas escrever códigos que contrariem esse padrão.

Quanto a usar tempos em storages, a estrutura é a seguinte:

setPlayerStorageValue(uid, key, os.time() + time)

os.time() retorna o tempo em segundos contado a partir de 01/01/1970, e somando-o ao time (que é em segundos) você obtém o valor que representa o os.time() daqui a time segundos.

Usando uma condição, você pode saber se o tempo estabelecido na storage já passou ou não:

if os.time() > getPlayerStorageValue(uid, key) then	--tempo já passouelse	--tempo ainda não passouend

 

07 de agosto de 2016 às 23:38
Em 06/08/2016 at 13:00, zipter98 disse:

A ideia não é necessariamente essa. Independentemente do value (key é a storage), o jogador tem uma. O valor padrão é -1, mas isso não significa que a criatura (seja um monstro ou um player) não possui uma storage. Significa que ela não foi alterada (logo, uma linha na tabela do banco de dados não foi criada), ou, caso tenha sido, tenha voltado ao valor padrão (o valor na tabela do banco de dados continuará). A ideia de que -1 represente não ter a storage e 1 ter foi apenas uma ideia adotada e padronizada nos códigos. Entretanto, você pode sem problemas escrever códigos que contrariem esse padrão.

Quanto a usar tempos em storages, a estrutura é a seguinte:

setPlayerStorageValue(uid, key, os.time() + time)

os.time() retorna o tempo em segundos contado a partir de 01/01/1970, e somando-o ao time (que é em segundos) você obtém o valor que representa o os.time() daqui a time segundos.

Usando uma condição, você pode saber se o tempo estabelecido na storage já passou ou não:

if os.time() > getPlayerStorageValue(uid, key) then	--tempo já passouelse	--tempo ainda não passouend

 

Pra variar, auxiliando d+. Valeus, cara.

Então não existe necessariamente uma função pra setar algum tempo pra storage, pra fazer isso seria só questão de lógica com as funções já existentes na lua?

Editado Agosto 7 por Gabriel Netto

PoccnnP
08 de agosto de 2016 às 09:26

Voce tem que criar uma logica para o uso do os.time.

A storage sempre vai continuar existindo, mas o valor dela pode mudar e é esse valor que é requisitado na logica do sistema.