Ich habe ein Problem ( Original Kori's Flummenrun Lua) Ich gehe in Gruppe mit möchte den run betreten jedoch schmeißt er mich gleich aus dem Spiel ohne Syserr Eintragung.
Würdet ihr mal bitte die Quest richtig durch schauen ob da alles stimmt bitte.
Und würdet ihr mir eventuell die Funktion mit einbauen das man nicht mehr in einer Gruppe sein muss sondern alleine den Run betreten darf bitte
PHP 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