Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 16:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 02/06/2012, 21:11   #4696
 
playted's Avatar
 
elite*gold: 56
Join Date: Dec 2008
Posts: 277
Received Thanks: 96
Mein Problem ist das man nicht raus geportet wird nach den 10 sek . Danke schon mal

PHP Code:
quest Tempel_of_dragon begin
state start begin
    when 2493.kill with pc
.get_map_index() == 408 begin    
    notice_all
("Die Gruppe von "..pc.get_name().." hat Beran-Setaou getötet.")
    
notice_in_map("Beeindruckend, ihr habt ihn tatsächlich besiegt.")
    
notice_in_map("Verbleibende Zeit bis ihr rausfliegt: 10 Sekunden")
    
local x pc.set_warp_location(73 182512207)
    
timer("x"10)
    
game.set_event_flag("Grotte_zugang",0)
    
end
        end
end 
playted is offline  
Thanks
2 Users
Old 02/07/2012, 19:48   #4697
 
elite*gold: 5
Join Date: Oct 2010
Posts: 1,692
Received Thanks: 1,772
Quote:
Originally Posted by playted View Post
Mein Problem ist das man nicht raus geportet wird nach den 10 sek . Danke schon mal

PHP Code:
quest Tempel_of_dragon begin
state start begin
    when 2493.kill with pc
.get_map_index() == 408 begin    
    notice_all
("Die Gruppe von "..pc.get_name().." hat Beran-Setaou getötet.")
    
notice_in_map("Beeindruckend, ihr habt ihn tatsächlich besiegt.")
    
notice_in_map("Verbleibende Zeit bis ihr rausfliegt: 10 Sekunden")
    
local x pc.set_warp_location(73 182512207)
    
timer("x"10)
    
game.set_event_flag("Grotte_zugang",0)
    
end
        end
end 

Habe nicht sehr viel Ahnung aber vllt geht es ja so:

PHP Code:
quest Tempel_of_dragon begin
    state start begin
        when 2493.kill with pc
.get_map_index() == 408 begin    
        notice_all
("Die Gruppe von "..pc.get_name().." hat Beran-Setaou getötet.")
        
d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt.")
        
d.notice("Verbleibende Zeit bis ihr rausfliegt: 10 Sekunden")
        
timer("x"10)
        
game.set_event_flag("Grotte_zugang",0)
        
end
        when x
.timer begin
        pc
.set_warp_location(73 182512207)
        
end
    end
