[SERVICE] Die Questkontrolle

05/30/2011 21:05 .Delta#2446
PHP Code:
quest Information begin
    state start begin
        when login begin
            set_state
("information")
        
end
    end
    state information begin
        when letter begin
            send_letter
("Info")
        
end
        when button 
or info begin
            say_title
("Unbekannter Brief:")
            ----
"12345678901234567890123456789012345678901234567890"|
            
say("Gehe zum alten Denkmal, dort stehen")
            
say("Informationen und Antworten auf Fragen.")
            
say("")
            
say("Die Teamler sind:")
            
say("[SA]Priki & [SA]King")
            
say("Viel Spaß noch auf GalaxyStar2!")
            
say_reward("Der Brief ist an der unteren Seite")
            
say_reward("abgerissen...")
            
say_reward("Gehe zu dem alten Denkmal"
            
say_reward("Auf dem Marktplatz.")
            
set_state(gotoinfostand)
        
end
    end
    state gotoinfostand begin
        when letter begin
            local v
=find_npc_by_vnum(20361)
            if 
v!=0 then    --war nur =
                
target.vid("__TARGET__"v"Geh zum alten Denkmal")
                
send_letter("Gehe zum alten Denkmal!")
            else
                
say("Lol")
            
end
        end
        when __TARGET__
.target.click or 20361.chat."Altes Denkmal" begin
            target
.delete("__TARGET__")
            
say("Info-Stand :")

            ----
"12345678901234567890123456789012345678901234567890"|
            
say_reward("Die Zeichen auf dem Denkmal sind")
            
say_reward("kaum zu erkennen, aber du versuchst")
            
say_reward("etwas zu entziffern...")
            
wait()
            
say_title("Altes Denkmal:")
            
say("")
            
say("Prophezeit hat es der allmächtige Drachengott,")
            
say("und bald ist es soweit. Denn "..pc.get_name().." wird")
            
say("irgendwann geboren sein. Er solle den armen,")
            
say("hart umkämpften Kontinent von der Plage der")
            
say("Metinsteine befreien. Aber bis es soweit ist,")
            
say("müssen wir uns noch etwas gedulden. Das Leben")
            
say("wird weitergehen.")
            
say("")
            
say_reward("Was möchtest du an der Tafel weiterlesen?")
            
local s select("Die Gebote","FAQ""Nichts")
            if 
s==1 then
                say
("Altes Denkmal:")
                ----
"12345678901234567890123456789012345678901234567890"|
                
say("#1 Kein Hacken")
                
say("#2 Keine Beleidigungen")
                
say("#3 Keine Erpressung")
                
say("#4 Ein Teamler hat immer Recht!")
                
say("#5 Alle Regeln sind einzuhalten.")
                
say("Bei weiteren Fragen frage einen [GM].")
                
say("Wirst du diese Regeln einhalten?")
                
say("")
            elseif 
s==3 then
                say
("Du willst nicht die heiligen Gebote")
                
say("studieren? Wie du meinst, es ist")
                
say("deine Entscheidung.")
            elseif 
s==2 then
                say_title
("Was möchtest du wissen, " .. pc.get_name().. "?")
                
say("")
                
local b select("Allgemeines","Info zu mir","Wie werde ich GM?","Bekomme ich Items?""Nichts...")
                
                if 
b==1 then
                say_title
("Altes Denkmal:")
                
say("")
                
say_reward("Aktuelle Serverversion: v1")
                
say_reward("Aktuelle Clientversion: v1")
                
say_reward("Server IP: 5.68.200.100")
                
say_reward("Teamler: [SA]Priki , [SA]King")
                
say_reward("Homepage: http://5.68.200.175/")
                
say("")
                elseif 
b==2 then
                say_title
("Altes Denkmal:")
                
say("")
                
say_reward("Name: " ..pc.get_name().. " ")
                
say_reward("Level: " ..pc.get_level.. " ")
                
say_reward("Pferdelevel: " ..pc.get_horse_level.. " ")
                
say_reward("Deine XP: " ..pc.get_exp().. " ")
                
say_reward("Dein Yang: " ..pc.get_gold().. " ")
                
say_reward("Deine Gilde: " ..pc.get_guild().. " ")
                
say_reward("Spielzeit: " ..pc.get_playtime().. " ")
                
say("")
                
                elseif 
b==3 then
                say_title
("Altes Denkmal:")
                
say("")
                
say("Die Welt benötigt gerade keine neuen")
                
say("Aufpasser. Falls doch, wird es hier und")
                
say("im Forum bekannt gegeben.")
                
say("")
                
                    elseif 
b==4 then
                say_title
("Altes Denkmal:")
                
say("")
                
say("Die Aufpasser haben keine Erlaubnis,")
                
say("dir Items zu geben. So will es der")
                
say("allwissende Drachengott. Anfragen duldet")
                
say("der Drachengott nicht und bestraft soetwas")
                
say("mit einer zeitlichen Verbannung aus der Welt.")
                
say("")
                
                elseif 
b==5 then
                say_title
("Altes Denkmal:")
                
say("")
                
say("Wenn du keinen Wissensdurst mehr hast, dann")
                
say("darfst du gehen, falls du es verlangst.")
                
say("")
                
end
            end
        end          
    end
end 
@ zorro: versuchs mal so bitte, hab namen der locals verändert und n bisschen ordnung reingebracht :p
PHP Code:
quest info_tante begin
    state start begin  
        when 20086.chat
."Info" begin
            say_title
("Info")
            
say("")
            
say("Hallo:")
            
say("Ich glaube du bist ein neuer auf diesen Server")
            
say("da du warscheinlich viele Fragen hast")
            
say("hilft dir dieser NPC")
            
say("")            
            
say_reward("Möchtest du dich über diesen Server Informieren?")
            
local s select("Ja, gerne""Nein, schon ok")        
            if 
== 2 then
                say_title
("Info")
                
say("Ok, denn nicht")
                return          
            elseif 
== 1 then
                say_title
("Info")
                
say("")
                
say_reward("Wähle eine Frage:")
                
say("")
                
local t select("Wie bekomme ich P skills?""Wie bekomme ich Steine?""Bei welchem Level liegt die Levelgrenze?""Gibt es neue Rüstungen und Waffen?""Weiter")    
                if 
== 1 then
                    say_title
("Wie bekomme ich P skills?")
                    
say("")
                    
say("Um P skills zu bekommen musst du Seelensteine dropppen und zwar")
                    
say("bekommst du diese aus allen Mobs")
                    
say("oder von den Bossen diese droppen sie im Mengen")
                elseif 
== 2 then
                    say_title
("Wie bekomme ich Steine?")
                    
say("")
                    
say("Diese Droppst du von Metinsteinen")
                    
say("oder")
                    
say("du erhälst sie bei dem Steine NPC")
                elseif 
== 3 then
                    say_title
("Bei welchem Level liegt die Levelgrenze?")
                    
say("")
                    
say("Die Levelgranze auf diesem Server liegt bei Level 127")
                    
say("")            
                    
say("Warum bis Level 127?")
                    
say("Weil der Spielspaß dann noch mehr")
                    
say("gesteigert wird und es nicht langweilig wird."
                elseif 
== 4 then
                    say_title
("Gibt es neue Rüstungen und Waffen?")
                    
say("")
                    
say("Ja,aus 65er Waffen +9 kommt eine 75er Waffe,")
                    
say("diese lässt sich zu einer 92ger Waffe weiter uppen,")
                    
say("und diese weiter zu einer neuen 80ger Waffe")
                    
say("Aus einer 66er Rüstung kommt eine 80 Rüstung")
                    
say("")
                    
say("Um eine neue Rüstung oder Waffe herzustellen benötigt es neue Uppitems")            
                    
say("nicht nur das + der Gegenstände steigt sondern auch das Level.")            
                elseif 
== 5 then
                    say_title
("Info")
                    
say("")
                    
say_reward("Wähle eine Frage:")
                    
say("")
                    
local u select("Kann man Steine uppen?""Woher bekomm ich neue Uppitems?""Wie bekommt man Perlen/Muscheln""Wie sind die Bonis?""Wie bekomme ich Bonis?""Abbrechen")          
                    if 
== 1 then
                        say_title
("Kann man Steine uppen?")
                        
say("")
                        
say("Ja, doch diese kann man bis +6 uppen")
                        
say("")
                        
say("Warum nur bis +6?")            
                        
say("Wenn sie höher gehen zerstören sie den Spielspaß und das PVP System")
                    elseif 
== 2 then
                        say_title
("Woher bekomm ich neue Uppitems?")
                        
say("")
                        
say("Diese bekommst du vom Wasserdrachen wenn du ihn besiegst")
                        
say("")
                        
say("Du findest diese ebenfalls aus diversen Bossen")
                    elseif 
== 3 then
                        say_title
("Wie bekomme ich Perlen/Muscheln")
                        
say("")
                        
say("Muscheln droppt man als Aternativdropp")
                        
say("diese öffnet man um somit Muscheln zu bekommen")
                        
say("Du kannst die auch bei dem Upp-Stuff NPC")
                        
say("dzu einem fairen Preis erwerben")
                    elseif 
== 4 then
                        say_title
("Wie sind die Bonis")
                        
say("")
                        
say("Die Bonis wurden selbst angepasst auf diesem Server.")
                        
say("Perfeckte Bonis zu besitzen benötigt seine gewisse Zeit")
                    elseif 
== 5 then
                        say_title
("Wie bekomme ich Bonis?")
                        
say("")
                        
say("Bonis hinzufügen und verhexen")
                        
say("bekommst du aus dem Bonus-Händler")
                        
say("Dieser ist in der jeweiligen Map1 anzutreffen")
                        
say("")           
                    elseif 
== 6 then
                        
return
                    
end
                end    
            end
        end
    end
end 
05/30/2011 21:24 MJInTheCloset#2447
Danke Delta! Jetzt hat es endlich geklappt :) Ich weiß zwar nicht wo der Fehler war, aber hauptsache es funkt :D
05/30/2011 21:25 .Delta#2448
Quote:
Originally Posted by MJInTheCloset View Post
Danke Delta! Jetzt hat es endlich geklappt :) Ich weiß zwar nicht wo der Fehler war, aber hauptsache es funkt :D
bei dem 1. when block im state gotoinfostand hat ein end gefehlt ;)
sry, hab ich vorhin übersehen :)
05/31/2011 01:45 xAlbStaR™#2449
Questfehler.. :awesome:


