24
L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Embed Size (px)

Citation preview

Page 1: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

L2J Quest Builder

Ein Programm zur Unterstützung bei L2J Quest Scripts in Python.

Version 1.0

Page 2: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Installation

Voraussetzung: Sun Java VM 6 http://java.sun.com/

Download von http://www.world-of-mystery.de/l2j/

Installationsprogramm mit Sun Java VM öffnen und dem Installationsdialog folgen.

L2J Quest Builder aus dem Startmenü oder Desktop-Verknüpfung starten.

Page 3: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Das Programm öffnet sich mit einer leeren Quest.

Das Datei-Menü bietet Optionen zum Quest laden, speichern und exportieren

Das Fenster besteht aus zwei Teilen: dem Editor und einem Textfenster für das generierte Script.

Page 4: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Beginnen wir mit den allgemeinen Daten.

Jede Quest hat eine eindeutige Nummer im Bereich von 1 bis 999, der ID.

Der Questname wird von L2J verwendet und ist für den Spieler nicht sichtbar. Er darf keine Sonderzeichen enthalten und sollte nur aus einem Wort bestehen.

Die Beschreibung ist der Name der Quest, wie ihn der Spieler sieht.

Page 5: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Bevor wir mit den Grunddaten weitermachen, definieren wir einige Konstanten. Damit werden Variablen definiert, also Werten ein Name zugeordnet.

Das ist zwar nicht unbedingt nötig, macht aber das Script übersichtlicher.

In einem Python-Script verwendet man für Konstanten üblicherweise Namen, die nur aus Großbuchstaben beginnen.

Definieren wir nun eine Konstante für den Start-NPC und nennen sie START_ID.

Page 6: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Genauso legen wir noch zwei weitere Konstanten für die beteiligten NPCs an.

Felmy mit der ID 1000097undSaida mit der ID 1000099

Nun können wir zu den allgemeinen Daten zurückkehren und die Konstanten verwenden.

Page 7: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Jede Quest braucht mindestens einen Start-NPC und kann noch weitere beteiligte NPCs haben.

In den Auswahlfeldern erscheinen nun die eben definierten Konstanten und wir wählen START_ID bei Start NPCs und die beiden anderen bei Weitere NPCs.

Diese Definitionen lassen sich mit einem Kontextmenü in der Liste wieder löschen.

Page 8: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Damit die NPCs auch mit den Spielern reden, definieren wir Dialogtexte.Dazu klicken wir im Baumdiagramm auf Texte und geben einen Namen an.

Es empfiehlt sich, die NPC ID als Textname zu verwenden. Das macht es einfacher, die Texte zu bestimmten NPC später wieder zu finden.

Klickt man auf Hinzufügen erscheint ein neuer Text im Baumdiagramm. Dazu öffnen wir den Bereich mit dem Pluszeichen und klicken auf den Textnamen.

Page 9: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Das Programm legt einen NPC-Text an, der schon das minimale HTML-Gerüst zeigt.In L2J sind alle NPC-Texte einfache HTML-Dateien.

Unseren Text schreiben wir in die Zeile zwischen den Tags body.

Page 10: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Der Text darf auch Umlaute enthalten. Wie in HTML üblich, dürfen jedoch bestimmte Zeichen nicht verwendet werden. Ein „<“ schreibt man als „&lt;“.Näheres zu HTML findet man im Internet zum Beispiel unter dem Stichwort selfhtml.

Page 11: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Legen wir nun noch weitere Texte für die anderen NPCs an.

Soll ein NPC mehrere Texte bekommen, dann werden diese nummeriert. Hängen wir also einfach eine Zahl mit einem Bindestrich getrennt an.

Die Endung .htm wird automatisch angefügt.

Page 12: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Wir definieren uns noch folgende Texte:

1000097.htmIch bin der Leiter dieses Klosters. Ihr habt Nachricht von der werten Priesterin Saida? Sie sorgt sich? So eilt und teilt ihr mit, wir sind wohlauf. Uns fehlen nur Pfleger und Schwestern, so dass wir keine Zeit haben, in die Stadt zu reisen.

1000099-1.htmIhr habt mich gefunden, Boron sei Dank! Schon lange habe ich keine Nachricht vom ehrenwerten Abt Felmy erhalten! Bitte reist doch in sein Kloster am weißen Sandstrand und bringt mir Nachricht! Ich hoffe, er hat keine Schwierigkeiten.

1000099-2.htmOh ich danke Euch von ganzem Herzen! Ich bin so erleichtert, ich werde mich auf den Weg machen und im Kloster helfen! Nehmt dies hier als Aufwandsentschädigung für Eure Mühe!

Page 13: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Die definierten Texte können nun in den Grunddaten als auch in den einzelnen Schritten verwendet werden.

