Base: TFS 0.4.3
Qual erro está surgindo/O que você procura?
Quest Annihilator, quando os players puxam a alavanca da posição da ESQUERDA para a DIREITA que são teleportados, após sair da quest quando outros players ou os mesmos tentam entrar na quest de novo da erro no distro " (luaGetThingFromPos) Tile not found ".
Isso acontece quando a alavanca está para a direita e sobraram demons lá dentro, quando puxam de volta que os demons restantes somem, aí trava, dá os bugs no distro, e a alavanca volta pra ESQUERDA e eles puxam de novo e entram na quest e isso se repete, sempre dando erro no distro quando tem que voltar a alavanca pra puxar de novo e serem teleportados.
Alguém pode ajudar a consertar isso ?
Você tem o código disponível? Se tiver publique-o aqui:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local room = { -- room with demons
fromX = 489,
fromY = 749,
fromZ = 10,
toX = 503,
toY = 760,
toZ = 10
}
local monster_pos = {
[1] = {pos = {489, 754, 10}, monster = "Demon"},
[2] = {pos = {489, 756, 10}, monster = "Demon"},
[3] = {pos = {491, 752, 10}, monster = "Demon"},
[4] = {pos = {492, 752, 10}, monster = "Demon"},
[5] = {pos = {493, 752, 10}, monster = "Demon"},
[6] = {pos = {494, 752, 10}, monster = "Demon"}
}
local players_pos = {
{x = 479, y =755, z = 9, stackpos = 253},
{x = 480, y =755, z = 9, stackpos = 253},
{x = 481, y =755, z = 9, stackpos = 253},
{x = 482, y =755, z = 9, stackpos = 253}
}
local new_player_pos = {
{x = 492, y = 755, z = 10},
{x = 493, y = 755, z = 10},
{x = 494, y = 755, z = 10},
{x = 495, y = 755, z = 10}
}
local playersOnly = "yes"
local questLevel = 150
local all_ready, monsters, player, level = 0, 0, {}, 0
if item.itemid == 10029 then
for i = 1, #players_pos do
table.insert(player, 0)
end
for i = 1, #players_pos do
player[i] = getThingfromPos(players_pos[i])
if player[i].itemid > 0 then
if string.lower(playersOnly) == "yes" then
if isPlayer(player[i].uid) == TRUE then
all_ready = all_ready+1
else
monsters = monsters+1
end
else
all_ready = all_ready+1
end
end
end
if all_ready == #players_pos then
for i = 1, #players_pos do
player[i] = getThingfromPos(players_pos[i])
if isPlayer(player[i].uid) == TRUE then
if getPlayerLevel(player[i].uid) >= questLevel then
level = level+1
end
else
level = level+1
end
end
if level == #players_pos then
if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then
for _, area in pairs(monster_pos) do
doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
end
for i = 1, #players_pos do
doSendMagicEffect(players_pos[i], CONST_ME_POFF)
doTeleportThing(player[i].uid, new_player_pos[i], FALSE)
doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
doTransformItem(item.uid,10030)
end
else
doPlayerSendTextMessage(cid,22,"Only players can do this quest.")
end
else
doPlayerSendTextMessage(cid,22,"All Players have to be level "..questLevel.." to do this quest.")
end
else
doPlayerSendTextMessage(cid,22,"You need "..table.getn(players_pos).." players to do this quest.")
end
elseif item.itemid == 10030 then
local player_room = 0
for x = room.fromX, room.toX do
for y = room.fromY, room.toY do
for z = room.fromZ, room.toZ do
local pos = {x=x, y=y, z=z,stackpos = 253}
local thing = getThingfromPos(pos)
if thing.itemid > 0 then
if isPlayer(thing.uid) == TRUE then
player_room = player_room+1
end
end
end
end
end
if player_room >= 1 then
doPlayerSendTextMessage(cid,22,"There is already a team in the quest room.")
elseif player_room == 0 then
for x = room.fromX, room.toX do
for y = room.fromY, room.toY do
for z = room.fromZ, room.toZ do
local pos = {x=x, y=y, z=z,stackpos = 253}
local thing = getThingfromPos(pos)
if thing.itemid > 0 then
doRemoveCreature(thing.uid)
end
end
end
end
doTransformItem(item.uid,10029)
end
end
return TRUE
end
Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Up