Postado Novembro 11, 2017 7 anos Boa tarde galera do tibiakingseguinte estou tento um problema com a annihilator! toda hora que um player puxa a alavanca sem ter 4 pessoas da esse erro: [11/11/2017 14:15:8] [Error - Action Interface] [11/11/2017 14:15:8] data/actions/scripts/quests/anihi.lua:onUse [11/11/2017 14:15:8] Description: [11/11/2017 14:15:8] (luaDoTeleportThing) Thing not found e se o player sumona um monstro e coloca emcima do piso. da esse erro! e a alavanca nao volta pra posição 1945 fica na 1946 [11/11/2017 14:22:5] [Error - Action Interface] [11/11/2017 14:22:5] data/actions/scripts/quests/anihi.lua:onUse [11/11/2017 14:22:5] Description: [11/11/2017 14:22:5] data/actions/scripts/quests/anihi.lua:27: attempt to compare number with boolean [11/11/2017 14:22:5] stack traceback: [11/11/2017 14:22:5] data/actions/scripts/quests/anihi.lua:27: in function <data/actions/scripts/quests/anihi.lua:1> o script ta assim: Spoiler function onUse(cid, item, frompos, item2, topos) if item.uid == 7000 then if item.itemid == 1945 then player1pos = {x=7579, y=7612, z=9, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=7578, y=7612, z=9, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=7577, y=7612, z=9, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=7576, y=7612, z=9, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then player1level = getPlayerLevel(player1.uid) player2level = getPlayerLevel(player2.uid) player3level = getPlayerLevel(player3.uid) player4level = getPlayerLevel(player4.uid) questlevel = 100 if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then demon1pos = {x=7579, y=7612, z=10} demon2pos = {x=7580, y=7612, z=10} demon3pos = {x=7577, y=7610, z=10} demon4pos = {x=7575, y=7610, z=10} demon5pos = {x=7576, y=7614, z=10} demon6pos = {x=7578, y=7614, z=10} doSummonCreature("Demon", demon1pos) doSummonCreature("Demon", demon2pos) doSummonCreature("Demon", demon3pos) doSummonCreature("Demon", demon4pos) doSummonCreature("Demon", demon5pos) doSummonCreature("Demon", demon6pos) nplayer1pos = {x=7578, y=7612, z=10} nplayer2pos = {x=7577, y=7612, z=10} nplayer3pos = {x=7576, y=7612, z=10} nplayer4pos = {x=7575, y=7612, z=10} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,1945) else doPlayerSendCancel(cid,"All players must have level 100 to enter.") end else doPlayerSendCancel(cid,"You need 4 players in your team.") end end if item.itemid == 1945 then starting={x=7574, y=7604, z=10, stackpos=253} checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} ending={x=7594, y=7616, z=10, stackpos=253} players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then trash= {x=233, y=125, z=10} current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTransformItem(item.uid,1945) end end end if item.uid == 5006 then queststatus = getPlayerStorageValue(cid,100) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found a demon armor.") doPlayerAddItem(cid,2494,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5007 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a magic sword.") doPlayerAddItem(cid,2400,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5008 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.") doPlayerAddItem(cid,2431,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5009 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a Thunder Hammer.") doPlayerAddItem(cid,2421,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end return 1 end queria que funcionasse sem esse erro. tem como colocar pra falar que precisa de 4 player e nao pode montros? se alguem puder me ajudar agradeco desde ja. Editado Novembro 11, 2017 7 anos por Leomonti (veja o histórico de edições)
Postado Novembro 11, 2017 7 anos Solução @Leomonti Use este script Spoiler local room = { -- room with demons fromX = 7574, fromY = 7604, fromZ = 10, toX = 7594, toY = 7616, toZ = 10 } local monster_pos = { [1] = {pos = {7579, 7612, 10}, monster = "Demon"}, [2] = {pos = {7580, 7612, 10}, monster = "Demon"}, [3] = {pos = {7577, 7610, 10}, monster = "Demon"}, [4] = {pos = {7575, 7610, 10}, monster = "Demon"}, [5] = {pos = {7576, 7614, 10}, monster = "Demon"}, [6] = {pos = {7578, 7614, 10}, monster = "Demon"} } local players_pos = { {x = 7579, y =7612, z = 9, stackpos = 253}, {x = 7578, y =7612, z = 9, stackpos = 253}, {x = 7577, y =7612, z = 9, stackpos = 253}, {x = 7576, y =7612, z = 9, stackpos = 253} } local new_player_pos = { {x = 7578, y =7612, z = 10}, {x = 7577, y =7612, z = 10}, {x = 7576, y =7612, z = 10}, {x = 7575, y =7612, z = 10} } local playersOnly = "yes" local questLevel = 100 function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 1945 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 local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid if door > 0 then doTransformItem(door, 5108) end 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,1946) end else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.") end elseif item.itemid == 1946 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,19,"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,1945) end end return TRUE end so altere em local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid coloque a posição de sua porta Editado Novembro 11, 2017 7 anos por Everson Miranda (veja o histórico de edições)
Postado Novembro 11, 2017 7 anos Autor 19 minutos atrás, Everson Miranda disse: @Leomonti Use este script Ocultar conteúdo local room = { -- room with demons fromX = 33217, fromY = 31655, fromZ = 13, toX = 33224, toY = 31663, toZ = 13 } local monster_pos = { [1] = {pos = {33220, 31657, 13}, monster = "Demon"}, [2] = {pos = {33222, 31657, 13}, monster = "Demon"}, [3] = {pos = {33219, 31661, 13}, monster = "Demon"}, [4] = {pos = {33221, 31661, 13}, monster = "Demon"}, [5] = {pos = {33223, 31659, 13}, monster = "Demon"}, [6] = {pos = {33224, 31659, 13}, monster = "Demon"} } local players_pos = { {x = 33225, y =31671, z = 13, stackpos = 253}, {x = 33224, y =31671, z = 13, stackpos = 253}, {x = 33223, y =31671, z = 13, stackpos = 253}, {x = 33222, y =31671, z = 13, stackpos = 253} } local new_player_pos = { {x = 33222, y = 31659, z = 13}, {x = 33221, y = 31659, z = 13}, {x = 33220, y = 31659, z = 13}, {x = 33219, y = 31659, z = 13} } local playersOnly = "yes" local questLevel = 100 function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 1945 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 local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid if door > 0 then doTransformItem(door, 5108) end 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,1946) end else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.") end elseif item.itemid == 1946 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,19,"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,1945) end end return TRUE end vou tentar aqui agora
Postado Novembro 11, 2017 7 anos @Leomonti esse script ai nao vai funfar pq esta com as coordenadas erradas eu atualizei o script
Postado Novembro 11, 2017 7 anos Autor 33 minutos atrás, Everson Miranda disse: @Leomonti Use este script Ocultar conteúdo local room = { -- room with demons fromX = 7574, fromY = 7604, fromZ = 10, toX = 7594, toY = 7616, toZ = 10 } local monster_pos = { [1] = {pos = {7579, 7612, 10}, monster = "Demon"}, [2] = {pos = {7580, 7612, 10}, monster = "Demon"}, [3] = {pos = {7577, 7610, 10}, monster = "Demon"}, [4] = {pos = {7575, 7610, 10}, monster = "Demon"}, [5] = {pos = {7576, 7614, 10}, monster = "Demon"}, [6] = {pos = {7578, 7614, 10}, monster = "Demon"} } local players_pos = { {x = 7579, y =7612, z = 9, stackpos = 253}, {x = 7578, y =7612, z = 9, stackpos = 253}, {x = 7577, y =7612, z = 9, stackpos = 253}, {x = 7576, y =7612, z = 9, stackpos = 253} } local new_player_pos = { {x = 7578, y =7612, z = 10}, {x = 7577, y =7612, z = 10}, {x = 7576, y =7612, z = 10}, {x = 7575, y =7612, z = 10} } local playersOnly = "yes" local questLevel = 100 function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 1945 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 local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid if door > 0 then doTransformItem(door, 5108) end 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,1946) end else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.") end elseif item.itemid == 1946 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,19,"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,1945) end end return TRUE end so altere em local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid coloque a posição de sua porta qual porta? a que entra pra quest ou a que sai da area dos demon?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.