Ir para conteúdo
  • Cadastre-se

Gravar posição do player por storage.


Posts Recomendados

Alguem poderia me ajudar ? Estou querendo 1 função que grave a pos do player em 1 action e que depois volte a mesma posição por outra action.

 

Exemplo: Uso um item que teleporta o player para certa posição X porém a posição antiga dele Y fica gravada e após ele andar em um teleport ele volta pra posição Y.

 

Já tentei assim -> 

 

pos = getPlayerPosition(cid)

 

setPlayerStorageValue(cid, 2220, pos)

 

mais n sei a continuação do doTeleportThing como ficaria ?

smite-1.png

Link para o post
Compartilhar em outros sites
bom primeiramente vc deve saber q a função getPlayerPosition(cid) retorna uma tabela, e tabelas não pode ser gravadas em uma storage somente numeros e strings.
 
então vc pode fazer o seguinte montar uma string que salve os 3 valores separados por virgula assim; "x,y,z"
local pos = getPlayerPosition(cid).x .. "," .. getPlayerPosition(cid).y .. "," .. getPlayerPosition(cid).z

que sera a mesma coisa que;

local pos = "x,y,z"

depois vc salva na storage:

setPlayerStorageValue(cid, 2220, pos)
e por fim para retornar essa posição vc iria usar o auxilio do string.explode que transforma uma string em tabela, separando os valores de acordo com o separador que escolheu
que nosso caso é a virgula.
 
por exemplo:
local pos = "x,y,z"

local tab = string.explode(pos, ",") -- quando encontrar a virgula, ele passara para o proximo indice da tabela.

que é a mesma coisa que isso:

local tab = {"x", "y", "z"}
oque eu tenha que fazer agora é colocar no doTeleportThing:
 
lembrando que a função doTeleportThing para funcioar precisa de uma tabela da seguinte estrutura:
{x = x, y = y, z = z}
então teremos que montar essa tabela com os valores da string.explode
local posFinal = {x = tab[1], y = tab[2], z = tab[3]} -- ou seja x é igual ao primeiro indice da tabela tab, y o segundo e z o terceiro.
depois só mandar o comando:
 
doTeleportThing(cid, posFinal)
 
fazendo isso resumidamente ficaria o seguinte:
setPlayerStorageValue(cid, 2220, getPlayerPosition(cid).x .. "," .. getPlayerPosition(cid).y .. "," .. getPlayerPosition(cid).z) -- gravei os valores da posição do player como uma string

local pos = string.explode(getPlayerStorageValue(cid, 2220), ",") -- peguei o valor da storage que é a string, e separei as posições

doTeleportThing(cid, {x = pos[1], y = pos[2], z = pos[3]}) -- montei a tabela que a função precisa com os valores da storage separados por indices.

espero que tenha entendido, qualquer coisa tamo ae !

.

Atenciosamente, Miiller Dominguês .


e-mail/skype: [email protected]

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo