AN

Declarando Variáveis De Forma Simples

Por Antharaz, 22 de fev. de 2010 em Tutoriais de Scripting

otserv
tibia
script
5.0 (1)
10
1.9k
AntharazA
22 de fevereiro de 2010 às 20:57

{B}em... muitos vezes vejo nos meus e nos scripts de outras pessoas declarando várias variáveis uma embaixo da outra, como por exemplo:

 

	local stor1 = getPlayerStorageValue(cid,5551)
local stor2 = getPlayerStorageValue(cid,5552)
local stor3 = getPlayerStorageValue(cid,5553)
local stor4 = getPlayerStorageValue(cid,5554)
local stor5 = getPlayerStorageValue(cid,5555)
local stor6 = getPlayerStorageValue(cid,5556)

 

 

 

 

{U}ma forma de simplificar isto seria separando as variáveis por vírgula, colocando todas antes de um igual(=) e colocando, depois do igual(=), o valor atribuído a cada variável RESPECTIVAMENTE. Usando o exemplo acima, ficaria assim:

 

 

local stor1, stor2, stor3, stor4, stor5, stor6 = getPlayerStorageValue(cid,5551), getPlayerStorageValue(cid,5552), getPlayerStorageValue(cid,5553), getPlayerStorageValue(cid,5554), getPlayerStorageValue(cid,5555), getPlayerStorageValue(cid,5556)

 

 

 

{S}e você não faz assim não quer dizer que está errado, afinal cada um acha mais fácil uma maneira... meu objetivo é apenas ampliar seu conhecimento, afinal, não é porque você só faz de uma maneira que não precisa saber outras... :rolleyes:

Editado Fevereiro 22 por Antharaz

VildenV
22 de fevereiro de 2010 às 22:29

Além de estar muito bem explicado eu acabo de aprender algo novo, eu faria no estilo a cima

mais agora já sei dois tipos.

 

Um outro exemplo, mais não sei se é possível me diga se pode ser assim..

item_uid = doPlayerAddItem(cid,2436,1)

item_uid = doPlayerAddItem(cid,2437,1)

item_uid = doPlayerAddItem(cid,2437,1)

item_uid = doPlayerAddItem(cid,2437,1)

 

usando a de cima se transoforma:

 

item_uid = doPlayerAddItem(cid,2436,1), doPlayerAddItem(cid,2437,1), doPlayerAddItem(cid,2437,1), doPlayerAddItem(cid,2437,1)

 

 

Isso poder ser?? ou algo do tipo doPlayerAddItem(cid,2436,1), (cid,2437,1), .....

 

Pode??

Editado Fevereiro 22 por Vilden

satan666S
22 de fevereiro de 2010 às 22:57

Além de estar muito bem explicado eu acabo de aprender algo novo, eu faria no estilo a cima

mais agora já sei dois tipos.

 

Um outro exemplo, mais não sei se é possível me diga se pode ser assim..

 

 

usando a de cima se transoforma:

 

 

 

 

Isso poder ser?? ou algo do tipo doPlayerAddItem(cid,2436,1), (cid,2437,1), .....

 

Pode??

 

cada variável representa um retorno da função.

a primeira variável representa o primeiro parâmetro de retorno.

normalmente uma função apenas retorna 1 parâmetro.

Exemplo de uma função que retorna dois valores:

function poo(x,y)

return x+y,x-y

end

 

Exemplo de uma função que retorna um valor:

function pog(x,y)

return x+y

end

 

seguindo...

local x,y = 5,10

local i,f = poo(x,y) -- os dois valores retornados pela função foram pegos pelas variáveis i,f.

local t,m = pog(x,y) -- M está sobrando já que a função retorna apenas um valor.

print(x,y,i,f,t)

AntharazA
22 de fevereiro de 2010 às 23:02

@vilden

 

ql a finalidade de colocar 3 vezes seguidas item_uid = doPlayerAddItem(cid,2437,1)?

VildenV
22 de fevereiro de 2010 às 23:14

No caso seria outro id de um item e ao clica na quest iria vim 3 items, então perguntei aquilo ali em cima

mais como não entendo nada a explicação do Marcryzius foi nula pra min =/, então pergunto novamente..

 

Aquile opção que eu fiz funciona???

item_uid = doPlayerAddItem(cid,2436,1), doPlayerAddItem(cid,2437,1), doPlayerAddItem(cid,2438,1), doPlayerAddItem(cid,2439,1)

 

ao invez de:

item_uid = doPlayerAddItem(cid,2436,1)

item_uid = doPlayerAddItem(cid,2437,1)

item_uid = doPlayerAddItem(cid,2438,1)

item_uid = doPlayerAddItem(cid,2439,1)

 

????????????

 

Marcryzius sua caixa de email está lotada eu acho, envie seu msn para min? obrigado.

Editado Fevereiro 22 por Vilden

AntharazA
22 de fevereiro de 2010 às 23:31

se você por assim irá adicionar os 4 itens ao player, mas no sentido de atribuir valores mesmo ficará errado...

 

como você colocou 4 valores, deveria ter 4 variáveis antes da vírgula... por exeplo, experimente por o código abaixo:

 

item_uid = 'a', 'b', 'c', 'd'
doPlayerSendTextMessage(cid,22,item_uid)

 

a menssagem que aparecerá para o player é a string "a".

 

Isto porque você só indicou a 1ª variável antes do igual(=). Já se colocar de acordo com o código abaixo retornará a string "d":

 

item_uid,item_uid,item_uid,item_uid = 'a', 'b', 'c', 'd'
doPlayerSendTextMessage(cid,22,item_uid)

Editado Fevereiro 22 por Antharaz

satan666S
23 de fevereiro de 2010 às 00:22

No caso seria outro id de um item e ao clica na quest iria vim 3 items, então perguntei aquilo ali em cima

mais como não entendo nada a explicação do Marcryzius foi nula pra min =/, então pergunto novamente..

 

Aquile opção que eu fiz funciona???

 

 

ao invez de:

 

 

????????????

 

Marcryzius sua caixa de email está lotada eu acho, envie seu msn para min? obrigado.

 

funcionar funciona, mas seria a mesma coisa que fazer assim.

item_uid = doPlayerAddItem(cid,2436,1)

doPlayerAddItem(cid,2437,1)

doPlayerAddItem(cid,2438,1)

doPlayerAddItem(cid,2439,1)

 

ou seja apenas a variável item_uid foi atribuida a função doPlayerAddItem

o restante não foi atribuida portanto não se pode obter informações de retorno da função.

Henrique MouraH
23 de fevereiro de 2010 às 04:08

Normal, cada um aprimora seu conhecimento com o tempo.

Abraços,

Henrique.

VildenV
23 de fevereiro de 2010 às 06:08

Marcryzius, bem complicadin, mais agora entendi valeu Marcryzius/Antharaz é

isso ae henrique e acho que com esse tópico iremos aprimorar mais ainda =)

 

 

Marcryzius te adicionei la

1 mês depois...
Henrique MouraH
03 de março de 2010 às 20:40

Tutorial aprovado!

Informação útil, rápida e simples.

 

Tópico movido,

Abraços.