Postado Junho 6, 2019 6 anos 0.4 Boa tarde galera, eu queria uma ajuda numa script que parece com a annihilator, com alguns detalhes a mais. Quando os players puxassem a alavanca, eles seriam teleportados para a sala, teria um tempo la dentro, e quando esse tempo acabar, eles seriam teleportados pra fora e as criaturas la dentro, seriam removidas. Quando puxassem novamente a alavanca, outros players, as criaturas seria criadas nos devidos lugares. Tem uma script do @Vodkart, que funciona muito bem, os players sao teleportados, as criaturas sao sumonadas, e quando o tempo acaba, eles sao teleportados. O problema é que as criaturas nao estao sumindo, entao quando outros players puxam a alavanca, cria-se mais criaturas, e as que estavam la, continuam. Citar local t = { lvl = 100, Time = 15, -- em minutos entrada = { {x = 1045, y = 1014, z = 6}, -- pos players {x = 1045, y = 1015, z = 6} }, saida = { {x = 1110, y = 1122, z = 7}, -- pos para onde eles irão {x = 1110, y = 1123, z = 7} }, monstros = { {{x = 1108, y = 1116, z = 7}, "Orc"}, -- defina pos dos montros e nomes {{x = 1108, y = 1117, z = 7}, "Orc"}, {{x = 1108, y = 1118, z = 7}, "Orc"}, {{x = 1108, y = 1119, z = 7}, "Orc"} } } function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores fazendo a quest.') return true end for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui level '..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada, CONST_ME_POFF) doTeleportThing(tid, t.saida, false) addEvent(VarAnihiPlayer, t.Time*1000, tid) doSendMagicEffect(t.saida, CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end
Postado Junho 7, 2019 6 anos que estranho, nenhum deles somem? você pode me passar então a pos de inicio e final da sala? no caso de toda a sala da anihi ai, tipo um quadrado. [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 8, 2019 6 anos Autor @Vodkart Cara, eu tinha feito uma salinha só pra testa: x = 1105, y = 1113, z = 7 (canto superior esquerdo) x = 1115, y = 1123, z = 7 (canto inferior direito)
Postado Junho 9, 2019 6 anos @Zazeros function HaveCreatureArena(area, remove, clean) for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) then var = var +1 end if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end if clean ~= false then doCleanTile(pos,false) end end end end local from, to = {x = 1105, y = 1113, z = 7}, {x = 1115, y = 1123, z = 7} local t = { lvl = 100, Time = 15, -- em minutos entrada = { {x = 1045, y = 1014, z = 6}, -- pos players {x = 1045, y = 1015, z = 6} }, saida = { {x = 1110, y = 1122, z = 7}, -- pos para onde eles irão {x = 1110, y = 1123, z = 7} }, monstros = { {{x = 1108, y = 1116, z = 7}, "Orc"}, -- defina pos dos montros e nomes {{x = 1108, y = 1117, z = 7}, "Orc"}, {{x = 1108, y = 1118, z = 7}, "Orc"}, {{x = 1108, y = 1119, z = 7}, "Orc"} } } function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores fazendo a quest.') return true end for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui level '..t.lvl..' ou mais.') return true end table.insert(check, x) end HaveCreatureArena({from,to}, true, true) for _, summon in pairs(t.monstros) do doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada, CONST_ME_POFF) doTeleportThing(tid, t.saida, false) addEvent(VarAnihiPlayer, t.Time*1000, tid) doSendMagicEffect(t.saida, CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Editado Junho 9, 2019 6 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 9, 2019 6 anos Autor @Vodkart Cara, deu esse erro: [9/6/2019 15:30:2] [Error - LuaInterface::loadFile] data/actions/scripts/dungeon test.lua:1: '(' expected near 'ï' [9/6/2019 15:30:2] [Error - Event::checkScript] Cannot load script (data/actions/scripts/dungeon test.lua) [9/6/2019 15:30:2] data/actions/scripts/dungeon test.lua:1: '(' expected near 'ï' Edit: era um erro de formatação, mas depois que eu corrigi, deu esse novo: /2019 15:39:13] data/actions/scripts/dungeon test.lua:7: attempt to perform arithmetic on global 'var' (a nil value) [9/6/2019 15:39:13] stack traceback: [9/6/2019 15:39:13] data/actions/scripts/dungeon test.lua:7: in function 'HaveCreatureArena' [9/6/2019 15:39:13] data/actions/scripts/dungeon test.lua:67: in function <data/actions/scripts/dungeon test.lua:55> Editado Junho 9, 2019 6 anos por Zazeros atualização (veja o histórico de edições)
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.