Ir para conteúdo

getNewPos(pos, direction, steps)


Posts Recomendados

Opa, fala ai galera.

Eu estava criando um script de fishing, e então eu precisava de uma função que retorna-se a posiçao para que eu estava olhando,

dai eu achei a funçao : getPosByDir,

Mas.. eu não sei usar ela, então eu criei a minha propria funçao, e tem como voce adicionar os passos, para voce ver a posiçao ,

de quantos passos.

 

Exemplo de uso :

 

getNewPos({x = 10, y = 20, z = 7}, 0, 2})

 

O Resultado seria :

{x = x = 10, y = 22, z = 7}

 

 

Bom, aqui está a função

 

 

 

function getNewPos(pos, dir, steps)
local ret = pos
if dir == 0 then
ret.y = ret.y + steps
elseif dir == 1 then
ret.x = ret.x - steps
elseif dir == 2 then
ret.y = ret.y - steps
else
ret.x = ret.x + steps
end
return ret
end

Espero que façam bom uso, Qualquer duvidas só perguntar.
Link para o comentário
Compartilhar em outros sites

1* ta ligado q existem 7 direçoes neh? entao esse teu else ae ta bem falho...

2* a getPosByDir tb aceita size... e funciona exatamente como a tua... -soh q ela eh completa neh... com as 7 dirs...-

3* local ret = pos --isso ae n adianta de nd ja q ainda vais alterar a tabela original...

 

essa eh a getPosByDir...

 

 

function getPositionByDirection(pos, direction, size)
    local n = size or 1
    local position = {}
    position.x = pos.x
    position.y = pos.y
    position.z = pos.z
        if pos.stackpos then
            position.stackpos = pos.stackpos
        end
    if(direction == NORTH) then
        position.y = position.y - n
    elseif(direction == SOUTH) then
        position.y = position.y + n
    elseif(direction == WEST) then
        position.x = position.x - n
    elseif(direction == EAST) then
        position.x = position.x + n
    elseif(direction == NORTHWEST) then
        position.y = position.y - n
        position.x = position.x - n
    elseif(direction == NORTHEAST) then
        position.y = position.y - n
        position.x = position.x + n
    elseif(direction == SOUTHWEST) then
        position.y = position.y + n
        position.x = position.x - n
    elseif(direction == SOUTHEAST) then
        position.y = position.y + n
        position.x = position.x + n
    end

    return position
end

 

 

 

PS: AINDA ACHU Q DEVIA TER PARTE DE APROVAÇAO PARA ESSAS AREAS DE SCRIPTING... ¬¬

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

×
×
  • Criar Novo...