Beiträge von Tamschi

    Jetzt bin ich aber mal gespannt, was du gezaubert hast. :grinsenderork:

    So, ist online.


    Im Editor sieht es so aus, als würdest du einen MZ-Pluginbefehl hinzufügen, aber beim Laden wird der so umgeschrieben, dass in der Befehlsliste stattdessen nur der MV-Befehl steht. Daher funktioniert das auch mit Befehle-als-Metadaten-Plugins wie OnTouch.


    Wenn du den Parameter im Plugin auf ON/true setzt, dann updated es beim Spieltest deine Projektdaten (wie bei Pretty JSON oder OnTouch) und du hast nach dem Neuladen den echten kompakten MV-Befehl im Code stehen. Du kannst das Plugin dann auch beim Veröffentlichen deaktivieren oder entfernen.

    Kojote So, exklusive Vorabveröffentlichung: (itch.io) MV in MZ Tools (Link funktioniert irgendwann, wenn ich die Seite eingerichtet habe. Bis dahin Version 1.0.0 weiter unten im Thread.)

    Die Datei sollte in spätestens 30 Minuten da erscheinen, dann anders als die Seite auch mit Help-Text.

    (Ich muss noch kurz in Windows booten, um das zu testen, dann schalte ich es frei. Der MZ-Editor läuft unter Linux ja nicht mehr :fad:)

    FlipelyFlip Kann man das Script von Shaz auf den MZ umschreiben? Du bist doch echt gut im programmieren für MV und MZ. Mir fehlt da leider der Einblick in beiden Engins um das richtig umzuschreiben.

    Ich könnte mal mein MV-Befehle-in-MZ-Plugin fertig machen und hochladen, dann geht das damit.


    Das einzige Problem ist hier, dass man im MZ keine MV-Befehle neu erstellen kann, aber man kann sie aus einem existierenden Projekt reinkopieren.

    Tamschi Vielen Dank für deinen Code! Ich habe ihn aus Neugier in einem neuen Projekt getestet. Tatsächlich wird die Auswahl nun direkt zur Textbox angezeigt, jedoch taucht die Auswahl nach dem Treffen einer Option ein zweites Mal auf, und dieses zweite Mal in der bekannten Maker-Manier ohne die Textbox. Scheinbar wird das direkte Anzeigen der Auswahl durch den Code nun "dazwischengeschaltet" bzw. dadurch verdoppelt? Dennoch ein toller Ansatz, der das Ganze nochmal vereinfachen könnte. Meinetwegen musst du dir aber nun keine weiteren Umstände bereiten, da die Lösung per Labels hervorragend funktioniert.


    Wirklich sehr toll, wie schnell hier immer einige helfende Hände bereitstehen und sogar "mal eben" Codes bereitstellen! Lieben Dank euch :)

    Sehr merkwürdig ("In meinen Tests ging's" ;)).


    Ich müsste das Listing haben, sonst kann ich das glaube ich nicht reproduzieren.

    Sowas wie dieses "<Save Event Locations>", nur als Befehl, der das für das aktuelle Event speichert?


    Du könntest in einer Route das Script $gameVariables.setValue(123, this.x); $gameVariables.setValue(124, this.x); und dann zum Wiederherstellen this.locate($gameVariables.value(123), $gameVariables.value(124)); nutzen. (Natürlich mit entsprechend anderen IDs.)


    Im "normalen" Script-Befehl ist das etwas umständlicher, da man dort den Verweis auf den aktuellen Game_Character nicht ganz so leicht bekommt. $gameMap.event(this.eventId()) statt this sollte dort funktionieren.

    Ist nicht kompliziert, daher:

    Der Knackpunkt ist halt, dass "Text" auch "Auswahlmöglichkeiten zeigen" direkt mitverarbeitet, wenn das folgt, aber dabei keine Flusskontrolle überspringt.

    Ich habe das hier für das Verlassen von "If" implementiert, aber nicht für andere Sachen wie das Verlassen von "Auswahlmöglichkeiten zeigen".


    (Das Plugin verändert unter machen Umständen, wo der Game_Interpreter pausiert während die Dialogbox angezeigt wird.

    Das sollte allerdings keinen Einfluss auf das haben, was dann am Ende angezeigt bzw. ausgeführt wird.)

    An sich müssten ja nur alle möglichen Scripts (und somit auch Common Events) durchsucht werden und entsprechend angepasst.


    Btw: für den MV gibt es das Tool auch.


    Ich denke also schon, dass das funktionieren kann.

    Für MV geht es dann nicht, wenn in Plugin-Befehlen IDs verwendet werden, da die Parameter nicht als solche deklariert werden können.

    Wenn man irgendwo in note-tags IDs hat, dann geht das natürlich auch nicht (in beiden Versionen).


    Das Programm dürfte für MV und MZ identisch sein, die Datenbanken unterscheiden sich in der Hinsicht glaube ich nur bezüglich der MZ-Pluginbefehle.

    Ich gehe davon aus, dass es nur deshalb doppelt im Store ist, da es DLC immer nur für ein Basisspiel geben kann.

    Das ist vielleicht auch interessant, vor allem weil ich hier öfter mal Teamprojekte sehe.

    Pretty JSON

    Formatiert beim Spieltest eure JSON-Dateien menschenlesbar, damit ihr einfacher Git verwenden könnt.


    JSON-Formatierung mit Pretty JSON (Ereignisse) JSON-Formatierung mit Pretty JSON (Karte)
    Ereignisse (CommonEvents.json)
    Kartendaten (Map001.json)

    Funktionsweise

    Das Plugin liest beim Teststart die in den Plugineinstellungen angegebenen JSON-Dateien im Datenordner ein und formatiert alles schön. Falls sich daraus eine Änderung ergibt, dann wird die Datei auf der Festplatte ersetzt (und zwar als atomarer Vorgang, damit das Projekt auch durch plötzliche Stromausfälle oder volle Festplatten nicht kaputt geht. Wobei da RM selbst soweit ich weiß keinen ganz so guten Schutz eingebaut hat). Danach startet das Spiel wie gewohnt.


    Dadurch könnt ihr dann auch parallel an ein und demselben Ereignis arbeiten und die Änderungen relativ einfach per Git oder so zusammenführen, da z.B. Ereignisbefehle dann auf je einer Zeile landen, was git diff deutlich besser versteht.

    Benutzung

    Einfach hinzufügen und einschalten.


    Ich habe eine Standardkonfiguration eingebaut, die sowohl für MV als auch MZ nahezu perfekt sein sollte.

    Sowas wie die Kartendaten sind damit zwar immer noch lange undurchsichtige Listen, aber immerhin so umgebrochen, dass die meisten Editoren gut damit klarkommen sollten.


    Ihr könnt in den Einstellungen aber auch genau anpassen, welche Dateien formatiert und welche Werte einzeilig dargestellt werden, falls euch irgendwas nicht passt oder ein Plugin eine eigene Datei hinzufügt.

    JavaScript-API und so

    gibt es bei diesem Plugin nicht. Außer den langsamer startenden Tests (woran ich nicht einfach viel ändern kann) hat es keine Auswirkungen auf euer Spiel.

    Nach dem Deployment ist das Plugin automatisch komplett inaktiv.

    Wo gibt's das und was kostet es?

    Ich habe das wie üblich hier auf itch.io reingestellt und der Minimalpreis ist… 0€! :P

    Das war eine relativ schnelle Aktion, ich glaube ich hatte das nach zwei Tagen komplett fertig und veröffentlicht. Und reine Entwicklertools und Fixes gibt es bei mir sowieso meistens gratis.


    Ich würde mich aber trotzdem riesig über ein bisschen Trinkgeld oder eine Bewertung auf itch.io freuen, falls euch das hier irgendwann Zeit und Frust spart.

    Das ist wirklich interessant, vielen Dank! :D

    Das könnte man z.B für einen Fähigkeitsbaum in einem RPG nutzen.

    Gute Idee, hatte ich nicht im Sinn aber würde sogar mit dem Kartenraster gut funktionieren =)


    Meine Plugins sind fast alle ziemlich generisch, deshalb ist es immer eine coole Überraschung zu sehen, wofür die dann letztendlich verwendet werden.

    Meistens ist es irgendwas, was ich bei der Planung absolut nicht auf dem Schirm hatte :D

    Ich habe letzte und diese Woche relativ spontan was gebastelt (wobei mal wieder die meiste Zeit nur für das Promomaterial und die Dokumentation draufging :rolleyes:)

    OnTouch

    Pixelgenau klickbare Ereignisse, mit Klickregionen, mit Reichweitenbeschränkung, mit Farb- und Positionswähler, mit anpassbarem Bild für's Sampling, individuell per Links- und/oder Rechtsklick, als zusätzliche Einstiegspunkte


    OnTouch: Pixel-klick plugin für MV und MZ
    (Das ist ein GIF, spielt hier wohl nicht automatisch.)
    OnTouch: Pixel-klick plugin für MV und MZ


    Funktionsweise

    Ist recht unspektakulär: Wenn man auf die Karte klickt (rechts oder links), dann schaut das Plugin, ob da unter dem Zeiger ein entsprechend klickbares Ereignis ist. Falls ja, dann wird die normale Kartenklickfunktion unterdrückt.


    Wenn dann gerade auch noch kein modales Ereignis-Script läuft oder starten würde, das Spiel also nicht gerade mitten in einer Szene steckt, dann startet dieses Ereignis auch noch sofort modal beginnend am passenden Einstiegspunkt (!OnTouch:-Pluginbefehl). Wobei "startet" da etwas relativ ist, die Befehle werden dann zur normalen Zeit interpretiert. Ich muss das nur direkt in den Zustand "läuft" bringen, damit ich sicher an die passende Stelle springen kann (ohne, dass der Code unnötig kompliziert wird ;)).

    Benutzung

    Wenn ihr einfach nur ein Ereignis klickbar machen wollt, dann braucht ihr nur den !OnTouch:-Befehl irgendwo direkt auf der aktiven Seite. Dadurch fangen dann sofort alle sichtbaren Pixel Linksklicks ab. Der visuelle Stapel wird dabei beachtet, also sind große/überlappende Sprites auch kein Problem bzgl. welches Ereignis dann genau startet. (Standardmäßig sind Ereignisse aber klickdurchlässig, auch wenn sie relativ gesehen im Vordergrund sind. Packt da einfach !OnTouch: ganz ans Ende, falls ein Ereignis nur entsprechende Klicks blockieren soll.)


    Ihr könnt das auch noch mit diversen Bedingungen anpassen, also wo genau geklickt werden kann (mit Farb- und Transparenzbedingungen), wo die Spielfigur stehen muss (funktioniert auch alles mit Pixel-Bewegung/ohne Kachelbeschränkung), welche Maustaste(n) benutzt werden dürfen, und so weiter. Ihr könnt auch einzelne oder alle Farbkanäle, die Alphakanal und/oder Sprite-prozentuale Position des angeklickten Pixels in Variablen abspeichern.


    Falls das nicht ausreicht, z.B. weil ihr mehrere Regionen definieren wollt oder die interaktive Fläche zu klein oder zu groß ist, dann könnt ihr ganz einfach per !OnTouchColorImage dateiname eine andere Bilddatei dafür nutzen. Der Bildausschnitt bleibt gleich, kopiert also einfach das Spritesheet im tilesets/- oder characters/-Ordner und ändert das entsprechend ab. (In MV müsste ihr die Pluginbefehle wie gehabt eintippen, in MZ gibt es stattdessen für alles Auswahldialoge).


    Es gibt auch noch ein paar zusätzliche Optionen bei !OnTouch:, sodass die Drehung der Spielfigur und das Sperren (Drehen + Anhalten) des Ereignisses vermieden werden können.


    Der dritte verfügbare Befehl RevertOnTouchTurn dreht die Spielfigur zurück in die Ausgangsrichtung, so wie das die meisten Ereignisse nach der Interaktion auch tun.

    Stabile JavaScript-API und Entwicklerfunktionen

    Gibt es auch, würde an dieser Stelle aber den Rahmen sprengen. Schaut auf der Plugin-Seite nach, da ist das alles ausführlich aufgelistet und erklärt.

    Wo gibt's das und was kostet es?

    Ich habe das wie üblich hier auf itch.io reingestellt. Den Preis schaut ihr auch am besten da nach, falls ich den mal ändere. Als Startpreis habe ich $10 ausgewählt.

    Das ist etwas günstiger als die meisten anderen Klick-Plugins (außer TDDP - MouseSystemEx, da hat wohl Degica bezahlt um es frei verfügbar zu machen), hat dafür aber keine Hover-Cursor eingebaut.


    Ihr müsstet dieses Plugin hier aber ohne Probleme mit solchen Mauszeigerplugins nutzen können, i.d.R. selbst wenn diese auch Klick-Plugins sind. Falls MouseSystemEx in MZ nicht geht, dann sollte Mimosa Mouse Cursor ziemlich gut passen. Ich habe das aber beides nicht ausprobiert.

    So, da bin ich wieder. Die letzte Zeit war milde gesagt etwas drunter und drüber, deshalb hatte ich zuletzt nicht viel mit RPG Maker gemacht.
    Jetzt habe ich aber endlich wieder einen Satz Promomaterial fertig, deshalb geht's jetzt weiter ;) (und hoffentlich gibt es bald auch die ordentliche Vorstellung meiner Plugins, das habe ich nicht vergessen).


    Frisch veröffentlicht: Battler Reaction Flipbooks (für MV und MZ)

    Ich habe immer noch einige fehlende Einträge auf der Core-Seite, aber bin jetzt so langsam bei den großen/optionaleren Teilen angekommen.
    Die zusammengeklebten Screenshots aund der Trailer sehen diesmal auch etwas hochwertiger aus. (Ich nutze für letzteres jetzt Kdenlive.)


    Edit: Ich habe zu viel English gesprochen in letzter Zeit, jetzt vermische ich die Sprachen manchmal :D


    [...]


    Mal ne allgemeine Frage, da wir derzeitig die Schlösserknack-Tutorial Sektion überarbeiten:

    Spielt ihr RPG Maker Spiele mit Maus, Pfeiltasten oder WASD?

    Tatsächlich fast immer mit Touchscreen (wodurch ich das Menü nur etwas langsamer öffnen kann, aber sonst ist das quasi wie mit Maus).

    […]

    OK, habs mal geladen, ich kann mir jetzt aus einem Projekt alles auslesen. Ist dies jetzt gedacht, dass die Texte nun im Spiel überschrieben werden wenn ich speichere oder wie funktioniert das?

    Ich habe das selbst nicht benutzt, aber soweit ich weiß speicherst du erst mal eine Projektdatei, die auch mehr als zwei Sprachen enthalten kann.


    Der eigentliche Zweck ist, damit Fanübersetzungen zu machen, man kann dann wohl irgendwie am Ende die Projektdatei auf das Projekt anwenden und dadurch alle übersetzten Strings überschreiben. Du müsstest mal ausprobieren, ob die alte Projektdatei auch nach einem Bugfix noch passt.


    Mehrere Sprachen auf einmal kann das nicht direkt im Spiel ausliefern, aber falls die Projektdatei einfach genug ist, dann müsstest du die relativ leicht auch mit einem Plugin laden können, das die command___-Methoden im Game_Interpreter passend erweitert. Das ist bei Textboxen ein kleines bisschen nerviger, da dort die Zeilen in einzelnen Commands sind (die aber alle auf einmal ausgelesen werden), aber an sich nicht wirklich komplex. Items und so werden anders gehandhabt, aber ich glaube du kannst irgendwo getter überschreiben, um das global zu handhaben (oder die geladenen Daten direkt patchen und bei Änderung schnell neu laden).

    Hier ist ja ganz schön tote Hose im Sommerloch~

    Schreibt trotzdem mal, was euch gerade umtreibt und woran ihr arbeitet?

    Ich war die letzte Woche ziemlich beschäftigt mit Erledigungen und dem Fertigprogrammieren meines neuesten Plugins (📺).

    Ca. die Hälfte der Logik steckt da in einem neuen "Core" für Animations-Timeline-Ereignisse allgemein (und den gibt's für lau :)), ihr könnt also auch relativ bequem andere Sachen als Soundeffekte damit machen, wenn ein bisschen JS für euch okay ist. Ich glaube einen neuen Event-Schlüssel mit einfachem Parameter bekommt man in etwa 20 Zeilen hin, falls man's nur selbst braucht.

    Ich habe einen neuen Tabularasa Rechtschreib-und Grammatikdurchgang gestartet und schlage die Hände vor dem Kopf zusammen, was da IMMER NOCH für Fehler drin sind, z.B. Willkommen und willkomen zurück sind offensichtlich zwei Wörter unterschiedlicher Wortkategorien und sind erst seit dem neusten Erkenntnisstand das gleiche... Nein, Spaß beiseite, so viele Sachen sind so offensichtlich aber nicht offensichtlich genug für 300000 Spielvorgänge vorher...

    Es wäre echt nett, sowas wie die Rechtschreibprüfung in (Libre)Office auf das ganze Spiel anwenden zu können. Technisch ist das machbar, aber die Benutzeroberfläche dafür zu programmieren wäre extrem nervig. Wäre cool, wenn mal jemand so ein Rechtschreibkorrekturfrontend als Komponente schreiben würde, wo man dann nur noch die Daten reinschieben muss.

    Du könntest dort einen debugger;- oder console.trace();-Befehl einbauen, dann siehst du den stack trace wenn du vorher die F12-Tools aufrufst.

    Wobei ich nicht weiß, ob der brauchbar sein wird, da du VisuStella nutzt. Wahrscheinlich sind die Funktionen nicht lesbar benannt.


    Die Menüpunkte werden in der Regel von den abgeleiteten Klassen erstellt, welche zumindest in RM relativ dicht unter dieser stehen sollten.


    (Ich sehe irgendwie kein Bild. Liegt das an mir?)

    Tamschi du kannst ja sonst die Battler von zum Beispiel Holder nutzen, da diese frei zur Verfügung stehen.

    Die Battler von Holder sind leider gerade im falschen Format. Nicht nur wegen Spritesheet vs. einzelne Cels, sondern weil die Sprites selbst auf relativ einfache Animationssysteme ausgelegt sind (immer 4 Frames pro Aktion) und deshalb meine Features nicht gut darstellen können.


    So etwas wie 2D Zombie Sprite - Animated funktioniert vielleicht ganz gut als extremes Beispiel, wobei ich definitiv auch ein einfacheres und weniger "3D" haben sollte :hmm:

    Mit den aktuell öffentlichen Plugins geht das noch nicht, aber Battler Action Flipbooks kann so einen Zombie sauber ohne Sprünge in der Animation angreifen lassen.


    (Ich hab' Pläne, Spritesheets und lange Sequenzen von durchnummerierten Frames etwas praktischer nutzbar zu machen. Es dauert aber noch etwas bis das kommt und Einzelbilder mit variabler Leinwandgröße werden wahrscheinlich effizienter bleiben.)