Postado Agosto 1, 2014 10 anos 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 ?
Postado Agosto 2, 2014 10 anos 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 !
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.