Hallo zusammen,
eigentlich besitze ich den RPG Maker MZ erst seit wenigen Wochen. Fast 3 um genau zu sein. Ich wollte mich austesten und schauen wohin mich die Reise treibt aber als ich mich mit den Plugins befasst habe hat es mich dann doch erstmal aufgehalten würde ich sagen.
Weshalb ich euch heute mein erstes Plugin vorstelle. Ich werde es noch nicht zum Download zur Verfügung stellen sondern erstmal eure Meinung anhören und euch nach ein paar Verbesserungsvorschlägen fragen. Den Download gibt es erst, wenn ich den Code bereinigt habe denn der sieht aus als hätte ich auf meiner Tastatur geschlafen.
Hier erstmal ein kleines Demo Video:
Ich bin mir nicht sicher, aber ich denke es gibt mehr Plugins dieser Art. Darum meine Frage an euch: Welche Funktionen würdet ihr euch wünschen?
Bereits enthalten:
Plugin Parameter:
- Attribute erstellen (Name, Beschreibung, MaxPunkte, VariableID)
Da die aktuelle Punktzahl in der RPG Maker MZ Variable gespeichert wird hat man dadurch sehr viele Möglichkeiten die Attribute zu verwenden.
- Startpunkte
- Punkte pro Levelaufstieg
- Sounds
- Benachrichtigungen für erfolgreiches oder fehlgeschlagenes verteilen der Punkte.
Plugin Befehle:
- Attributpunkte verteilen
Ich habe es so gemacht, dass der Spieler nicht selber die Punkte verteilt sondern den dafür zuständigen NPC aufsuchen muss und die verfügbaren Punkte dort ausgibt um sich etwas beibringen zu lassen. Vielleicht füge ich noch ein optionales eigenständiges hinzufügen von Punkten hinzu.
Menü:
Es gibt einen Menüpunkt um sich die Attribute anzeigen zu lassen.
Hier die Parameter aus meiner .js
* @plugindesc CrownRPGAttributes - Ein umfassendes Attributpunkt-Management-Plugin für den RPG Maker MZ.
* @author CrownToFish
*
* @help
* Das CrownRPGAttribute System ermöglicht es Spielern, Attributpunkte zu
* verwalten und zu verteilen.
* Spieler erhalten bei Spielbeginn und bei jedem Levelaufstieg
* Attributpunkte.
*
* Außerdem bietet es eine breite Palette an weiteren Funktionen die nützlich
* sind und es wird noch mehr dazu kommen.
*
* Plugin-Befehle:
* DistributePoints - Verteilt angegebene Punkte auf ein Attribut. Zum
* Beispiel können so festgelegte NPCs dem Spieler etwas beibringen sofern
* er genug verfügbare Punkte besitzt.
*
* Attribut-Struktur:
* Du kannst sämtliche Parameter selber festlegen. Darunter eine eigene
* Variable setzen um die aktuellen Punkte des jeweiligen Attributs zu
* speichern und überall abzurufen und zu nutzen. Zum Beispiel kannst du
* Dialogen so mehr Tiefe geben und die Handlung beeinflussen.
*
* ACHTUNG: Das Plugin bietet derzeit keine Funktion Spielerstats zu
* beeinflussen. Es wird aber als optionale Funktion nachgereicht.
*
* @param Attributes
* @type struct<Attribute>[]
* @desc Passe die Attribute an.
*
* @param StartPoints
* @text Startpunkte
* @type number
* @desc Die verfügbaren Attributpunkte bei einem neuen Spielstart.
* @default 0
*
* @param MaxPoints
* @text Maximale Punkte
* @type number
* @desc Die maximale Anzahl an Punkten, die ein Spieler im Spielverlauf erhalten kann.
* @default 50
*
* @param PointsPerLevel
* @text Punkte pro Levelaufstieg
* @type number
* @desc Die Anzahl der Punkte, die ein Spieler pro Levelaufstieg erhält.
* @default 1
*
* @command DistributePoints
* @text Punkte verteilen
* @desc Erstelle einen PC und lass ihn dem Spielcharakter etwas beibringen.
*
* @arg AttributeName
* @text Attributname
* @desc Der Name des Attributs, auf das die Punkte verteilt werden sollen.
* @type text
*
* @arg Points
* @text Punkte
* @desc Anzahl der Punkte, die auf das Attribut verteilt werden sollen.
* @type number
* @min 1
*
* @param SuccessSound
* @text Erfolgs-Sound
* @type file
* @dir audio/se/
* @desc Der Sound, der abgespielt wird, wenn ein Punkt erfolgreich verteilt wird.
*
* @param FailureSound
* @text Fehlschlag-Sound
* @type file
* @dir audio/se/
* @desc Der Sound, der abgespielt wird, wenn ein Punkt nicht verteilt werden kann.
*
* @param SuccessMessage
* @text Erfolgsmeldung
* @desc Die Meldung, die angezeigt wird, wenn Punkte erfolgreich verteilt werden. Verwende {attribute}, {points} und {totalPoints} um weitere Informationen im Text anzuzeigen.
* @type text
* @default {attribute} wurde um {points} erhöht. Du hast jetzt {totalPoints} Punkte.
*
* @param FailureMessage
* @text Fehlermeldung
* @desc Die Meldung, die angezeigt wird, wenn die Verteilung eines Punktes fehlschlägt.
* @default Punktverteilung auf {attribute} fehlgeschlagen!
*
*/
/*~struct~NPC:
* @param Name
* @desc Der Name des NPCs.
* @type text
*
* @param Ort
* @desc Der Ort, an dem der NPC gefunden werden kann.
* @type text
*
* @param Attribut
* @desc Das Attribut, das durch den NPC beeinflusst wird.
* @type text
*
* @param Beschreibung
* @desc Eine kurze Beschreibung des NPCs.
* @type note
*
* @param BildEntdeckt
* @desc Das Bild des NPCs, wenn er entdeckt wurde.
* @type file
* @dir img/pictures/
*
* @param BildVerdeckt
* @desc Das Bild des NPCs, wenn er noch nicht entdeckt wurde.
* @type file
* @dir img/pictures/
*/
/*~struct~Attribute:
* @param Name
* @desc Der Name des Attributs.
* @type string
*
* @param Description
* @desc Die Beschreibung des Attributs.
* @type string
*
* @param MaxPoints
* @desc Die maximal verteilbaren Punkte für dieses Attribut.
* @type number
*
* @param VariableId
* @desc Die ID der RPG Maker Variable, in der der aktuelle Wert des Attributs gespeichert wird.
* @type variable
*/
Alles anzeigen
Ich denke da dürften keine Fragen mehr offen sein.
Geplante Funktion:
Das Menü besteht aktuell aus 2 Fenstern. Im rechten Fenster bin ich aktuell dabei eine Funktion zu implementieren um alle NPCs anzeigen zu lassen bei denen man was lernen kann. Dazu gehört der Ort, die Beschreibung, ein Bild und das jeweilige Attribut. Über noch nicht entdeckte NPCs soll man da noch wenig Informationen haben. Das soll den Spieler das entdecken schmackhafter machen. Auch, dass man dadurch, dass man nicht sofort die benötigten Attribute für eine verzweigte Handlung sehen kann die man benötigt um etwas zu verändern wird der Spieler auch im Hinterkopf behalten. Das ist natürlich optional. Je nach dem wie man die Attribute Variable verwendet.
Und jetzt seid ihr gefragt. Haut raus eure Ideen.