Postado Outubro 19, 2017 7 anos Em 17/09/2017 em 19:08, jNo disse: O teleport que leva ate a sala do boss não aparece, eu editei o mesmo que você postou la no inicio, porém só isso, e da esse erro. Um server é diferente do outro, libs, database, etc.. pode ser que seja isso, enfim, vou analisar de novo se eu que fiz algo errado Desconsidere tudo que falei, erro meu aqui, consertei já. ai jNo se lembra como se arrumo o error que tava dando?
Postado Novembro 8, 2017 7 anos crico no corpo Bosses mesma coisa crika nada ele não abre pra pegar loote e dá essa menssagem ae fala you are not the owner nem no bau tem loot pode me ajudar??? Editado Novembro 8, 2017 7 anos por Boladaunm (veja o histórico de edições)
Postado Janeiro 13, 2021 4 anos Em 02/09/2017 em 22:01, Dwarfer disse: Segue o mod: Mostrar conteúdo oculto <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Invasion Event" version="1.0" author="Dwarfer" contact="tibiaking.com" enabled="yes"> <config name="Inv_func"><![CDATA[ t = { tp_id = 1387, boss_area = {{x=1,y=1,z=1}, {x=1,y=1,z=1}}, tp_goboss = {time_before = {5, "min"}, create_pos = {x = 1, y = 1, z = 1}, goTo = {x = 1, y = 1, z = 1}}, msg_time = true, tp_goreward = {x = 1, y = 1, z = 1}, removetp_time = {5, "min"}, days = { [{"Tuesday", "10:34"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}}, [{"Wednesday", "15:00"}] = {name = "Dwarf Soldier", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {1, "hour"}}}, [{"Friday", "12:32"}] = {name = "Dwarf Guard", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {1, "hour"}}}, [{"Monday", "20:55"}] = {name = "Dwarf Geomancer", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {1, "hour"}}} }} function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return "Error: Bad declaration in mathtime function." end function isHour(a, b) for i, k in pairs(t.days) do if i[1] == a and i[2] == b then return true end end return false end function getTable(a,b) for i, k in pairs(t.days) do if i[1] == a and i[2] == b then return k end end end function doRemoveMonster(uid) if isMonster(uid) then doBroadcastMessage(getCreatureName(uid) .. " returned to its covil stronger than before!", MESSAGE_EVENT_ADVANCE) doRemoveCreature(uid) 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 removeAll(tp_pos, area) doRemoveItem(getTileItemById(tp_pos,t.tp_id).uid) local p = getPlayersInArea(area[1], area[2]) if #p > 0 then for i = 1, #p do doTeleportThing(p[i], getTownTemplePosition(getPlayerTown(p[i]))) end end end]]></config> <globalevent name="InvasionEvent" interval="60000" event="script"><![CDATA[ domodlib('Inv_func') function onThink(interval, lastExecution) if isHour( os.date("%A"), os.date("%X", os.time() + mathtime(t.tp_goboss.time_before)):sub(1,5)) then if t.msg_time then doBroadcastMessage("An evil soul seems to be coming to this land. Teleport appeared at Event Room! It will be there for " .. t.tp_goboss.time_before[1] .. " " .. t.tp_goboss.time_before[2] .. ".", MESSAGE_EVENT_ADVANCE) end doCleanTile(t.tp_goboss.create_pos) doCreateTeleport(t.tp_id, t.tp_goboss.goTo, t.tp_goboss.create_pos) end if isHour(os.date("%A"), os.date("%X"):sub(1,5)) then local m = getTable(os.date("%A"),os.date("%X"):sub(1,5)) doRemoveItem(getTileItemById(t.tp_goboss.create_pos, t.tp_id).uid) local text = "It will be there for " .. m.remove_time[2][1] .. " " .. m.remove_time[2][2] .."!" doBroadcastMessage(m.name .. " appeared in the Boss Area. Kill it if you are able to! " .. (m.remove_time[1] == true and text or ""), MESSAGE_EVENT_ADVANCE) local monster = doSummonCreature(m.name, m.create_pos) if m.remove_time[1] then addEvent(doRemoveMonster, mathtime(m.remove_time[2])*1000, monster) end end return true end]]></globalevent> <event type="death" name="InvasionBossDeath" event="script"><![CDATA[ domodlib('Inv_func') function onDeath(cid) local p = getCreaturePosition(cid) if isInRange(p, t.boss_area[1], t.boss_area[2]) then doCreatureSay(cid, "LOST NOW, BUT I WILL BACK HAHAHAHA! Teleport ends in " .. t.removetp_time[1] .." " .. t.removetp_time[2] .. ".", TALKTYPE_ORANGE_1) addEvent(function() doCleanTile(p) doSendMagicEffect(p, CONST_ME_TELEPORT) doCreateTeleport(t.tp_id, t.tp_goreward,p) end, 1) addEvent(removeAll, mathtime(t.removetp_time)*1000, p, t.boss_area) end return true end]]></event> </mod> A configuração é autoexplicativa, mesmo assim, para que não restem dúvidas: Ocultar conteúdo t = { tp_id = 1387, boss_area = {{x=1,y=1,z=1}, {x=1,y=1,z=1}}, -- canto superior esquerdo, canto inferior direito da área de boss tp_goboss = {time_before = {5, "min"}, create_pos = {x = 1, y = 1, z = 1}, goTo = {x = 1, y = 1, z = 1}}, -- time_before: quanto tempo antes do horário o teleporte da área de eventos será criado -- create_pos: a posição na qual o teleporte será criado -- goTo: posição para qual o teleporte levará msg_time = true, -- true vai mandar a mensagem quando o teleporte for criado, false não tp_goreward = {x = 1, y = 1, z = 1}, -- posição para qual o teleporte do boss levará removetp_time = {5, "min"}, -- tempo para remover o teleporte do boss [{"Tuesday", "10:34"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}}, --- create_pos: posição na qual o boss será criado --- remove_time: true caso queira remover o boss, false se não, {tempo para remover o boss} Adicione no arquivo do boss que será criado na boss area, antes de </monster>: <script> <event name = "InvasionBossDeath"/> </script> Lembrando que o evento só será executado caso o boss esteja dentro da boss area. Como faço para o Boss aparecer no 1º e 15º dia de cada mês? Assinatura retirada pela direção!
Postado Janeiro 13, 2021 4 anos 8 horas atrás, Rogeriok disse: Como faço para o Boss aparecer no 1º e 15º dia de cada mês? só usar os.date assim: if tonumber(os.date("%d")) == 01 or tonumber(os.date("%d")) == 15 then ... end
Postado Janeiro 14, 2021 4 anos @Shiuns blz. Já fiz algumas mudanças e conseguir avançar, porém eu não to conseguindo fazer com que a função OnDeath veja a boss_area na tabela t.days, por que a ação irá acontecer depois que o Boss morrer. Alguém ai me dá uma dica.. <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Invasion Event" version="1.0" author="Dwarfer" contact="tibiaking.com" enabled="yes"> <config name="Inv_func"><![CDATA[ t = { tp_id = 1387, tp_goboss = {time_before = {60, "sec"}, create_pos = {x = 997, y = 1176, z = 7}}, msg_time = true, tp_goreward = {x = 668, y = 1595, z = 6}, removetp_time = {120, "sec"}, days = { [{13, "18:06"}] = {name = "Gaz'haragoth", create_pos = {x = 358, y = 996, z = 11}, to_arena = {x = 717, y = 985, z = 7}, remove_time = {true, {60, "sec"}}, boss_area = {{x = 709, y = 961, z = 4}, {x = 725, y = 975, z = 4}}}, [{13, "22:05"}] = {name = "Ferumbras Boss", create_pos = {x = 717, y = 963, z = 4}, to_arena = {x = 717, y = 985, z = 7}, remove_time = {true, {60, "sec"}}, boss_area = {{x = 709, y = 961, z = 4}, {x = 725, y = 975, z = 4}}}, [{16, "18:06"}] = {name = "Gaz'haragoth", create_pos = {x = 358, y = 996, z = 11}, to_arena = {x = 717, y = 985, z = 7}, remove_time = {true, {60, "sec"}}, boss_area = {{x = 709, y = 961, z = 4}, {x = 725, y = 975, z = 4}}} }} function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return "Error: Bad declaration in mathtime function." end function isHour(a, b) for i, k in pairs(t.days) do if i[1] == a and i[2] == b then return true end end return false end function getTable(a,b) for i, k in pairs(t.days) do if i[1] == a and i[2] == b then return k end end end function doRemoveMonster(uid) if isMonster(uid) then doBroadcastMessage(getCreatureName(uid) .. " returned to its covil stronger than before!", MESSAGE_EVENT_ADVANCE) doRemoveCreature(uid) 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 removeAll(tp_pos, area) doRemoveItem(getTileItemById(tp_pos,t.tp_id).uid) local p = getPlayersInArea(area[1], area[2]) if #p > 0 then for i = 1, #p do doTeleportThing(p[i], getTownTemplePosition(getPlayerTown(p[i]))) end end end]]></config> <globalevent name="InvasionEvent" interval="60000" event="script"><![CDATA[ domodlib('Inv_func') function onThink(interval, lastExecution) if isHour(tonumber(os.date("%d")), os.date("%X", os.time() + mathtime(t.tp_goboss.time_before)):sub(1,5)) then local m1 = getTable(tonumber(os.date("%d")), os.date("%X", os.time() + mathtime(t.tp_goboss.time_before)):sub(1,5)) if t.msg_time then doBroadcastMessage("An evil soul seems to be coming to this land. Teleport appeared at Event Room! It will be there for " .. t.tp_goboss.time_before[1] .. " " .. t.tp_goboss.time_before[2] .. ".") end doCleanTile(t.tp_goboss.create_pos) doCreateTeleport(t.tp_id, m1.to_arena, t.tp_goboss.create_pos) end if isHour(tonumber(os.date("%d")), os.date("%X"):sub(1,5)) then local m = getTable(tonumber(os.date("%d")),os.date("%X"):sub(1,5)) doRemoveItem(getTileItemById(t.tp_goboss.create_pos, t.tp_id).uid) local text = "It will be there for " .. m.remove_time[2][1] .. " " .. m.remove_time[2][2] .."!" doBroadcastMessage(m.name .. " appeared in the Boss Area. Kill it if you are able to! " .. (m.remove_time[1] == true and text or ""), MESSAGE_EVENT_ADVANCE) local monster = doSummonCreature(m.name, m.create_pos) if m.remove_time[1] then addEvent(doRemoveMonster, mathtime(m.remove_time[2])*1000, monster) end end return true end]]></globalevent> <event type="death" name="InvasionBossDeath" event="script"><![CDATA[ domodlib('Inv_func') function onDeath(cid) local p = getCreaturePosition(cid) if isInRange(p, t.boss_area[1], t.boss_area[2]) then doCreatureSay(cid, "LOST NOW, BUT I WILL BACK HAHAHAHA! Teleport ends in " .. t.removetp_time[1] .." " .. t.removetp_time[2] .. ".", TALKTYPE_ORANGE_1) addEvent(function() doCleanTile(p) doSendMagicEffect(p, CONST_ME_TELEPORT) doCreateTeleport(t.tp_id, t.tp_goreward,p) end, 1) addEvent(removeAll, mathtime(t.removetp_time)*1000, p, t.boss_area) end return true end ]]></event> </mod> Assinatura retirada pela direção!
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.