assertion failure : nested ==0
core dumped
05/31/2011 08:49 .Delta#2450
PHP Code:
quest reittiere begin
    state start begin
        when 20030.chat
."Rettiere Rufen" begin
            local s 
=select ("Löwe","Feuer-Tiger","Keiler","Wolf")
            if 
==1 then
                say
("Du wirst ab jetzt auf den Löwen Reiten.")
                
horse.ride()
                
pc.mount(39912)
            elseif 
==2 then
                say
("Du wirst ab Jetzt auf den Feuer Tiger Reiten.")
                
hore.ride()
                
pc.mount(39915)
            elseif 
s==3 then
                say
("Du wirst ab Jetzt auf den Keiler Reiten.")
                
horse.ride()
                
pc.mount(39913)
            elseif 
s==4 then
                say
("Du wirst ab Jetzt auf einem Wolf Reiten.")
                
horse.ride()
                
pc.mount(39914)
            
end  
        end
    end
end 
05/31/2011 18:36 [GM]Jan#2451
Hey kann pls jemand eine Quest machen wo man 20 Spieler von einem anderen Reich killen muss, dass man ne Reichsklinge bekommt??
Thx + Mfg Jan

sorry dass ich nochmal eine bring aber wie kann man die Steine(bis +9) aus nem Item einzeln entfernen??
Das item wo die Steine entfernen soll hat die Value 100002
Thx + Mfg Jan
05/31/2011 18:48 .Delta#2452
Questkontrolle ;)

