forked from metin2/server
1
0
Fork 0
server/gamefiles/data/quest/event_flame_dungeon_open.quest

120 lines
4.1 KiB
Plaintext

define EVENT_NPC 20381
define TELEPORT_ITEM 71173
define TELEPORT_ITEM_CNT 1
define PASS_ITEM 71174
define PASS_ITEM_CNT 3
define ENTRY_MAP_INDEX 62
define ENTRY_MAP_X 614200
define ENTRY_MAP_Y 706800
define KILL_MOB1 3101
define KILL_MOB2 3102
define KILL_MOB3 3103
define KILL_MOB4 3104
define KILL_MOB5 3105
define KILL_MOB6 3190
define KILL_MOB7 3191
quest event_flame_dungeon_open begin
state start begin
when EVENT_NPC.chat.gameforge.event_flame_dungeon_open._010_npcChat with pc.get_level() >= 90 begin
say(gameforge.event_flame_dungeon_open._020_say)
wait()
say(gameforge.event_flame_dungeon_open._030_say)
wait()
say(gameforge.event_flame_dungeon_open._080_say)
pc.setqf("event_FD_time", 0)
set_state(run)
end
end
state run begin
when EVENT_NPC.chat.gameforge.event_flame_dungeon_open._040_npcChat with game.get_event_flag("w21open_event")>0 begin
say(gameforge.event_flame_dungeon_open._050_say)
wait()
local t = pc.getqf("event_FD_time")
local killcount = pc.getqf("kill_done")
if killcount == 0 then
say(gameforge.event_flame_dungeon_open._080_say)
elseif (t==0) or (t+86400 < get_global_time()) then
say(gameforge.event_flame_dungeon_open._060_say)
pc.give_item2(TELEPORT_ITEM, TELEPORT_ITEM_CNT)
pc.give_item2(PASS_ITEM, PASS_ITEM_CNT)
pc.setqf("event_FD_time", get_global_time())
pc.setqf("kill_count_1", 0)
else
say(gameforge.event_flame_dungeon_open._070_say)
end
end
when letter with game.get_event_flag("w21open_event")>0 begin
send_letter(gameforge.event_flame_dungeon_open._010_npcChat)
--³²Àº óġ ¼ö ¾È³»¹®
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
event_flame_dungeon_open.kill_count()
end
when button or info with game.get_event_flag("w21open_event")>0 begin
say_title(gameforge.event_flame_dungeon_open._010_npcChat)
say(string.format(gameforge.levelup._26_say, 100 - pc.getqf("kill_count_1")))
end
when KILL_MOB1.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB2.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB3.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB4.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB5.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB6.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when KILL_MOB7.kill begin
local kill_count = pc.getqf("kill_count_1")
pc.setqf("kill_count_1", kill_count+1)
event_flame_dungeon_open.kill_count()
end
when TELEPORT_ITEM.use begin
pc.warp(ENTRY_MAP_X, ENTRY_MAP_Y, ENTRY_MAP_INDEX)
pc.remove_item(TELEPORT_ITEM, 1)
end
function kill_count()
local total_remain = 100
local remain1 = pc.getqf("kill_count_1")
local remain_count = total_remain - remain1
q.set_counter_value(remain_count)
if total_remain == 0 then
pc.setqf("kill_done", 1)
end
end
end
end