Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest dragon_lair_access begin
- state start begin
- function get_settings()
- local settings = {}
- settings.cooldown_time = 2700
- settings.group_time = 300
- settings.access_item = 30179
- settings.dragon_vnum = 2430
- settings.spawn = {}
- settings.spawn.x = 181
- settings.spawn.y = 173
- settings.warp_in = {}
- settings.warp_in.first = {}
- settings.warp_in.last = {}
- settings.warp_in.first.x = 843677
- settings.warp_in.first.y = 1066206
- settings.warp_in.last.x = 844027
- settings.warp_in.last.y = 1067599
- settings.warp_out = {}
- settings.warp_out.first = {}
- settings.warp_out.last = {}
- settings.warp_out.first.x = 182400
- settings.warp_out.first.y = 1220600
- settings.warp_out.last.x = 182400
- settings.warp_out.last.y = 1220600
- settings.room_area = {}
- settings.room_area.first = {}
- settings.room_area.last = {}
- settings.room_area.first.x = 833000
- settings.room_area.first.y = 1062500
- settings.room_area.last.x = 844100
- settings.room_area.last.y = 1071500
- settings.access_item_amount = 3
- return settings
- end
- function get_random_point(area_coordinates)
- return math.random(area_coordinates.first.x, area_coordinates.last.x), math.random(area_coordinates.first.y, area_coordinates.last.y)
- end
- function warp_to_lair()
- local settings = dragon_lair_access.get_settings()
- local x, y = dragon_lair_access.get_random_point(settings.warp_in)
- pc.warp(x,y)
- end
- function warp_from_lair()
- local settings = dragon_lair_access.get_settings()
- local x, y = dragon_lair_access.get_random_point(settings.warp_out)
- pc.warp(x,y)
- end
- function warp_all_from_lair()
- local settings = dragon_lair_access.get_settings()
- warp_all_in_area_to_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y, settings.warp_out.first.x, settings.warp_out.first.y, settings.warp_out.last.x, settings.warp_out.last.y)
- game.set_event_flag("dragon_lair_alive", 0)
- end
- function get_time_remaining()
- local settings = dragon_lair_access.get_settings()
- return (game.get_event_flag("dragon_lair_time") + settings.cooldown_time - get_global_time())
- end
- function give_item_to_ghost()
- local settings = dragon_lair_access.get_settings()
- say_title("Sura szellem:")
- say("Ha szeretnéd betudlak vinni, közvetlen a")
- say("Sárkány templomába. Viszont semmi sincs ingyen!")
- say("Épp ezért szükségem lesz az alábbi tárgyra:")
- say_item_vnum(30179)
- say_reward("A belépéshez "..settings.access_item_amount.." darab Csavart kulcs szükséges!")
- say("")
- local give_item = select("Vedd el és vigyél be!", "Mégse")
- if give_item == 1 then
- pc.remove_item(settings.access_item, settings.access_item_amount)
- return true
- else
- return false
- end
- end
- function show_time_remaining(time_remaining)
- q.set_title("Öld meg a Kék Sárkányt")
- send_letter("Öld meg a Kék Sárkányt")
- q.set_clock("Hátralevő idő: "..time_remaining)
- timer("dragon_lair_timer", time_remaining)
- if not party.is_party() then
- notice("A Sárkány megölésére összesen "..time_remaining / 60 .." Perced van!")
- elseif party.is_party() then
- notice("A Sárkány megölésére összesen "..time_remaining / 60 .." Percetek van!")
- end
- q.start()
- end
- when enter or login begin
- pc.setqf("is_leader", 0)
- q.done()
- if pc.get_map_index() == 79 then
- dragon_lair_access.warp_from_lair()
- end
- end
- when blue_dragon_timer.server_timer begin
- game.set_event_flag("dragon_lair_timer_used", 0)
- if game.get_event_flag("dragon_lair_alive") == 1 then
- notice_all("A Kék Sárkány még él!")
- else
- notice_all("A Kék Sárkány visszatért!")
- end
- dragon_lair_access.warp_all_from_lair()
- end
- when 30121.chat."Megakarom ölni a Sárkányt" with pc.get_map_index() == 73 begin
- local starttime = game.get_event_flag("dragon_lair_time")
- local current_time = get_global_time()
- local settings = dragon_lair_access.get_settings()
- local time_remaining = dragon_lair_access.get_time_remaining()
- local can_enter_now = 0
- if pc.getqf("next_time") == 0 then
- can_enter_now = 1
- else
- can_enter_now = get_global_time() > pc.getqf("next_time")
- end
- if !can_enter_now then
- say_title("Sura szellem:")
- say(string.format("%d Perc múlva újra beléphetsz a Sárkány templomába.", tonumber((pc.getqf("next_time") - get_global_time()) / 60)))
- say("")
- return
- end
- if pc.count_item(settings.access_item) >= settings.access_item_amount then
- if starttime + settings.group_time >= current_time then
- local password_input;
- repeat
- say_title("Sura szellem:")
- say("Sajnos már vannak a Sárkány templomában.")
- say("Viszont ha tudod a helyes kódot, akkor még van")
- say("esélyed hogy te is bejuss a Sárkány templomba.")
- say("")
- say_reward("A belépéshez "..settings.access_item_amount.." darab Csavart kulcs szükséges!")
- say("")
- password_input = tonumber(input())
- if password_input != game.get_event_flag("dragon_lair_password") then
- say_title("Sura szellem:")
- say("Sajnos az általad megadott biztonsági kód hibás.")
- say("Ha szeretnéd megpróbálhatod újra, hátha most majd")
- say("sikeresen megtudod adni a helyes biztonsági kódot.")
- say("")
- say_reward("A biztonsági kód csak is számjegyekből állhat!")
- say("")
- local again = select("Újra megpróbálom!", "Mégse")
- if again == 2 then
- return
- end
- end
- until password_input == game.get_event_flag("dragon_lair_password")
- if not dragon_lair_access.give_item_to_ghost() then
- return
- end
- pc.setqf("time", starttime)
- dragon_lair_access.warp_to_lair()
- set_state(kill_dragon)
- elseif time_remaining < 0 and npc.lock() then
- say_title("Sura szellem:")
- say("Te vagy az első aki beszeretne lépni a Sárkány")
- say("templomába. Beviszlek én téged, de cserébe szükségem")
- say("lesz "..settings.access_item_amount.." darab Csavart kulcsra. A belépés előtt meg kell")
- say("adnod egy biztonsági jelszót, amely segítségével a")
- say("társad/társaid csatlakozhatnak hozzád.")
- say("")
- say_reward("A belépéshez "..settings.access_item_amount.." darab Csavart kulcs szükséges!")
- say_reward("A biztonsági kód csak is számjegyekből állhat!")
- say("")
- local abort = select("Készen állok!", "Mégse")
- if abort == 2 then
- npc.unlock()
- return
- end
- local password_number;
- repeat
- say_title("Sura szellem:")
- say("Adj meg egy biztonsági kódot, amellyel a")
- say("társaid csatlakozhatnak majd hozzád.")
- say("")
- password_number = tonumber(input())
- local again;
- if type(password_number) != 'number' then
- say_title("Sura szellem:")
- say_reward("A kódnak számokból kell állnia!")
- say("")
- again = select("Újra megpróbálom!", "Mégse")
- if again == 2 then
- npc.unlock()
- return
- end
- end
- until type(password_number) == 'number'
- if not dragon_lair_access.give_item_to_ghost() then
- npc.unlock()
- return
- end
- if dragon_lair_access.get_time_remaining() > 0 then
- npc.unlock()
- say_title("Sura szellem:")
- say("Már egy másik csapat próbálja megölni a Sárkányt.")
- say("Várnod kell egy kicsit, mielőtt újra be tudsz")
- say("lépni a Sárkány templomába.")
- say("")
- return
- end
- pc.setqf("password", password_number)
- timer("dragon_lair_warptimer", pc.get_channel_id()*2)
- npc.unlock()
- else
- say_title("Sura szellem:")
- say("Már egy másik csapat próbálja megölni a Sárkányt.")
- say("Várnod kell egy kicsit, mielőtt újra be tudsz")
- say("lépni a Sárkány templomába.")
- say("")
- return
- end
- else
- say_title("Sura szellem:")
- say("Neked jelenleg "..pc.count_item(30179).." Csavart kulcsod van.")
- say_item_vnum(30179)
- say_reward("A belépéshez "..settings.access_item_amount.." darab Csavart kulcs szükséges!")
- say("")
- say_reward("Csavart kulcsot az alábbi szörnytől szerezhetsz:")
- say_reward("Yonghan Tábornok")
- say("")
- return
- end
- end
- when dragon_lair_warptimer.timer begin
- local settings = dragon_lair_access.get_settings()
- if dragon_lair_access.get_time_remaining() < 0 then
- local starttime = get_global_time()
- game.set_event_flag("dragon_lair_time", starttime)
- pc.setqf("time", starttime)
- pc.setqf("is_leader", 1)
- game.set_event_flag("dragon_lair_password", pc.getqf("password"))
- server_timer("blue_dragon_timer", settings.cooldown_time)
- dragon_lair_access.warp_to_lair()
- set_state(spawn_dragon)
- else
- say_title("Sura szellem:")
- say("Már egy másik csapat próbálja megölni a Sárkányt.")
- say("Várnod kell egy kicsit, mielőtt újra be tudsz")
- say("lépni a Sárkány templomába.")
- say("")
- end
- pc.setqf("password", 0)
- end
- end
- state spawn_dragon begin
- when login begin
- local settings = dragon_lair_access.get_settings()
- purge_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y)
- regen_in_map(79, "locale/hungary/map/metin2_map_skipia_dungeon_boss/regen.txt")
- mob.spawn(8036,166,156,1)
- game.set_event_flag("dragon_lair_alive", 1)
- if party.is_party() then
- notice_all(pc.get_name().." és csapata megpróbálja megölni a Kék Sárkányt!")
- notice("A megadott biztonsági kód: "..game.get_event_flag("dragon_lair_password"))
- notice("5 Perced van arra hogy tovább add a kódot a társaidnak!")
- dragon_lair_access.show_time_remaining(settings.cooldown_time)
- notice("Pusztítsátok el az Árulás Metinkövet, hogy előcsalhassátok a Kék Sárkányt!")
- elseif not party.is_party() then
- notice_all(pc.get_name().." megpróbálja megölni a Kék Sárkányt!")
- notice("A megadott biztonsági kód: "..game.get_event_flag("dragon_lair_password"))
- dragon_lair_access.show_time_remaining(settings.cooldown_time)
- notice("Pusztítsd el az Árulás Metinkövet, hogy előcsalhasd a Kék Sárkányt!")
- end
- end
- when 8036.kill with pc.get_map_index() == 79 begin
- local settings = dragon_lair_access.get_settings()
- if game.get_event_flag("dragon_lair_alive") == 1 then
- mob.spawn_group(settings.dragon_vnum, settings.spawn.x, settings.spawn.y, 1, 1, 1)
- set_state(kill_dragon)
- else
- return
- end
- end
- end
- state kill_dragon begin
- when dragon_lair_timer.timer begin
- set_state(start)
- end
- when login begin
- if pc.getqf("time") != game.get_event_flag("dragon_lair_time") or dragon_lair_access.get_time_remaining() <= 0 then
- set_state(start)
- else
- dragon_lair_access.show_time_remaining(dragon_lair_access.get_time_remaining())
- end
- end
- when button or info begin
- if party.is_party() then
- notice(string.format("Még %d Percetek van megölni a Kék Sárkányt!", dragon_lair_access.get_time_remaining() / 60))
- local settings = dragon_lair_access.get_settings()
- if (pc.getqf("is_leader") == 1 and settings.cooldown_time-dragon_lair_access.get_time_remaining() < settings.group_time) then
- notice("A kód: "..game.get_event_flag("dragon_lair_password"))
- notice("5 Perced van arra hogy tovább add a kódot a társaidnak!")
- end
- elseif not party.is_party() then
- notice(string.format("Még %d Perced van megölni a Kék Sárkányt!", dragon_lair_access.get_time_remaining() / 60))
- end
- end
- when 30121.chat."Ki akarok menni!" with pc.get_map_index() == 79 begin
- say_title("Sura szellem:")
- say("Jól gondolt át, hogy döntesz.")
- say("")
- say_reward("Biztosan ki szeretnél menni?")
- local warp = select("Igen, kimegyek!", "Még maradok!")
- if warp == 1 then
- dragon_lair_access.warp_from_lair()
- set_state(start)
- end
- end
- when 2493.kill with pc.get_map_index() == 79 begin
- game.set_event_flag("dragon_lair_alive", 0)
- local settings = dragon_lair_access.get_settings()
- if not party.is_party() then
- notice("Ha kiszeretnél menni, menj a Sura szellemhez!")
- notice_all(pc.get_name().." sikeresen megölte a Kék Sárkányt!")
- purge_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y)
- elseif party.is_party() then
- party.chat("Ha kiszeretnétek menni, menjetek a Sura szellemhez!")
- notice_all(pc.get_name().." és csapata sikeresen megölte a Kék Sárkányt!")
- purge_area(settings.room_area.first.x, settings.room_area.first.y, settings.room_area.last.x, settings.room_area.last.y)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement