Register for your free account! | Forgot your password?

You last visited: Today at 19:04

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

Advertisement



[HowTo]Mehre Seiten in einer Quest

Discussion on [HowTo]Mehre Seiten in einer Quest within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
[HowTo]Mehre Seiten in einer Quest

Hallo liebe Community,

da mir vorhin die Frage, wie man mehrere Seiten in eine Quest bekommt, entgegengeflattert ist, erkläre ich nun, wie das funktioniert.

Beispielsquest:
PHP Code:
-- ------------------------------
-- -- 
BY PRUSIAS ELITEPVPERS --
-- ------------------------------

quest drei_seiten begin
    state start begin
        when xxxxx
.chat begin
            drei_seiten
.show_menu()
            
            
            function 
show_menu()
                
say_title("Menü")
                
say("")
                
say("Seitenwahl:")
                
local menu select("Seite1""Seite2""Seite3""Abbrechen")
                if 
menu == 4 then
                    
return
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite1()
                
end
                
if menu == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite1()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_1 select("Menü""Seite2""Seite3""Abbrechen")
                if 
seite_1 == 4 then
                    
return
                
end
                
if seite_1 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_1 == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if seite_1 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite2()
                
say_title("Seite2")
                
say("")
                
say("Seitenwahl:")
                
local seite_2 select("Menü""Seite1""Seite3""Abbrechen")
                if 
seite_2 == 4 then
                    
return
                
end
                
if seite_2 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_2 == 2 then
                    drei_seiten
.show_seite1()
                
end
                
if seite_2 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite3()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_3 select("Menü""Seite1""Seite2""Abbrechen")
                if 
seite_3 == 4 then
                    
return
                
end
                
if seite_3 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_3 == 2 then
                    drei_seiten
.show_seite1()
                
end
                
if seite_3 == 3 then
                    drei_seiten
.show_seite2()
                
end
            end
        end
    end
end 
Wenn der NPC xxxxx angesprochen wird, wird diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_menu() 
Diese Funktion wurde hier deklariert:
PHP Code:
            function show_menu()
                
say_title("Menü")
                
say("")
                
say("Seitenwahl:")
                
local menu select("Seite1""Seite2""Seite3""Abbrechen")
                if 
menu == 4 then
                    
return
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite1()
                
end
                
if menu == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite3()
                
end
            end 
Im Menü, kann man dann auswählen, auf welche Seite, man wechseln möchte (3 Seiten stehen zur Verfügung). Wenn man die erste Seite aufruft, wird diese Funktion ausgeführt:
PHP Code:
drei_seiten.show_seite1() 
Dadurch wechselt man auf Seite 1, die hier deklariert wurde:
PHP Code:
            function show_seite1()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_1 select("Menü""Seite2""Seite3""Abbrechen")
                if 
seite_1 == 4 then
                    
return
                
end
                
if seite_1 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_1 == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if seite_1 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end 
Hier hat man wieder die Wahl, dass man entweder auf Seite 2, Seite 3 oder ins Menü wechseln will (oder eben Abbrechen möchte).
Sagen wir, wir gehen wieder ins Menü. Nun wird wieder diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_menu() 
Und das Menü wird angezeigt. Hier kann man wieder auf Seite 1, Seite 2 oder Seite 3 wechseln. Wenn man jetzt beispielsweise auf Seite 2 wechselt, dann wird diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_seite2() 
welche auch oben deklariert wurde und aus der man auch wieder ins Menü, auf Seite 1 oder auf Seite 3 wechseln kann. Wenn man alle 3 Seiten und das Menü deklariert hat, dann kann man unendlich oft die Seiten wechseln, ohne dass man das alles in der Quest schreiben muss.

MfG
Prusias
P.S: Bitte seit nicht zu streng mit mir, da es mein erstes HOWTO ist. Kritik ist dennoch gerne gesehen.

#EDIT: Fehler beseitigt!
Yiv is offline  
Thanks
8 Users
Old 10/01/2012, 15:43   #2
 
