- Mesaj
- 73
- Çözümler
- 2
- Beğeni
- 15
- Puan
- 444
- Ticaret Puanı
- 0
Herkese iyi çalışmalar diliyorum,
Razadörün questini çalıştırdım, ancak nemerede şu problemi yaşıyorum:
İçeri ışınladığı anda geri tekrardan dışarı atıyor. 2 farklı quest denedim 2sinde de aynısını yapıyor. map index'im ch1-core3'te tanımlı "352" id numarası ile.
Questi altta bıraktım. Yardımcı olabilecek var mı;?
Razadörün questini çalıştırdım, ancak nemerede şu problemi yaşıyorum:
İçeri ışınladığı anda geri tekrardan dışarı atıyor. 2 farklı quest denedim 2sinde de aynısını yapıyor. map index'im ch1-core3'te tanımlı "352" id numarası ile.
Questi altta bıraktım. Yardımcı olabilecek var mı;?
snow_dungeon.quest:
define DUNGEON_MAP_INDEX 352
define ENTRY_MAP_INDEX 61
define DUNGEON_MAN 20397
define DUNGEON_MAN_DIR 0
define ENTRY_MAN 20395
define ENTER_LIMIT_TIME 240 -- 240min (4h)
define MOB_REGEN_FILE_PATH "data/dungeon/snow_dungeon/"
define REJOIN_LIMIT_TIME 5 -- 5min
define LEVEL4_BOSS 6151
define LEVEL5_KEY 30332
define LEVEL5_CUBE 20398
define LEVEL5_GEN_LIMIT 100
define LEVEL2_KEY 30331
define LEVEL6_STONE 8058
define LEVEL7_BOSS 6151
define LEVEL8_KEY 30333
define LEVEL9_STONE 20399
define FINAL_BOSS 6191
quest snow_dungeon begin
state start begin
function setting()
return {
["outside_entry_pos"] = { 4322, 1655 },
["floor_pos"] = {
{ 5291, 1814 },
{ 5540, 1797 },
{ 5882, 1800 },
{ 5293, 2071 },
{ 5540, 2074 },
{ 5866, 2076 },
{ 5423, 2244 },
{ 5689, 2237 },
{ 5969, 2229 },
{ 6047, 1924 }
},
["dungeon_man_pos"] = { 172, 261 },
["dungeon_man_last_pos"] = { 849, 641 },
["need_shaman"] = true,
["need_assassin"] = true,
["check_mount"] = true,
["level5_cube_pos"] = {
{ 449, 488 },
{ 455, 445 },
{ 419, 422 },
{ 382, 444 },
{ 389, 488 }
},
["level6_stone_pos"] = { 747, 494 },
["level4_boss_cords"] = {
{ 160, 490 },
{ 215, 440 },
{ 140, 425 }
},
["level7_boss_pos"] = {
{ 302, 678 },
{ 281, 657 },
{ 303, 635 },
{ 324, 656 }
},
["final_boss_poss"] = { 927, 333 },
["level9_stone_pos"] = { 849, 660 },
["floor_jump_delay"] = 5,
["floor_check_delay"] = 5,
}
end
function is_snowd(idx)
return idx >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) * 10000
end
function make_dungeon()
local setting = snow_dungeon.setting()
d.new_jump_party(DUNGEON_MAP_INDEX, setting.floor_pos[1][1], setting.floor_pos[1][2])
d.spawn_mob_ac_dir(DUNGEON_MAN, setting.dungeon_man_pos[1], setting.dungeon_man_pos[2], DUNGEON_MAN_DIR)
d.setf("level", 0)
d.setf("started", 0)
d.setf("dungeon_enter", 0)
end
function go_boss()
local setting = snow_dungeon.setting()
if not party.is_leader() then
say(locale_quest(8209))
return
end
say(locale_quest(8210))
local warp = select(locale_quest(8211), locale_quest(8212))
if warp == 1 then
npc.purge()
d.notice(8172)
server_timer("snow_dungeon_floor10_timer", setting.floor_jump_delay, d.get_map_index())
end
end
function level_clear()
d.clear_regen()
d.purge_area(520000, 155000, 612000, 228600)
end
function clear_timer(inx)
clear_server_timer("snow_dungeon_floor2_timer", inx)
clear_server_timer("snow_dungeon_floor3_timer", inx)
clear_server_timer("snow_dungeon_floor4_timer", inx)
clear_server_timer("snow_dungeon_floor5_timer", inx)
clear_server_timer("snow_dungeon_floor6_timer", inx)
clear_server_timer("snow_dungeon_floor7_timer", inx)
clear_server_timer("snow_dungeon_floor8_timer", inx)
clear_server_timer("snow_dungeon_floor9_timer", inx)
clear_server_timer("snow_dungeon_45m_left_timer", inx)
clear_server_timer("snow_dungeon_30m_left_timer", inx)
clear_server_timer("snow_dungeon_15m_left_timer", inx)
clear_server_timer("snow_dungeon_5m_left_timer", inx)
clear_server_timer("snow_dungeon_1m_left_timer", inx)
clear_server_timer("snow_dungeon_0m_left_timer", inx)
clear_server_timer("snow_dungeon_end_timer", inx)
clear_server_timer("snow_dungeon_check_timer", inx)
clear_server_timer("snow_dungeon_leader_out_timer", inx)
end
when login begin
local idx = pc.get_map_index()
local setting = snow_dungeon.setting()
if idx == DUNGEON_MAP_INDEX then
pc.warp(setting.outside_entry_pos[1] * 100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
elseif snow_dungeon.is_snowd(idx) then
--pc.set_warp_location(0, 0 , 0)
pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1], setting.outside_entry_pos[2])
if d.getf("dungeon_enter") == 0 then
if get_global_time() - pc.getf("snow_dungeon", "exit_time") < ENTER_LIMIT_TIME * 60 then
d.notice(1321)
say(locale_quest(8175))
timer("snow_dungeon_warp_timer", setting.floor_jump_delay)
elseif pc.get_level() < 100 then
d.notice(8184)
say(locale_quest(8184))
timer("snow_dungeon_warp_timer", setting.floor_jump_delay)
end
end
end
end
when snow_dungeon_warp_timer.timer begin
local setting = snow_dungeon.setting()
pc.warp(setting.outside_entry_pos[1] * 100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX)
end
when logout begin
local idx = pc.get_map_index()
if snow_dungeon.is_snowd(idx) then
if d.getf("dungeon_enter") == 1 then
pc.setf("snow_dungeon", "exit_time", get_global_time())
end
if party.is_leader() then
server_timer("snow_dungeon_leader_out_timer", REJOIN_LIMIT_TIME * 60, d.get_map_index())
end
end
end
when ENTRY_MAN.chat.locale_quest(8173) begin
local setting = snow_dungeon.setting()
if party.is_party() then
local party_check = 0
if d.find(party.getf("dungeon_index")) then
party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
end
if d.find(party.getf("dungeon_index")) and party_check then
if get_global_time() - pc.getf("snow_dungeon", "exit_time") < REJOIN_LIMIT_TIME * 60 then
local level = d.getf_from_map_index("level", party.getf("dungeon_index"))
pc.warp(setting.floor_pos[level][1] * 100, setting.floor_pos[level][2] * 100, party.getf("dungeon_index"))
else
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8176))
end
else
local pids = { party.get_member_pids() }
local notEnoughLevelMembers = {}
local levelCheck = true
local jobAssassin = 0
local jobShaman = 0
local rideCheck = true
for i, pid in next, pids, nil do
q.begin_other_pc_block(pid)
if pc.get_level() < 100 then
table.insert(notEnoughLevelMembers, pc.get_name())
levelCheck = false
end
if setting.need_assassin then
if pc.get_job() == ASSASSIN then
jobAssassin = jobAssassin + 1
end
end
if setting.need_shaman then
if pc.get_job() == SHAMAN then
jobShaman = jobShaman + 1
end
end
if setting.check_mount then
if pc.is_mount() then
rideCheck = false
end
end
q.end_other_pc_block()
end
if not levelCheck then
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8180))
for i, name in next, notEnoughLevelMembers, nil do
say(color(1,1,0), locale_quest(1378, name))
end
return
end
if setting.need_assassin then
if jobAssassin < 1 then
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8177))
return
end
end
if setting.need_shaman then
if jobShaman < 1 then
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8177))
return
end
end
if setting.check_mount then
if not rideCheck then
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8174))
return
end
end
if party.is_leader() then
say_title(mob_name(ENTRY_MAN))
say(locale_quest(8177))
say(locale_quest(8178))
local warp = select(locale_quest(8179), locale_quest(8181))
if warp == 1 then
if party.is_map_member_flag_lt("exit_time", get_global_time() - ENTER_LIMIT_TIME * 60) then
snow_dungeon.make_dungeon()
else
say(locale_quest(8182))
end
end
party.setf("snow_dungeon_boss_kill_count", 0)
else
say(locale_quest(8183))
end
end
else
say(locale_quest(8184))
end
end
when DUNGEON_MAN.chat."< GM > Information" with snow_dungeon.is_snowd(pc.get_map_index()) and pc.get_gm_level() == 5 begin
say_title("General Information")
if snow_dungeon.is_snowd(d.get_map_index()) then
say_reward("In dungeon")
end
say(string.format("Current level : %d", d.getf("level")))
say(string.format("Monster count : %d", d.count_monster()))
say(string.format("Dungeon map_ndex : %d", d.get_map_index()))
say(string.format("Player map_index : %d", pc.get_map_index()))
say(string.format("Access limit : %d", pc.getf("snow_dungeon", "exit_time")))
say(string.format("Global time : %d", get_global_time()))
if d.is_unique_dead("boss_4") then
say("Level 7 real boss (Szel) is dead")
else
say("Level 7 real boss (Szel) is not dead")
end
if game.get_event_flag("ignore_hanma_conditions") > 0 then
say("Hanma conditions are off.")
else
say("Hanma conditions are on.")
end
wait()
say_title("Hanma Conditions")
say_yellow(string.format("Level 4 - Only with Buff (HOSIN) can deal damage on %s", mob_name(LEVEL4_BOSS)))
say_yellow(string.format("Level 6 - Only Shaman can deal damage on %s", mob_name(LEVEL6_STONE)))
say_yellow(string.format("Level 7 - Only with Buff (GICHEON) can deal damage on %s", mob_name(LEVEL4_BOSS)))
say_yellow(string.format("Level 9 - Only Ninja and Shaman can deal damage on %s", mob_name(LEVEL9_STONE)))
local s = select("Enable Conditions", "Disable Conditions", "Cancel")
if s == 1 then
game.set_event_flag("ignore_hanma_conditions", 0)
elseif s == 2 then
game.set_event_flag("ignore_hanma_conditions", 1)
else return end
end
when DUNGEON_MAN.chat.locale_quest(8167) with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 0 begin
local setting = snow_dungeon.setting()
if party.is_leader() then
if d.getf("started") == 0 then
say(locale_quest(8168))
d.setf("level", 1)
d.setf("started", 1)
d.setf("dungeon_enter", 1)
party.setf("dungeon_index", d.get_map_index())
d.setf("party_leader_pid", party.get_leader_pid())
server_timer("snow_dungeon_45m_left_timer", 15 * 60, d.get_map_index())
d.notice(8169)
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_1.txt")
server_loop_timer("snow_dungeon_check_timer", setting.floor_check_delay, d.get_map_index())
end
else
say(locale_quest(8209))
end
end
when DUNGEON_MAN.chat.locale_quest(8208) with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 9 begin
snow_dungeon.go_boss()
end
when LEVEL2_KEY.use with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 2 begin
if d.getf("level2_use_key") > 0 then
test_chat("TEST : Key already used!")
return
end
local setting = snow_dungeon.setting()
if setting.need_shaman then
if pc.get_job() != SHAMAN then
say(locale_quest(8190))
return
end
end
local rand = number(1, 100)
local chance = 30 -- 30%
if rand <= chance or is_test_server() then
snow_dungeon.level_clear()
d.setf("level2_use_key", 1)
d.notice(8191)
server_timer("snow_dungeon_floor3_timer", setting.floor_jump_delay, get_server_timer_arg())
else
say(locale_quest(8192))
end
item.remove()
end
when LEVEL8_KEY.use with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 8 begin
if d.getf("level8_use_key") > 0 then
test_chat("TEST : Key already used!")
return
end
local setting = snow_dungeon.setting()
if setting.need_assassin or setting.need_shaman then
if pc.get_job() != ASSASSIN and pc.get_job() != SHAMAN then
return
end
end
snow_dungeon.level_clear()
d.setf("level8_use_key", 1)
d.notice(8171)
server_timer("snow_dungeon_floor9_timer", 5, get_server_timer_arg())
item.remove()
end
when LEVEL5_CUBE.take with snow_dungeon.is_snowd(d.get_map_index()) and item.get_vnum() == LEVEL5_KEY and d.getf("level") == 5 begin
local setting = snow_dungeon.setting()
if npc.get_vid() == d.get_unique_vid("cube_1") then
npc.purge()
say(locale_quest(8196))
d.setf("cubekill", 2)
if d.count_monster() < LEVEL5_GEN_LIMIT then
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_5.txt")
end
item.remove()
elseif npc.get_vid() == d.get_unique_vid("cube_2") then
if d.getf("cubekill") == 2 then
npc.purge()
say(locale_quest(8197))
d.setf("cubekill", 3)
if d.count_monster() < LEVEL5_GEN_LIMIT then
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_5.txt")
end
else
say(locale_quest(8198))
if is_test_server() then
say("2nd")
end
end
item.remove()
elseif npc.get_vid() == d.get_unique_vid("cube_3") then
if d.getf("cubekill") == 3 then
npc.purge()
say(locale_quest(8199))
d.setf("cubekill", 4)
if d.count_monster() < LEVEL5_GEN_LIMIT then
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_5.txt")
end
else
say(locale_quest(8198))
if is_test_server() then
say("3rd")
end
end
item.remove()
elseif npc.get_vid() == d.get_unique_vid("cube_4") then
if d.getf("cubekill") == 4 then
npc.purge()
say(locale_quest(8200))
d.setf("cubekill", 5)
if d.count_monster() < LEVEL5_GEN_LIMIT then
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_5.txt")
end
else
say(locale_quest(8198))
if is_test_server() then
say("4th")
end
end
item.remove()
else
item.remove()
if d.getf("cubekill") == 5 then
npc.purge()
snow_dungeon.level_clear()
d.notice(8170)
server_timer("snow_dungeon_floor6_timer", setting.floor_jump_delay, get_server_timer_arg())
else
say(locale_quest(8198))
if is_test_server() then
say("5th")
end
end
end
end
when kill with snow_dungeon.is_snowd(pc.get_map_index()) begin
local setting = snow_dungeon.setting()
local level = d.getf("level")
if level == 2 then
local rand = number(1, 100)
local chance = 3 -- 3%
if rand <= chance or is_test_server() then
game.drop_item(LEVEL2_KEY, 1)
end
elseif level == 5 then
local rand = number(1, 100)
local chance = 3 -- 3%
if rand <= chance or is_test_server() then
game.drop_item(LEVEL5_KEY, 1)
end
elseif level == 8 then
if setting.need_assassin then
if pc.get_job() != ASSASSIN then
return
end
end
local rand = number(1, 100)
local chance = 3 -- 3%
if rand <= chance or is_test_server() then
game.drop_item(LEVEL8_KEY, 1)
end
end
end
when LEVEL6_STONE.kill with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 6 begin
local setting = snow_dungeon.setting()
snow_dungeon.level_clear()
d.notice(8202)
server_timer("snow_dungeon_floor7_timer", setting.floor_jump_delay, get_server_timer_arg())
end
when LEVEL9_STONE.kill with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 9 begin
local setting = snow_dungeon.setting()
snow_dungeon.level_clear()
d.spawn_mob_ac_dir(DUNGEON_MAN, setting.dungeon_man_last_pos[1], setting.dungeon_man_last_pos[2], 1)
end
when FINAL_BOSS.kill with snow_dungeon.is_snowd(pc.get_map_index()) and d.getf("level") == 10 begin
snow_dungeon.level_clear()
d.notice(8214)
d.notice(8215)
server_timer("snow_dungeon_end_timer", 60, d.get_map_index())
if party.is_party() then
party.setf("snow_dungeon_boss_kill_count", 1)
end
end
when snow_dungeon_check_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = d.getf("level")
if level == 1 and d.count_monster() <= 0 then
d.notice(8185)
server_timer("snow_dungeon_floor2_timer", setting.floor_jump_delay, d.get_map_index())
elseif level == 3 and d.count_monster() <= 0 then
d.notice(8186)
server_timer("snow_dungeon_floor4_timer", setting.floor_jump_delay, d.get_map_index())
elseif level == 4 and d.count_monster() <= 0 then
if d.getf("level4_boss_spawn") == 1 then
d.notice(8187)
server_timer("snow_dungeon_floor5_timer", setting.floor_jump_delay, d.get_map_index())
else
d.setf("level4_boss_spawn", 1)
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_4.txt")
local r = number(1, table.getn(setting.level4_boss_cords))
d.spawn_mob(LEVEL4_BOSS, setting.level4_boss_cords[r][1], setting.level4_boss_cords[r][2])
end
elseif level == 6 and d.count_monster() <= 0 then
d.notice(8188)
d.spawn_mob(LEVEL6_STONE, setting.level6_stone_pos[1], setting.level6_stone_pos[2])
elseif level == 7 then
for i = 1, 3 do
if not d.is_unique_dead("boss_" .. i) then
if d.unique_get_hp_perc("boss_" .. i) < 50 then
d.purge_unique("boss_" .. i)
d.notice(8204)
end
end
end
if d.is_unique_dead("boss_4") then
snow_dungeon.level_clear()
d.notice(8205)
server_timer("snow_dungeon_floor8_timer", setting.floor_jump_delay, d.get_map_index())
end
end
end
end
when snow_dungeon_floor2_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 2
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_2.txt")
d.notice(8189)
end
end
when snow_dungeon_floor3_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 3
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_3.txt")
d.notice(8169)
end
end
when snow_dungeon_floor4_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 4
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_4.txt")
d.notice(8193)
end
end
when snow_dungeon_floor5_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 5
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_5.txt")
local vis = { 0, 0, 0, 0, 0 }
for i = 1, 5 do
vis[i] = 0
end
for i = 1, 5 do
local ran = number(1, 5)
local st = 0
for j = 1, 50 do
st = st + 1
if st > 5 then
st = 1
end
if vis[st] == 0 then
ran = ran - 1
if ran == 0 then
vis[st] = 1
d.set_unique("cube_" .. st, d.spawn_mob(LEVEL5_CUBE, setting.level5_cube_pos[i][1], setting.level5_cube_pos[i][2]))
break
end
end
end
end
d.notice(8194)
d.notice(8195)
end
end
when snow_dungeon_floor6_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 6
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_6.txt")
d.notice(8201)
end
end
when snow_dungeon_floor7_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 7
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_7.txt")
local vis = { 0, 0, 0, 0 }
for i = 1, 3 do
vis[i] = 0
end
for i = 1, 4 do
local ran = number(1, 4)
local st = 0
for j = 1, 50 do
st = st + 1
if st > 4 then
st = 1
end
if vis[st] == 0 then
ran = ran - 1
if ran == 0 then
vis[st] = 1
d.set_unique("boss_" .. st, d.spawn_mob(LEVEL7_BOSS, setting.level7_boss_pos[i][1], setting.level7_boss_pos[i][2]))
break
end
end
end
end
d.notice(8203)
end
end
when snow_dungeon_floor8_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 8
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_8.txt")
d.notice(8206)
end
end
when snow_dungeon_floor9_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 9
snow_dungeon.level_clear()
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_9.txt")
d.spawn_mob(LEVEL9_STONE, setting.level9_stone_pos[1], setting.level9_stone_pos[2])
d.notice(8207)
end
end
when snow_dungeon_floor10_timer.server_timer begin
if d.select(get_server_timer_arg()) then
local setting = snow_dungeon.setting()
local level = 10
d.setf("level", level)
d.jump_all(setting.floor_pos[level][1], setting.floor_pos[level][2])
d.regen_file(MOB_REGEN_FILE_PATH .. "sd_10.txt")
d.spawn_mob(FINAL_BOSS, setting.final_boss_poss[1], setting.final_boss_poss[2])
d.notice(8213)
end
end
when snow_dungeon_45m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(8216, 45)
d.notice(8217)
server_timer("snow_dungeon_30m_left_timer", 15 * 60, get_server_timer_arg())
end
end
when snow_dungeon_30m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(8216, 30)
d.notice(8217)
server_timer("snow_dungeon_15m_left_timer", 15 * 60, get_server_timer_arg())
end
end
when snow_dungeon_15m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(8216, 15)
d.notice(8217)
server_timer("snow_dungeon_5m_left_timer", 10 * 60, get_server_timer_arg())
end
end
when snow_dungeon_5m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(8216, 5)
d.notice(8217)
server_timer("snow_dungeon_1m_left_timer", 4 * 60, get_server_timer_arg())
end
end
when snow_dungeon_1m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice(8216, 1)
d.notice(8217)
server_timer("snow_dungeon_0m_left_timer", 60, get_server_timer_arg())
end
end
when snow_dungeon_0m_left_timer.server_timer begin
local setting = snow_dungeon.setting()
if d.select(get_server_timer_arg()) then
d.notice(8218)
d.notice(8219)
server_timer("snow_dungeon_end_timer", 10, d.get_map_index())
end
end
when snow_dungeon_end_timer.server_timer begin
local setting = snow_dungeon.setting()
if d.select(get_server_timer_arg()) then
snow_dungeon.clear_timer(d.get_map_index())
d.setf("party_leader_pid", 0)
d.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1], setting.outside_entry_pos[2])
d.exit_all()
end
end
when snow_dungeon_leader_out_timer.server_timer begin
local setting = snow_dungeon.setting()
if d.select(get_server_timer_arg()) then
server_timer("snow_dungeon_end_timer", 10, d.get_map_index())
end
end
end
end