boomber 2 Posted May 7, 2014 Share Posted May 7, 2014 I m doing a dedicate and unfortunatly the only one quest which doesn t work is FireDungeon i have the 100% official style so i really want to add this in my dedicate Can someone explain me why on VIrtualMachine before switching into a dedicate the FireDungeon quest works perfectly no bug, all complete perfect and now it s the only one which doesn t work! if someone can help me i will send him the quest and he will tell me why on a dedicate it s not working! --------- The wired thing is that on .qc namequest.quest work no error and when i m clicking on the npc it works perfectly . appears the script which say "welcome, click on me bla bla bla" but..it stops when it suppose to "see if I and MY team mates members have the tickets" with this function: local ticketGroup = {get_special_item_group (10033)} this makes me the erro only inside this dedicate, i m using vanilla core 2.4 Can some one send me the actual 100% fire dungeon quest or maybe someone like Denic Cikiec or someone else with open mind and good knowledge? please i really think , thanks to my friend which notes that problem, that the "bug " is on that function.... i will send him the entire quest for helping me please Deniec please help me again or someone else Thanks sososoos much! quest flame_dungeon begin state start 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.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[1], setting.doors_pos[2],setting.doors_dir)) end for i=1,6 do d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[1], setting.idoors_pos[2],setting.idoors_dir)) end d.setf("clear_count",0) d.setf("started",0) d.setf("dungeon_enter",0) end function go_boss() local setting = flame_dungeon.setting() if pc.get_level() < 104 then say(quest_text.flame_dungeon._580_notice) return else --if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ¼±ÇàÄù½ºÆ® È®ÀÎ say_title("Final Room:") say(quest_text.flame_dungeon._010_say) local warp = select(quest_text.flame_dungeon._020_select,quest_text.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(6091,setting.boss_pos[1],setting.boss_pos[2]) end -- else -- syschat(quest_text.flame_dungeon._040_notice) -- say(quest_text.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) 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 ("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(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) >= ticketGroup[i+1] then canPass = true break end end if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then notice_multiline(quest_text.flame_dungeon._050_notice,d.notice) say(quest_text.flame_dungeon._060_say) timer("flame_dungeon_warp_timer", 5) elseif not canPass then notice_multiline(quest_text.flame_dungeon._070_notice,d.notice) say(quest_text.flame_dungeon._080_say) timer("flame_dungeon_warp_timer", 5) elseif pc.get_level() < 105 then notice_multiline(quest_text.flame_dungeon._090_notice,d.notice) say(quest_text.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) >= ticketGroup[i+1] then pc.remove_item(ticketGroup, 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()) end end end when 20394.chat.quest_text.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 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 say_title(mob_name(20394)) say(quest_text.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 < 105 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(quest_text.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(quest_text.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(quest_text.flame_dungeon._120_say) local warp = select(quest_text.flame_dungeon._130_select,quest_text.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(quest_text.flame_dungeon._600_say) end end party.setf("flame_dungeon_boss_kill_count", 0) else say(quest_text.flame_dungeon._150_say) end end else say(quest_text.flame_dungeon._160_say) end end when 20385.chat."Test : Boss Room" with is_test_server() begin -- Å×½ºÆ®¿ë flame_dungeon.go_boss() end when flame_dungeon_45m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(quest_text.flame_dungeon._180_notice, 45),d.notice) notice_multiline(quest_text.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_30m_left_timer', 15*60, d.get_map_index()) end end when flame_dungeon_30m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(quest_text.flame_dungeon._180_notice, 30),d.notice) notice_multiline(quest_text.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_15m_left_timer', 15*60, d.get_map_index()) end end when flame_dungeon_15m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(quest_text.flame_dungeon._180_notice, 15),d.notice) notice_multiline(quest_text.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_5m_left_timer', 10*60, d.get_map_index()) end end when flame_dungeon_5m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(quest_text.flame_dungeon._180_notice, 5),d.notice) notice_multiline(quest_text.flame_dungeon._170_notice,d.notice) server_timer('flame_dungeon_1m_left_timer', 4*60, d.get_map_index()) end end when flame_dungeon_1m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then notice_multiline(string.format(quest_text.flame_dungeon._180_notice, 1),d.notice) notice_multiline(quest_text.flame_dungeon._170_notice,d.notice) server_timer ("flame_dungeon_0m_left_timer", 60, d.get_map_index()) 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(quest_text.flame_dungeon._190_notice,d.notice) notice_multiline(quest_text.flame_dungeon._200_notice,d.notice) server_timer("dungeon_end_timer",10, d.get_map_index()) end end when 20385.chat.quest_text.flame_dungeon._210_npcChat with npc.lock() begin local setting = flame_dungeon.setting() if d.getf("started") == 0 then say(quest_text.flame_dungeon._230_say) say(quest_text.flame_dungeon._240_say) wait() d.setf("started",1) server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index()) notice_multiline(quest_text.flame_dungeon._250_notice,d.notice) notice_multiline(quest_text.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(quest_text.flame_dungeon._260_say) notice_multiline(quest_text.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_loop_timer('killed_A_1', 12, d.get_map_index()) elseif d.getf("level") == 11 then say(quest_text.flame_dungeon._270_say) say_title(quest_text.flame_dungeon._280_sayTitle .. d.count_monster()) elseif d.getf("level") == 2 then say(quest_text.flame_dungeon._290_say) say(quest_text.flame_dungeon._300_say) notice_multiline(quest_text.flame_dungeon._290_say,d.notice) notice_multiline(quest_text.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(quest_text.flame_dungeon._310_say) elseif d.getf("level") == 3 then say(quest_text.flame_dungeon._260_say) notice_multiline(quest_text.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_loop_timer('killed_A_1', 5, d.get_map_index()) elseif d.getf("level") == 13 then say(quest_text.flame_dungeon._270_say) say_title(quest_text.flame_dungeon._280_sayTitle..d.count_monster()) elseif d.getf("level") == 4 then -- 474 178 say(quest_text.flame_dungeon._320_notice) notice_multiline(quest_text.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(quest_text.flame_dungeon._330_say) say(quest_text.flame_dungeon._340_say) elseif d.getf("level") == 5 then -- 510 355 say(quest_text.flame_dungeon._350_say) say(quest_text.flame_dungeon._360_say) notice_multiline(quest_text.flame_dungeon._350_say,d.notice) notice_multiline(quest_text.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 = 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[1], setting.LEVEL5_STONE_pos[2])) break end end end end elseif d.getf("level") == 15 then say(quest_text.flame_dungeon._370_say) elseif d.getf("level") == 6 then -- 507 490 say(quest_text.flame_dungeon._380_say) notice_multiline(quest_text.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(quest_text.flame_dungeon._390_say) say(quest_text.flame_dungeon._400_say) elseif d.getf("level") == 7 then -- setskin(NOWINDOW) flame_dungeon.go_boss() else say(quest_text.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 if d.select(get_server_timer_arg()) then if d.getf("level") == 11 or d.getf("level") == 13 then if d.count_monster() <= 0 then notice_multiline(quest_text.flame_dungeon._420_notice,d.notice) notice_multiline(quest_text.flame_dungeon._430_notice,d.notice) d.setf("level", 0) end end end end when kill with flame_dungeon.is_flamed(pc.get_map_index()) begin if d.getf("level") == 12 then local i = number(1, 100) if i == 1 then game.drop_item (30329, 1) end end if d.getf("level") == 15 then local i = number(1, 30) if i == 1 then game.drop_item (30330, 1) end 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) if i == 1 then npc.purge() item.remove() notice_multiline(quest_text.flame_dungeon._440_notice,d.notice) notice_multiline(quest_text.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() else item.remove() say(quest_text.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(quest_text.flame_dungeon._460_notice,d.notice) notice_multiline(quest_text.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() end when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin local setting = flame_dungeon.setting() if npc.get_vid() == d.get_unique_vid("stone5_1") then npc.purge() item.remove() say(quest_text.flame_dungeon._470_say) d.setf("stonekill",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(quest_text.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(quest_text.flame_dungeon._490_say) end elseif npc.get_vid() == d.get_unique_vid("stone5_3") then if d.getf("stonekill") == 3 then npc.purge() item.remove() say(quest_text.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(quest_text.flame_dungeon._490_say) end elseif npc.get_vid() == d.get_unique_vid("stone5_4") then if d.getf("stonekill") == 4 then npc.purge() item.remove() say(quest_text.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(quest_text.flame_dungeon._490_say) end elseif npc.get_vid() == d.get_unique_vid("stone5_5") then if d.getf("stonekill") == 5 then npc.purge() item.remove() say(quest_text.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(quest_text.flame_dungeon._490_say) end elseif npc.get_vid() == d.get_unique_vid("stone5_6") then if d.getf("stonekill") == 6 then npc.purge() item.remove() say(quest_text.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(quest_text.flame_dungeon._490_say) end else if d.getf("stonekill") == 7 then npc.purge() item.remove() notice_multiline(quest_text.flame_dungeon._440_notice,d.notice) notice_multiline(quest_text.flame_dungeon._430_notice,d.notice) flame_dungeon.level_clear() else item.remove() say(quest_text.flame_dungeon._490_say) end end end when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin notice_multiline(quest_text.flame_dungeon._540_notice,d.notice) notice_multiline(quest_text.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(quest_text.flame_dungeon._550_notice,d.notice) notice_multiline(quest_text.flame_dungeon._560_notice,d.notice) server_timer("dungeon_end_timer", 60, d.get_map_index()) flame_dungeon.level_clear() if party.is_party() then party.setf("flame_dungeon_boss_kill_count", 1) end end end end Link to comment Share on other sites More sharing options...
Premium Shogun 4604 Posted May 8, 2014 Premium Share Posted May 8, 2014 This forum is for releases as it's name says. Moved. Link to comment Share on other sites More sharing options...
boomber 2 Posted May 8, 2014 Author Share Posted May 8, 2014 I m sorry for that Shogun, sorry Can someone help me to remove the ticket views? in LUA? i would like to remove the ticket to enter inside the blazing purgatory please can some one help me with that LUA? please Link to comment Share on other sites More sharing options...
boomber 2 Posted May 9, 2014 Author Share Posted May 9, 2014 Now it works, thanks to my friend Dajubi the quest is still working But i have a problem when i go inside i instant go back, due to the fact it checks if i have ticket or no. Can some one be so nice to help me to remove the last functions? i will pay that for disturb just add me on skype please or write to me a private message, i will pay for the disturb, please i need help just with that 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