nagger12's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 880
Received Thanks: 409
Nice Danke
nagger12 is offline  
Old 10/01/2012, 15:50   #3
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
Eig. ziemlich nützlich. Vorallem, weil ich gerade questen lerne! Danke
DasSchwarzeT is offline  
Old 10/01/2012, 15:52   #4
 
.Hiяo's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,712
Received Thanks: 1,075
Quote:
Originally Posted by Prusias View Post
Hallo liebe Community,

da mir vorhin die Frage, wie man mehrere Seiten in eine Quest bekommt, entgegengeflattert ist, erkläre ich nun, wie das funktioniert.

Beispielsquest:
PHP Code:
-- ------------------------------
-- -- 
BY PRUSIAS ELITEPVPERS --
-- ------------------------------

quest drei_seiten begin
    state start begin
        when xxxxx
.chat begin
            drei_seiten
.show_menu()
            
            
            function 
show_menu()
                
say_title("Menü")
                
say("")
                
say("Seitenwahl:")
                
local menu select("Seite1""Seite2""Seite3""Abbrechen")
                if 
menu == 4 then
                    
return
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite1()
                
end
                
if menu == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite1()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_1 select("Menü""Seite2""Seite3""Abbrechen")
                if 
seite_1 == 4 then
                    
return
                
end
                
if seite_1 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_1 == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if seite_1 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite2()
                
say_title("Seite2")
                
say("")
                
say("Seitenwahl:")
                
local seite_2 select("Menü""Seite1""Seite3""Abbrechen")
                if 
seite_2 == 4 then
                    
return
                
end
                
if seite_2 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_2 == 2 then
                    drei_seiten
.show_seite1()
                
end
                
if seite_2 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end
            
            
function show_seite3()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_3 select("Menü""Seite1""Seite2""Abbrechen")
                if 
seite_3 == 4 then
                    
return
                
end
                
if seite_3 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_3 == 2 then
                    drei_seiten
.show_seite1()
                
end
                
if seite_3 == 3 then
                    drei_seiten
.show_seite2()
                
end
            end
        end
    end
end 
Wenn der NPC xxxxx angesprochen wird, wird diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_menu() 
Diese Funktion wurde hier deklariert:
PHP Code:
            function show_menu()
                
say_title("Menü")
                
say("")
                
say("Seitenwahl:")
                
local menu select("Seite1""Seite2""Seite3""Abbrechen")
                if 
menu == 4 then
                    
return
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite1()
                
end
                
if menu == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if menu == 1 then
                    drei_seiten
.show_seite3()
                
end
            end 
Im Menü, kann man dann auswählen, auf welche Seite, man wechseln möchte (3 Seiten stehen zur Verfügung). Wenn man die erste Seite aufruft, wird diese Funktion ausgeführt:
PHP Code:
drei_seiten.show_seite1() 
Dadurch wechselt man auf Seite 1, die hier deklariert wurde:
PHP Code:
            function show_seite1()
                
say_title("Seite1")
                
say("")
                
say("Seitenwahl:")
                
local seite_1 select("Menü""Seite2""Seite3""Abbrechen")
                if 
seite_1 == 4 then
                    
return
                
end
                
if seite_1 == 1 then
                    drei_seiten
.show_menu()
                
end
                
if seite_1 == 2 then
                    drei_seiten
.show_seite2()
                
end
                
if seite_1 == 3 then
                    drei_seiten
.show_seite3()
                
end
            end 
Hier hat man wieder die Wahl, dass man entweder auf Seite 2, Seite 3 oder ins Menü wechseln will (oder eben Abbrechen möchte).
Sagen wir, wir gehen wieder ins Menü. Nun wird wieder diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_menu() 
Und das Menü wird angezeigt. Hier kann man wieder auf Seite 1, Seite 2 oder Seite 3 wechseln. Wenn man jetzt beispielsweise auf Seite 2 wechselt, dann wird diese Funktion aufgerufen:
PHP Code:
drei_seiten.show_seite2() 
welche auch oben deklariert wurde und aus der man auch wieder ins Menü, auf Seite 1 oder auf Seite 3 wechseln kann. Wenn man alle 3 Seiten und das Menü deklariert hat, dann kann man unendlich oft die Seiten wechseln, ohne dass man das alles in der Quest schreiben muss.

