^ Pensei na mesma coisa ...
- Forums
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Mc não passa em tile
info
Group: Conde
Joined: 07/04/15
Posts: 962
Reputation: +258
Gender: Masculino

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
Edited Junho 9 by zipter98
info
Group: Marquês
Joined: 02/08/12
Posts: 1k
Reputation: +234
Tibia Character: Maurolkit

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.
Edited Junho 10 by Skymagnum
info
Group: Campones
Joined: 06/11/11
Posts: 93
Reputation: 0
Tibia Character: Deprex

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
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

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
Gj, mas faltou checar se não é o mesmo player
if cid ~= ce 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).
info
Group: Marquês
Joined: 02/08/12
Posts: 1k
Reputation: +234
Tibia Character: Maurolkit

Não falei numa tabela, falei em um arquivo .txt.
Sobre o que eu disse da tabela, foi referente ao código do Bruno Minervino ![]()
Edited Junho 10 by zipter98





info
Group: Marquês
Joined: 02/08/12
Posts: 1k
Reputation: +234
Tibia Character: Maurolkit
Esses scripts não vão dar muito certo não, e se o player deslogar ? ou sair da área ?.