Hallo habe folgendes Problem
Dieses RUN Quest funktioniert nicht ich werde immer wd zurück teleportiert...
Kann mir jemand helfen Danke schonmal..
Dieses RUN Quest funktioniert nicht ich werde immer wd zurück teleportiert...
Kann mir jemand helfen Danke schonmal..
Code:
define BLOCK_DOOR 20387 define DUNGEON_MAN 20385 define DUNGEON_MAN_DIR 0 define DUNGEON_MAP_INDEX 351 define ENTER_LIMIT_TIME 30 define ENTRY_MAN 20394 define ENTRY_MAP_INDEX 62 define FINAL_BOSS 6091 define LEVEL2_KEY 30329 define LEVEL2_STONE 20386 define LEVEL4_TARGET 6051 define LEVEL5_REALKEY 30330 define LEVEL5_STONE 20386 define LEVEL5_GEN_LIMIT 100 define LEVEL6_TARGET 8057 define LEVEL_CUT 100 define MOB_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/" define IN_DOOR 20388 define NPC_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/npc.txt" define TICKET_GROUP 10033 define LIMITED_PASS_TICKET 71175 quest flame_dungeon begin state start begin when ENTRY_MAN.click with pc.get_level() >= 100 begin pc.give_item2(LIMITED_PASS_TICKET, 1) set_state(run) 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 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(ENTRY_MAP_INDEX, 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 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 >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) *10000 end function make_dungeon() -- ?? ??? local setting = flame_dungeon.setting() d.new_jump_party(DUNGEON_MAP_INDEX, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2]) -- d.spawn_mob_ac_dir(DUNGEON_MAN, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],DUNGEON_MAN_DIR) -- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2]) d.regen_file(NPC_REGEN_FILE_PATH) d.setf("level",0) for i=1,6 do d.set_unique("door"..i, d.spawn_mob_ac_dir(BLOCK_DOOR, 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(IN_DOOR, 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 -- say_title(gameforge.flame_dungeon._010_say) say_title("Schlund des Am-heh") say("") say("Möchtest du durch den Schlund des Am-heh gehen und") say("deinem Schicksal begegnen?") local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select) if warp == 1 then d.notice("Besiegt Razador, den König über Feuer und Asche.") d.setf("level",17) d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2]) d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt") -- d.spawn_mob(DUNGEON_MAN,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2]) d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2]) 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 == DUNGEON_MAP_INDEX then pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, ENTRY_MAP_INDEX) elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ?? ------------------------------------------------------------------------------------------------------------------------------------------------------ --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??. --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??. ------------------------------------------------------------------------------------------------------------------------------------------------------ -- pc.set_warp_location(0, 0 , 0) --???? ?? ???? ??? ?? ?? pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ???? local ticketGroup = {71093, 1, 71130, 1} 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") < ENTER_LIMIT_TIME * 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, ENTRY_MAP_INDEX) 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 ENTRY_MAN.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(ENTRY_MAN)) 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 = {71175, 1, 71130, 1} 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 < LEVEL_CUT then table.insert(notEnoughLevelMembers, pc.get_name()) levelCheck = false end q.end_other_pc_block() end if not ticketCheck then say_title("Die Rotdrachen-Festung ~ Dungeon") say("") say_reward("Betreten fehlgeschlagen!") say("") say("Um die Rotdrachen-Festung zu betreten,") say("benötigt jedes Mitglied der Gruppe einen") say("Passierschein. Folgende Spieler tragen derzeit") say("keinen bei sich:") 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("Die Rotdrachen-Festung ~ Dungeon") say("") say_reward("Betreten fehlgeschlagen!") say("") say("Um die Rotdrachen-Festung zu betreten,") say("muss jedes Mitglied der Gruppe Level 100") say("erreicht haben. Folgende Spieler haben derzeit") say("das Level nicht erreicht:") for i, name in next, notEnoughLevelMembers, nil do say(color(1,1,0), " ~ "..name) end return end if party.is_leader() then say_title("Die Rotdrachen-Festung ~ Dungeon") say("") say("Einen Kampf mit Razador aufnehmen.") say("") say_reward("Möchtest du die Rotdrachen-Festung betreten?") 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() - ENTER_LIMIT_TIME * 60 ) then flame_dungeon.make_dungeon() else --say("test : ???? ?? ????? ??? ?????.") say_title("Die Rotdrachen-Festung ~ Dungeon") say("") say_reward("Betreten fehlgeschlagen!") say("") say("Die Wartezeit für den Wiedereintritt in die") say("Rotdrachen-Festung ist noch nicht abgelaufen. ") say("Verb. Zeit: "..LIB_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."") end end party.setf("flame_dungeon_boss_kill_count", 0) else say(gameforge.flame_dungeon._150_say) end end else say_title("Die Rotdrachen-Festung ~ Dungeon") say("") say_reward("Betreten fehlgeschlagen!") say("") say("Ich schätze deinen Mut, doch alleine wirst du in") say("der Rotdrachen-Festung in dein Verderben rennen.") say("Stelle eine starke Gruppe zusammen und ich werde") say("dir Einlass gewähren.") end end -- when ENTRY_MAN.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, DUNGEON_MAP_INDEX) -- end when ENTRY_MAN.chat."TEST : Init time limit init" with is_test_server() begin -- ???? pc.setf("flame_dungeon","exit_time",get_global_time()-3550) say("Done") end -- when DUNGEON_MAN.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 DUNGEON_MAN.chat."????" begin -- ???? -- say("??? ???") -- flame_dungeon.clear_timer(d.get_map_index()) -- flame_dungeon.make_dungeon() -- end when DUNGEON_MAN.chat."Test : Boss Room" with is_test_server() begin -- ???? flame_dungeon.go_boss() end -- < ?? ?? ???> -- when DUNGEON_MAN.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, ENTRY_MAP_INDEX) -- end -- end -- <<<< ?? ??>>>> -- when DUNGEON_MAN.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_title("Schlund des Am-heh") say("") say_reward("Der Schlund des Am-heh wurde erweckt.") say("") say("Nun kommt niemand mehr herein – oder heraus.") say("Die Tore der Rotdrachen-Festung schließen sich für") say("eine Stunde.") 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 = {71093, 1, 71130, 1} 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, ENTRY_MAP_INDEX) 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_title("Schlund des Am-heh") say("") say("Aufgabe: Wagt euch in den Ring der Dämonen und") say("geht als Sieger hervor.") notice_multiline(gameforge.flame_dungeon._260_say,d.notice) d.kill_unique("door1") d.kill_unique("idoor1") d.setf("level",11) d.regen_file (MOB_REGEN_FILE_PATH.."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_title("Schlund des Am-heh") say("") say("Aufgabe: Findet das goldene Zahnrad und löst damit") say("den verborgenen Mechanismus in der Stele der Isfet") say("aus.") notice_multiline(gameforge.flame_dungeon._290_say,d.notice) d.spawn_mob(LEVEL2_STONE, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ?? d.kill_unique("door2") d.kill_unique("idoor2") d.set_regen_file (MOB_REGEN_FILE_PATH.."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_title("Schlund des Am-heh") say("") say("Aufgabe: Wagt euch in den Ring der Dämonen und") say("geht als Sieger hervor.") notice_multiline(gameforge.flame_dungeon._260_say,d.notice) d.kill_unique("door3") d.kill_unique("idoor3") d.setf("level",13) d.regen_file (MOB_REGEN_FILE_PATH.."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_title("Schlund des Am-heh") say("") say("Aufgabe: Besiegt Ignator, Bewacher der Glut.") 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 (MOB_REGEN_FILE_PATH.."fd_d.txt") d.spawn_mob(LEVEL4_TARGET,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_title("Schlund des Am-heh") say("") say("Aufgabe: Sucht nach den Steinen der Maat und zieht") say("sie in der richtigen Reihenfolge auf die sieben") say("Stelen der Isfet.") say("Wendet ihr den Stein der Maat auf der falschen") say("Stele an, zerbricht er.") 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 (MOB_REGEN_FILE_PATH.."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(LEVEL5_STONE, 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_title("Schlund des Am-heh") say("") say("Aufgabe: Nur wer die sengende Hitze nicht scheut,") say("wird den Metin des Fegefeuers zerstören.") 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 (MOB_REGEN_FILE_PATH.."fd_f.txt") d.spawn_mob(LEVEL6_TARGET, 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 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 (LEVEL2_KEY, 1) end end when LEVEL2_STONE.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY 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_title("Schlund des Am-heh") say("") say("Dieses Zahnrad war eine Fälschung und wurde") say("zerstört. Findet das Original.") end end when LEVEL4_TARGET.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 (LEVEL5_REALKEY, 1) end end when LEVEL5_STONE.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY 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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die nächste") say("Stele.") d.setf("stonekill",2) -- 2? ?? ??? if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die nächste") say("Stele.") d.setf("stonekill",3) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- 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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die nächste") say("Stele.") d.setf("stonekill",4) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- 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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die nächste") say("Stele.") d.setf("stonekill",5) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- 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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die nächste") say("Stele.") d.setf("stonekill",6) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- 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_title("Schlund des Am-heh") say("") say("Das war eine weise Wahl. Zerstört nun die letzte") say("Stele.") d.setf("stonekill",7) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- 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_title("Schlund des Am-heh") say("") say("Falsche Reihenfolge. Der Stein der Maat wurde") say("dabei zerstört.") -- say("7?") end end end when LEVEL6_TARGET.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 FINAL_BOSS.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) game.drop_item_with_ownership(72000, 1) game.drop_item_with_ownership(81001, 1) game.drop_item_with_ownership(72000, 1) notice_all("Die Gruppe von ".. pc.get_name() .." haben Razador besiegt. Herzlichen Glückwunsch!") notice_all("Endlich herrscht Frieden in der Rotdrachen-Festung.") 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