Jump to content

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


Go to solution Solved by Dwarfer,

Recommended Posts

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 to post
Share on other sites

  • Moderator
  • Solution

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:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

  • Moderator

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:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link to post
Share on other 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 to post
Share on other sites

  • Moderator

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:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

  • 3 weeks later...
  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By 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...
    • By 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.. 
    • By 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:
    • By thelifeofpbion
      Vocês conhecem aqueles globalevents que ficam falando de x em x minutos tal mensagem...
      alguem pode fazer um que apareça essa mensagem em apenas um local? 

      tipo

      local fpos = {x = 888, y = 767, z = 7}    -- pos da area < /\
      local tpos = {x = 902, y = 781, z = 7}    -- pos da area > \/   

       ira aparecer a mensagem... se nao estiver dentro das cordenadas não aparece nada.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo