Ir para conteúdo

Pergunta

como eu posso checar se tem uma parede ou algum item block wall a 1 sqm na frente

e como eu posso fazer pra adicionar um addEvent que não deixe o player mudar de direção com ctrl+seta

Link para o comentário
https://xtibia.com/forum/topic/221255-checar-item-blockwall-e-dire%C3%A7%C3%A3p/
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

function isWalkable(pos, creature, proj, pz)-- by Nord    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end    if getTopCreature(pos).uid > 0 and creature then return false end	cr = getThingFromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE})	if isPlayer(cr.uid) or isMonster(cr.uid) then return false end    if getTileInfo(pos).protection and pz then return false, true end    local n = not proj and 3 or 2    for i = 0, 255 do        pos.stackpos = i        local tile = getTileThingByPos(pos)        if tile.itemid ~= 0 and not isCreature(tile.uid) then            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then                return false            end        end    end    return trueend

Use essa função pra saber se uma posição é pisável, ou seja, se tem algo que bloqueie.

 

Depois, pode usar isso aqui pra checar se a posição serve:

if isWalkable(getPosByDir(getThingPos(cid), getCreatureLookPosition(cid), 1)) then

 

Tópico movido para a seção de dúvidas e pedidos resolvidos.

 

Editado por omega blueheaven
Link para o comentário
https://xtibia.com/forum/topic/221255-checar-item-blockwall-e-dire%C3%A7%C3%A3p/#findComment-1562687
Compartilhar em outros sites

×
×
  • Criar Novo...