Selber probieren :)

Und wegen deinem 2. Anliegen: da gibt es eine Quest auf epvp glaub ich, einfach mal suche.
und #reported wegen doppelpost
06/01/2011 09:15 .Delta#2453
Du musst schon für jede mob art ne qf setzen und auch für jede vnum nen eigenen kill befehl angeben...
Und Sensenmann ( und evtl Blauer Tod) sind im DT schon belegt, sprich wird nicht funktionierren mit diesen mobs...
06/01/2011 14:08 DasKuchen#2454
Hey, ich hätte wieder eine Frage und zwar wie ich eine Ingame Top 10 Rangliste mache,
hoffe ihr könnt mir helfen.

Falls ihr nicht wisst was ich meine hier:
PHP Code:
quest rangliste begin
state start begin
    when XXXXXX
.chat."Spieler Rangliste" begin
                say_title
("Top 10")
                
say("Platz   Name   Level  Exp   Reich")
                
say("----------------------------------")
                                *
Hier Befehle für Top 10 Rangliste
06/01/2011 16:43 .Risan.#2455
Unmöglich, Metin2 hat sowas noch nicht, ausser man macht es per Luasql..
06/01/2011 18:25 Zorro'#2456
Hier nochmals 2 Quests von mir..
Bin wieder zu doof um den Fehler zu finden..