end 
DasKuchen is offline  
Thanks
2 Users
Old 02/07/2012, 20:07   #4698
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
das wird garnicht funktionieren, da nicht die gruppe rausgeportet wird sondern nur der, der beran gekillt hat
map 408 müsste ein dungeon sein & dann könnte man dungeon befehle verwenden
aber ja, wenn überhaupt klappt daskuchen`s lösung
Sp0ngeb0b ist cool is offline  
Thanks
2 Users
Old 02/08/2012, 08:42   #4699
 
playted's Avatar
 
elite*gold: 56
Join Date: Dec 2008
Posts: 277
Received Thanks: 96
@DasKuchen
Danke dir aber es klappt trotzdem nicht

@Sp0ngeb0b ist cool
Da hast du recht leider geht das ohne Dungeon nicht. Wenn man tortzdem in die Quest Dungean befehle einbaut, wird man beim teleportieren in die nächste Ebene gekickt hier ein beispiel:
PHP Code:
when 8023.kill with pc.get_map_index() == 408 begin
        timer
("skipia_boss_goo"2)
        
notice_in_map("Ihr hab den Stein zerstört ihr werden nun in die nächste Ebene gebracht")
        
end
    when skipia_boss_goo
.timer begin
        game
.set_event_flag("Grotte_zugang",0)
        
d.new_jump_all(408843610669)
        
d.setf("grotte_boss"1)
        
d.spawn_mob(9012239173)
        
end 
Das mit dem Drachenraum wird wohl schwere als ich es gedacht habe
playted is offline  
Thanks
1 User
Old 02/08/2012, 11:55   #4700
 
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
@playted: Du musst einfach beim Timer (ja muss ins Dungeon) als Befehl:
Code:
d.exit_all()
verwenden.
Quest:
Code:
quest Tempel_of_dragon begin
    state start begin
        when 2493.kill with pc.get_map_index() == 408 begin    
		notice_all("Die Gruppe von "..pc.get_name().." hat "..mob_name(2493).." getötet.")
		d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt.")
		d.notice("In 10 Sekunden werdet ihr heraus teleportiert...")
		timer("Exit_Dragon", 10)
		game.set_event_flag("Grotte_zugang", 0)
        end
        when Exit_Dragon.timer begin
		d.exit_all()
        end
    end
end
Meine Frage: Welchen Befehl nutze ich um ein Monster in einer anderen Map zu spawnen? Z.B.:
Code:
mob.spawn(mapindex, x, y, mob_id)
gibts sowas?

Mfg, Destroyer446
.HC'Destrox is offline  
Old 02/08/2012, 16:00   #4701
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
richtig destroyer

zu deiner frage: ob es den befehl gibt, weiß ich nicht. allerdings kann man spawns aus einer zusätzlichen txt möglich machen indem man in diese txt die spawn daten wie bei einer normalen regen.txt einer map eingibt & dann in der quest mit nem befehl ausgibt.
oder du modifizierst den mob.spawn befehl etwas, sodass eben wie du es bereits präsentiert hast mapindex, x, y, mob_id statt nur x, y, mob_id hast

einfach mal schauen, wie das bei befehlen die bei denen der mapindex benötigt wird, gemacht worden ist
Sp0ngeb0b ist cool is offline  
Thanks
1 User
Old 02/08/2012, 18:24   #4702
 
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
hmm, also ich habs jeze so gemacht, dass ich durch die quest eine
neue Regen.txt erstelle (in dem "data/" Ordner) und die lade, spawnzeit auf 1s gestellt und server_timer nach 5s ausführe der alte Regen.txt läd...

Naja, nich ganz so proffesionell und untested aber vllt gehts ja

Mfg, Destroyer446
.HC'Destrox is offline  
Old 02/08/2012, 20:41   #4703
 
elite*gold: 1
Join Date: Mar 2011
Posts: 180
Received Thanks: 10
bei mir kommt immer ein fehler bei der quest

----------------------------------------------------
--Tempel des Drachen
----------------------------------------------------
quest dragontemple begin
state start begin

when logout with pc.get_map_index() >= (82*10000) begin
pc.setqf("punishment", 1)
end

when login with pc.get_map_index() >= (82*10000) and pc.getqf("punishment") == 1 begin
pc.setqf("punishment", 0)
warp_to_village()
end

when 30121.chat."Ich will den Drachen töten" with pc.get_map_index() == 73 and game.get_event_flag("dragontemple_open") == 1 begin
pc.setqf("punishment", 0)
if game.get_event_flag("dragontemple_used") == 1 then
if game.get_event_flag("dragontemple_block") == 1 then
say_title(mob_name(30121))
say("")
say("Der Raum ist gesperrt, versuch es später noch ein mal.")
return;
end

say_title(mob_name(30121))
say("")
say("Tut mir Leid, der Raum ist reseviert.")
say("Wenn du ein Passwort hast für den Zugang")
say("gebe es jetzt bitte ein.")
local password = input()
if game.get_event_flag("dragontemple_password") == tonumber(password) then
say_title(""..mob_name(30121).."")
say("")
say("Das Passwort stimmt überein.")
say("Ich bringe dich in die Kammer")
wait()
say_title(""..mob_name(30121).."")
say("")
say("Wenn du willst kann ich dich sofort,")
say("in den Drachnraum bringen.")
say("Gib mir einfach 3x")
say("")
say_item_vnum(30179)

local s = select("Hier, nimm sie und bring mich rein", "Abbrechen")
if s == 1 then
if pc.count_item(30179) >= 3 then
pc.remove_item(30179,3)
pc.warp(843600, 1066900,(82*10000))
--DragonLair.startRaid(82)
else
say("Du hast nur "..pc.count_item(30179).." von 3 benötigten")
say("")
say_item_vnum(30179)
end
else
return
end
else
say_title(""..mob_name(30121).."")
say("")
say("Das Passwort stimmt nicht überein.")
return
end
elseif pc.has_guild() and game.get_event_flag("dragontemple_used") == 0 then
say_title(""..mob_name(30121).."")
say("")
say("Du willst also den Drachen bekämpfen?")
say("Dann gib bitte erst ein Passwort(nur Zahlen) ein")
say("um den Raum zu schützen. Geb das Passwort")
say("einfach deinen Gruppenmitgliedern und sie")
say("können mit in den Raum")
say("Gib es bitte jetzt ein.")
local password = tonumber(input(""))
game.set_event_flag("dragontemple_password",passwo rd)
say_title(""..mob_name(30121).."")
say("")
say("Wenn du willst kann ich dich sofort,")
say("in den Drachnraum bringen.")
say("Gib mir einfach 3x")
say("")
say_item_vnum(30179)
say("")

local s = select("Hier, nimm sie und bring mich rein", "Abbrechen")
if s == 1 then
if pc.count_item(30179) >= 3 then
pc.remove_item(30179,3)
DragonLair.startRaid(82)
game.set_event_flag("dragontemple_used",1)
timer("blockentry",5*60)
else
say("Du hast nur "..pc.count_item(30179).." von 3 benötigten")
say("")
say_item_vnum(30179)
say("")
return
end
elseif s==2 then
return
end
elseif not pc.has_guild() then
say_title(""..mob_name(30121).."")
say("")
say("Du benötigst eine starke Gilde")
say("um gegen den Drachen zu kämpfen.")
end
end

when 2493.kill with pc.get_map_index() >= (82*10000) begin
timer("set_unused",30)
end

when set_unused.timer begin
game.set_event_flag("dragontemple_used",0)
game.set_event_flag("dragontemple_block",0)
end

when blockentry.timer begin
game.set_event_flag("dragontemple_block",1)
end
end
end

hier der fehler noma
KingAura619 is offline  
Old 02/09/2012, 08:16   #4704
 
elite*gold: 5
Join Date: Oct 2010
Posts: 1,692
Received Thanks: 1,772
Du musst DragonLair.startRaid in deine quest_functions eintragen


Gibt es einen Befehl das ich eine bestimmte person töten kann?
Wenn er z.b. was unrechtes macht das er dann stirbt.
DasKuchen is offline  
Thanks
1 User
Old 02/09/2012, 18:38   #4705
 
richib135's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 213
Received Thanks: 24
Quest:

PHP Code:
quest dia2 begin
    state start begin
        when 20083.chat
."Diamanttausch" begin
            
if pc get_level ( ) < 90 then 
                say 
("Unter LvL90 traue ich keinen!"
            else 
                
say_title("Diamanttausch:")
                
say("")
                
say("Guten Tag.")
                
say("Bei mir kannst du Gelbe Diamanten")
                
say("gegen Blaue Diamanten tauschen.")
                
say("Aber bitte erzähl den GM´s nix von meinen Diamant-Handel!")
                
say("Sonst komm ich wieder hinter Gitter!")
                if 
pc.count_item("20992")==0 then
                    say
("Sag mal, willst du mich verarschen?")
                    
say("Du hast keinen Gelben Diamanten!")
                    
say("Falls du das nochmal machst")
                    
say("Hole ich meine Kumpels")
                    
say("Und dan bist du ToT")
                    return
                elseif 
pc.count_item("20992")>=1 then
                    say
("Also, willst du nun Tauschen?")
                
local s select("Ja!""Nein!")
                    if 
== 1 then
                        pc
.remove_item("20992"1)
                        
pc.give_item("20993"1)
                    if 
== 2 then
                        say
("Ok, bis später")
                    return
                
end
            end
        end
quest dia22 begin
    state start begin
        when 20083.chat
."Diamantentausch2" begin
            
if pc get_level ( ) < 90 then 
                say 
("Unter LvL90 traue ich keinen!"
            else 
                
say_title("Diamanttausch2:")
                
say("")
                
say("Guten Tag.")
                
say("Bei mir kannst du Blaue Diamanten")
                
say("gegen Gelbe Diamanten tauschen.")
                
say("Aber bitte erzähl den GM´s nix von meinen Diamant-Handel!")
                
say("Sonst komm ich wieder hinter Gitter!")
                if 
pc.count_item("20992")==0 then
                    say
("Sag mal, willst du mich verarschen?")
                    
say("Du hast keinen Blauen Diamanten!")
                    
say("Falls du das nochmal machst")
                    
say("Hole ich meine Kumpels")
                    
say("Und dan bist du ToT")
                    return
                elseif 
pc.count_item("20992")>=1 then
                    say
("Also, willst du nun Tauschen?")
                
local s select("Ja!""Nein!")
                    if 
== 1 then
                        pc
.remove_item("20992"1)
                        
pc.give_item("20993"1)
                    if 
== 2 then
                        say
("Ok, bis später")
                    return
                
end
            end
        end 

Fehlermeldung:

Nach "./make.sh":


qc in malloc(): error: allocation failed
Abort trap (core dumped)
Error occured on compile dia2.quest
richib135 is offline  
Old 02/09/2012, 19:16   #4706
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
PHP Code:
quest dia2 begin
    state start begin
        
function change(levelitem1item_da)
            if 
pc.get_level() < level then 
                say 
("Unter LvL "..level.." traue ich keinem!"
                return
            
end
            say_title
("Diamanttausch:")
            
say("")
            
say("Guten Tag.")
            
say("Bei mir kannst du "..item_name(item1))
            
say("gegen "..item_name(item_da).." tauschen.")
            
say("Aber bitte erzähl den GM´s nix von meinen Diamant-Handel!")
            
say("Sonst komm ich wieder hinter Gitter!")
            if 
pc.count_item(item1)==0 then
                say
("Sag mal, willst du mich verarschen?")
                
say("Du hast keinen "..item_name(item1).."!")
                
say("Falls du das nochmal machst")
                
say("Hole ich meine Kumpels")
                
say("Und dan bist du ToT")
                return
            
end    
            say
("Also, willst du nun Tauschen?")
            
local s select("Ja!""Nein!")
            if 
== 1 then
                pc
.remove_item(item11)
                
pc.give_item(item_da1)
            
end    
            
if == 2 then
                say
("Ok, bis später")
                return
            
end    
        end
        when 20083.take with item
.vnum == 20992 begin dia2.change(902099220993end
        when 20083.take with item
.vnum == 20993 begin dia2.change(902099320992end
    end
end 
teste es mal so

Ps: Du musst das Item auf den npc ziehen...ist cooler
Sp0ngeb0b ist cool is offline  
Old 02/09/2012, 19:33   #4707
 
richib135's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 213
Received Thanks: 24
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
PHP Code:
quest dia2 begin
    state start begin
        
function change(levelitem1item_da)
            if 
pc.get_level() < level then 
                say 
("Unter LvL "..level.." traue ich keinem!"
                return
            
end
            say_title
("Diamanttausch:")
            
say("")
            
say("Guten Tag.")
            
say("Bei mir kannst du "..item_name(item1))
            
say("gegen "..item_name(item_da).." tauschen.")
            
say("Aber bitte erzähl den GM´s nix von meinen Diamant-Handel!")
            
say("Sonst komm ich wieder hinter Gitter!")
            if 
pc.count_item(item1)==0 then
                say
("Sag mal, willst du mich verarschen?")
                
say("Du hast keinen "..item_name(item1).."!")
                
say("Falls du das nochmal machst")
                
say("Hole ich meine Kumpels")
                
say("Und dan bist du ToT")
                return
            
end    
            say
("Also, willst du nun Tauschen?")
            
local s select("Ja!""Nein!")
            if 
== 1 then
                pc
.remove_item(item11)
                
pc.give_item(item_da1)
            
end    
            
if == 2 then
                say
("Ok, bis später")
                return
            
end    
        end
        when 20083.take with item
.vnum == 20992 begin dia2.change(902099220993end
        when 20083.take with item
.vnum == 20993 begin dia2.change(902099320992end
    end
end 
teste es mal so

Ps: Du musst das Item auf den npc ziehen...ist cooler

Ahh sorry habe das PS nicht gelesen.
Aber man bekommt für Gelben Diamant Yang -.-
richib135 is offline  
Old 02/09/2012, 20:04   #4708
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
du hast den falschen befehl genommen...
änder das pc.give_item(item_da, 1) in pc.give_item2(item_da, 1) dann gehts
Sp0ngeb0b ist cool is offline  
Old 02/09/2012, 20:24   #4709
 
richib135's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 213
Received Thanks: 24
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
du hast den falschen befehl genommen...
änder das pc.give_item(item_da, 1) in pc.give_item2(item_da, 1) dann gehts
Danke, funktioniert! <3
richib135 is offline  
Old 02/09/2012, 21:04   #4710
 
elite*gold: 389
The Black Market: 114/0/0
Join Date: Jul 2010
Posts: 4,910
Received Thanks: 530
Hätte gerne mal Hilfe, undzwar würde die Quest funktionieren?
Bin nagelneu und habe nochnie eine Quest geschrieben, meine Erste:

PS: Es kommt Segmention fault (core dumped=

PHP Code:
quest weißerloewe begin
    state start begin
        when 71128.
use begin
                say_title
("Weißer Löwe mit Bonis:")
                
say("Mit welchem Boni willst du es benutzen?")
                
local s select("1000 Attacke","500 Verteidigung","30% mehr EXP","Abbrechen")
            if 
== 1 then
                say_reward
("Du hast nun W. Löwen mit 1000 ATK!")
                
pc.mount(20114999999999)
                
horse.ride()
                
pc.mount_bonus(apply.ATT_GRADE_BONUS,1000,3600)
            
end
        
if horse.unride() then
            affect
.remove_collect()
        
end
            
if == 2 then
                say_reward
("Du hast nun W. Löwen mit 500 DEFF!")
                
pc.mount(20114999999999)
                
horse.ride()
                
pc.mount_bonus(apply.DEF_GRADE_BONUS,500,3600)
            
end
        
if horse.unride() then
            affect
.remove_collect()
        
end
            
if == 3 then
                say_reward
("Du hast nun W. Löwen mit 30% EXP!")
                
pc.mount(20114999999999)
                
horse.ride()
                
pc.mount_bonus(apply.EXP_GRADE_BONUS,30,3600)
            
end
        
if horse.unride() then
            affect
.remove_collect()
        
end
        end
    end
end 
Lеlouch is offline  
Reply




All times are GMT +1. The time now is 16:55.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.