[SERVICE] Die Questkontrolle

10/22/2011 02:37 lautlosertot#3811
PHP Code:
quest horse_guard begin
    state start begin
        when 20349.chat
."Pferd steigern" begin
            say_title
("Stallbursche:")
            
say("")
            
say("Hallo!")
            
say("cei mir kannst du dein Pferd steigern.")
            
say("Das Pferd zu steigern kostet dich 1kk pro Level.")
            
say("")
            
say_reward("Möchtest du dein Pferd steigern?")
            
say("")
                
            
local a select("Ja""Nein")
                
                if 
== 1 then
                    say_title
("Stallbursche:")
                    
say("")
                            if 
pc.money>=1000000 then
                            pc
.changemoney("-1000000")
                            
horse.unride()
                            
horse.advance()
                            
horse.ride()
                            
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
                            
say("")
                            if 
horse.get_level()>=30 then
                            say
("Dein Pferd hat Level 30 erreicht.")
                            
say("Du kannst es nicht mehr steigern.")
                            
say("")
                            if 
pc.money<1000000 then
                            say
("Du hast nicht genug Yang um dein Pferd zu steigern.")
                            
say("")
                
end
                
if == 2 then
                
return
            
end    
        end
    end
end
quest horse_guard begin
    state start begin
        when 20349.chat
."Neue Reittiere" begin
        say
("Auf diesen Reittieren kannst du nicht Schlagen, weiter?.")
            
local b select("Ja""Nein")
            if 
== 2 then
            
return
            
end
            
if == 1 then
            local c 
select("Weißer Keiler""Weißer Wolf""Grüner Tieger""Weißer Löwe""Roter Wolf""Weißer Tieger""Roter Keiler""Roter Löwe""Oranger Tieger""Grüner Tieger2""Blauer Tieger""Panzer Grau Wolf""Panzer Rot Wolf""Panzer Grau Keiler""Panzer Rot Keiler""Panzer Grau Tieger""Panzer Rot Tieger","Panzer Grau Löwe""Panzer Rot Löwe""nix")
            if 
== 1 then
            pc
.mount(20120,999999)
            
end
            
if == 2 then
            pc
.mount(20121,999999)
            
end
            
if == 3 then
            pc
.mount(20122,999999)
            
end
            
if == 4 then
            pc
.mount(20123,999999)
            
end
            
if == 5 then
            pc
.mount(20124,999999)
            
end
            
if == 6 then
            pc
.mount(20125,999999)
            
end
            
if == 7 then
            pc
.mount(20126,999999)
            
end
            
if == 8 then
            pc
.mount(20127,999999)
            
end
            
if == 9 then
            pc
.mount(20128,999999)
            
end
            
if == 10 then
            pc
.mount(20129,999999)
            
end
            
if == 11 then
            pc
.mount(20130,999999)
            
end
            
if == 12 then
            pc
.mount(20131,999999)
            
end
            
if == 13 then
            pc
.mount(20132,999999)
            
end
            
if == 14 then
            pc
.mount(20133,999999)
            
end
            
if == 15 then
            pc
.mount(20134,999999)
            
end
            
if == 16 then
            pc
.mount(20135,999999)
            
end
            
if == 17 then
            pc
.mount(20136,999999)
            
end
            
if == 18 then
            pc
.mount(20137,999999)
            
end
            
if == 19 then
            pc
.mount(20138,999999)
            
end
            
if == 20 then
            
return
            
end
        end    
    end
end 
VPC:
Code:
qc in malloc(): error: allcoation failed
Error occoured on copile horse_guard.quest
10/22/2011 07:03 xTheSoulutionxx3#3812
questkontroll programm fehlermedlung:
PHP Code:
check1=""Fehler
       check2
=ok
       check3
=()Fehler
       check4
=quest/state/when end fehler 

quest:
PHP Code:
quest tempeld begin
state start begin
        when 30121.chat
."Tempel des Drachen" with pc.get_map_index() == 73 begin
        