Page 14: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Als nächstes definieren wir die einzelnen Schritte einer Quest.

Die Schritte verweisen aufeinander und das Spiel merkt sich für jeden Spieler in welchem Schritt er sich gerade befindet.

Beginnen wir mit einem Schritt 0. Klick auf Hinzufügen.

Page 15: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Wie bei den Texten erscheint der neue Schritt im Baumdiagramm und jeder Schritt hat einen Dialog für die Details.Klicken wir also auf das Pluszeichen links von Schritte und dann auf den Schritt 0.

Die Nummer des Questschrittes lässt sich noch ändern.Der Spieler kommt zu einem neuen Schritt, wenn er entweder einen NPC anspricht oder auf einen Link in einem Dialog klickt.Das Anklicken in einem Dialog löst ein Ereignis aus, das einen Namen hat.

Für Schritte, die nicht durch ein Ereignis ausgelöst werden, geben wir an, auf welche NPC sie reagieren sollen. Dies kann entweder nur ein bestimmter, alle Start-NPCs, alle beteiligten NPCs oder nur die weiteren sein.

Page 16: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Schließlich definieren wir den nächsten Schritt (gehe zu Schritt 1) und einen Text für das Questbuch.Der Eintrag im Questbuch soll eine Hilfe für den Spieler sein, damit er nachlesen kann, was als nächstes von ihm erwartet wird.Nach jedem Schritt wird dem Spieler wieder ein Text angezeigt, den wir auswählen.

Diese Angaben reichen schon für den ersten Schritt und wir legen den Schritt 1 an. Dazu klicken wir wieder im Baumdiagramm auf Schritte und geben die 1 ein.Diesen editieren wir ebenfalls.

Page 17: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Dieser Schritt soll dann starten, wenn die Priesterin Saida angesprochen wird.Also wählen wir SAIDA_ID aus, wählen den Text 1000099-1.htm und geben einen Schritt 2 als Folgeschritt an.Noch einen Kommentar für das Questbuch und dieser Schritt ist fertig.

Page 18: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Der Schritt 2 sieht ganz ähnlich aus. Er soll auf den Abt Felmy reagieren, einen Text anzeigen und auf den Schritt 3 verweisen.

Page 19: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Kommen wir nun zum Ende der Quest. In Schritt 3 soll der letzte Text angezeigt werden und der Spieler seine Belohnung bekommen.Wir geben zunächst wieder den NPC und den Text an und markieren dann noch das Kästchen „Die Quest endet hier“.

Auch das Questbuch soll anzeigen, dass die Quest abgeschlossen ist.

Page 20: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Fehlt nur noch die Belohnung:

Dazu wählen wir „tausche Items“ und geben eine Item ID und eine Anzahl ein.

Hier können wir auch eine Richtung (also geben und nehmen aus Sicht des NPC) eingeben und beliebig viele Transaktionen definieren.Bei Klick auf Hinzufügen erscheint die Transaktion in der Tabelle, in der wir nachträglich noch ändern können (Klick bzw. Doppelklick auf die Zelle, rechte Maustaste für Kontextmenü).

Page 21: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Dies war der letzte Schritt und spätestens jetzt sollten wir die Quest speichern. Klick dazu auf Datei – Speichern im Menü.

Die Endung .qscript wird automatisch ergänzt. Nennen wir unser erstes Ergebnis „tut1“.

Page 22: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Bei jeder Änderung ändert das Programm das Script. Wir können diese Änderungen also sofort im Script sehen.

Für komplexe Scripts kann es nötig sein, dass das Python Script noch ergänzt werden muss. Ein Script bietet natürlich mehr Möglichkeiten an als man jemals in einige Dialogfenster bauen kann.

Es kann aber auch bei komplexen Quests als Vorlage für die weitere Arbeit dienen.

Page 23: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Um eine Quest auf einen L2J Server zu bringen exportiert man sie. Das Programm erzeugt dabei eine Zip-Datei, die den Namen des Questprojektes trägt. Haben wir also zum Beispiel unsere Quest unter dem Namen „tut1.qscript“ gespeichert, dann erzeugen wir mit der Option Exportieren L2J Script im Datei-Menü eine Zip-Datei namens „tut1.zip“.

Dieses Zip enthält das Script mit dem Namen __init__.py und die definierten NPC-Texte. Die Dateien liegen im Zip in einem Verzeichnis, das der Namenskonvention eines L2J Servers folgt.

Dieses Zip kann in einem L2J Server unter gameserver/data/scripts/quests ausgepackt werden.

Page 24: L2J Quest Builder Ein Programm zur Unterstützung bei L2J Quest Scripts in Python. Version 1.0

Viel Spaß mit vielen neuen Quests in eurem L2J-Server!