MfG
Prusias
P.S: Bitte seit nicht zu streng mit mir, da es mein erstes HOWTO ist. Kritik ist dennoch gerne gesehen.

#EDIT: Fehler beseitigt!
Ich bin jetz kein Questgott aber ist das nicht genau das selbe wie als wenn du einfach einem 3 Auswahlmöglichkeiten gibst...

also zum Beispiel so hier:

Code:
say("2 verschiedene Antwort möglichkeiten!") 
                    local s=select("Antwort1","Antwort2")
                    if s==1 then
                        say("Du hast die Antwort 1 gewählt.")
                    elseif s==2 then
                        say("Du hast Antwort2 gewählt.")
Wenn ja verstehe ich den Sinn hinter dem HowTo nicht da man das eigentlich können sollte als Quester oder auch als non-Quester
.Hiяo is offline  
Old 10/01/2012, 15:52   #5
 
elite*gold: 32
The Black Market: 120/0/1
Join Date: Mar 2012
Posts: 6,717
Received Thanks: 2,737
Lol, nice, und danke.
Syuki is offline  
Old 10/01/2012, 15:59   #6
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Ähm is zwar nett gemeint und auch hübsch geschrieben aber eigentlich reicht ein simples neusetzen des Titels oO
oder wait()
xCPx is offline  
Thanks
1 User
Old 10/01/2012, 16:03   #7

 
xXKimariXx's Avatar
 
elite*gold: 5
Join Date: Aug 2011
Posts: 1,130
Received Thanks: 512
@xCPx

Das ist nicht das was du denkst^^
Das ist so was wie ein "zurück" button, anstatt dieses doofe "Abbrechen".
Also von "Seite1" zu "Seite2", und dann kann man von der "Seite2" aus wieder auf die "Seite1" , das die ganze zeit.
xXKimariXx is offline  
Old 10/01/2012, 16:04   #8
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Quote:
Originally Posted by .Hiro View Post
Ich bin jetz kein Questgott aber ist das nicht genau das selbe wie als wenn du einfach einem 3 Auswahlmöglichkeiten gibst...

also zum Beispiel so hier:

Code:
say("2 verschiedene Antwort möglichkeiten!") 
                    local s=select("Antwort1","Antwort2")
                    if s==1 then
                        say("Du hast die Antwort 1 gewählt.")
                    elseif s==2 then
                        say("Du hast Antwort2 gewählt.")
Wenn ja verstehe ich den Sinn hinter dem HowTo nicht da man das eigentlich können sollte als Quester oder auch als non-Quester
Nein, denn mit meiner Lösung, kannst du unendlich oft hin- und herblättern. Mit deinem Weg, kann man nur einmal auswählen und kann dann nicht Met beispielsweise zurück Blättern.

Mfg
Yiv is offline  
Thanks
1 User
Old 10/01/2012, 16:41   #9
 
elite*gold: 32
Join Date: Dec 2010
Posts: 1,294
Received Thanks: 862
Mit ner while oder repeat Schleife kannste alles noch viel kürzer machen. Wenn man's richtig macht.
√π. is offline  
Old 10/01/2012, 17:06   #10
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Quote:
Originally Posted by √π. View Post
Mit ner while oder repeat Schleife kannste alles noch viel kürzer machen. Wenn man's richtig macht.
Hm...Die Methode kenne ich nicht. Könntest du sie mir mal freundlicherweise per Privater Nachricht schicken?

MfG
Yiv is offline  
Old 10/01/2012, 17:58   #11
 
Mijago's Avatar
 
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
Mit Coroutinen ginge das noch einfacher
Mijago is offline  
Thanks
1 User
Old 10/01/2012, 17:59   #12
 
ɑɀe''s Avatar
 
elite*gold: 394
Join Date: Jul 2011
Posts: 503
Received Thanks: 558
Quote:
Originally Posted by Mijago View Post
Mit Coroutinen ginge das noch einfacher
Dürfte ich um ein Beispiel bitten? :P