2.
06/01/2011 20:38 xBommBomm#2457
Hier ein Quest von mir der nicht Fixxt


Quote:
quest drachenraum 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 game.get_event_flag("Grotte_zugang") == 0 and pc.count_item(30179)==0 then
say_title(""..mob_name(30121).."")
say("")
say("Dir fehlt "..item_name(30179).."")
say_item_vnum(30179)
say("Komme wieder wenn du eins besitzt.")
return
end
if game.get_event_flag("Grotte_zugang") == 1 then
say_title(""..mob_name(30121).."")
say("")
pc.setqf("grotte_passworto", 078954687921)
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.")
say("Ich gewähre dir den zutritt!")
wait()
pc.warp(819200, 1049600)
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") == 0 and pc.count_item(30179)>=1 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 1 == 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).."")
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",1)
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 logout with pc.get_map_index() == 408 and get_time() > game.get_event_flag("Grotte_time") begin --Beta, ist nicht getestet!
notice_in_map("Weil ihr nicht den Stein runtergehauen habt, werdet ihr den Drachen nicht sehen...")
notice_in_map("ihr werdet in 15 Sekunden zurück zu Map1 gebracht.")
timer("skipia_boss_end", 15)
game.set_event_flag("Grotte_strafe",1)
end
when login with pc.get_map_index() == 408 begin
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)
end
when 8023.kill with pc.get_map_index() == 408 begin
pc.set_warp_location(73, 241700, 1274900)
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_strafe",0)
game.set_event_flag("Grotte_zugang",0)
d.new_jump_all(408, 8256, 10637)
d.setf("grotte_boss", 1)
d.spawn_mob(9012, 66, 142)
end

when 2493.kill with pc.in_dungeon() and d.getf("grotte_boss") == 2 begin
timer("skipia_boss_check", 3)
d.setf("grotte_boss", 3)
d.notice("Beeindruckend, ihr habt ihn tatsächlich besiegt. Als Abschluss könnt ihr noch die Metins zerstören")
d.kill_all()
d.spawn_mob(9012, 66, 142)
d.setf("count", 0)
local t = number(1,2)
if t == 1 then
d.spawn_mob(8027, 111, 123)
d.spawn_mob(8027, 128, 166)
d.spawn_mob(8027, 148, 138)
end
if t == 2 then
d.spawn_mob(8027, 145, 119)
d.spawn_mob(8027, 132, 129)
d.spawn_mob(8027, 130, 160)
end
end
when 8027.kill with pc.in_dungeon() and d.getf("grotte_boss") == 3 begin
local n =d.getf("count") + 1
d.setf("count", n)
if n == 3 then
d.notice("Ihr habt die Metins zerstört, ihr werdet in 30 Sekunden zurück zu Map1 gebracht.")
timer("skipia_boss_end", 30)
end
end

when login with pc.in_dungeon() and d.getf("grotte_boss") == 1 begin
if game.get_event_flag("Grotte_strafe") == 0 then
timer("skipia_boss_end", 1800)
timer("skipia_spawn", 5)
d.setf("grotte_boss", 2)
d.notice("Willkommen im Tempel des Drachen, ihr habt maximal 30 Minuten Zeit Beran-Setaou zu besiegen, Viel Erfolg")
elseif game.get_event_flag("Grotte_strafe") == 1 then --kommt wenn sie stein nicht runterhauen und im Raum bleiben, fliegen sie raus.. :)
chat("Weil ihr nicht den Stein runtergehauen habt, werdet ihr den Drachen nicht sehen...")
chat("ihr werdet in 15 Sekunden zurück zu Map1 gebracht.")
timer("skipia_boss_end", 15)
game.set_event_flag("Grotte_strafe",1)
end
end
when skipia_spawn.timer begin
d.regen_file("data/dungeon/skia_boss.txt")
d.spawn_mob(2493, 120, 143)
end

