Ir para conteúdo
  • Cadastre-se

Normal (Resolvido)Script Inteligente de Invasão para Evento


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

O que script precisa fazer?

 

Avisar com antecedência, 5 minutos antes da invasão que ocorrera o mesmo.

 

[BOSS EVENT XP] - O evento de invasão começa em 5 minutos, se direcione para sala de Eventos.

 

Nesse tempo, aparece um teleport no local X (Sala de Eventos), com uma destinação X, e exibe uma mensagem.

 

[BOSS EVENT XP] - O Teleport permanecera aberto até o Boss aparecer, depois, ele ira desaparecer.

 

Depois desses 5 minutos da primeira mensagem, o boss nasce, fecha o teleport.

 

Depois do Boss morrer, aparece um teleport  com time de 30 segs que redireciona para outro local, onde vai ter a sala de recompensa (vou usar outro script).

 

Aqueles que não entrarem no teleport, automaticamente tomam kick pro templo, e o evento acaba.

 

 

O Script precisa ser configuravel, digo, assim:

 

days = {

["Monday"] = {

["18:31"] = {nome = "Uchiha Madara", pos = {fromPosition = {x=1022, y=1039, z=7}

 

 

Link para o post
Compartilhar em outros sites
  • Solução

Segue o mod:

 

Spoiler

<?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:

 

Spoiler

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. 

Contato:

 

Link para o post
Compartilhar em outros sites
10 horas atrás, Dwarfer disse:

Segue o mod:

 

  Ocultar conteúdo


<?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. 

 

Caralho, perfeito! OBRIGADO <3 <3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 02/09/2017 em 22:01, Dwarfer disse:

Segue o mod:

 

  Ocultar conteúdo


<?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:

 

  Mostrar conteúdo oculto


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. 

 

 

Aqui com vários horários o script não ativa, mas quando coloco 1, ele ativa, e da erro.

 

<?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=2740,y=1831,z=7}, {x=2802,y=1872,z=7}},
tp_goboss = {time_before = {5, "min"}, create_pos = {x = 2113, y = 1678, z = 7}, goTo = {x = 2778, y = 1893, z = 6}},
msg_time = true,
tp_goreward = {x = 2846, y = 1858, z = 6}, 
removetp_time = {5, "min"},

days = {
[{"Monday", "06:15","12:15","18:15","22:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Tuesday", "06:15","12:15","18:15","22:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Wednesday", "06:15","12:15","18:15","22:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Thursday", "06:15","12:15","18:15","22:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Friday", "06:15","12:15","18:15","22:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Saturday", "06:15","12:15","18:15","22:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Sunday", "13:57"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}}
}}

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 roshamuul 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>

 

 

 

Sem título.png

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

Você edita o mod a seu gosto sem saber o que tava fazendo e quer que funcione? Aí fica difícil einh cara.

Pra adicionar outros horários é só colocar na outra linha:

 

Spoiler

[{"Tuesday", "10:34"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},
[{"Tuesday", "15:30"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},
[{"Tuesday", "20:50"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},

 

 

Contato:

 

Link para o post
Compartilhar em outros sites
27 minutos atrás, Dwarfer disse:

Você edita o mod a seu gosto sem saber o que tava fazendo e quer que funcione? Aí fica difícil einh cara.

Pra adicionar outros horários é só colocar na outra linha:

 

  Mostrar conteúdo oculto


[{"Tuesday", "10:34"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},
[{"Tuesday", "15:30"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},
[{"Tuesday", "20:50"}] = {name = "Dwarf", create_pos = {x = 1, y = 1, z = 1}, remove_time = {true, {3, "min"}}},

 

 

 

Mesmo erro:

 

<?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=2740,y=1831,z=7}, {x=2802,y=1872,z=7}},
tp_goboss = {time_before = {5, "min"}, create_pos = {x = 2113, y = 1678, z = 7}, goTo = {x = 2778, y = 1893, z = 6}},
msg_time = true,
tp_goreward = {x = 2846, y = 1858, z = 6}, 
removetp_time = {5, "min"},

days = {
[{"Monday", "06:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Monday", "12:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Monday", "20:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Tuesday", "06:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Tuesday", "12:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Tuesday", "20:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Wednesday", "06:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Wednesday", "12:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Wednesday", "20:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Thursday", "06:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Thursday", "12:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Thursday", "20:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Friday", "06:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Friday", "12:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Friday", "20:15"}] = {name = "Ferumbras", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Saturday", "06:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Saturday", "12:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Saturday", "20:15"}] = {name = "Phrodomo", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},

[{"Sunday", "14:42"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Sunday", "12:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}},
[{"Sunday", "20:15"}] = {name = "Devovorga Imune", create_pos = {x = 2777, y = 1854, z = 7}, remove_time = {true, {45, "min"}}}
}}

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 roshamuul 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>

 

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites
1 hora atrás, Dwarfer disse:

Se configurar certo, vai funcionar.

 

Ja esta certo,  e ainda nd, obrigado de qualquer forma

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites

O que não funciona? Vi ali que apareceu a mensagem pro servidor corretamente, se você deu uma olhada no tópico, funciona com um monstro que cria um teleporte e depois de um tempo o teleporte é removido. Esse mod já foi testado por mim e acredito que pelo cara que fez o pedido também, como ele não acusou nenhum erro, funcionou para ele também. Dê uma olhada cuidadosa se você editou as posições corretamente e se adicionou o que eu coloquei ali no arquivo do monstro. 

Contato:

 

Link para o post
Compartilhar em outros sites
10 minutos atrás, Dwarfer disse:

O que não funciona? Vi ali que apareceu a mensagem pro servidor corretamente, se você deu uma olhada no tópico, funciona com um monstro que cria um teleporte e depois de um tempo o teleporte é removido. Esse mod já foi testado por mim e acredito que pelo cara que fez o pedido também, como ele não acusou nenhum erro, funcionou para ele também. Dê uma olhada cuidadosa se você editou as posições corretamente e se adicionou o que eu coloquei ali no arquivo do monstro. 

 

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

59 minutos atrás, Dwarfer disse:

O que não funciona? Vi ali que apareceu a mensagem pro servidor corretamente, se você deu uma olhada no tópico, funciona com um monstro que cria um teleporte e depois de um tempo o teleporte é removido. Esse mod já foi testado por mim e acredito que pelo cara que fez o pedido também, como ele não acusou nenhum erro, funcionou para ele também. Dê uma olhada cuidadosa se você editou as posições corretamente e se adicionou o que eu coloquei ali no arquivo do monstro. 

 

Desconsidere tudo que falei, erro meu aqui, consertei já.

(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Link para o post
Compartilhar em outros sites
  • 1 month later...
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?

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

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 por Boladaunm (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 years later...
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!

Link para o post
Compartilhar em outros sites
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

 

Link para o post
Compartilhar em outros sites

@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!

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo