--- Lua ½ºÅ©¸³Æ® ¾Ïȣȭ function get_module_name() return "ETC_dungeon_prop" end -- Á¦¾îÀåÄ¡ ¹× ÄÚ¾î Á¡·É½Ã È£ÃâµÉ ÇÔ¼ö. -- ³»ºÎÀûÀ¸·Î ¼­¹ö¿¡¼­ Á¦°øÇÏ´Â ¼ÒÀ¯±Ç º¯°æ ÇÔ¼ö ¹× ÁÖº¯ ¸÷ ¸®Á¨ ÇÔ¼ö( respawn_near_mob( range ) )°¡ »ç¿ëµÊ. function casting_tactical_position( dungeon_id, position_id ) -- È£ÃâµÈ ÁöÁ¡ÀÇ (Á¦¾îÀåÄ¡ ȤÀº ´øÀü ÄÚ¾î) ¼ÒÀ¯±ÇÀ» º¯°æ½ÃŰ´Â ºÎºÐ change_tactical_position_owner( dungeon_id, position_id ) -- º¯°æµÈ ÁöÁ¡ ÁÖº¯ÀÇ °¡µð¾ðÀ» ¸®Á¨ respawn_guardian_object( dungeon_id, position_id ) end -- ´øÀü Ãⱸ Ŭ¸¯½Ã Çʵå·Î ÅÚ·¹Æ÷Æ® ½ÃÄÑ ÁÖ´Â ÀÏ¹Ý ÇÔ¼ö. function exit_dungeon( dungeon_id ) -- ÀÒ¾î¹ö¸° ´øÀü1 if dungeon_id == 130000 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 155817 + math.random(0,60) , 103724 + math.random(0,60) ) -- ÀÒ¾î¹ö¸° ´øÀü2 elseif dungeon_id == 130600 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 152309 + math.random(0,60) , 102886 + math.random(0,60) ) -- ¼öÁ¤ °è°î1 elseif dungeon_id == 130300 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 103210 + math.random(0,60) , 100366 + math.random(0,60) ) -- ¼öÁ¤ °è°î2 elseif dungeon_id == 130500 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 99757 + math.random(0,60) , 103236 + math.random(0,60) ) -- ¸Þ¸¶¸¥ ´ÞºûÀÇ À¯Àû1 elseif dungeon_id == 130400 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 132995 + math.random(0,60) , 87096 + math.random(0,60) ) -- ¸Þ¸¶¸¥ ´ÞºûÀÇ À¯Àû2 elseif dungeon_id == 130700 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 130842 + math.random(0,60) , 79586 + math.random(0,60) ) -- ÆÈ¹Ì¸£ Á¦ 1 À¯Àû elseif dungeon_id == 130800 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 132680 + math.random(0,60) , 128030 + math.random(0,60) ) -- ÆÈ¹Ì¸£ Á¦ 2 À¯Àû elseif dungeon_id == 130900 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 137441 + math.random(0,60) , 128115 + math.random(0,60) ) -- ÀÒ¾î¹ö¸° ºñ¹ÐÀÇ ¼¶(¹é·æÀÇ ½°ÅÍ) elseif dungeon_id == 121000 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 91942 + math.random(0,60) , 117103 + math.random(0,60) ) -- ÀÒ¾î¹ö¸° ºñ¹ÐÀÇ ¼¶(Èæ·æÀÇ ±×´Ã) elseif dungeon_id == 122000 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 85752 + math.random(0,60) , 118062 + math.random(0,60) ) -- ÀÒ¾î¹ö¸° ºñ¹ÐÀÇ ¼¶(»ç·æÀÇ ½ÉÀå) elseif dungeon_id == 123000 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 91998 + math.random(0,60) , 124400 + math.random(0,60) ) -- ¿¤ Ä«½Ã¾Æ ¿öÇÁ ÇÁ¶ø (¿¤ Ä«½Ã¾Æ -> ¸¶¸£µÎÄ« ÆøÆ÷ Çʵå) elseif dungeon_id == 120700 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 146015 + math.random(0,61) , 135591+ math.random(0,10) ) -- ¼û°ÜÁø ÆÈ¹Ì¸£ ´øÀü ¿öÇÁ ÇÁ¶ø (¼û°ÜÁø ÆÈ¹Ì¸£ ÀÔ±¸ -> ÆÈ¹Ì¸£ Á¦ 1 ½Ç ÀÔ±¸ Çʵå) elseif dungeon_id == 120292 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 132680 + math.random(0,60) , 128030 + math.random(0,60) ) -- ¼û°ÜÁø ¼öÁ¤ °è°î ´øÀü ¿öÇÁ ÇÁ¶ø (¼û°ÜÁø ¼öÁ¤ °è°î ÀÔ±¸ -> ¼öÁ¤ °è°î ÀÔ±¸ Çʵå) elseif dungeon_id == 70192 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 103234+ math.random(0,60) , 100310 + math.random(0,60) ) -- °í´ëÀÎÀÇ À¯Àû ´øÀü ¿öÇÁ ÇÁ¶ø (°í´ëÀÎÀÇ À¯Àû -> »çÀ̶ó±× ÆóÇã Çʵå) elseif dungeon_id == 121100 then -- TO DO : ´øÀü ÀÔ±¸ ÂÊÀÇ ÅÚ·¹Æ÷Æ® ÁÂÇ¥ ³Ö¾î¾ß ÇÔ warp( 108674+ math.random(0,60) , 76570 + math.random(0,60) ) -- Sky Forteress elseif dungeon_id == 10600 then warp( 108674+ math.random(0,60) , 76570 + math.random(0,60) ) end end function common_warp_gate( x, y ) warp( x + math.random(0,10) , y + math.random(0,10), gv("layer") ) end function warp_gate( prop_id ) -- ³ªºñ½º ¶ó¹Ì¾Æ °©ÆÇ if prop_id == 130881 then if find_item ( 1000077 ) == 1 or 1 == 1 then -- °í¸®¼öÁ¤ warp( 190072 + math.random(0,10) , 34171+ math.random(0,10), gv("layer") ) -- ÅÚ·¹Æ÷Æ® ÁÂÇ¥ else cprint( "@1233" ) -- '¿öÇÁ°ÔÀÌÆ® »ç¿ëÀ» À§ÇÑ Çã°¡¸¦ ¹ÞÁö ¸øÇß½À´Ï´Ù.' end end -- ³ªºñ½º ¶ó¹Ì¾Æ Á¶Å¸½Ç if prop_id == 130882 then -- Äù½ºÆ® µµÁß ´Ù½Ã óÀ½ºÎÅÍ ½ÃÀÛ ÇÒ¶§ ÁøÇà ºÒ°¡ --if quest_progress2 == 2 then -- ù¹øÂ° Äù½ºÆ® ½ÃÀÛÀüÀ̸é(¼öÇàÁßÀ̸é) --if quest_progress2 == 1 then -- ÅÚ·¹Æ÷Æ® ÁÂÇ¥ warp( 189645 + math.random(0,10) , 36119+ math.random(0,10), gv("layer") ) --else --cprint( "@1233" ) --end end -- ³ªºñ½º ¶ó¹Ì¾Æ ÁÖ¹æ if prop_id == 130883 then -- Äù½ºÆ® »óÅ üũ get_quest_progress(ID) -- ¹Ýȯ°ª -1 : ¾Æ¹«°Íµµ ¾Æ´Ô / 0 : ¼ö¶ô°¡ / 1 : ¼öÇàÁß / 2 : Á¾·á°¡´É / 255 : À̹ÌÁ¾·á local quest_progress3 = get_quest_progress(1247) -- À¯·É¼± ³ªºñ½º¶ó¹Ì¾Æ: ÁøÇà 3 -- Äù½ºÆ® µµÁß ´Ù½Ã óÀ½ºÎÅÍ ½ÃÀÛ ÇÒ¶§ ÁøÇà ºÒ°¡ if quest_progress3 == 2 or quest_progress3 == 255 or 1 == 1 then warp( 190018 + math.random(0,10) , 37865+ math.random(0,10), gv("layer") ) -- ÅÚ·¹Æ÷Æ® ÁÂÇ¥ else cprint( "@1233" ) end end end function parallelworld_exit() if get_quest_progress(4009) == 1 then -- [ÀÏÀÏ]Æ´»õÁ¶»ç : ŸÀÓ¾îÅà dlg_special( 'confirm_window', 'exit_indun( 0 )', '@9911' ) else dlg_special( 'confirm_window', 'exit_indun( 0 )', '@9906' ) end end function quest_start_4009() delete_item( get_item_handle( 2016026 ), 1 ) warp_to_instance_dungeon(70000) end function on_create_parallelworld_instance( dungeon_id, layer ) local state_code = get_local_info() -- ±¹°¡ÄÚµå local current_time = get_os_date( "%Y-%m-%d %H:%M:%S" ) -- ÇöÀç ½Ã°£ -- check °¡ 1ÀÌ µÇ¾ß À̺¥Æ® ¸®½ºÆù. ¼öÁ¤Ã¼ ¼Òȯ À̺¥Æ® local check = 0 -- ºÏ¹Ì À̺¥Æ® (2¿ù 1ÀÏ ~ 9¿ù 29ÀÏ) : if ( state_code == 4 or state_code == 8 or state_code == 128 or state_code == 16384 or state_code == 32768 or state_code == 65536 ) and '2017-09-12 08:00:00' <= current_time and current_time < '2017-10-24 08:00:00' then check = 1 elseif state_code == 256 and '2016-02-29 08:00:00' <= current_time and current_time < '2016-03-21 08:00:00' then check = 1 end if dungeon_id == 60000 then add_instance_dungeon_monster( 60001, 60000, layer ) add_instance_dungeon_monster( 60002, 60000, layer ) add_instance_dungeon_monster( 60003, 60000, layer ) add_instance_dungeon_monster( 60004, 60000, layer ) add_instance_dungeon_monster( 60005, 60000, layer ) -- ¼öÁ¤Ã¼ ¼Òȯ if check == 1 then add_instance_dungeon_monster( 60051, 60000, layer ) end elseif dungeon_id == 70000 then broadcast_notice( 1, "@9915", 70000, layer ) add_instance_dungeon_monster( 70001, 70000, layer ) add_instance_dungeon_monster( 70002, 70000, layer ) add_instance_dungeon_monster( 70003, 70000, layer ) add_instance_dungeon_monster( 70004, 70000, layer ) add_instance_dungeon_monster( 70005, 70000, layer ) -- ¼öÁ¤Ã¼ ¼Òȯ if check == 1 then add_instance_dungeon_monster( 70051, 70000, layer ) end end end function parallelworld_check_respawn_group_clear_1( respawn_group, x, y, layer ) local left_monster_count = get_alive_instance_respawn_group_monster_count( 60000, layer, respawn_group ) -- ÆÐ·¯·¼ ¿ùµå<1> -- Ä«¿îÆ® ó¸® if left_monster_count == 0 then if respawn_group == 60001 then local text = sconv( "@9910", "#@boss_no@#", tostring( 1 ) ) broadcast_notice( 1, text, 60000, layer ) add_instance_dungeon_monster( 60006, 60000, layer ) add_instance_dungeon_monster( 60007, 60000, layer ) add_instance_dungeon_monster( 60008, 60000, layer ) add_instance_dungeon_monster( 60009, 60000, layer ) add_instance_dungeon_monster( 60010, 60000, layer ) elseif respawn_group == 60006 then local text = sconv( "@9910", "#@boss_no@#", tostring( 2 ) ) broadcast_notice( 1, text, 60000, layer ) add_instance_dungeon_monster( 60011, 60000, layer ) add_instance_dungeon_monster( 60012, 60000, layer ) add_instance_dungeon_monster( 60013, 60000, layer ) add_instance_dungeon_monster( 60014, 60000, layer ) add_instance_dungeon_monster( 60015, 60000, layer ) elseif respawn_group == 60011 then local text = sconv( "@9910", "#@boss_no@#", tostring( 3 ) ) broadcast_notice( 1, text, 60000, layer ) add_instance_dungeon_monster( 60016, 60000, layer ) add_instance_dungeon_monster( 60017, 60000, layer ) add_instance_dungeon_monster( 60018, 60000, layer ) add_instance_dungeon_monster( 60019, 60000, layer ) add_instance_dungeon_monster( 60020, 60000, layer ) elseif respawn_group == 60016 then local text = sconv( "@9910", "#@boss_no@#", tostring( 4 ) ) broadcast_notice( 1, text, 60000, layer ) add_instance_dungeon_monster( 60021, 60000, layer ) add_instance_dungeon_monster( 60022, 60000, layer ) add_instance_dungeon_monster( 60023, 60000, layer ) add_instance_dungeon_monster( 60024, 60000, layer ) add_instance_dungeon_monster( 60025, 60000, layer ) elseif respawn_group == 60021 then local text = sconv( "@9910", "#@boss_no@#", tostring( 5 ) ) broadcast_notice( 1, text, 60000, layer ) add_instance_dungeon_monster( 60026, 60000, layer ) add_instance_dungeon_monster( 60027, 60000, layer ) add_instance_dungeon_monster( 60028, 60000, layer ) add_instance_dungeon_monster( 60029, 60000, layer ) add_instance_dungeon_monster( 60030, 60000, layer ) elseif respawn_group == 60026 then broadcast_notice( 1, "@9913", 60000, layer ) end end end function parallelworld_check_respawn_group_clear_2( respawn_group, x, y, layer ) local left_monster_count = get_alive_instance_respawn_group_monster_count( 70000, layer, respawn_group ) -- ÆÐ·¯·¼ ¿ùµå<2> -- Ä«¿îÆ® ó¸® if left_monster_count == 0 then if respawn_group == 70001 then local text = sconv( "@9905", "#@boss_no@#", tostring( 1 ) ) broadcast_notice( 1, text, 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 1, 1 )" ) add_instance_dungeon_monster( 70006, 70000, layer ) add_instance_dungeon_monster( 70007, 70000, layer ) add_instance_dungeon_monster( 70008, 70000, layer ) add_instance_dungeon_monster( 70009, 70000, layer ) add_instance_dungeon_monster( 70010, 70000, layer ) elseif respawn_group == 70006 then local text = sconv( "@9905", "#@boss_no@#", tostring( 2 ) ) broadcast_notice( 1, text, 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 2, 1 )" ) add_instance_dungeon_monster( 70011, 70000, layer ) add_instance_dungeon_monster( 70012, 70000, layer ) add_instance_dungeon_monster( 70013, 70000, layer ) add_instance_dungeon_monster( 70014, 70000, layer ) add_instance_dungeon_monster( 70015, 70000, layer ) elseif respawn_group == 70011 then local text = sconv( "@9905", "#@boss_no@#", tostring( 3 ) ) broadcast_notice( 1, text, 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 3, 1 )" ) add_instance_dungeon_monster( 70016, 70000, layer ) add_instance_dungeon_monster( 70017, 70000, layer ) add_instance_dungeon_monster( 70018, 70000, layer ) add_instance_dungeon_monster( 70019, 70000, layer ) add_instance_dungeon_monster( 70020, 70000, layer ) elseif respawn_group == 70016 then local text = sconv( "@9905", "#@boss_no@#", tostring( 4 ) ) broadcast_notice( 1, text, 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 4, 1 )" ) add_instance_dungeon_monster( 70021, 70000, layer ) add_instance_dungeon_monster( 70022, 70000, layer ) add_instance_dungeon_monster( 70023, 70000, layer ) add_instance_dungeon_monster( 70024, 70000, layer ) add_instance_dungeon_monster( 70025, 70000, layer ) elseif respawn_group == 70021 then local text = sconv( "@9905", "#@boss_no@#", tostring( 5 ) ) broadcast_notice( 1, text, 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 5, 1 )" ) add_instance_dungeon_monster( 70026, 70000, layer ) add_instance_dungeon_monster( 70027, 70000, layer ) add_instance_dungeon_monster( 70028, 70000, layer ) add_instance_dungeon_monster( 70029, 70000, layer ) add_instance_dungeon_monster( 70030, 70000, layer ) elseif respawn_group == 70026 then broadcast_notice( 1, "@9914", 70000, layer ) do_each_player_in_instance_dungeon( 70000, layer, "set_quest_status( 4009, 6, 1 )" ) end end end function on_leave_vulcanus( layer ) end --================================================================================= function enter_to_secret_dungeon( prop_id ) if prop_id == 120291 then -- ¼û°ÜÁø ÆÈ¹Ì¸£ À¯Àû ID 70120201 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(120201)', '@728\v#@dungeon_name@#\v@70120201' ) elseif prop_id == 100191 then -- ¼û°ÜÁø ¹é·æÀÇ ½°ÅÍ ID 70100101 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(100101)', '@728\v#@dungeon_name@#\v@70100101' ) elseif prop_id == 90191 then -- ¼û°ÜÁø Èæ·æÀÇ ±×´Ã ID 70090101 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(90101)', '@728\v#@dungeon_name@#\v@70090101' ) elseif prop_id == 80191 then -- ¼û°ÜÁø »ç·æÀÇ ½ÉÀå ID 70080101 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(80101)', '@728\v#@dungeon_name@#\v@70080101' ) elseif prop_id == 110191 then -- ¼û°ÜÁø ¿¤Ä«½Ã¾Æ ID 70110101 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(110101)', '@728\v#@dungeon_name@#\v@70110101' ) elseif prop_id == 70191 then -- ¼û°ÜÁø ¼öÁ¤°è°î ID 70070101 dlg_special( 'confirm_window', 'warp_to_secret_dungeon(70101)', '@728\v#@dungeon_name@#\v@70070101' ) else end end -------------------------------------------------------------------------------------------------------------------------- function exit_instance_dungeon( prop_id ) if prop_id == 126027 then dlg_special( 'confirm_window', 'exit_indun(100101)', '@9807\v#@dungeon_name@#\v@80020000' ) -- ºÒÄ«´©½º ´øÀüÀ» ³ª°¡°Ú½À´Ï±î? elseif prop_id == 126023 then dlg_special( 'confirm_window', 'exit_indun(100101)', '@9807\v#@dungeon_name@#\v@80020000' ) -- ºÒÄ«´©½º ´øÀüÀ» ³ª°¡°Ú½À´Ï±î? elseif prop_id == 60154 or prop_id == 60102 then dlg_special( 'confirm_window', 'exit_indun( 30000 )', '@9832\v#@dungeon_name@#\v@80030000' ) -- 30000 Àδø Å¥ºê¸¯ ID elseif prop_id == 60166 then dlg_special( 'confirm_window', 'exit_indun( 40000 )', '@9832\v#@dungeon_name@#\v@80040000' ) -- ¸Þ¸¶¸¥ ´Þºû ÁöÇϱâÁö Ãⱸ --warp(133066 , 87015 ) elseif prop_id == 60167 then dlg_special( 'confirm_window', 'exit_indun( 41001 )', '@9832\v#@dungeon_name@#\v@80041001' ) -- ¹ß¸ð¾î 걤 ÁöÇϱâÁö Ãⱸ --warp(155868 , 103644 ) elseif prop_id == 60168 then dlg_special( 'confirm_window', 'exit_indun( 42001 )', '@9832\v#@dungeon_name@#\v@80042001' ) -- ¼öÁ¤°è°î ÁöÇϱâÁö Ãⱸ --warp(103282 , 100401 ) elseif prop_id == 60169 then dlg_special( 'confirm_window', 'exit_indun( 43001 )', '@9832\v#@dungeon_name@#\v@80043001' ) -- ÆÈ¹Ì¸£ ÁöÇϱâÁö Ãⱸ --warp(132695 , 128105 ) elseif prop_id == 60191 then dlg_special( 'confirm_window', 'exit_indun( 50000 )', '@9853\v#@dungeon_name@#\v@80050000' ) -- ¼­Ä¿½º Ãⱸ --warp(132695 , 128105 ) else end end -------------------------------------------------------------------------------------------------------------------------- function exit_indun_confirm() dlg_special( 'confirm_window', 'exit_indun( 0 )', '@9920' ) end function exit_indun( dungeon_id ) local hx = gv('hx') or get_flag('hx') local hy = gv('hy') or get_flag('hy') warp( hx, hy, 0 ) end function Call_Main_Chest( monster_handle ) local monster_id = get_monster_id( monster_handle ) local layer = ghv( monster_handle, 'layer' ) local quest_progress3644 = get_quest_progress(3644) -- [ÀÏÀÏ]´øÀü Åä¹ú: ¸ÞµÎ»ç »ç³É local quest_progress3645 = get_quest_progress(3645) -- [ÀÏÀÏ]´øÀü Åä¹ú: ºí·¢ À§µµ¿ì »ç³É local quest_progress3646 = get_quest_progress(3646) -- [ÀÏÀÏ]´øÀü Åä¹ú: º» µå·¡°ï »ç³É local quest_progress3647 = get_quest_progress(3647) -- [ÀÏÀÏ]´øÀü Åä¹ú: ¹ÌÅ©·Î¶øÅ丣 »ç³É -- ¹Ýȯ°ª -1 : ¾Æ¹«°Íµµ ¾Æ´Ô / 0 : ¼ö¶ô°¡ / 1 : ¼öÇàÁß / 2 : Á¾·á°¡´É / 100 : ½ÇÆÐ / 255 : À̹ÌÁ¾·á local X_pos = gv('x') local Y_pos = gv('y') if monster_id == 20190001 or monster_id == 20190006 --¸Þ´ø ÁöÇϱâÁö 1´Ü°è or monster_id == 20190028 or monster_id == 20190033 --¸Þ´ø ÁöÇϱâÁö 2´Ü°è or monster_id == 20190055 or monster_id == 20190060 --¸Þ´ø ÁöÇϱâÁö 3´Ü°è or monster_id == 20190082 or monster_id == 20190087 then --¸Þ´ø ÁöÇϱâÁö 4´Ü°è local monster_count = get_instance_dungeon_flag( 40000, layer, 'check_open_prop') if monster_count == 2 then set_instance_dungeon_flag( 40000, layer, 'check_open_prop', 1) elseif monster_count == 1 then add_field_prop ( 60170, 60000, 38719, 22938, layer ) set_instance_dungeon_flag( 40000, layer, 'check_open_prop', 0) if get_instance_dungeon_type_id( 40000, layer ) == 3 then add_field_prop( 9002, 0, 38881, 22826, layer, -3, 0, 0, 0, 1, 1, 1 ) --º¸½º »ý¼º ÇÁ¶ø broadcast_notice( 1, "@90610144", 40000, layer ) -- ÇÁ¶ø Ŭ¸¯ÇÏ¸é º¸½º ³ª¿Â´Ù´Â ¸Þ¼¼Áö? end end if monster_id == 20190001 or monster_id == 20190028 or monster_id == 20190055 or monster_id == 20190082 then do_each_player_in_instance_dungeon( 40000, layer, "set_quest_status( 3644, 1, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3644 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 1 ) + 1 set_quest_status( 3644, 1, A_day_A_quest ) end ]] --[[ elseif quest_progress3644 == 1 and monster_id == 20190028 then if get_quest_status( 3644 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 1 ) + 1 set_quest_status( 3644, 1, A_day_A_quest ) end elseif quest_progress3644 == 1 and monster_id == 20190055 then if get_quest_status( 3644 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 1 ) + 1 set_quest_status( 3644, 1, A_day_A_quest ) end elseif quest_progress3644 == 1 and monster_id == 20190082 then if get_quest_status( 3644 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 1 ) + 1 set_quest_status( 3644, 1, A_day_A_quest ) end ]] elseif monster_id == 20190006 or monster_id == 20190033 or monster_id == 20190060 or monster_id == 20190087 then do_each_player_in_instance_dungeon( 40000, layer, "set_quest_status( 3644, 2, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3644 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 2 ) + 1 set_quest_status( 3644, 2, A_day_A_quest ) end elseif quest_progress3644 == 1 and monster_id == 20190033 then if get_quest_status( 3644 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 2 ) + 1 set_quest_status( 3644, 2, A_day_A_quest ) end elseif quest_progress3644 == 1 and monster_id == 20190060 then if get_quest_status( 3644 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 2 ) + 1 set_quest_status( 3644, 2, A_day_A_quest ) end elseif quest_progress3644 == 1 and monster_id == 20190087 then if get_quest_status( 3644 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3644 , 2 ) + 1 set_quest_status( 3644, 2, A_day_A_quest ) end ]] end elseif monster_id == 20190025 or monster_id == 20190008 --걤 ÁöÇϱâÁö 1´Ü°è or monster_id == 20190052 or monster_id == 20190035 --걤 ÁöÇϱâÁö 2´Ü°è or monster_id == 20190079 or monster_id == 20190062 --걤 ÁöÇϱâÁö 3´Ü°è or monster_id == 21190106 or monster_id == 20190089 then --걤 ÁöÇϱâÁö 4´Ü°è local monster_count = get_instance_dungeon_flag( 41001, layer, 'check_open_prop') if monster_count == 2 then set_instance_dungeon_flag( 41001, layer, 'check_open_prop', 1) elseif monster_count == 1 then add_field_prop ( 60171, 60000, 40379, 9573, layer ) set_instance_dungeon_flag( 41001, layer, 'check_open_prop', 0) if get_instance_dungeon_type_id( 41001, layer ) == 3 then add_field_prop( 9003, 0, 40487, 9490, layer, -3, 0, 0, 0, 1, 1, 1 ) --º¸½º »ý¼º ÇÁ¶ø broadcast_notice( 1, "@90610144", 40001, layer ) -- ÇÁ¶ø Ŭ¸¯ÇÏ¸é º¸½º ³ª¿Â´Ù´Â ¸Þ¼¼Áö? end end if monster_id == 20190025 or monster_id == 20190052 or monster_id == 20190079 or monster_id == 21190106 then do_each_player_in_instance_dungeon( 41001, layer, "set_quest_status( 3645, 1, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3645 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 1 ) + 1 set_quest_status( 3645, 1, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 20190052 then if get_quest_status( 3645 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 1 ) + 1 set_quest_status( 3645, 1, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 20190079 then if get_quest_status( 3645 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 1 ) + 1 set_quest_status( 3645, 1, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 21190106 then if get_quest_status( 3645 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 1 ) + 1 set_quest_status( 3645, 1, A_day_A_quest ) end ]] elseif monster_id == 20190008 or monster_id == 20190035 or monster_id == 20190062 or monster_id == 20190089 then do_each_player_in_instance_dungeon( 41001, layer, "set_quest_status( 3645, 2, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3645 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 2 ) + 1 set_quest_status( 3645, 2, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 20190035 then if get_quest_status( 3645 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 2 ) + 1 set_quest_status( 3645, 2, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 20190062 then if get_quest_status( 3645 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 2 ) + 1 set_quest_status( 3645, 2, A_day_A_quest ) end elseif quest_progress3645 == 1 and monster_id == 20190089 then if get_quest_status( 3645 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3645 , 2 ) + 1 set_quest_status( 3645, 2, A_day_A_quest ) end ]] end elseif monster_id == 20190026 or monster_id == 20190012 or monster_id == 20190053 or monster_id == 20190039 or monster_id == 20190080 or monster_id == 20190066 or monster_id == 21190107 or monster_id == 20190093 then local monster_count = get_instance_dungeon_flag( 42001, layer, 'check_open_prop') if monster_count == 2 then set_instance_dungeon_flag( 42001, layer, 'check_open_prop', 1) elseif monster_count == 1 then add_field_prop ( 60172, 60000, 61784, 31019, layer ) set_instance_dungeon_flag( 42001, layer, 'check_open_prop', 0) if get_instance_dungeon_type_id( 42001, layer ) == 3 then add_field_prop( 9004, 0, 61621, 30896, layer, -3, 0, 0, 0, 1, 1, 1 ) --º¸½º »ý¼º ÇÁ¶ø broadcast_notice( 1, "@90610144", 42001, layer ) -- ÇÁ¶ø Ŭ¸¯ÇÏ¸é º¸½º ³ª¿Â´Ù´Â ¸Þ¼¼Áö? end end if monster_id == 20190026 or monster_id == 20190053 or monster_id == 20190080 or monster_id == 21190107 then do_each_player_in_instance_dungeon( 42001, layer, "set_quest_status( 3646, 1, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3646 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 1 ) + 1 set_quest_status( 3646, 1, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 20190053 then if get_quest_status( 3646 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 1 ) + 1 set_quest_status( 3646, 1, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 20190080 then if get_quest_status( 3646 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 1 ) + 1 set_quest_status( 3646, 1, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 21190107 then if get_quest_status( 3646 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 1 ) + 1 set_quest_status( 3646, 1, A_day_A_quest ) end ]] elseif monster_id == 20190012 or monster_id == 20190039 or monster_id == 20190066 or monster_id == 20190093 then do_each_player_in_instance_dungeon( 42001, layer, "set_quest_status( 3646, 2, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3646 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 2 ) + 1 set_quest_status( 3646, 2, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 20190039 then if get_quest_status( 3646 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 2 ) + 1 set_quest_status( 3646, 2, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 20190066 then if get_quest_status( 3646 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 2 ) + 1 set_quest_status( 3646, 2, A_day_A_quest ) end elseif quest_progress3646 == 1 and monster_id == 20190093 then if get_quest_status( 3646 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3646 , 2 ) + 1 set_quest_status( 3646, 2, A_day_A_quest ) end ]] end elseif monster_id == 20190027 or monster_id == 20190010 or monster_id == 20190054 or monster_id == 20190037 or monster_id == 20190081 or monster_id == 20190064 or monster_id == 21190108 or monster_id == 20190091 then local monster_count = get_instance_dungeon_flag( 43001, layer, 'check_open_prop') if monster_count == 2 then set_instance_dungeon_flag( 43001, layer, 'check_open_prop', 1) elseif monster_count == 1 then add_field_prop ( 60173, 60000, 53659, 4147, layer ) set_instance_dungeon_flag( 43001, layer, 'check_open_prop', 0) if get_instance_dungeon_type_id( 43001, layer ) == 3 then add_field_prop( 9005, 0, 53512, 4356, layer, -3, 0, 0, 0, 1, 1, 1 ) --º¸½º »ý¼º ÇÁ¶ø broadcast_notice( 1, "@90610144", 43001, layer ) -- ÇÁ¶ø Ŭ¸¯ÇÏ¸é º¸½º ³ª¿Â´Ù´Â ¸Þ¼¼Áö? end end if monster_id == 20190027 or monster_id == 20190054 or monster_id == 20190081 or monster_id == 21190108 then do_each_player_in_instance_dungeon( 43001, layer, "set_quest_status( 3647, 1, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3647 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 1 ) + 1 set_quest_status( 3647, 1, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 20190054 then if get_quest_status( 3647 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 1 ) + 1 set_quest_status( 3647, 1, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 20190081 then if get_quest_status( 3647 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 1 ) + 1 set_quest_status( 3647, 1, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 21190108 then if get_quest_status( 3647 , 1 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 1 ) + 1 set_quest_status( 3647, 1, A_day_A_quest ) end ]] elseif monster_id == 20190010 or monster_id == 20190037 or monster_id == 20190064 or monster_id == 20190091 then do_each_player_in_instance_dungeon( 43001, layer, "set_quest_status( 3647, 2, 1 )", X_pos, Y_pos ) --[[ if get_quest_status( 3647 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 2 ) + 1 set_quest_status( 3647, 2, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 20190037 then if get_quest_status( 3647 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 2 ) + 1 set_quest_status( 3647, 2, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 20190064 then if get_quest_status( 3647 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 2 ) + 1 set_quest_status( 3647, 2, A_day_A_quest ) end elseif quest_progress3647 == 1 and monster_id == 20190091 then if get_quest_status( 3647 , 2 ) == 0 then local A_day_A_quest = get_quest_status( 3647 , 2 ) + 1 set_quest_status( 3647, 2, A_day_A_quest ) end ]] end end end function Open_Chest( prop_id ) local count = find_item( 601100310 ) if prop_id == 60157 or prop_id == 60159 or prop_id == 60161 or prop_id == 60162 or prop_id == 60163 then if count >= 1 then -- ¸¸Á·ÇÏ¸é ¿­¼è ¼ö°ÅÇϰí delete_item( get_item_handle( 601100310 ), 1 ) end end end function Open_main_Chest( prop_id ) local index_num_1 = math.random ( 0, 2 ) if prop_id == 60176 then -- ¸ÞµÎ»çÀÇ Åõ±¸°¡ ³ª¿À´Â ÇÁ¶ø if index_num_1 == 0 then insert_item(601100355, 1) elseif index_num_1 == 1 then insert_item(601100355, 1) insert_item(601100355, 1) elseif index_num_1 == 2 then insert_item(601100355, 1) insert_item(601100355, 1) insert_item(601100355, 1) end elseif prop_id == 60179 then -- ºí·¢ À§µµ¿ìÀÇ ºÎÃ÷°¡ ³ª¿À´Â ÇÁ¶ø if index_num_1 == 0 then insert_item(601100357, 1) elseif index_num_1 == 1 then insert_item(601100357, 1) insert_item(601100357, 1) elseif index_num_1 == 2 then insert_item(601100357, 1) insert_item(601100357, 1) insert_item(601100357, 1) end elseif prop_id == 60182 then -- º» µå·¡°ïÀÇ ¾Æ¸Ó°¡ ³ª¿À´Â ÇÁ¶ø if index_num_1 == 0 then insert_item(math.random ( 601100358, 601100361 ), 1) elseif index_num_1 == 1 then insert_item(math.random ( 601100358, 601100361 ), 1) insert_item(math.random ( 601100358, 601100361 ), 1) elseif index_num_1 == 2 then insert_item(math.random ( 601100358, 601100361 ), 1) insert_item(math.random ( 601100358, 601100361 ), 1) insert_item(math.random ( 601100358, 601100361 ), 1) end elseif prop_id == 60185 then -- ¹ÌÅ©·Î¶øÅ丣ÀÇ ±Û·¯ºê°¡ ³ª¿À´Â ÇÁ¶ø if index_num_1 == 0 then insert_item(601100356, 1) elseif index_num_1 == 1 then insert_item(601100356, 1) insert_item(601100356, 1) elseif index_num_1 == 2 then insert_item(601100356, 1) insert_item(601100356, 1) insert_item(601100356, 1) end end cprint( "@690000089" ) end function Call_Script_Witch_Death( monster_handle ) local monster_id = get_monster_id( monster_handle ) local quest_progress3648 = get_quest_progress(3648) -- [¹Ýº¹]ÁöÇÏ ±âÁö ¼ÒÅÁ -- ¹Ýȯ°ª -1 : ¾Æ¹«°Íµµ ¾Æ´Ô / 0 : ¼ö¶ô°¡ / 1 : ¼öÇàÁß / 2 : Á¾·á°¡´É / 100 : ½ÇÆÐ / 255 : À̹ÌÁ¾·á if monster_id == 20190002 or monster_id == 20190029 or monster_id == 20190056 or monster_id == 20190083 then if quest_progress3648 == 1 then if get_quest_status( 3648 , 1 ) < 50 then local A_day_A_quest = get_quest_status( 3648 , 1 ) + 1 set_quest_status( 3648, 1, A_day_A_quest ) end end elseif monster_id == 20190003 or monster_id == 20190030 or monster_id == 20190057 or monster_id == 20190084 then if quest_progress3648 == 1 then if get_quest_status( 3648 , 2 ) < 50 then local A_day_A_quest = get_quest_status( 3648 , 2 ) + 1 set_quest_status( 3648, 2, A_day_A_quest ) end end elseif monster_id == 20190004 or monster_id == 20190031 or monster_id == 20190058 or monster_id == 20190085 then if quest_progress3648 == 1 then if get_quest_status( 3648 , 3 ) < 50 then local A_day_A_quest = get_quest_status( 3648 , 3 ) + 1 set_quest_status( 3648, 3, A_day_A_quest ) end end end end -- ¼­¹ö ½ÃÀÛÇÒ ¶§ ½ºÅ©¸³Æ®¸¦ ÅëÇØ Ãß°¡ ÇÒ ÇÁ¶øµéÀÌ ÀÖÀ¸¸é ¿©±â¿¡ Ãß°¡ÇÑ´Ù. function add_global_prop() -- Ä¥ÈæÀǽ£ -> ºÓÀº °Å¹Ì ¼­Ä¿½º ¿öÇÁ ÇÁ¶ø add_field_prop( 60192, 0, 163100, 116110, 0, 0, 0 ,0, 0.45 , 1, 1, 1) add_field_prop( 60193, 0, 35527, 121011, 0, 0, 0 ,0, 1.5 , 1, 1, 1) end function summon_boss( X_pos, Y_pos, Mob_id ) local state_code = get_local_info() --add_instance_dungeon_monster( 50049, 50000, gv('layer')) if state_code == 1 or 16 then add_npc( X_pos, Y_pos, Mob_id, 1, 0, gv('layer') ) else add_npc( X_pos, Y_pos, Mob_id+7, 1, 0, gv('layer') ) end end ------------------------------------------------------------------------------------------------------------ function NPC_bulcanus_joinitem_sell() -------------------------------------------------------------------------------------------------------------------------- dlg_title( "@90605268" ) dlg_text( "@90605790" ) local progress = get_quest_progress(3367) if progress == 255 then dlg_menu( "@9811", 'NPC_bulcanus_get_ticket()' ) -- »çÀÚÀÇ È¥À» ¹Þ´Â´Ù end dlg_menu( "@90010002", '' ) dlg_show() end -------------------------------------------------------------------------------------------------------------------------- function NPC_bulcanus_get_ticket() -------------------------------------------------------------------------------------------------------------------------- local current_time = get_os_date( "%Y-%m-%d" ) local t_flag = get_flag( "vulcanus_date" ) dlg_title( "@90605268" ) if t_flag == nill or t_flag < current_time then set_flag( "vulcanus_date" , current_time ) insert_item( 2013889, 1 ) dlg_text( "@90610860" ) -- ¿©±â ÀÖ¾î¿ä!
¼ö·®ÀÌ ºÎÁ·ÇÑ °ü°è·Î 1ÀÏ1°³ ¹Û¿¡´Â µå¸±¼ö ¾ø¾î¿ä. else dlg_text( "@90610861" ) -- ¿À´ÃÀº ÀÌ¹Ì ¹ÞÀ¸¼Ì¾î¿ä.
¼ö·®ÀÌ ºÎÁ·ÇÑ °ü°è·Î 1ÀÏ 1°³ ¹Û¿¡´Â µå¸±¼ö ¾ø¾î¿ä. end dlg_menu( "@90010002", '' ) dlg_show() end -------------------------------------------------------------------------------------------------------------------------- function NPC_bulcanus_best_record() -------------------------------------------------------------------------------------------------------------------------- local best_vul_record = get_global_variable( "best_vul_record" ) local best_vul_record_name = get_global_variable("best_vul_record_name") dlg_title( "@90605268" ) if best_vul_record == nil or best_vul_record == "" then dlg_text( "@90605863" ) else local country_time = get_os_date("%H",0) local print_best_vul_record = best_vul_record +(24 -country_time) * 3600 dlg_text( sconv("@90605862", "#@user_name@#", get_global_variable( "best_vul_record_name" ), "#@vul_record@#", get_os_date("%X",print_best_vul_record)) ) end dlg_menu( "@90010002", '' ) dlg_show() end ------------------------------------------------------------------------------------------------------------ function vulcanus_get_room_pos( floor, room ) -- °¢Ãþ °¢¹æ x y ÁÂÇ¥ -------------------------------------------------------------------------------------------------------------------------- local pdata={ 197393,28580, 198814,28457, 200543,28458, 202065,28458, 197047,25954, 198661,25929, 200362,25962, 202169,26121, 197303,23750, 198586,23765, 200390,23677, 202114,23701, 206474,27625, 0,0, 0,0, 0,0, } local x = pdata[ floor*8-7+room*2 ] local y = pdata[ floor*8-7+room*2+1] return x,y end ------------------------------------------------------------------------------------------------------------ function vulcanus_get_clear_reward( layer, floor ) -- °¢ ¹æ Ŭ¸®¾î º¸»ó Exp,JP,Gold -------------------------------------------------------------------------------------------------------------------------- local pdata = { -- F1, F2, F3 F4 F1, F2, F3 F4 19956, 24454, 29555, 58378, 38548, 44904, 51743, 132405, -- 1 40 ~ 57408, 64815, 72956, 214137, 76854, 85198, 94077, 269109, -- 3 60 ~ 91139, 99583, 108495, 314787, 113358, 122679, 132349, 427830, -- 5 80 ~ 131787, 141445, 151556, 561177, 175584, 187230, 199491, 700102, -- 7 100 ~ 237120, 251671, 266785, 988754, 292792, 306274, 320012, 1169043, -- 9 120 ~ 377019, 392723, 408832, 1785194, 470027, 527619, 620635, 3387588, -- 11 140 ~ 769704, 1541102, 3173438, 6718169, 1219563, 1800319, 3922638, 12356309, -- 13 160 ~ 1829344, 2700478, 5883957, 18534463, 2744016, 4050717, 8825935, 27801694, -- 15 180 ~ 4116024, 6076075, 13238902, 41702541, 6174036, 9114112, 19858353, 62553811, -- 17 200 ~ 9261054, 13671168, 29787529, 93830716, 13891581, 20506752, 44681293, 140746074 , -- 19 220 ~ } local lvl = get_instance_dungeon_type_id( 20000, layer ) local idx = lvl*4+floor local exp = pdata[ idx ] local jp = exp / 8 local gold = 31200 * ( 1+ lvl/3) if floor==2 then gold = gold + 2100 elseif floor==3 then gold = gold + 4200 elseif floor==4 then gold = (gold + 4200 )*2 end return exp, jp, gold end -------------------------------------------------------------------------------------------------------------------------- function get_vulcanus_room_number(floor) -- ¾ÆÁ÷ Ŭ¸®¾îÇÏÁö ¾ÊÀº ¹æÀ» ã´Â´Ù. -------------------------------------------------------------------------------------------------------------------------- local layer = get_value('layer') local room = 0 if floor < 4 then local room_list = {} local room_count = 0 local flag = 'Vul' .. tostring( floor ) local fv = get_instance_dungeon_flag( 20000, layer, flag ) if fv == 15 then return end if fv==nil or fv=="" then fv = 0 end if fv==0 or fv==2 or fv==4 or fv==8 or fv==6 or fv==10 or fv==12 or fv==14 then room_list[ room_count + 1 ] = 0 room_count = room_count + 1 end if fv==0 or fv==1 or fv==4 or fv==8 or fv==5 or fv==9 or fv==12 or fv==13 then room_list[ room_count + 1 ] = 1 room_count = room_count + 1 end if fv==0 or fv==1 or fv==2 or fv==8 or fv==3 or fv==9 or fv==10 or fv==11 then room_list[ room_count + 1 ] = 2 room_count = room_count + 1 end if fv==0 or fv==1 or fv==2 or fv==4 or fv==3 or fv==5 or fv==6 or fv==7 then room_list[ room_count + 1 ] = 3 room_count = room_count + 1 end local select = math.random( 1, room_count ) room = room_list[select] end return room end -------------------------------------------------------------------------------------------------------------------------- function enter_vulcanus() -- Çʵ忡 ÀÖ´Â ºÒÄ«´©½º ÇÁ¶ø Ŭ¸¯½Ã -------------------------------------------------------------------------------------------------------------------------- local quest_progress_3367 = get_quest_progress(3367) -- ¹Ýȯ°ª -1 : ¾Æ¹«°Íµµ ¾Æ´Ô / 0 : ¼ö¶ô°¡ / 1 : ¼öÇàÁß / 2 : Á¾·á°¡´É / 100 : ½ÇÆÐ / 255 : À̹ÌÁ¾·á if quest_progress_3367 == 1 then set_quest_status( 3367, 1, 1 ) cprint( "@90604746" ) -- <(version:8.1)><#6DD66D>»õ·Î¿î °ÔÀÌÆ®¸¦ ¹ß°ßÇÏ¿´½À´Ï´Ù. return end local lv = get_value( 'level' ) if lv<30 then cprint( "@9251" ) --<#ff0000>ºÒÄ«´©½º ´øÀüÀº ÃÖ¼Ò ·¹º§ 30 ÀÌ»óºÎÅÍ ÀÔÀå °¡´ÉÇÕ´Ï´Ù. end local base_type = math.floor(lv/10)-4 if base_type < 0 then base_type = 0 end if base_type > 16 then -- ÀÏ´Ü 13±îÁö ¹Û¿¡ ¾ø±â ¶§¹®¿¡ 10(easy),11(normal),12(hard),13(veryhard) base_type = 16 end local menu1 = '@9526| (Level' .. (base_type+3) * 10 ..')' local menu2 = '@9527| (Level' .. (base_type+4) * 10 ..')' local menu3 = '@9528| (Level' .. (base_type+5) * 10 ..')' --local menu4 = '<@FF8080>|@9528| (Level' .. (base_type+6) * 10 ..')' local trigger1 = 'enter_vulcanus_confirm(' .. base_type .. ')' local trigger2 = 'enter_vulcanus_confirm(' .. base_type+1 .. ')' local trigger3 = 'enter_vulcanus_confirm(' .. base_type+2 .. ')' --local trigger4 = 'enter_vulcanus_confirm(' .. base_type+3 .. ')' --dlg_special_menu( '@9525', 'Warp', menu1, trigger1, menu2, trigger2, menu3, trigger3, menu4, trigger4 ) dlg_special_menu( '@9525', 'Warp', menu1, trigger1, menu2, trigger2, menu3, trigger3 ) end -------------------------------------------------------------------------------------------------------------------------- function enter_vulcanus_confirm(sub_type) -- vulcanus_enter_confirm() À¸·Î º¯°æ -------------------------------------------------------------------------------------------------------------------------- local party_id = get_value('party_id') if party_id ~= 0 then cprint( "@9247" ) --ÆÄƼ »óÅ¿¡¼­´Â ÀÔÀå ºÒ°¡ÇÔ return end local item_count = find_item( 2013889 ) if item_count < 1 then cprint( "@9810" ) return end warp_to_instance_dungeon(20000,sub_type) delete_item( get_item_handle(2013889),1) --vulcanus_warp_confirm(1) open_title(1) end -------------------------------------------------------------------------------------------------------------------------- function enter_other_indun( dungeon_id, cur_floor, next_floor, cur_item_count, next_item_count ) vulcanus_warp (cur_floor) end -------------------------------------------------------------------------------------------------------------------------- function vulcanus_warp (floor) -- ºÒÄ«´©½º ´øÀü ³»ºÎ ÇÁ¶ø Ŭ¸¯, -------------------------------------------------------------------------------------------------------------------------- local flag = 'Vul' .. tostring(floor ) local floor_flag = get_instance_dungeon_flag( 20000 , gv( 'layer' ), flag ) local cur = floor local nxt = floor +1 local nxt_flr = floor+1 local menu2 = '@9800\v#@next_floor@#\v' .. nxt if floor_flag == 15 then dlg_special_menu( '@170126024', 'Warp',menu2, 'vulcanus_warp_confirm(' .. nxt .. ')' ) else local menu1 = '@9799\v#@current_floor@#\v' .. cur dlg_special_menu( '@170126024', 'Warp', menu1, 'vulcanus_warp_confirm(' .. cur .. ')', menu2, 'vulcanus_warp_confirm(' .. nxt .. ')' ) end end -------------------------------------------------------------------------------------------------------------------------- function vulcanus_warp_confirm(floor,layer) -------------------------------------------------------------------------------------------------------------------------- if layer == nil then layer = get_value('layer') end local room = get_vulcanus_room_number(floor) local x,y = vulcanus_get_room_pos( floor, room ) warp( x, y, layer ) send_mission_title( '@1224' ) -- ¹Ì¼Ç Á¦¸ñÀº Ç×»ó '¸ðµç ¸ó½ºÅ͸¦ ¼¶¸êÇ϶ó' local exp, jp, gold = vulcanus_get_clear_reward( layer, floor ) local reward_string = '@1225' reward_string = reward_string .. '\v#@reward_exp@#\v' .. exp reward_string = reward_string .. '\v#@reward_jp@#\v' .. jp reward_string = reward_string .. '\v#@reward_gold@#\v' .. gold send_mission_reward( reward_string ) if floor == 4 then send_mission_objective( 0, 1, '@1226' ) -- ºÒÄ«´©½º¸¦ óġÇ϶ó cprint( '@90604914' ) --<(version:7.3)><#6DD66D>³ª´Â.. ºÒÄ«´©½º´Ù. ³ªÀÇ ÀÇÁö¸¦ ±ú¿î ³Ê´Â....³Ê´Â ´©±¸.... Àΰ¡. ¿­¼è¸¦ ¼ÒÁöÇÑ ÀÚ.. Àΰ¡? cprint( '@90604915' ) --<(version:7.3)><#6DD66D>±×·¸´Ù¸é, ³»°¡ ¼û°Ü ³í ±â·ÏÀ»...... µÇãÀº Àڷαº. ½Ã°£ÀÌ ¾øÀ¸´Ï...... ³ÊÀÇ Áö½ÄÀ» º¸°Ú´Ù. local monster = 22000414 local progress1 = get_quest_progress(4047) local progress2 = get_quest_progress(4048) local progress3 = get_quest_progress(4049) local progress4 = get_quest_progress(4050) local lvl = get_instance_dungeon_type_id( 20000, layer ) if (progress1 == 1 or progress2 == 1 or progress3 == 1 or progress4 == 1) and lvl >= 14 then local qcv = get_flag('q_cbk') if qcv == nil or qcv == "" then qcv = 0 end local rnd = math.random(1, 10-qcv) if rnd == 1 then add_npc( 205940, 26915, monster, 1, 0, layer ) qcv = 0 elseif qcv < 7 then qcv = qcv + 1 end set_flag('q_cbk',qcv) end else send_mission_objective( 0, 6, '@1224' ) -- ¹Ì¼Ç ¸ñÇ¥µµ Ç×»ó '¸ðµç ¸ó½ºÅ͸¦ ¼¶¸êÇ϶ó'¿¡ ÃÖ´ë ¸ó½ºÅÍ ¼ö´Â 6(4ÃþÀÎ °æ¿ì¸¸ 1ÀÌ µÊ) end send_mission_objective_progress( 0, 0 ) end ------------------------------------------------------------------------------------------------------------ function on_create_vulcanus_instance( layer ) -- ÃÖÃÊ ´øÀü »ý¼º½Ã È£Ãâ ------------------------------------------------------------------------------------------------------------ set_instance_dungeon_flag( 20000, layer, 'Vul1', 0 ) set_instance_dungeon_flag( 20000, layer, 'Vul2', 0 ) set_instance_dungeon_flag( 20000, layer, 'Vul3', 0 ) set_instance_dungeon_flag( 20000, layer, 'date', get_os_time() ) add_field_prop( 126023, 0, 197460, 28579, layer, 10) add_field_prop( 126023, 0, 198873, 28457, layer, 10) add_field_prop( 126023, 0, 200546, 28391, layer, 10) add_field_prop( 126023, 0, 202068, 28403, layer, 10) add_field_prop( 126023, 0, 197026, 25926, layer, 10) add_field_prop( 126023, 0, 198651, 25901, layer, 10) add_field_prop( 126023, 0, 200339, 25945, layer, 10) add_field_prop( 126023, 0, 202194, 26114, layer, 10) add_field_prop( 126023, 0, 197324, 23734, layer, 10) add_field_prop( 126023, 0, 198566, 23754, layer, 10) add_field_prop( 126023, 0, 200370, 23657, layer, 10) add_field_prop( 126023, 0, 202125, 23673, layer, 10) end ------------------------------------------------------------------------------------------------------------ function on_leave_vulcanus( layer ) -- ÀÌÅ»½ÃÈ£Ãâ ------------------------------------------------------------------------------------------------------------ send_mission_title( '' ) end ------------------------------------------------------------------------------------------------------------ function on_join_vulcanus( layer ) -- °¢ ¹æ¸¶´Ù È£Ãâ ------------------------------------------------------------------------------------------------------------ vulcanus_warp_confirm(1,layer) --do_each_player_in_instance_dungeon( 20000, layer, "open_title(1)" ) end ------------------------------------------------------------------------------------------------------------ function vulcanus_check_respawn_group_clear( respawn, x, y, layer ) -- ¸ó½ºÅÍ Á×À» ¶§¸¶´Ù È£Ãâ ------------------------------------------------------------------------------------------------------------ local pdata={ --respawn prop z, fl bit monster_count 20001, 126024, 10, 1, 1, 6, 20002, 126024, 10, 1, 2, 6, 20003, 126024, 10, 1, 4, 6, 20004, 126024, 10, 1, 8, 6, 20005, 126025, 10, 2, 1, 6, 20006, 126025, 10, 2, 2, 6, 20007, 126025, 10, 2, 4, 6, 20008, 126025, 10, 2, 8, 6, 20009, 126026, 10, 3, 1, 6, 20010, 126026, 10, 3, 2, 6, 20011, 126026, 10, 3, 4, 6, 20012, 126026, 10, 3, 8, 6, 20013, 126027, 35, 4, 1, 1, } local idx = 0 local total = table.getn( pdata) / 6 for i = 1, total do if pdata[i*6-5] == respawn then idx = i break end end if idx == 0 then return end local prop = pdata[idx*6-4] local offset = pdata[idx*6-3] local floor = pdata[idx*6-2] local bit = pdata[idx*6-1] local monster = pdata[idx*6-0] local left_monster = get_alive_instance_respawn_group_monster_count( 20000, layer, respawn ) broadcast_mission_objective_progress( 1, 0, monster - left_monster, 20000, layer ) if left_monster ~= 0 then return end if floor==4 then do_each_player_in_instance_dungeon( 20000, layer, "update_title_condition( 9002002, 1 )" ) -- ºÒÄ«´©½º »ç³É ½Ã ȣĪ ºÎ¿© else local floor_clear_flag = get_instance_dungeon_flag( 20000, layer, 'Vul' .. floor ) floor_clear_flag = floor_clear_flag + bit set_instance_dungeon_flag( 20000, layer, 'Vul'..floor, floor_clear_flag ) do_each_player_in_instance_dungeon( 20000, layer, "cprint('@9813');cprint('@9250')" ) end -- º¸»ó Áö±Þ ½ºÅ©¸³Æ® local exp, jp, gold = vulcanus_get_clear_reward( layer, floor ) local reward_handler = 'add_exp_jp( ' .. exp .. ', ' .. jp .. ', false, false ); insert_gold( ' .. gold .. ', true )' do_each_player_in_instance_dungeon( 20000, layer, reward_handler ) broadcast_mission_title( 1, '', 20000, layer ) -- ¹Ì¼Çâ ¼û±è add_field_prop( prop, 0, x, y, layer, offset ) -- ´ÙÀ½¹æÀ¸·Î °¡´Â ÇÁ¶ø »ý¼º end