when skipia_boss_end.timer begin
d.exit_all_to_start_position()
end
when skipia_boss_ende.timer begin
kill_all_in_map(408)
game.set_event_flag("Grotte_zugang",0)
game.set_event_flag("Grotte_strafe",1)
d.new_jump_all(408, 8256, 10637)
d.setf("grotte_boss", 1)
end
end
end
06/01/2011 21:08 .Risan.#2458
Quote:
Originally Posted by xBommBomm View Post
Hier ein Quest von mir der nicht Fixxt
quest nicht von dir, sondern von mir, geb darauf kein Support.
06/01/2011 21:19 Bam-Bam#2459
bräuchte ma Hilfe bei einer quest von mir hier der text

PHP Code:
quest Tausch begin
    state start begin
        when 20011.chat
."Waffen Kiste Tauschen" begin
            
            say_title
("Uriel")
            
say("")
            
say("So So  du willst also deine Waffen Kiste")
            
say("gegen eine Waffe von mir tauschen ")
            
say("Aber sei Gewahrnt,")
            
say("In den Kisten ist mehr drin als ich anbiete!")
            if 
pc.count_item(50112) >= 1
                local s 
select("Tausch gegen Schlachtschwert+0""Tausch gegen Erxorzissmusschwert+0""Tausch gegen Magnetische Klinge+0""Tausch gegen Partisane+0""Donnervogelglocke+0""Drachenmesser+0""Großgelbdrachenbogen+0""Erlösungsfächer"" Bye Bye")
                    
                    if 
== 1 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(140,1)

                    
                    elseif 
== 2 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(240,1)

                    
                    
                    elseif 
== 3 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(3140,1)

                    
                    
                    elseif 
== 4 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(3130,1)

                    
                    
                    elseif 
== 5 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(5000,1)

                    
                    
                    elseif 
== 6 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(1100,1)

                    
                    
                    elseif 
== 7 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(2140,1)

                    
                    
                    elseif 
== 8 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(7140,1)

                    
                    
                    elseif 
== 9 then
                        
return
                    
                    
                    
            else
                
wait(2)
                
say("Du hast keine Waffen Kiste?, komme wieder"
                
say("wenn du eine besitzt!")
                
say_reward("Die Kiste droppste im sd2!!")
            
end
        end    
    end
end 
06/01/2011 22:45 LxR'EsoZiaL#2460
@Bam-Bam

PHP Code:
quest Tausch begin
    state start begin
        when 20011.chat
."Waffen Kiste Tauschen" begin
            say_title
("Uriel")
            
say("")
            
say("So So  du willst also deine Waffen Kiste")
            
say("gegen eine Waffe von mir tauschen ")
            
say("Aber sei Gewahrnt,")
            
say("In den Kisten ist mehr drin als ich anbiete!")
            if 
pc.count_item(50112) >= 1
                local s 
select("Tausch gegen Schlachtschwert+0""Tausch gegen Erxorzissmusschwert+0""Tausch gegen Magnetische Klinge+0""Tausch gegen Partisane+0""Donnervogelglocke+0""Drachenmesser+0""Großgelbdrachenbogen+0""Erlösungsfächer"" Bye Bye")
                    
                    if 
== 1 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(140,1)
                        
end
                    
                    
if == 2 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(240,1)
                        
end
                    
                    
                    
if == 3 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(3140,1)
                        
end
                    
                    
                    
if == 4 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(3130,1)
                        
end
                    
                    
                    
if == 5 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(5000,1)
                        
end
                    
                    
                    
if == 6 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(1100,1)
                        
end
                    
                    
                    
if == 7 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(2140,1)
                        
end
                    
                    
                    
if == 8 then
                        pc
.remove_item(50112,1)
                        
pc.give_item2(7140,1)
                        
end
                    
                    
                    
if == 9 then
                        
return
                    
end 
            
else
                
wait(2)
                
say("Du hast keine Waffen Kiste?, komme wieder"
                
say("wenn du eine besitzt!")
                
say_reward("Die Kiste droppste im sd2!!")
            
end
        end    
    end
end 

villt gehts, weiß nicht genau >.<