|
You last visited: Today at 14:49
Advertisement
[SERVICE] Die Questerstellung
Discussion on [SERVICE] Die Questerstellung within the Metin2 Private Server forum part of the Metin2 category.
10/26/2016, 01:06
|
#3541
|
elite*gold: 0
Join Date: Apr 2014
Posts: 23
Received Thanks: 3
|
Suche Seelenstein mit Lykaner & sollte Rankpunkte usw Kosten also genau wie auf De Wäre lieb wenn jemand hätte
|
|
|
10/26/2016, 01:35
|
#3542
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by rollback
wozu eine schleife?
Code:
quest minmaxlvmap begin
state start begin
when login or levelup begin
local minMaxLv = ({
[65] = {90, 100},--[MAPINDEX] = {MINLV, MAXLV},
})[pc.get_map_index()]
if minMaxLv and (pc.get_level() < minMaxLv[1] or pc.get_level() > minMaxLv[2]) then
warp_to_village()
end
end
end
end
|
Weil: Map buggen -> Über die Gruppe handeln, entweder ein loop oder die Funktion das Handeln über das Gruppenfenster zu blocken.
|
|
|
10/26/2016, 17:00
|
#3543
|
elite*gold: 0
Join Date: Apr 2015
Posts: 98
Received Thanks: 59
|
Huhu ich weiß zwar nicht ob das möglich ist.. bin auch neu im Questbereich ich würde mich freuen wenn jemand eine Quest hat die alle 24Stunden die Rates an macht für jedes Reich oder eine machen kann
Mfg BuRnOuTx3
|
|
|
11/09/2016, 08:46
|
#3544
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Quote:
Originally Posted by Chaosnightx3
Weil: Map buggen -> Über die Gruppe handeln, entweder ein loop oder die Funktion das Handeln über das Gruppenfenster zu blocken.
|
mach noch, glaube sollte auch den selben effekt haben nur letter kommt öfters
PHP Code:
when login or levelup or letter begin
|
|
|
11/11/2016, 22:38
|
#3545
|
elite*gold: 0
Join Date: Jun 2014
Posts: 21
Received Thanks: 1
|
Servus, ich suche eine Möglichkeit etwas in meine Quest einzubauen. Ich wollte kein neues Thema erstellen da es für einen guten Quester eh nur eine Kleinigkeit ist, deßhalb frage ich mal hier:
Ich will machen dass wenn ein Spieler eine Legendäre Rolle (19010) auf einen NPC zieht sich ein Dialog öffnet: say_title("Was möchtest du haben?")
und dann mehrere Buttons sind er sich aussuchen kann was er haben will.
ABER der jeweilige Button soll nur erscheinen wenn der Spieler das nötige Item im Inventar hat, also sprich:
der Spieler hat Item1 (19021), Item2 (19022) und Item3 (19023) im Inventar also erscheint zur Auswahl:
Weiße Perle (da der Spieler Item1 im Inventar hat)
Blaue Perle (da der Spieler Item2 im Inventar hat)
Rote Perle (da der Spieler Item3 im Inventar hat)
ABER wenn der Spieler nur Item1 und Item3 im Inventar hat erscheint zur Auswahl:
Weiße Perle
Rote Perle
Wählt der Spieler nun zb. Weiße Perle aus, wird Legendäre Rolle (19010) und Item1 (19021) aus dem Inventar entfernt und der Spieler bekommt eine Weiße Perle.
Wäre nice wenn jmd das schreibt und hier postet oder mir schickt damit ich es bei mir einbauen kann oder einfach einen Link postet von einer ähnlichen Quest wo ich es mir selbst ableiten kann. (ich lerne gern dazu)
Danke im Vorraus
|
|
|
11/12/2016, 14:21
|
#3546
|
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
|
PHP Code:
quest legendary begin state start begin when npc.take with item.get_vnum() == 19010 begin local a,b = {},{} for i = 11,13 do if pc.count_item((item.get_vnum()+i)) > 0 then table.insert(b,(item.get_vnum()+i)) table.insert(a,item_name((item.get_vnum()+i))) end end if table.getn(b) == 0 then return end table.insert(a,'abbrechen') say_title('Was möchstest du haben?') local sel = select2(a) if sel == table.getn(a) then return end pc.remove_item(b[sel], 1) pc.remove_item(item.get_vnum(), 1) pc.give_item2((b[sel]+8971),1) end end end
|
|
|
11/12/2016, 14:29
|
#3547
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Quote:
Originally Posted by Tex997
Servus, ich suche eine Möglichkeit etwas in meine Quest einzubauen. Ich wollte kein neues Thema erstellen da es für einen guten Quester eh nur eine Kleinigkeit ist, deßhalb frage ich mal hier:
Ich will machen dass wenn ein Spieler eine Legendäre Rolle (19010) auf einen NPC zieht sich ein Dialog öffnet: say_title("Was möchtest du haben?")
und dann mehrere Buttons sind er sich aussuchen kann was er haben will.
ABER der jeweilige Button soll nur erscheinen wenn der Spieler das nötige Item im Inventar hat, also sprich:
der Spieler hat Item1 (19021), Item2 (19022) und Item3 (19023) im Inventar also erscheint zur Auswahl:
Weiße Perle (da der Spieler Item1 im Inventar hat)
Blaue Perle (da der Spieler Item2 im Inventar hat)
Rote Perle (da der Spieler Item3 im Inventar hat)
ABER wenn der Spieler nur Item1 und Item3 im Inventar hat erscheint zur Auswahl:
Weiße Perle
Rote Perle
Wählt der Spieler nun zb. Weiße Perle aus, wird Legendäre Rolle (19010) und Item1 (19021) aus dem Inventar entfernt und der Spieler bekommt eine Weiße Perle.
Wäre nice wenn jmd das schreibt und hier postet oder mir schickt damit ich es bei mir einbauen kann oder einfach einen Link postet von einer ähnlichen Quest wo ich es mir selbst ableiten kann. (ich lerne gern dazu)
Danke im Vorraus 
|
Hoffe das ist das was du meintest, hab nämlich kein plan ob ich dich richtig verstanden habe
PHP Code:
when 9010.take with item.get_vnum() == 19010 begin
local Itemlist = { {19021,19} {19022,19} {19023,19} } -- {item im invi,neues item}
local selecttab = {}
local newItem = {}
for i = 1, table.getn(Itemlist), 2 do
if pc.count_item(Itemlist[i][1]) > 0 then
table.insert(selecttab,item_name(Itemlist[i][1]))
table.insert(newItem,Itemlist[i])
end
end
table.insert(selecttab,"Abbruch")
local e = select_table(selecttab)
if e == table.getn(selecttab) then
return
end
pc.remove_item(19010)
pc.remove_item(newItem[e][1])
pc.give_item2(newItem[e][2])
end
|
|
|
11/12/2016, 16:44
|
#3548
|
elite*gold: 0
Join Date: Jul 2016
Posts: 14
Received Thanks: 1
|
Guten Tag ,
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
|
|
|
11/15/2016, 10:13
|
#3549
|
elite*gold: 0
Join Date: Oct 2013
Posts: 151
Received Thanks: 7
|
Hey,
Ich suche eine PvP die wie ander laufen soll.
Das einzig andere an der Quest ist, dass die Kills nur zählen sollen, wenn die Spieler +/- 10 level unterschied haben
Das sollte am besten mit dem aufsteigenden level mit laufen.
Ich hoffe das ist möglich
MfG
|
|
|
11/20/2016, 17:28
|
#3550
|
elite*gold: 0
Join Date: May 2016
Posts: 14
Received Thanks: 10
|
Hallo ePvPler und Questler.
Ich habe die frage ob mir jemand eine Quest erstellen kann wo man auf ein item clickt
und sich was öffnet wo man 10 Standorte speichern kann wo man sich immer wieder hin Porten kann.
|
|
|
11/21/2016, 11:40
|
#3551
|
elite*gold: 50
Join Date: Aug 2014
Posts: 508
Received Thanks: 201
|
Quote:
Originally Posted by HK_Easy
Hallo ePvPler und Questler.
Ich habe die frage ob mir jemand eine Quest erstellen kann wo man auf ein item clickt
und sich was öffnet wo man 10 Standorte speichern kann wo man sich immer wieder hin Porten kann.
|
Ide hat dazu bereits eine Quest geschrieben.
Mit freundlichen Grüßen,
x"Kazuki
|
|
|
11/23/2016, 03:05
|
#3552
|
elite*gold: 0
Join Date: Nov 2016
Posts: 36
Received Thanks: 3
|
Ist denn noch was los hier? haha
Sehr geehrte Jungs und Mädels 
Bitte euch drum, mir eine Quest zu schreiben indem folgendes passiert:
Die Leute hier, die sich diese Quest angucken, werden direkt von der Plattform gebannt.
Da die Metin2 Com nicht mehr das ist, was es einmal war!
Also, sollte simpel aufgebaut sein
|
|
|
11/24/2016, 11:01
|
#3553
|
elite*gold: 0
Join Date: Nov 2016
Posts: 30
Received Thanks: 11
|
Hii Leute
Ich habe eine Frage ist es möglich ein Item zuerstellen was erlaubt einen Stein zu 100% in die Waffe oder Rüstung einfügen zulassen.
Wäre echt genial
Mfg.,
|
|
|
11/28/2016, 18:57
|
#3554
|
elite*gold: 0
Join Date: Nov 2016
Posts: 36
Received Thanks: 3
|
Heyho Com,
Hat jemand oder könnte jemand eine Quest schreiben (die gibt es auf vielen Servern!)
wo das Level bekannt gegeben wird?
Zbsp: [Name] hat das Level 30 erreicht, glückwunsch! und das halt bis 127?
|
|
|
11/30/2016, 03:32
|
#3555
|
elite*gold: 118
Join Date: Jan 2013
Posts: 275
Received Thanks: 141
|
Wie kann ich die wartezeit entfernen
quest guild_manage begin
state start begin
when 11000.chat."Gilde verlassen" or 11002.chat."Gilde verlassen" or 11004.chat."Gilde verlassen" with pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Wächter des Dorfplatzes")
say("Möchtest du deine Gilde wirklich")
say("verlassen? Ich denke deine Member")
say("werden enttäuscht von dir sein..")
local s = select("Ja", "Nein")
if s==1 then
say_title("Wächter des Dorfplatzes")
say("Du bist nun wieder Gildenlos!")
pc.remove_from_guild()
pc.setqf("new_withdraw_time",get_global_time(0))
end
end
when 11000.chat."Gilde auflösen" or 11002.chat."Gilde auflösen" or 11004.chat."Gilde auflösen" with pc.hasguild() and pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Wächter des Dorfplatzes")
say("Möchtest du deine Gilde wirklich")
say("auflösen? Ich denke deine Member")
say("werden enttäuscht von dir sein..")
local s = select("Ja", "Nein")
if s==1 then
say_title("Wächter des Dorfplatzes")
say("Deine Gilde ist nun aufgelöst!")
pc.destroy_guild()
pc.setqf("new_disband_time",get_global_time(0))
pc.setqf("new_withdraw_time",get_global_time())
end
end
when 11000.chat."Gilde gründen" or 11002.chat."Gilde gründen" or 11004.chat."Gilde gründen" with not pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
if game.get_event_flag("guild_withdraw_delay")*0 >
get_global_time() - pc.getqf("new_withdraw_time") or
game.get_event_flag("guild_disband_delay")*0 >
get_global_time() - pc.getqf("new_disband_time") then
say_title("Wächter des Dorfplatzes")
say("Du kannst jetzt noch keine neue Gilde gründen!")
say("Warte noch eine Weile!")
return
end
say_title("Wächter des Dorfplatzes")
say("Um eine neue Gilde zu gründen")
say("brauchst du:")
say("-Level 40")
say("-500.000 Yang")
say("Möchtest du eine Gilde gründen?")
local s = select("Ja", "Nein")
if s == 2 then
return
elseif pc.get_level()<40 then
say_title("Wächter des Dorfplatzes")
say("Du bist noch nicht Level 40.")
return
elseif pc.get_gold()<500000 then
say_title("Wächter des Dorfplatzes")
say("Du hast keine 500.000 Yang.")
return
end
game.request_make_guild()
end
end
end
|
|
|
 |