if get_time() > game.get_event_flag("Grotte_time"then
        game
.set_event_flag("Grotte_zugang",0)
        
end
        
if pc.is_gm() then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Hallo Gamemaster, "..pc.get_name().."")
        
say("Ich lasse dich auch ohne die Schlüssel und")
        
say("das Passwort passieren.")
        
wait()
        
pc.warp(8432001066900)
        return
        
end
        
if pc.count_item("80041") >= 1 then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Du hast das GM-Item, du darfst eintreten.")
        
wait() 
        
pc.warp(8432001066900)
        return 
        
end
        
if game.get_event_flag("Grotte_zugang") == and pc.count_item(30179) < 3 then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Dir fehlen "..item_name(30179).."")
        
say_item_vnum(30179)
        
say("Komme wieder wenn du 3 besitzt.")
        return
        
end
        
if game.get_event_flag("Grotte_zugang") == 1 then
        say_title
(""..mob_name(30121).."")
        
say("")
        
pc.setqf("grotte_passworto"078954687921)
        if 
pc.getqf("abgabe") == 1 then
        pc
.setqf("abgabe",0)
        
say("Du hast bereits deine 3 Schlüssel abgeben.")
        
say("Ich lasse dich passieren.")
        
pc.setqf("erlaubt",1)
        
wait()
        
pc.warp(8432001066900)
        return
        
end
        say
("Tut mir Leid, der Raum ist reseviert.")
        
say("Wenn du ein die Kennzahl hast für den Zugang,")
        
say("gebe sie jetzt bitte ein.")
        
local passwort tonumber(input(""))
        --
pc.setqf("grotte_passworto"passwort
        if 
game.get_event_flag("Grotte_passwort") == passwort then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Die Kennzahl stimmt überein.")
        if 
pc.count_item(30179) < 3 then
        say
("Ich kann dir den zutritt nicht gewähren")
        
say("Dir fehlt "..item_name(30179).."")
        
say_item_vnum(30179)
        
say("Komme wieder wenn du 3 besitzt.")
        return
        
end
        pc
.remove_item("30179",3)
        
say("Ich gewähre dir den zutritt!")
        
pc.setqf("erlaubt",1)
        
wait()
        
pc.warp(8432001066900)
        elseif 
passi != pc.getqf("grotte_passworto"then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Die Kennzahl ist leider falsch.")
        return
        
end
        end
        
if game.get_event_flag("Grotte_zugang") == and pc.count_item(30179) >= 3 then
        say_title
(""..mob_name(30121).."")
        
say("")
        
say("Du bist der erste der den Eintritt in den Tempel")
        
say("des Drachens verlangt. Ich werde dich passieren")
        
say("lassen, sofern du einen gewunden Schlüssel")
        
say("besitzt. Bevor du den Raum betreten darfst")
        
say("musst du eine geheime Zahl eingeben.")
        
say("Diese kannst du innerhalb von 5 Minuten an")
        
say("deine Mitstreiter weitergeben, so das auch")
        
say("sie den Raum betreten können. ")
        
say("")
        
say("Bedenke auch das die Macht der Schlüssel nur")
        
say("30 Minuten lang hält. In dieser Zeit müsst")
        
say("ihr den Drachen besiegt haben.")
        
local i select("Ich bin Bereit""Abbrechen")
        if 
== i then
        say_title
(""..mob_name(30121).."")
        
say("Dann Lege jetzt die kennzahl fest.")
        
local passwort tonumber(input(""))
        if 
passwort and passwort <= 999999999 and pc.count_item(30179)>=1 then
        game
.set_event_flag("Grotte_zugang",1)
        
game.set_event_flag("Grotte_passwort",passwort)
        
local times get_time() + 300 --Wartezeit
        game
.set_event_flag("Grotte_time"times)
        
say_title(""..mob_name(30121).."")
        
pc.setqf("abgabe",1)
        
say("")
        
say("Die Kennzahl lautet:")
        
chat("Die Kennzahl lautet für den Tempel des Drachen: "..passwort.."")
        
say_reward(""..passwort.."")
        
say("Gib die Kennzahl deinen Mitstreitern weiter")
        
pc.remove_item("30179",3)
        else 
        
say_title(""..mob_name(30121).."")
        
say("")
        
say("Beim Kennzahl setzen ist ein fehler aufgetreten, versuche es erneut.")
        
say("Bitte gebe nur Ziffern ein.")
        
end
        end
        end
        end
    when login with pc
.get_map_index() == 408 and not pc.is_gm() begin
        
if pc.count_item("80041") >= 1 then chat("Tempel des Drachen: Du hast das GM-Item, prüfungen werden geblockt!") return end
        
if pc.get_level() < 75 or pc.getqf("erlaubt") == and pc.get_map_index() == 408 then
         chat
("Dir ist es nicht erlaubt diese Map zu betreten. "..pc.get_level().." "..pc.getqf("erlaubt").." "..pc.get_map_index().." ")
            
warp_to_village()
        
end
        chat
("Willkommen, zerstört schnell den Stein um zu dem Drachen zu gelangen.")
        
chat("Aber beeilt euch, sonst fliegt ihr raus")
        
local sekunden game.get_event_flag("Grotte_time") - get_time()
        
notice_in_map("Verbleibende Zeit bis ihr rausfliegt: "..sekunden.." Sekunden")
        
timer("skipia_boss_ende"sekunden)
        
pc.set_warp_location(73 182512207)
        
end
    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
    when 8031.kill 
or 8032.kill or 8033.kill or 8034.kill with pc.in_dungeon() and d.getf("grotte_boss") == 2 begin
    local n 
=d.getf("count") + 1
    d
.setf("count"n
    --
notice_all("Metin killed "..n.."")
    if 
2 then
    local t 
number(1,4)
    --
notice_all("Spawn Metin")
    if 
== t then
    d
.regen_file("data/dungeon/skia_boss1.txt")
    elseif 
== t then
    d
.regen_file("data/dungeon/skia_boss2.txt")
    elseif 
== t then
    d
.regen_file("data/dungeon/skia_boss3.txt")
    else
    
d.regen_file("data/dungeon/skia_boss4.txt")
    
end
    end
    end
    when 2493.kill with pc
.in_dungeon() and d.getf("grotte_boss") == 2 begin
        d
.setf("grotte_boss"3)
        
notice_all("Die Gruppe von "..pc.get_name().." hat Beran-Setaou getötet.")
        
d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt.") -- Als Abschluss könnt ihr noch die Metins zerstören")
        d.notice("
ihr werdet in 60 Sekunden zurück in Grotte 2 gebracht.")
        timer("
skipia_boss_end", 60)
        d.kill_all()
        d.spawn_mob(9012, 239, 173)
        d.clear_regen()
        end

    when login with pc.in_dungeon() and d.getf("
grotte_boss") == 2 begin
    pc.set_warp_location(73 , 1825, 12207)
    end
    when login with pc.in_dungeon() and d.getf("
grotte_boss") == 1 begin
        timer("
skipia_boss_end", 3600)    
        d.set_regen_file("
data/dungeon/skia_boss.txt")
        local t = number(1,4)
        if 1 == t then
            d.regen_file("
data/dungeon/skia_boss1.txt")
            elseif 2 == t then
            d.regen_file("
data/dungeon/skia_boss2.txt")
            elseif 3 == t then
            d.regen_file("
data/dungeon/skia_boss3.txt")
            else
            d.regen_file("
data/dungeon/skia_boss4.txt")
        end
        local o = number(1,4)
        if 1 == o then
            d.regen_file("
data/dungeon/skia_boss1.txt")
            elseif 2 == o then
            d.regen_file("
data/dungeon/skia_boss2.txt")
            elseif 3 == o then
            d.regen_file("
data/dungeon/skia_boss3.txt")
            else
            d.regen_file("
data/dungeon/skia_boss4.txt")
            end    
        d.setf("
grotte_boss", 2)
        d.notice("
Willkommen im Tempel des Drachenihr habt maximal 1 Stunde Zeit Beran-Setaou zu besiegenViel Erfolg")
        d.setf("
count", 0)
        pc.set_warp_location(73 , 1825, 12207)
        end

    when login with pc.in_dungeon() and d.getf("
grotte_boss") == 3 begin -- begin
    --pc.warp(181700, 1220600)
    end
    
    when skipia_boss_end.timer begin
        d.exit_all()
        end
    when skipia_boss_ende.timer begin
        kill_all_in_map(408)
        game.set_event_flag("
Grotte_zugang",0)
        d.setf("
grotte_boss", 1)
        d.exit_all()
    end
    when login with pc.get_map_index() != 408 or not pc.in_dungeon() begin
    pc.setqf("
erlaubt",0)
    end
    end
end 
10/22/2011 19:42 ZyoX#3813
@ über mir: Zeile 160.
Code:
        d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt.") -- Als Abschluss könnt ihr noch die Metins zerstören")
Entweder:

Code:
        d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt.") -- Als Abschluss könnt ihr noch die Metins zerstören
oder:

Code:
        d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt. Als Abschluss könnt ihr noch die Metins zerstören.")
10/22/2011 20:05 xTheSoulutionxx3#3814
ok jetzt ist noch ein end fehler drin laut questkontroll programm
10/22/2011 20:10 killa673#3815
tag habe ein problem habe versucht für die 2 maps eine lvl begrenzung einzubauen.. bzw das man ein spezilles item braucht um hin zu kommen aber kallpt nicht was muss ich an der quest ändern?
Quest:

quest give_basic_weapon begin
state start begin
when 20095.chat."Zitadelle des Schreckens" begin
say_title("Alter Mann")
say("")
say("Vor langer Zeit als die 3 Reiche noch")
say("in Frieden gelebt haben hat es ein Reich")
say("der Rebellen gegeben, welches heute jedoch")
say("verlassen und von Monstern bewohnt wird.")
say("Möchtest du einmal dorthin?")
say("")
say_reward("Sie sind sehr stark,")
say_reward("und der Zutritt ist erst ab lvl 100")
say("")
say_reward("Soll ich dich dort hin teleportieren?")

local s1=select("Ja bitte teleportieren.","Nein ich möchte hier bleiben.")
if s1 == 1 then
pc.warp(512300,512300)
else
return
end
end

when 20095.chat."Ebene des Horrors" begin
say_title("Alter Mann")
say("")
say("In dieser doch so friedvoll aussehenden")
say("Welt, gibt es jedoch auch das pure Gegenteil.")
say("Die Ebene des Horrors,nur wenige legendäre Kreiger")
say("sind von dort zurückgekehrt.")
say("Diese Welt wird von den Königen")
say("der Monster regiert.")
say("")
say("Der Zugang ist erst ab lvl 120.")
say_reward("Soll ich dich dort hin teleportieren?")
local s2=select("Ja ich werde sie bezwingen.","Nein ich möchte hier bleiben.")

if s2 == 1 then
pc.warp(444400,444400)
else
return
end
end
end
end

hilfe wäre sehr sehr nett
10/22/2011 21:11 FuZi0nZ.™#3816
allo ePvP ,

Ich wollte in ein Paar tagen ein server eröffnen aber mir fehlt eine quest
ich hab alles durchgesucht jede suchmaschine alles .. und epvp hat auch nichts
ausgepsuckt

Und zwar ich brauche eine Quest Wenn man ein NPC anklickt wird man zb. level 120 das mit EXP kann ich wohl umschrauben ich brauch nur eine funktionierende Quest die level gibt bruache drigend eine Antwort!!

MfG ,
10/22/2011 21:15 xTheSoulutionxx3#3817
das ist ein questkontroll theard und kein quest schrieben theard.
10/22/2011 21:21 FuZi0nZ.™#3818
pls:d

Hallo ePvP ,

PHP Code:
quest give_Exp begin
    state start begin
        when 20092.chat
."Level Erhöhen" begin
            
if pc get_level ( ) < 0 then 
                say 
"Du hast noch nicht genügend Erfahrung gesammelt. Komme wieder, wenn du Level 1 bist!" 
            else 
                
say "Möchtest du Level 127 werden?" 
                
local s select "127 werden""Level behalten" 
                    if 
== 1 then 
                        pc 
give_exp2 1000000000 )
                        
local s select "Danke" )
                    elseif 
== 2 then 
                        
return
                    
end
            end
        end 
    end
end 

Kann man es so einstellen was er doie exp 2x bekommt
10/23/2011 13:46 killa673#3819
klar kannste des einstellen ,

Code:
quest give_Exp begin
    state start begin
        when 20092.chat."Level Erhöhen" begin
            if pc . get_level ( ) < 0 then 
                say ( "Du hast noch nicht genügend Erfahrung gesammelt. Komme wieder, wenn du Level 1 bist!" ) 
            else 
                say ( "Möchtest du Level 127 werden?" ) 
                local s = select ( "127 werden", "Level behalten" ) 
                    if s == 1 then 
                        pc . give_exp2 ( 1000000000 )
                        pc . give_exp2 ( 1000000000 )
                        pc . give_exp2 ( 1000000000 )
                        pc . give_exp2 ( 1000000000 )
                        pc . give_exp2 ( 1000000000 )
                        local s = select ( "Danke" )
                    elseif s == 2 then 
                        return
                    end
            end
        end 
    end
end

so bekommt er eben 5 mal die exp ;)
10/23/2011 15:11 xXKimariXx#3820
@killa673 zu deiner quest :

1.
PHP Code:
quest give_basic_weapon begin
    state start begin
        when 20095.chat
."Zitadelle des Schreckens" begin
            say_title
("Alter Mann")
            
say("")
            
say("Vor langer Zeit als die 3 Reiche noch")
            
say("in Frieden gelebt haben hat es ein Reich")
            
say("der Rebellen gegeben, welches heute jedoch")
            
say("verlassen und von Monstern bewohnt wird.")
            
say("Möchtest du einmal dorthin?")
            
say("")
            
say_reward("Sie sind sehr stark,")
            
say_reward("und der Zutritt ist erst ab lvl 100")
            
say("")
            
say_reward("Soll ich dich dort hin teleportieren?")

                
local s=select("Ja bitte teleportieren.","Nein ich möchte hier bleiben.")
                    if 
== 1 then
                        
if pc.get_level() >= 100 then
                        pc
.warp(512300,512300)
                    else
                    
say("Du musst mindestens Level 100 sein!")
                    
end
                   
                end
            end
        end
    end
end 
Zu 2. änder einfach die werte von der 1.quest , ist ja nicht schwer
10/23/2011 15:15 killa673#3821
thx^^

klappt net bekomme syntax fehler

kannste mir da einbauen das man irgend ein item braucht? wäre sehr lieb
10/23/2011 15:42 Sp0ngeb0b ist cool#3822
PHP Code:
quest give_basic_weapon begin
    state start begin
        when VNUM
.use begin
            say_title
("Zitadelle des Schreckens")
            
say_title("Alter Mann:")
            
say("")
            
say("Vor langer Zeit als die 3 Reiche noch")
            
say("in Frieden gelebt haben hat es ein Reich")
            
say("der Rebellen gegeben, welches heute jedoch")
            
say("verlassen und von Monstern bewohnt wird.")
            
say("Möchtest du einmal dorthin?")
            
say("")
            
say_reward("Sie sind sehr stark,")
            
say_reward("und der Zutritt ist erst ab lvl 100")
            
say("")
            
say_reward("Soll ich dich dort hin teleportieren?")

            
local s select("Ja bitte teleportieren.""Nein ich möchte hier bleiben.")
            if 
== 1 then
                
if pc.get_level() >= 100 then
                    pc
.warp(512300,512300)
                else
                    
say("Du musst mindestens Level 100 sein!")
                
end
            end
        end
    end
end 
vnum durch value des items ersetzen ;)
10/23/2011 15:43 killa673#3823
danke ma testen^^

€: THX klappt ohne probleme^.^
10/23/2011 16:18 FuZi0nZ.™#3824
Hey , diese quest erscheint nicht im rufchat .... Kann jemand helfen?

PHP Code:
quest gm begin
     state start begin
            when login begin
                timer
("timer1"20)
                    
chat("~~~Uppe Die Waffen Und Rüstungen Von Dem Spezial Shop Beim 2011 Upper Weiter~~~")
            
end
            when timer1
.timer begin
                timer
("timer2"20)
                
chat(""~~~Uppe Die Waffen Und Rüstungen Von Dem Spezial Shop Beim 2011 Upper Weiter~~~")
            end
            when timer2.timer begin
                timer("
timer1", 20)
                chat("
Euer Revolution2 Team Wünscht Euch Noch Viel Spaß")
        end
    end
end 


MFg ,
10/23/2011 17:17 xXKimariXx#3825
PHP Code:
quest gm begin
     state start begin
            when login begin
                timer
("timer1"20)
                    
notice_all("~~~Uppe Die Waffen Und Rüstungen Von Dem Spezial Shop Beim 2011 Upper Weiter~~~")
            
end
            when timer1
.timer begin
                timer
("timer2"20)
                
notice_all("~~~Uppe Die Waffen Und Rüstungen Von Dem Spezial Shop Beim 2011 Upper Weiter~~~")
            
end
            when timer2
.timer begin
                timer
("timer1"20)
                
notice_all("Euer Revolution2 Team Wünscht Euch Noch Viel Spaß")
        
end
    end
end 
Ka obs so funktioniert