^ Pensei na mesma coisa ...
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Mc não passa em tile
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: 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
Editado Junho 9 por zipter98
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: 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.
Editado Junho 10 por Skymagnum
info
Grupo: Campones
Registrado: 06/11/11
Posts: 93
Reputação: 0
Char no Tibia: 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
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: 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 ![]()
Editado Junho 10 por zipter98





info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit
Esses scripts não vão dar muito certo não, e se o player deslogar ? ou sair da área ?.