|
Similar Threads
|
[Community]Questerstellung
09/06/2015 - Metin2 Private Server - 5 Replies
Hallo liebe Community,
ich möchte meine Questkenntnisse ein wenig erweitern, deshalb möchte ich euch hier die Möglichkeit geben, Ideen, Wünsche und alles was mit Quests zu tun hat an mich weiterzuleiten.
Ich werde, sobald ich Zeit und Lust habe, die Ideen größtenteils umsetzen und das Ergebnis hier veröffentlichen. Wie oben schon erwähnt bin ich Quasi noch am 'lernen' (ja ich weis, man lernt nie aus), deshalb bitte ich euch, mich zu informieren wenn ich irgendwo gefailed hab, man es...
|
Hilfe bei Questerstellung
02/25/2012 - Metin2 Private Server - 0 Replies
€dit:
Kan gelöscht werden habe jemanden gefunden!!!!
|
Hilfe bei Questerstellung
02/15/2012 - Metin2 Private Server - 8 Replies
Heyy
Ich hätte eine bitte an euch.
Und zwar einer von euch mir einige quests erstellst.
Ich habe voll kp von quests.
Als blohnung würde ich dir auf meinem server
5k coins (Wert 50€) geben.
also hier die quests:
30 Quest
Belohnung: 100kk 42 rüssi+7 je nach der klasse.
|
Hilfe bei Questerstellung
08/16/2011 - Metin2 Private Server - 0 Replies
Mahlzeit
also ich suche jemanden der mir ein grundgerüst einer quest erstellen kann so das ich diese weiter ausbauen kann,
So nun zur quest idee
Also ich möchte einen NPC hinstellen nennen wir den mal Questnpc
wenn man den anklickt soll man dem levelabhängig quest angeboten bekommen,zum beispiel ab lvl10 töte 50 weisse Tiger,aber lvl40 töte 30 Oberork und so weiter,was mit levelanstieg natürlich komplexer werden sollte.Manche Quest sollten nur einmal zumachen gehen und manche im höheren lvl...
|
[SERVICE]Questerstellung
05/24/2011 - Metin2 Private Server - 4 Replies
Abend e*pvp,
nach langem Überlegen hab ich mich doch dazu entschlossen, meine Arbeit gegen e*gold zur Verfügung zu stellen.
Ich werde euch mal die wichtigsten Fragen beantworten ;)
Woraus besteht dein Service?
Zum einen erstelle ich einzelne, sowie ganze Questreihen. Die von mir verschickten Dateien werden Unikate bleiben, und sofort nach erfolgreichem Transfer gelöscht. Außerdem biete ich nochmal seperat eine Questverbesserung zum Sammelthread an. Diese wird dann natürlich...
|
All times are GMT +1. The time now is 14:49.
|
|