Regards
ɑɀe' is offline  
Old 10/01/2012, 20:55   #13
 
Pаylasici's Avatar
 
elite*gold: 99
Join Date: Aug 2009
Posts: 4,296
Received Thanks: 5,092
Quote:
Originally Posted by ɑɀe' View Post
Dürfte ich um ein Beispiel bitten? :P

Regards
Quote:
Coroutinen stammen ursprünglich aus der Assemblerwelt, denn dort war Speicher knapp. Sie sind allgemeiner gehaltene Subroutinen und haben mehrere Startpunkte. Coroutinen sind in den populären Programmiersprachen nicht bekannt. Der erste Teil dieser zweiteiligen Serie erklärt Coroutinen und die Umsetzung in C.
Weiterlesen auf (Quelle):
Pаylasici is offline  
Old 10/01/2012, 21:08   #14
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Quote:
Originally Posted by Unoptanium View Post
Aus Inforge

Aber schon eine tolle Sache
Nein. Selfmade (ausgedacht). Ich bin nicht auf Indorge

An alle anderen: Ich bin durch etwas nachdenken daraufgekommen und wusste erst seit ca. Einem halben Jahr und bis vor 3 Monaten ohne Anleitung (aus anderen Quasts gelernt)

Mfg
Yiv is offline  
Old 10/01/2012, 21:59   #15


 
.UnknownUser™'s Avatar
 
elite*gold: 0
The Black Market: 100/0/1
Join Date: Jun 2011
Posts: 3,364
Received Thanks: 1,743
Soweit ich mich errinere kannse ne neue Seite auch mit
wait()
machen.

So gehts zumindest bei mir
.UnknownUser™ is offline  
Reply


Similar Threads Similar Threads
Metin2 Ring Quest [Wie füge ich ein Boni in einer Quest ein?]
04/13/2012 - Metin2 Private Server - 1 Replies
Habe die aktuellen Ringe von Metin2 DE in meinen Server eingefügt mit einer Quest. Aber jetzt ist die Frage wie man für jeden Ring ein Bonis hinzufügen kann?
Quest in Mehre Sprachen ?
11/18/2011 - Metin2 Private Server - 12 Replies
Hallo Kann mir einer Helfen wie kann ich machen das Questes in Mehren Sprachen sind so das man Deutsch,English, und Rumänisch auswählen kann ?
Quest Status aus einer anderen Quest abfragen!
02/13/2011 - Metin2 Private Server - 0 Replies
Gibt es eine Möglichkeit in einer Quest abzufragen, was der Spieler in einer bestimmten anderen Quest im local_select ausgewählt hat? also zb. erste quest: auswahlmöglichkeiten: 1,2,3 zweite quest: when pc.wählt 1 in der quest "blabla" begin nur damit ihr es versteht :D
[HowTo] Große Bilder ingame (z.B. bei einer Quest) anzeigen lassen
11/14/2010 - Metin2 PServer Guides & Strategies - 24 Replies
Hi, da ich es mittlerweile oft gefragt wurde, zeige ich euch mal, wie ihr soetwas darstellen könnt: http://www5.pic-upload.de/07.11.10/bt5mafef2i8r.j pg Geht folgendermaßen vor: Clientside: Ihr erstellt natürlich zuerst ein Bild, dieses speichert ihr dann als "NUMMER.tga" ab. Der Name des Bildes darf keine Buchstaben enthalten! (In meinem Fall benutze ich den Namen "100009.tga"
Warrock seiten Off?? ( sry wenn es schon einer gepostet hat)
02/14/2010 - WarRock - 4 Replies
Also ich wollte eigentlich jetzt was amchen aber erst hatten ja die server probleme und nun ist warrock.net ops.warrock.net und gamersfirst offline? stimmt das oder geht es bei euch?? kommt da jetzt das neue clansystem wollte nämlich im forum nachschauen warum server probleme gibt. Jetzt habe ich erfahren server schon wieder down??



All times are GMT +2. The time now is 19:04.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.