yagokurt 84 Posted June 16, 2014 Share Posted June 16, 2014 (edited) Hi, i'm having a error when i try join to purgatory. The error is this syserr: SYSERR: Jun 16 23:07:07 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1 SYSERR: Jun 16 23:07:07 :: RunState: LUA_STATE: index 1349952704 ref 3 SYSERR: Jun 16 23:07:07 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click SYSERR: Jun 16 23:07:13 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1 SYSERR: Jun 16 23:07:13 :: RunState: LUA_STATE: index 1349952704 ref 3 SYSERR: Jun 16 23:07:13 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click SYSERR: Jun 16 23:07:18 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1 SYSERR: Jun 16 23:07:18 :: RunState: LUA_STATE: index 1349952704 ref 3 SYSERR: Jun 16 23:07:18 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click SYSERR: Jun 16 23:07:20 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1 SYSERR: Jun 16 23:07:20 :: RunState: LUA_STATE: index 1349952704 ref 3 SYSERR: Jun 16 23:07:20 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click SYSERR: Jun 16 23:07:24 :: RunState: LUA_ERROR: [string "flame_dungeon"]:25: attempt to call global `get_special_item_group' (a nil value) WITH ERRORCODE 1 SYSERR: Jun 16 23:07:24 :: RunState: LUA_STATE: index 1349952704 ref 3 SYSERR: Jun 16 23:07:24 :: WriteRunningStateToSyserr: LUA_ERROR: quest flame_dungeon.run click I'm using this quest: quest flame_dungeon begin state start begin when 20394.click with pc.get_level() >= 90 begin pc.give_item2(71175, 1) set_state(run) end end state run begin function setting() return { ["bossroom_entry_pos"] = {8109,6867}, ["boss_pos"] = {686,637}, ["doors_pos"] = { {320,394}, {293,359}, {333,321}, {378,320}, {400,355}, {394,401} }, ["idoors_pos"] = { {268,447}, {234,359}, {300,264}, {454,217}, {470,355}, {467,469} }, ["doors_dir"] = {135,90,210,152,90,223}, ["idoors_dir"] = {135,90,210,135,90,239}, ["dungeon_entry_pos"] = {7762, 6739},-- ´øÀü¿¡ óÀ½ µé¾î¿À´Â °÷ ["DUNGEON_MAN_bpos"] = {690,722}, ["DUNGEON_MAN_pos"] = {354,362}, ["LEVEL2_STONE_pos"] = {195,352}, ["LEVEL4_TARGET_pos"] = {470,175}, ["LEVEL5_STONE_pos"] = { {486, 345}, {511, 336}, {525, 349}, {521, 365}, {503, 372}, {486, 365}, {500, 354} }, ["LEVEL6_TARGET_pos"] = {511,480}, ["outside_entry_pos"] = {6142,7068}, --ÀÔÀå½ÃÄÑÁÖ´Â¾Ö ¼ÀÖ´Â °÷ ["YAK_pos"] = {376, 397} -- ¾àȯ ºÎÇÏ } end function is_flamed(idx) -- Àû·æ¼º¿¡ ÀÖ´ÂÁö È®ÀÎ return idx >= 351 * 10000 and idx < (351 + 1) *10000 end function make_dungeon() -- ´øÀü ¸¸µé±â local setting = flame_dungeon.setting() d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2]) -- d.spawn_mob_ac_dir(20385, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],0) -- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2]) d.regen_file("data/dungeon/flame_dungeon/npc.txt") d.setf("level",0) for i=1,6 do d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i])) end for i=1,6 do d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i])) end d.setf("clear_count",0) d.setf("started",0) d.setf("dungeon_enter",0) -- Á¤»óÀûÀ¸·Î ÀÔÀåÇß´ÂÁö? // ºñÁ¤»ó : 0 Á¤»ó : 1 // ƨ±â¸é ÀÔÀåÁ¦Çѽð£À» ±â·Ï ¾ÈÇÔ end function go_boss() -- º¸½º·ë °¡±â local setting = flame_dungeon.setting() if pc.get_level() < 104 then --·¹º§È®ÀÎ -- syschat(gameforge.flame_dungeon._580_notice) say(gameforge.flame_dungeon._580_notice) return else if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ¼±ÇàÄù½ºÆ® È®ÀÎ -- say_title(gameforge.flame_dungeon._010_say) say(gameforge.flame_dungeon._010_say) local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select) if warp == 1 then d.setf("level",17) d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2]) d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt") -- d.spawn_mob(20385,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2]) d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2]) end else -- syschat(gameforge.flame_dungeon._040_notice) say(gameforge.flame_dungeon._040_notice) return end end end function level_clear() -- ·¹º§ ²£À»¶§, ¸®Á¨Å¬¸®¾î, Áö¿ªÅ¬¸®¾î d.setf("level",0) d.clear_regen() d.purge_area(750000,620000,817400,689400) -- ¸ÊÀüü -- d.purge() »ç¿ë°í·Á end function clear_timer(inx) -- ŸÀÌ¸Ó ´ÙÁö¿ì±â clear_server_timer ("flame_dungeon_0m_left_timer", inx) clear_server_timer ("flame_dungeon_1m_left_timer", inx) clear_server_timer ("flame_dungeon_5m_left_timer", inx) clear_server_timer ("flame_dungeon_10m_left_timer", inx) clear_server_timer ("flame_dungeon_15m_left_timer", inx) clear_server_timer ("flame_dungeon_30m_left_timer", inx) clear_server_timer ("flame_dungeon_45m_left_timer", inx) clear_server_timer ("killed_A_1", inx) clear_server_timer ("killed_A_2", inx) clear_server_timer ("flame_dungeon_ticket_remove", inx) end when login begin local idx = pc.get_map_index() local setting = flame_dungeon.setting() if idx == 351 then pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62) elseif flame_dungeon.is_flamed(idx) then -- ´øÀü ÀÔÀå, º¸½º·ë ÀÔÀå ¿¹¿Ü ------------------------------------------------------------------------------------------------------------------------------------------------------ --¾Æ·¡ÀÇ µÎÁÙÁß À§¿¡ÁÙÀ» »ç¿ëÇÏ¸é ´øÀü¿¡¼ Á¾·áÇßÀ»°æ¿ì ´Ù½Ã ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿Â´Ù. ¾Æ·¡ÁÙÀ» È°¼ºÈ ÇÏ¸é ´øÀü¿¡¼ Á¾·áÇßÀ» °æ¿ì ´øÀü ¹ÛÀ¸·Î ³ª°¡°Ô µÈ´Ù. --´øÀü¿¡¼ Á¾·áÇßÀ» °æ¿ì ´Ù½Ã ¿ø·¡ À§Ä¡·Î µ¹¾Æ¿Ã °æ¿ì, ´øÀü¿¡¼ ³ª°¡´Â ¹æ¹ýÀ» ¸¸µé¾îÁà¾ß Çϱ⠶§¹®¿¡ Àû·æ¼ººñÀÇ ³ª°¡±â¶õ ¿É¼ÇÀ» È°¼ºÈ ÇØÁà¾ß ÇÑ´Ù. ------------------------------------------------------------------------------------------------------------------------------------------------------ -- pc.set_warp_location(0, 0 , 0) --ƨ°åÀ»¶§ ´Ù½Ã µ¹¾Æ¿À°Ô ¸¸µé¾î ÁÖ´Â ºÎºÐ pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ´øÀü ³ª°¬À» ¶§ ¹ÛÀ¸·Î ƨ±â°ÔÇÔ local ticketGroup = {get_special_item_group (10033)} if d.getf("dungeon_enter") == 0 then -- ÁøÇàÁßÀÌ ¾Æ´Ï¸é local canPass = false for i=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then canPass = true break end end if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ÀÔÀåÁ¦Çѽð£ÀÌ °É·ÈÀ¸¸é notice_multiline(gameforge.flame_dungeon._050_notice,d.notice) say(gameforge.flame_dungeon._060_say) timer("flame_dungeon_warp_timer", 5) elseif not canPass then notice_multiline(gameforge.flame_dungeon._070_notice,d.notice) say(gameforge.flame_dungeon._080_say) timer("flame_dungeon_warp_timer", 5) elseif pc.get_level() < 100 then notice_multiline(gameforge.flame_dungeon._090_notice,d.notice) say(gameforge.flame_dungeon._100_say) timer("flame_dungeon_warp_timer", 5) end elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ÁøÇàÁßÀε¥ ƼÄÏÀÌ ¾ÈÁö¿öÁ³À»°æ¿ì for i=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then pc.remove_item(ticketGroup[i], ticketGroup[i+1]) break end end pc.setf("flame_dungeon","ticket_delete",1) end else pc.setf("flame_dungeon","ticket_delete",0) end end when flame_dungeon_warp_timer.timer begin local setting = flame_dungeon.setting() pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62) end when logout begin local idx = pc.get_map_index() if flame_dungeon.is_flamed(idx) then if d.getf("dungeon_enter") == 1 then -- Á¤»óÀûÀÎ ´øÀü ÀÔÀå ÈÄ ·Î±×¾Æ¿ô pc.setf("flame_dungeon","exit_time",get_global_time()) -- ÀνºÅϽº ¾È¿¡¼ÀÇ ¸¶Áö¸· ½Ã°£À» ±â·Ï, ±Ùµ¥ ½Ã°£Á¦ÇÑ ¶§¹®¿¡ or ±×³É ƨ±ä°Å¸é ¾È±â·Ï end end end when 20394.chat.gameforge.flame_dungeon._110_npcChat begin local setting = flame_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("flame_dungeon","exit_time") < 5 * 60 then -- Á¢Á¾ ÀÌÈÄ 5ºÐ ³»? local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index")) if dungeon_level == 17 then -- º¸½º pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index")) else pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index")) end else -- 5ºÐ ÃÊ°úÇÏ¿© Àç ÀÔÀå ºÒ°¡ say_title(mob_name(20394)) say(gameforge.flame_dungeon._590_say) end else local pids = {party.get_member_pids()} local noTicketMembers = {} local notEnoughLevelMembers = {} local ticketCheck = true local levelCheck = true local ticketGroup = {get_special_item_group (10033)} for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false for idx=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then canPass = true break end end if not canPass then table.insert(noTicketMembers, pc.get_name()) ticketCheck = false end if pc.level < 100 then table.insert(notEnoughLevelMembers, pc.get_name()) levelCheck = false end q.end_other_pc_block() end if not ticketCheck then say_title(mob_name(20394)) say(gameforge.flame_dungeon._610_say) for i, name in next, noTicketMembers, nil do say(color(1,1,0), " "..name) end if levelCheck then return else wait() end end if not levelCheck then say_title(mob_name(20394)) say(gameforge.flame_dungeon._630_say) for i, name in next, notEnoughLevelMembers, nil do say(color(1,1,0), " "..name) end return end if party.is_leader() then say(gameforge.flame_dungeon._120_say) local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select) if warp == 1 then if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then flame_dungeon.make_dungeon() else --say("test : ÆÄƼ¿øÀÇ ÀÔÀå Á¦Çѽð£ÀÌ ³¡³ªÁö ¾Ê¾Ò½À´Ï´Ù.") say(gameforge.flame_dungeon._600_say) end end party.setf("flame_dungeon_boss_kill_count", 0) else say(gameforge.flame_dungeon._150_say) end end else say(gameforge.flame_dungeon._160_say) end end -- when 20394.chat."Test : ¸®¼Ò½ºÈ®ÀÎ" with is_test_server() begin -- Å×½ºÆ®¿ë -- local setting = flame_dungeon.setting() -- pc.setf("flame_dungeon","fdRtest",1) -- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351) -- end when 20394.chat."TEST : Init time limit init" with is_test_server() begin -- Å×½ºÆ®¿ë pc.setf("flame_dungeon","exit_time",get_global_time()-1800) say("Done") end -- when 20385.chat."Test : ÇöÀç »óÅÂ" with is_test_server() begin -- Å×½ºÆ®¿ë -- say("³²Àº ¸ó½ºÅÍ : "..d.count_monster()) -- say("level : "..d.getf("level")) -- say("Dmap index : "..d.get_map_index()) -- say("Pmap index : "..pc.get_map_index()) -- say("access limit : "..pc.getf("flame_dungeon","exit_time")) -- say("global time : "..get_global_time()) -- if flame_dungeon.is_flamed(d.get_map_index()) then -- say("in dungeon") -- is_flamed ÇÔ¼ö üũ -- end -- if d.is_unique_dead("stone1") then -- say("stone1 is dead") -- else -- say("stone1 is not dead") -- end -- end -- when 20385.chat."óÀ½À¸·Î" begin -- Å×½ºÆ®¿ë -- say("ÃʱâÈ ÇÕ´Ï´Ù") -- flame_dungeon.clear_timer(d.get_map_index()) -- flame_dungeon.make_dungeon() -- end when 20385.chat."Test : Boss Room" with is_test_server() begin -- Å×½ºÆ®¿ë flame_dungeon.go_boss() end -- < ½Ã°£ °æ°ú ŸÀ̸Ó> -- when 20385.chat."³ª°¡±â" begin -- ´øÀü¿¡¼ ƨ±âÁö ¾Ê°Ô ÇÒ °æ¿ì È°¼ºÈ -- local setting = flame_dungeon.setting() -- say("¹ÛÀ¸·Î ³ª°¡½Ã°Ú½À´Ï±î?") -- local warp = select("È®ÀÎ","Ãë¼Ò") -- if warp == 1 then -- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62) -- end -- end when flame_dungeon_45m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 45),d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg()) end end when flame_dungeon_30m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 30),d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg()) end end when flame_dungeon_15m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 15),d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg()) end end when flame_dungeon_5m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 5),d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg()) end end when flame_dungeon_1m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 1),d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg()) end end when flame_dungeon_0m_left_timer.server_timer begin local setting = flame_dungeon.setting() if d.select(get_server_timer_arg()) then notice_multiline(gameforge.flame_dungeon._190_notice,d.notice) notice_multiline(gameforge.flame_dungeon._200_notice,d.notice) server_timer("dungeon_end_timer",10,d.get_map_index()) end end -- <<<< ´øÀü ÁøÇà>>>> -- when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'´Â x¹ø° ·¹º§ Äù½ºÆ® ¹ÞÀ» ¼ö ÀÖ´Â »óÅ , '1x'´Â x¹ø° ·¹º§ Äù½ºÆ® ÁøÇàÁß local setting = flame_dungeon.setting() if d.getf("started") == 0 then say(gameforge.flame_dungeon._230_say) say(gameforge.flame_dungeon._240_say) wait() d.setf("started",1) -- ÆÄƼ¿øÀÌ Æ¨°Ü¹ö·È´Âµ¥ Àڱ⸸ ³²¾Æ¼ exit timer°¡ ¸®¼ÂµÇ¸é ¾ÈµÇ´Ï±ñ ´ÙÀ½·¹º§À» ´·¶À»¶§¸¦ ½ÃÀÛÇÒ¶§·Î º½ server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index()) notice_multiline(gameforge.flame_dungeon._250_notice,d.notice) notice_multiline(gameforge.flame_dungeon._170_notice,d.notice) -- ÅëÇàÁõ °ü·ÃµÈ ó¸® -- ÀÔÀå ÈÄ¿¡ ƼÄÏÀ» ¾ø¾Ø »ç¶÷À» ƨ°Ü³»±â À§Çؼ ŸÀ̸Ӹ¦ ÀÌ¿ëÇØ Æ¼ÄÏÀ» Á¦°ÅÇÑ´Ù. local pids = {party.get_member_pids()} local ticketGroup = {get_special_item_group (10033)} for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false for idx=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then canPass = true pc.remove_item(ticketGroup[idx], ticketGroup[idx+1]) break end end if not canPass then pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62) end q.end_other_pc_block() end d.setqf2("flame_dungeon","ticket_delete",1) d.setf("dungeon_enter",1) -- ´øÀü°ú ÆÄƼ¿¡ ¼·Î¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÑ´Ù. party.setf("dungeon_index", d.get_map_index()) d.setf("party_leader_pid", party.get_leader_pid()) end if d.getf("level") < 7 then --ÁøÇàÁßÀÌ ¾Æ´Ï¸é if d.getf("clear_count") == 6 then -- ¹æ ¿©¼¸°³ ÇßÀ¸¸é º¸½º¹æ d.setf("level",7) else local rand = number(1,6)--·£´ý¿¡¼ ¹æ¹®Ã¼Å©´Â µû·Î ¹è¿¾øÀÌ ¹æÀÇ ¹®ÀÇ ¿·ÁÀÖ´ÂÁö·Î üũÇÔ local setlev = 0 d.setf("level",7) -- Ȥ½Ã ¸ð¸¦ ¹®Á¦°¡ »ý°Ü ·¹º§ÀÌ ¾ÈÀâÈú°æ¿ì¸¦ ´ëºñÇØ º¸½º·ëÀ¸·Î ¼ÂÆÃÇØµÒ for i=1,50 do setlev = setlev + 1 if setlev > 6 then setlev = 1 end if not d.is_unique_dead("door"..setlev) then rand = rand - 1 if rand == 0 then d.setf("level",setlev) d.setf("clear_count",d.getf("clear_count")+1) break end end end end end if d.getf("level") == 1 then say(gameforge.flame_dungeon._260_say) notice_multiline(gameforge.flame_dungeon._260_say,d.notice) d.kill_unique("door1") d.kill_unique("idoor1") d.setf("level",11) d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt") server_timer ("killed_A_1", 12, d.get_map_index()) elseif d.getf("level") == 11 then say(gameforge.flame_dungeon._270_say) say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster()) elseif d.getf("level") == 2 then say(gameforge.flame_dungeon._290_say) say(gameforge.flame_dungeon._300_say) notice_multiline(gameforge.flame_dungeon._290_say,d.notice) notice_multiline(gameforge.flame_dungeon._300_say,d.notice) d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ºÀÀμ® ¼Òȯ d.kill_unique("door2") d.kill_unique("idoor2") d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt") d.setf("level",12) elseif d.getf("level") == 12 then say(gameforge.flame_dungeon._310_say) elseif d.getf("level") == 3 then say(gameforge.flame_dungeon._260_say) notice_multiline(gameforge.flame_dungeon._260_say,d.notice) d.kill_unique("door3") d.kill_unique("idoor3") d.setf("level",13) d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt") server_timer ("killed_A_1", 12, d.get_map_index()) elseif d.getf("level") == 13 then say(gameforge.flame_dungeon._270_say) say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster()) elseif d.getf("level") == 4 then -- 474 178 say(gameforge.flame_dungeon._320_notice) notice_multiline(gameforge.flame_dungeon._320_notice,d.notice) d.setf("level",14) d.kill_unique("door4") d.kill_unique("idoor4") d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt") d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- Ÿ°Ù¸ó½ºÅÍ ¼ÒÇÑ elseif d.getf("level") == 14 then say(gameforge.flame_dungeon._330_say) say(gameforge.flame_dungeon._340_say) elseif d.getf("level") == 5 then -- 510 355 say(gameforge.flame_dungeon._350_say) say(gameforge.flame_dungeon._360_say) notice_multiline(gameforge.flame_dungeon._350_say,d.notice) notice_multiline(gameforge.flame_dungeon._360_say,d.notice) d.kill_unique("door5") d.kill_unique("idoor5") d.setf("level",15) d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") local vis = { 0,0,0,0,0,0,0} for i=1,7 do vis[i] = 0 end for i = 1, 7 do -- ·£´ýÇÏ°Ô µ¹¼Òȯ local ran = number(1,7) local st = 0 for j = 1, 50 do st = st + 1 if st > 7 then st = 1 end if vis[st] == 0 then ran = ran - 1 if ran == 0 then vis[st] = 1 d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2])) break end end end end elseif d.getf("level") == 15 then say(gameforge.flame_dungeon._370_say) elseif d.getf("level") == 6 then -- 507 490 say(gameforge.flame_dungeon._380_say) notice_multiline(gameforge.flame_dungeon._380_say,d.notice) d.setf("level",16) d.kill_unique("door6") d.kill_unique("idoor6") d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt") d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- Ÿ°Ù¿ÀºêÁ§Æ® ¼Òȯ elseif d.getf("level") == 16 then say(gameforge.flame_dungeon._390_say) say(gameforge.flame_dungeon._400_say) elseif d.getf("level") == 7 then -- setskin(NOWINDOW) flame_dungeon.go_boss() else say(gameforge.flame_dungeon._410_say) end npc.unlock() end when dungeon_end_timer.server_timer begin -- Á¾·á ŸÀÌ¸Ó (³¡³ª°í ³ª°¡´Â°Å) local setting = flame_dungeon.setting() if d.select(get_server_timer_arg()) then flame_dungeon.clear_timer(d.get_map_index()) d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) d.exit_all() d.setf("party_leader_pid", 0) end end when killed_A_1.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â1 (level1,level3) if d.select(get_server_timer_arg()) then if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã if d.getf("level") == 11 then notice_multiline(gameforge.flame_dungeon._420_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) else notice_multiline(gameforge.flame_dungeon._420_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) end d.setf("level",0) else server_timer ("killed_A_2", 6, get_server_timer_arg()) end end end when killed_A_2.server_timer begin -- ŸÀÌ¸Ó µ¹¸®±â2 (1°ú 2 ¹ø°¥¾Æ°¡¸é¼ µ¹¾Æ°¨) if d.select(get_server_timer_arg()) then if d.count_monster() <= 0 then -- 1·¹º§ ¸ó½ºÅÍ Àü¸ê½Ã if d.getf("level") == 11 then notice_multiline(gameforge.flame_dungeon._420_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) else notice_multiline(gameforge.flame_dungeon._420_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) end d.setf("level",0) else server_timer ("killed_A_1", 6, get_server_timer_arg()) end end end when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2·¹º§ ºÀÀμ® ¿¼è µå¶ø local i = number(1, 100) -- 100ºÐÀÇ 1 È®·ü·Î ¿¼èµå¶ø if i == 1 then game.drop_item (30329, 1) end end when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2·¹º§ ¿¼è ¸Ô¾úÀ»¶§ local i = number(1, 5) -- 5ºÐÀÇ 1 È®·ü·Î ÁøÂ¥ ¿¼è if i == 1 then npc.purge() item.remove() notice_multiline(gameforge.flame_dungeon._440_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() else item.remove() say(gameforge.flame_dungeon._450_say) end end when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin notice_multiline(gameforge.flame_dungeon._460_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() end when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5·¹º§ ºÀÀμ® ¿¼è µå¶ø local i = number(1, 30) -- 30ºÐÀÇ 1 È®·ü·Î ¿¼èµå¶ø if i == 1 then game.drop_item (30330, 1) end end when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5·¹º§ ÁøÂ¥¿¼è ¸Ô¾úÀ»¶§ local setting = flame_dungeon.setting() if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ù¹ø° ²¨´Â ¼±ÇàµÇ¾î¾ß ÇÒ ÀÏÀÌ ÇÊ¿ä¾øÀ¸´Ï ãÀÚ¸¶ÀÚ Á¦°ÅÇØÁÜ npc.purge() item.remove() say(gameforge.flame_dungeon._470_say) d.setf("stonekill",2) -- 2¹ø µ¹À» Á׿©¶ó if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end elseif npc.get_vid() == d.get_unique_vid("stone5_2") then if d.getf("stonekill") == 2 then -- 2¹øµ¹À» Á×ÀÏ Â÷·Ëµ¥ 2¹øµ¹¿¡°Ô ¿¼è¸¦ ¸Ô¿´À» ¶§ npc.purge() item.remove() say(gameforge.flame_dungeon._480_say) d.setf("stonekill",3) if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end else item.remove() say(gameforge.flame_dungeon._490_say) -- say("2¹ø") end elseif npc.get_vid() == d.get_unique_vid("stone5_3") then if d.getf("stonekill") == 3 then npc.purge() item.remove() say(gameforge.flame_dungeon._500_say) d.setf("stonekill",4) if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end else item.remove() say(gameforge.flame_dungeon._490_say) -- say("3¹ø") end elseif npc.get_vid() == d.get_unique_vid("stone5_4") then if d.getf("stonekill") == 4 then npc.purge() item.remove() say(gameforge.flame_dungeon._510_say) d.setf("stonekill",5) if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end else item.remove() say(gameforge.flame_dungeon._490_say) -- say("4¹ø") end elseif npc.get_vid() == d.get_unique_vid("stone5_5") then if d.getf("stonekill") == 5 then npc.purge() item.remove() say(gameforge.flame_dungeon._520_say) d.setf("stonekill",6) if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end else item.remove() say(gameforge.flame_dungeon._490_say) -- say("5¹ø") end elseif npc.get_vid() == d.get_unique_vid("stone5_6") then if d.getf("stonekill") == 6 then npc.purge() item.remove() say(gameforge.flame_dungeon._530_say) d.setf("stonekill",7) if d.count_monster() < 100 then d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt") end else item.remove() say(gameforge.flame_dungeon._490_say) -- say("6¹ø") end else if d.getf("stonekill") == 7 then npc.purge() item.remove() notice_multiline(gameforge.flame_dungeon._440_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() else item.remove() say(gameforge.flame_dungeon._490_say) -- say("7¹ø") end end end when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ¸Á¸¶¼® Æı«ÇßÀ» ¶§ notice_multiline(gameforge.flame_dungeon._540_notice,d.notice) notice_multiline(gameforge.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() end when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- º¸½º Á׿´À»¶§ notice_multiline(gameforge.flame_dungeon._550_notice,d.notice) notice_multiline(gameforge.flame_dungeon._560_notice,d.notice) server_timer("dungeon_end_timer", 60,d.get_map_index()) flame_dungeon.level_clear() -- ÆÄƼ¿ø Áß, ¾ß¸¶Ãµ Àâ´Â Äù½ºÆ®(104·¾, 105·¾ Äù½ºÆ®) ÁøÇàÁßÀÎ »ç¶÷ÀÌ ÀÖÀ¸¸é Äù½ºÆ® Ŭ¸®¾î µÇµµ·Ï. if party.is_party() then party.setf("flame_dungeon_boss_kill_count", 1) end end end end Edited August 15, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
Think 117 Posted June 16, 2014 Share Posted June 16, 2014 The format of your code paste is completely screwed up it's impossible that anyone will help you with that code. Try to edit your message with proper indentation, line breaks, and no html. Link to comment Share on other sites More sharing options...
yagokurt 84 Posted June 16, 2014 Author Share Posted June 16, 2014 The format of your code paste is completely screwed up it's impossible that anyone will help you with that code. Try to edit your message with proper indentation, line breaks, and no html. Done, sry idk why it change. Link to comment Share on other sites More sharing options...
M.Sorin 282 Posted June 16, 2014 Share Posted June 16, 2014 Search in your quest_functions for get_special_item_group and add this to special_item_group.txt Group ticket_group { Vnum 10033 1 71095 1 100 } Link to comment Share on other sites More sharing options...
yagokurt 84 Posted June 17, 2014 Author Share Posted June 17, 2014 &nbsp; Search in your quest_functions for get_special_item_group and add this to special_item_group.txt Group ticket_group{Vnum 100331 71095 1 100} &nbsp; Hi Sorin. I alrdy have the function on the quest_functions and this is my special_item_group, should i edit ? Group flame_dungeon_ticket_group { Vnum 10033 1 71095 1 1 2 71130 1 1 } edit Alrdy test with this Group flame_dungeon_ticket_group { Vnum 10033 1 71095 1 100 } Link to comment Share on other sites More sharing options...
Active Member ATAG 310 Posted June 17, 2014 Active Member Share Posted June 17, 2014 You don't have get_special_item_group function in the game file, try to use a more recent version. Link to comment Share on other sites More sharing options...
M.Sorin 282 Posted June 17, 2014 Share Posted June 17, 2014 What game revision do you use? Link to comment Share on other sites More sharing options...
yagokurt 84 Posted June 17, 2014 Author Share Posted June 17, 2014 I'm using the Vanilla 2.4.1 Link to comment Share on other sites More sharing options...
Active Member ATAG 310 Posted June 17, 2014 Active Member Share Posted June 17, 2014 Unfortunetly Vannila core doesn't have this function (yet). Link to comment Share on other sites More sharing options...
Developer Solution PACI 921 Posted June 17, 2014 Developer Solution Share Posted June 17, 2014 In that case just replace: local ticketGroup = {get_special_item_group (10033)}With: local ticketGroup = {71095, 1, 71130, 1} 4 when you return 0 and server doesn't boot: Link to comment Share on other sites More sharing options...
yagokurt 84 Posted June 17, 2014 Author Share Posted June 17, 2014 In that case just replace: local ticketGroup = {get_special_item_group (10033)}With: local ticketGroup = {71095, 1, 71130, 1} Problem solved, thanks pacificador. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now