[SERVICE] Die Questerstellung

10/26/2016 01:06 ImbaSun#3541
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 Chaosnightx3#3542
Quote:
Originally Posted by rollback View Post
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 BuRnOuTx3#3543
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 Noa_#3544
Quote:
Originally Posted by Chaosnightx3 View Post
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 Tex997#3545
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 Sp0ngeb0b ist cool#3546
PHP Code:
quest legendary begin
    state start begin
        when npc
.take with item.get_vnum() == 19010 begin
            local a
,= {},{}
            for 
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(athen return end
            pc
.remove_item(b[sel], 1pc.remove_item(item.get_vnum(), 1)
            
pc.give_item2((b[sel]+8971),1)
        
end
    end
end 
11/12/2016 14:29 Rofelmau#3547
Quote:
Originally Posted by Tex997 View Post
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

11/12/2016 16:44 Kouli#3548
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_TICKET1)
            
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_notice45),d.notice)
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
server_timer('flame_dungeon_30m_left_timer'15*60get_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_notice30),d.notice)
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
server_timer('flame_dungeon_15m_left_timer'15*60get_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_notice15),d.notice)
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
server_timer('flame_dungeon_5m_left_timer'10*60get_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_notice5),d.notice)
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
server_timer('flame_dungeon_1m_left_timer'4*60get_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_notice1),d.notice)
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
                
server_timer ("flame_dungeon_0m_left_timer"60get_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_INDEXsetting.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 -- ??? ???(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"6get_server_timer_arg())
                
end
            end
        end
        when killed_A_2
.server_timer begin -- ??? ???(1?????? ???)
            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"6get_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"] = {77626739},-- ??? ?? ???? ?
        [
"DUNGEON_MAN_bpos"] = {690,722},
        [
"DUNGEON_MAN_pos"] = {354,362},
        [
"LEVEL2_STONE_pos"] = {195,352},
        [
"LEVEL4_TARGET_pos"] = {470,175},
        [
"LEVEL5_STONE_pos"] = {
                {
486345},
                {
511336},
                {
525349},
                {
521365},
                {
503372},
                {
486365},
                {
500354}
        },
        [
"LEVEL6_TARGET_pos"] = {511,480},
        [
"outside_entry_pos"] = {6142,7068}, --??????? ??? ?
        [
"YAK_pos"] = {376397} -- ?? ??
        
        }
    
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_INDEXsetting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
        -- 
d.spawn_mob_ac_dir(DUNGEON_MANsetting.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,do
            
d.set_unique("door"..id.spawn_mob_ac_dir(BLOCK_DOORsetting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
        
end
        
for i=1,do
            
d.set_unique("idoor"..id.spawn_mob_ac_dir(IN_DOORsetting.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]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX)
            elseif 
flame_dungeon.is_flamed(idxthen -- ?? ??, ??? ?? ??
            ------------------------------------------------------------------------------------------------------------------------------------------------------
            --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
            --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
            ------------------------------------------------------------------------------------------------------------------------------------------------------
                -- 
pc.set_warp_location(00) --???? ?? ???? ??? ?? ??
                
pc.set_warp_location(ENTRY_MAP_INDEXsetting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
                
local ticketGroup = {710931711301}
                if 
d.getf("dungeon_enter") == 0 then -- ???? ???
                    
local canPass false
                    
for i=1table.getn(ticketGroup),do 
                        if 
pc.count_item(ticketGroup[i]) >= ticketGroup[i+1then
                            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=1table.getn(ticketGroup),do 
                        if 
pc.count_item(ticketGroup[i]) >= ticketGroup[i+1then
                            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]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX)
        
end
        when logout begin
            local idx 
pc.get_map_index()
            if 
flame_dungeon.is_flamed(idxthen 
                
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") < 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] * 100setting.bossroom_entry_pos[2] * 100party.getf("dungeon_index"))
                        else
                            
pc.warp(setting.dungeon_entry_pos[1] * 100setting.dungeon_entry_pos[2] * 100party.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 
= {711751711301}
                    for 
ipid in nextpidsnil do
                        
q.begin_other_pc_block(pid)
                        
local canPass false
                        
for idx=1table.getn(ticketGroup),do 
                            if 
pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1then
                                canPass 
true
                                
break
                            
end
                        end
                        
                        
if not canPass then
                            table
.insert(noTicketMemberspc.get_name())
                            
ticketCheck false
                        end
                        
if pc.level LEVEL_CUT then
                            table
.insert(notEnoughLevelMemberspc.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 
iname in nextnoTicketMembersnil 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 
iname in nextnotEnoughLevelMembersnil 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.warpsetting.dungeon_entry_pos[1]*100setting.dungeon_entry_pos[2]*100DUNGEON_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 .DarkDreams#3549
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 HK_Easy#3550
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 x"Kazuki#3551
Quote:
Originally Posted by HK_Easy View Post
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.

[Only registered and activated users can see links. Click Here To Register...]

Mit freundlichen Grüßen,
x"Kazuki
11/23/2016 03:05 jajaguckloch#3552
Ist denn noch was los hier? haha

Sehr geehrte Jungs und Mädels :D
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 .KushShivan#3553
Hii Leute :D

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 :D

Mfg.,
11/28/2016 18:57 jajaguckloch#3554
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 Lice.#3555
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