IZ

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

Por Izaiasousa, 23 de jun. de 2010 em Noticias - Arquivo

otserv
tibia
script
10
3.2k
IzaiasousaI
23 de junho de 2010 às 13:02

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!

1 mês depois...
satan666S
24 de julho de 2010 às 11:09

"storagevalue's" não são variáveis, são blocos de memória que armazenam dados. geralmente números.

1 mês depois...
MarcelloMendesM
06 de agosto de 2010 às 10:28

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 Agosto 6 por MarcelloMkez

EskyloE
11 de agosto de 2010 às 22:44
end

return 1

end

return 0

end

 

Tio, explica como eu uso o "end" e esses "return" ?

2 meses depois...
Perfect MapperP
16 de outubro de 2010 às 03:38

bom tuto mas ali onde esta

 

doPlayerSendMessage

 

tem q trocar por

 

doPlayerSendTextMessage

 

abraços

1 ano depois...
exorcistE
17 de julho de 2012 às 16:34

na minha opiniao o tuto ta bom só não entendi os

 

end

return 1

end

return 0

end

1 mês depois...
notle2012N
03 de agosto de 2012 às 23:02

tutorial ta ótimo :)

2 meses depois...
SoulProstS
23 de outubro de 2012 às 00:52

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.

jhon992J
23 de outubro de 2012 às 09:16

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 Outubro 23 por Jhon992

5 anos depois...
StigalS
25 de abril de 2018 às 16:40
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.