Ir para conteúdo

Mc não passa em tile


damiaotorres

Posts Recomendados

Então basta fazer uma verificação dos IPs dos jogadores na área do evento e um onLogin.

lol...

local area = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}
function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    end
    for x = area[1].x, area[2].x do
        for y = area[1].y, area[2].y do
            local pos = {x = x, y = y, z = area[1].z}
            local c = getTopCreature(pos).uid
            if c > 0 and isPlayer(c) then
                if getPlayerIp(cid) == getPlayerIp(c) then
                    return doPlayerSendCancel(cid, "There's already someone with your ip in the event...") and doTeleportThing(cid, fromPosition)
                end
            end
        end
    end
    return true
end

 

local area = {{x = x, y = y, z = z}, {x = x, y = y, z = z}}
function onLogin(cid)
    if isInArea(getThingPos(cid), area[1], area[2]) then
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

Gj, mas faltou checar se não é o mesmo player

if cid ~= c

e também é bom fazer um onStepOut, eu faria de um jeito bem gambiarra mesmo, salvaria os ips em um arquivo e removia quando o player saisse.

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

Isso é uma area de evento não tem como eles deslogar la dentro , nasce um tp em x position ai quero colocar ao redor do teleporte só um mc passa

Testou o que eu postei?

Ele faz isso mesmo que você citou.

function table.insert(table, element)
    table[#table + 1] = element
end
local ips = {}
function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then
		return false
	end
	local ip = getPlayerIp(pid)
	if table.find(ips, ip) then
		doTeleportThing(cid, fromPosition)
		return false
	else
		table.insert(ips, ip)
		return true
	end
end
Link para o comentário
Compartilhar em outros sites

Gj, mas faltou checar se não é o mesmo player

if cid ~= c

e também é bom fazer um onStepOut, eu faria de um jeito bem gambiarra mesmo, salvaria os ips em um arquivo e removia quando o player saisse.

Na verdade, esta verificação seria necessária apenas se o cid estivesse dentro da área do evento.

@topic

E tem como o jogador sair do evento antes que este acabe?

PS: Salvando os IPs numa tabela fora do callback permite que o evento aconteça apenas uma vez até o servidor ser novamente iniciado (ou até alguém recarregar as actions in-game/na distro).

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...