Primeiramente precisamos criar um event onDeath para quando o boss morrer. Vamos usar RevScript porque é melhor e mais fácil para esse caso.
Vai em Data/Scripts/Creaturescripts e crie um arquivo chamada boss_enable_acess.lua (ou um nome de sua preferência) e adicione o código dentro:
local event = CreatureEvent("boss_enable_access")
-- VARIÁVEIS --
local enable_time = false -- SE QUER QUE O TELEPORT OU A PORTA TENHA UM TEMPO LIMITE DEIXE true, SE QUER QUE FIQUE ATÉ O SHUTDOWN DO SERVIDOR DEIXE false
local time_hour = 0 -- SE QUER QUE O TELEPORT DURE POR MAIS DE 1 HORA, MUDE O VALOR DESEJADO EM HORAS DIFERENTE DE 0
local time_minutes = 60 -- PARA TRABALHAR COM HORAS DEIXE 60, ASSIM FICA MAIS FÁCIL MANIPULAR O TEMPO PELA VARIÁVEL DA HORA.
local enable_teleport = true -- SE VAI HABILITAR TELEPORT DEIXA true, SE HABILITAR PORTA DEIXA false
local id_teleport = 1387 -- ID DO TELEPORT
local id_door = 1325 -- ID DA PORTA
---------- CÓDIGO ---------
function event.onDeath(creature, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
local item = nil
if enable_teleport then
local teleport_pos = Position(1500, 1500, 7) -- COORDENADA QUE O TELEPORT VAI APARECER
local teleport_destination = Position(2000, 2000, 7) -- COORDENADA ONDE O TELEPORT VAI LEVAR
item = Game.createItem(id_teleport, 1, teleport_pos) -- ITEM DO TELEPORT
-- SE O ITEM DO TELEPORT NÃO EXISTIR --
if not item or item == nil then
return false
end
item:setDestination(teleport_destination) -- SETA A POSIÇÃO DO TELEPORT
else
local door_pos = Position(1500, 1500, 7) -- COORDENADA QUE A DOOR VAI APARECER
item = Game.createItem(id_door, 1, door_pos) -- ITEM DA DOOR
if not item or item == nil then
return false
end
end
-- REMOVE TELEPORT/DOOR DEPOIS DO TEMPO DETERMINADO NAS VARIÁVEIS (VARIÁVEL enable_time = true) --
if enable_time then
addEvent(function()
item:remove()
end, time_hour > 0 and ((60 * 60 * time_hour) * 1000) or ((60 * time_minutes) * 1000))
end
return true
end
event:register()
Está tudo comentado, da para entender fácil. Mas vou dar uma breve explicação, se quer que aparece teleport quando o boss morer, deixe true na variável enable_teleport, e se deixar false vai aparecer uma porta. Se quer que o teleport ou a porta seja removido depois de um tempo, primeiramente deixe o valor true na variável enable_time, se não deixe false. Caso for remover o item depois de um tempo, só configurar o tempo na variável time_hour caso queira trabalhar com horas, senão mude o valor na variável time_minutes caso queire trabalhar com minutos.
Agora, precisamos registrar esse evento no monstro (boss) para que quando ele morrer, aconteça o que está no script acima. Então, vá em Data/Events/Scripts e abra o arquivo monster.lua e procure pelo bloco:
function Monster:onSpawn(position, startup, artificial)
Em baixo da função Monster:onSpawn(position, startup, artificial), adicione a seguinte linha:
if self:getName() == "Boss" then
self:registerEvent("boss_enable_access")
end
Onde está "Boss" você vai colocar o nome do Boss que quer que ao matar gere esse evento.
Feito tudo isso, só testar.