Register for your free account! | Forgot your password?

You last visited: Today at 06:14

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

Advertisement



[How to]Questwriting für Anfänger

Discussion on [How to]Questwriting für Anfänger within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
[How to]Questwriting für Anfänger

Hey,
ich werde euch hier mal zeigen wie man Quests schreibt!
Dies ist ein Anfänger Tutorial ^^

Vorbereitung:

ladet euch das runter und installiert alles nach dem Tutorial!

Und jetzt fangen wir mit scripten an

Also erstes leitet ihr die Quest ein mit
PHP Code:
quest [Questnamebegin 
dabei ersetzt ihr [questname] mit dem Namen der Quest, bei mir :
PHP Code:
quest erstequest begin 
Nun starten wir mit
PHP Code:
state start begin 
das Statement Start, welches beim Anfang jeder Quest zuerst geladen wird!

Jetzt brauchen wir eine Bedingung, also was die Quest auslöst, wenn etwas passiert. Dies machen wir mit
PHP Code:
when [Bedingungbegin 
Ein paar Beispiele für eine Bedingung:
  • PHP Code:
    when login begin 
  • PHP Code:
    when login with pc.level >= 1 begin 
  • PHP Code:
    when [NPC].chat."Button" begin 


wir nehmen mal [NPC].chat."Button"!

Als NPC nehmen wir mal den Schmied, welcher die Value 20016 hat!
Nun sieht unsere Bedingung so aus:
PHP Code:
20016.chat."Button" 
Als Text des Buttons nehmen wir "Ich mache alles kaputt"
Jetzt sieht sie so aus:
PHP Code:
20016.chat."Ich mache alles kaputt" 
Bis jetzt sieht unsere Quest wie folgt aus:
PHP Code:
quest erstequest begin
    state start begin
        when 20016.chat
."Ich mache alles kaputt" begin 
Jetzt fügen wir ein Text ein.
Der Code für den normalen Text ist
PHP Code:
say("TEXT"
Als Text nehmen wir mal BlaBla, also sieht es jetzt so aus:
PHP Code:
say("BlaBla"
Aber wir wollen noch so einen hübschen Titel haben:
PHP Code:
say_title("Schmied:"
damit wird steht oben so ein schöner Titel(Der hat dann halt ne andere Farbe )

Und für jede neue Zeile wird dann wieder
PHP Code:
say("TEXT-ZEIL2"
und so weiter

So, wenn man jetzt die Quest Ingame anschaut und zuviele Zeilen geschrieben hat, dann kann man ein Button einbauen!
Dies macht man so:
PHP Code:
wait() 
in der Quest würde das dann so aussehen:
PHP Code:
say("TEXT")
wait()
say("TEXT-2"
Unsere Quest sieht jetzt so aus:
PHP Code:
quest erstequest begin
    state start begin
        when 20016.chat
."Ich mache alles kaputt" begin
            say
("TEXT")
            
wait()
            
say("TEXT-2"
Nun können wir eine Belohnung einbauen:
PHP Code:
pc.give_item2([ItemValue]) 
Nehmen wir als Value mal 10 - Schwert+0

PHP Code:
pc.give_item2(10
oder wir können eine Überprüfung einbauen ob der Gamer ein bestimmtes Item bei sich hat:
PHP Code:
if item.get_count([ItemValue]) >= 1 then
    pc
.give_item2(10)
else
    
say("Du hast nicht genügend Items")
end 
Nehmen wir hier als ItemValue 11
Also sieht es jetzt so aus:
PHP Code:
if item.get_count(11) >= 1 then
    pc
.give_item2(10)
else
    
say("Du hast nicht genügend Items")
end 
Und falls wir wollen, das ein Item entfernt werden soll, benutzten wir folgenden Code:
PHP Code:
pc.remove_item([ItemValue]) 
Als Item Value nehmen wir 11 - Da wir überprüft haben ob man das Item hat!

Nun müssen wir die ganzen Statesments mit
PHP Code:
end 
beenden!
Da die If-Bedingung schon beendet ist müssen wir noch 3 Statments beenden!
PHP Code:
        end
    end
end 
Jetzt sieht meine Quest so aus:
PHP Code:
quest erstequest begin
    state start begin
        when 20016.chat
."Ich mache alles kaputt" begin
            say
("TEXT")
            
wait()
            
say("TEXT-2")
            if 
item.get_count(11) >= 1 then
                pc
.give_item2(10)
                
pc.remove_item(11)
            else
                
say("Du hast nicht genügend Items")
            
end
        end
    end
end 
Update 06.03.2011 13:39


Wir machen eine neue Quest Datei!
Als Bedingung das die Quest startet nehmen wir
PHP Code:
[ItemValue].use 
Als ItemValue nehmen wir mal 12 ^^
Also sieht es jetzt so aus:
PHP Code:
quest zweitequest begin
    state start begin
        when 12.
use begin 

Um ein Pferd zu rufen benutzen wir den Code
PHP Code:
horse.summon 
Nun sieht unsere Quest folgender Massen aus:
PHP Code:
quest zweitequest begin
    state start begin
        when 12.
use begin
            horse
.summon 
Um ein Pferd wegzuschicken benutzen wir den Code
PHP Code:
horse.unsummon 
Wenn wir das jetzt in unsere Quest einfügen würden, würde was passieren?
Genau unser Pferd würde sofort wieder verschwinden, wenn wir es rufen würden!

Nun nehmen wir QuestStates um dies zu fixxen!

QuestStates werdet ihr immer brauchen können, dehalb empfehle ich an diesem Punkt weiterzulesen!
Es ist eigentlich ziemlich simpel!
PHP Code:
pc.getqf("[QuestState]"
um ein QuestState auszulesen
PHP Code:
pc.setqf("[QuestState]""[Wert]"
um ein QuestState einen Wert zuzuordnern!
Dieser Wert kann eine Zahl, ein Buchstabe oder ein Variable sein!

So als Wert nehmen wir 0 oder 1, 1 falls man ein Pferd geufen hat und 0 falls man es nicht gerufen hat bzw. weggeschickt hat!
Als QuestState nehmen wir Pferd!
Jetzt bauen wir eine If Überprüfung ein, welche überprüft ob der Wert der QuestState Pferd auf 1 oder 0 steht!

PHP Code:
If pc.getqf("Pferd")==0 then
    horse
.summon
    pc
.setqf("Pferd",1)
elseif 
pc.getqf("Pferd")==1 then
     horse
.unsummon
    pc
.setqf("Pferd",0)
end 
So nun wird überprüft ob die QuestState Pferd auf 0 steht. Falls dies so ist, wird das Pferd gerufen und die QuestState Pferd auf 1 gesetzt, falls nicht wird es weggeschickt und die QuestState auf 0 gesetzt!

Unsere Quest sieht jetzt so aus:
PHP Code:
quest zweitequest begin
    state start begin
        when 12.
use begin
            
If pc.getqf("Pferd")==0 then
                horse
.summon
                pc
.setqf("Pferd",1)
            elseif 
pc.getqf("Pferd")==1 then
                 horse
.unsummon
                pc
.setqf("Pferd",0)
            
end 
So und was müssen wir jetzt machen? Na Klar die Quest beenden!
PHP Code:
quest zweitequest begin
    state start begin
        when 12.
use begin
            
If pc.getqf("Pferd")==0 then
                horse
.summon
                pc
.setqf("Pferd",1)
            elseif 
pc.getqf("Pferd")==1 then
                 horse
.unsummon
                pc
.setqf("Pferd",0)
            
end
        end
    end
end 
Ich erweitere den Thread weiter und zwar zwischen 15-16 Uhr oder morgen
MfG
0x4D617276
0x4D617276 is offline  
Thanks
15 Users
Old 03/05/2011, 22:27   #2
 
.Delta's Avatar
 
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
gibt doch schon ein relativ schönes Tutorial dafür, aber egal

was du noch reinschreiben könntest wäre eine Erklärung was die ganzen Funktionen bewirken und wie man sie benutzt, das würde vielen helfen ^^
.Delta is offline  
Old 03/05/2011, 22:44   #3

 
LxR'EsoZiaL's Avatar
 
elite*gold: 15
Join Date: Mar 2010
Posts: 4,269
Received Thanks: 2,499
Quote:
Unsere Quest sieht jetzt so aus:
[php]
quest erstequest begin
state start begin
when 20016.chat."Ich mache alles kaputt" begin
say("TEXT")
wait()
say("TEXT-2")
[php]
Da haste was aber vergessen xD
LxR'EsoZiaL is offline  
Old 03/05/2011, 22:59   #4
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
Oh stimmt ^^
Edited
0x4D617276 is offline  
Old 03/06/2011, 00:49   #5
 
~shaylan~'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 131
Received Thanks: 45
Quote:
Originally Posted by Delta619 View Post
was du noch reinschreiben könntest wäre eine Erklärung was die ganzen Funktionen bewirken und wie man sie benutzt, das würde vielen helfen ^^
bin gerade dabei die ganzen funktionen übersichtlich zu erklären ;o
sprich ich könnte dazu bisl zuarbeit leisten ^^

Grüße
~shaylan~ is offline  
Old 03/06/2011, 00:55   #6
 
elite*gold: 0
Join Date: Aug 2009
Posts: 962
Received Thanks: 96
das plugin geht nicht pc neustart? XDDD
lautlosertot is offline  
Old 03/06/2011, 00:58   #7
 
elite*gold: 1804
Join Date: Sep 2010
Posts: 5,298
Received Thanks: 2,598
Gibt es zwar schon einmal aber das ist viel besser erklärt! Thanks haste! Mehr wäre super!
John​ is offline  
Old 03/06/2011, 09:26   #8
 
Atahnaru's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 483
Received Thanks: 154
Das gibs schon mehrmals und auch sehr ausführlich
Atahnaru is offline  
Old 03/06/2011, 13:42   #9
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
Quote:
Originally Posted by lautlosertot View Post
das plugin geht nicht pc neustart? XDDD
ne, haste es richtig eingefügt und bei sprache quest ausgewählt? Achja für die die meinen das es das schon gibt, das weiß ich selber, aber ich werde mein ausführlicher machen!^^ und immer updaten!

Updated!
0x4D617276 is offline  
Old 03/06/2011, 17:28   #10
 
LighTii's Avatar
 
elite*gold: 0
Join Date: Dec 2009
Posts: 183
Received Thanks: 211
hi,

es gibt schon ein relativ ausführliches Tutorial von lolkid.



mit freundlichen Grüssen

LighTii
LighTii is offline  
Old 03/06/2011, 18:08   #11
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
das wurde jetzt schon ein paar mal gesagt!
Aber meins ist, finde ich, ausführlicher! Zudem mache ich regelmäßig updates
0x4D617276 is offline  
Old 03/06/2011, 18:11   #12
 
elite*gold: 0
Join Date: Aug 2008
Posts: 1,469
Received Thanks: 417
THX zs. mit den anderen tut's kann man prima quest schreiben lernen
.Koopa is offline  
Reply


Similar Threads Similar Threads
how to better KD für anfänger
10/31/2010 - WarRock Guides, Tutorials & Modifications - 13 Replies
Am anfang hat man ja keine so guten waffen und deswegen sollte man ein fahrzeug map nehmen. Viele leute wollen eine bessere KD und da hab ich ein tut : ihr nehmt battelgroup engerne panzer fahr zur gegner base wo die flugzuege spwanen da stellt ihr euch mit dem panzer und stellt euch auf das health und ammo teil drauf dann könnt ihr entspannt gegener abkanllen aber da man von heavys gekillt werden kann sollte man zu zweit oder dritt kommen es geht auch mit dem heli mit den vielen sitzen...
[Service] Questwriting
10/24/2010 - Metin2 Private Server - 2 Replies
Hallo liebe User, ich möchte euch hier meine Dienste in Sachen Quests anbieten. Es gibt ja immernoch einige, die Quests nicht schaffen bzw. die Sprache (seltsamerweise) nicht verstehen. Daher möchte ich jedem die Chance einräumen lassen, einen guten Server mit guten Quests zu besitzen, ohne irgendetwas zahlen zu müssen. Ja, ihr habt es richtig bemerkt: Der Service ist komplett kostenfrei. Wer nun meint "unnötig", der kann gerne ALT+F4 drücken, statt hier unnötige Posts zu machen. Über...
@@Anfänger@@
04/20/2010 - World of Warcraft - 3 Replies
:rolleyes: @@Bin Blutiger Anfänger@@ Meine Frage: kan Mir wer tbc (2.4.3) Über TV Machen (kan das Mit Patchen usw nicht) Oder kann Jemand mir Ausführlich erklären wie das geht? Nehmts mir bitte nicht übel @@Bin Blutiger Anfänger@@
Anfänger...
10/17/2009 - Shaiya - 2 Replies
So ich bin neu in Shaiya =) habe ne frage Was ist ein Lapisa Wo krieg ich es Was kann man damit machen... und wie kriegt man schnell gold? xD hab nur 20000 >.<



All times are GMT +2. The time now is 06:14.


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.