Ir para conteúdo

[Arquivado]Funções Dos Scripts De Lua #7


Izaiasousa

Posts Recomendados

Funções dos scripts de Lua #7



*--------------------------*

|O que é storage value ?|

*--------------------------*

StorageValue é uma variável que armazena valores para serem usadas em outros coisas em scripts de Lua. Na maioria das vezes são valores sobre os jogadores.Mas antes de partimos para como "ler" a storage value do jogador cid vamos enteder mais sobre o que é.

 

 

function onUse(cid, item, frompos, item2, topos)

if item.uid == 900 then

storage = getPlayerStorageValue(cid, 9000) -- Aqui a storage. É como se fosse uma senha de acesso, por exemplo, um jogador vai em uma boca livre e ele só pode comer uma vez certo? um jogador vai fazer uma quest e só pode clicar sobre o baú uma vez só, entendem? Para isso temos que fazer com que o Unique Id do baú seja um número diferente dos outros, único, para que quando o jogador clicar sobre ela, ele ganhe uma senha e quando ele clicar novamente sobre o mesmo baú ele não consiga abrir ela. Entenderam o que eu quis dizer? Aqui no caso a senha é 9000. Coloque uids que você consiga se lembrar, por que não pode repetir a uid! Aqui a variavel storage recebe a "senha de acesso" do jogador que será verificada pelo get (se lembram de nossas aulas?) e retornando ao script dizendo se esse jogador ja abriu esse baú ou não!

 

if storage == -1 or storage == 0 then -- Aqui no caso, se o jogador ainda nao clicou, a storage pode ser -1 ou 0. Por que esses números tio ? :cry: Porque 0 representa nulo e tudo que vier antes dele também :)

 

doPlayerSendMessage(cid, 22, "Parabens!”)

doPlayerAddItem(cid, 2387, 1)

setPlayerStorageValue(cid, 9000, 1) -- Ará! Aqui o quê ele faz ? Ele adiciona o valor 1 na storage do jogador. Tioooo... 1?!! :cry:Por exemplo, para o script ser executado ele devia ter storage -1 ou 0 né ? Então para que ele não possa clicar no baú, por exemplo, ele agora vai receber o valor 1 que significa que ele clicou.

 

else -- Opa! Senão o quê? Se o jogador não tiver a storage igual à -1 ou 0, então ele já clicou no baú! Então ira aparecer a seguinte mensagem abaixo..

 

doPlayerSendMessage(cid, 22, “Você já pegou o que tinha aqui!”)

 

end

return 1

end

return 0

end

 

 

Bem, mostrei esse script aqui para vocês terem uma visualização de como é e onde se usa o storage value. Nós sabemos que para checar uma informação do jogador cid e retornar ao script essa informação, usamos o GET certo ? ^^



 

Para ler a informação do jogador sobre a storagevalue usamos o getPlayerStorageValue(cid).

 

Como Set significa "dar um novo valor", então para dizer que o jogador que não tinha clicado no baú e após ele ter clicado e ganhado seu prêmio, para que quando ele clicar denovo no baú ele não possa abrir, vamos ter que dar a ele o valor na storage de numero 1. Ou seja

 

setPlayerStorageValue (cid,9000,1) -- Vai dar o novo valor para a storage do jogador. Primeiro colocamos o Uid do baú que é 9000 e depois o 1 que significa que ele já clicou no baú.

 

 

É isso aí pessoal! Uma introdução do que é Storage :)

Espero que tenham aproveitado!

 

Até a próxima!

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...

Realmente, é o que o Marcryzius falou, blocos de memória numericos, onde são armazenados dados, geralmente 'numericos'...

E não ta muito bem explicado este seu post cara, ta meio bagunçado rs', poderia ta melhor.

 

Abração.

Editado por MarcelloMkez
Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 1 year later...
  • 3 weeks later...
  • 2 months later...

Existe algum "Wiki" da vida para mostrar todas as funções que o LUA do Tibia OT Tem? e explicando cada uma?

Se alguem souber pode me passar o link? eu procurei bastante e nao achei nada de parecido na internet, Obrigado.

 

Link com as funções, o significado de cada uma é a tradução da mesma...

http://www.xtibia.co...sta-de-funcoes/

 

Em relação ao script proposto tu deve explicar também oque são essas partes:

if item.uid == 900 then

E essa:

end
return 1
end
return 0
end

O essencial seria explicar linha por linha do script!

 

O tópico ficou razoável mais existe ainda varias coisas interessantes sobre os storages..

 

Outra informação importante sobre o mesmo é que ela pode ser usada para armazenas palavras ao em vez de números.

Devia ter explicado um pouco sobre "global storage".

 

Ali onde tu fala que o jogador não clicou ainda, se ele não usou a storage ela vai ser igual a -1...

Mesmo se quisese deixar comparando com o 0, ficaria melhor assim:

if storage <= 0 then

 

Essa parte:

Para isso temos que fazer com que o Unique Id do baú seja um número diferente dos outros

 

Não concordo. Já que no bau pode ser usado um actionid, ou pode ser ativado até mesmo por um itemid, então não podemos generalizar, é mais facil explicar tais situações para o usuário, ou seja, não podemos ensiná-los errado.

Editado por Jhon992
Link para o comentário
Compartilhar em outros sites

  • 5 years later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...