PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RMEventFactory - Die automatische Eventfabrik!



Cherry
20.02.2010, 13:09
RMEventFactory ist ein Batch-Tool, um Events für den RPG Maker 2000/2003 zu erstellen. Man kann Events erstellen indem eine Vorlage vervielfältigt und jedes Mal Werte ersetzt werden. Die Werte können auch aus Tabellen in CSV-Dateien gelesen werden. RMEventFactory richtet sich vornehmlich an fortgeschrittene Benutzer.

RMEventFactory sucht die Vorlage nach bestimmten Werten ab und ersetzt sie durch das Ergebnis einer Formel. Formeln und Befehle können auch in Strings, z.B. Messages (”Show Message”), einbettet werden.

Auf diese Art kann mann zum Beispiel sehr einfach eine große Menge an Schatztruhen-Events erstellen (mit verschiedenen Switches und den richtigen Items und Texten) oder eine Liste von “Change Variable”-Befehlen um die Werte von Gegners für ein eigenes KS zusetzen, wobei sie aus einer CSV-Datei gelesen werden.

Man kann außerdem Eventdaten in eine Datei speichern und später laden (so kann man auch Events über das Internet an andere Leute schicken), Events in Text umwandeln (→ EasyEventExporter) oder Events in einen anderen Typ konvertieren – zum Beispiel Map Events zu Battle Events (→ Battle Event Converter).

Ein detailliertes englisches Handbuch sowie einige Beispiele sind beigelegt.

http://cherrytree.at/cms/wp-content/uploads/eventfactory_screen.png

In dem Beispiel, was im Screen gerade geöffnet ist, wird mit der Option "Produce event script" eine Fork vervielfältigt und die Werte dahingehend verändert, dass am Ende ein Event rauskommt, das den Sinus einer Variable ausrechnen kann (hier mal 100.000, da es ja sonst keine Kommastellen gibt).

Download: http://cherrytree.at/download/?did=11

Update für offiziellen RM2k3: Diese Version funktioniert zwar prinzipiell auch mit v1.10+ vom RM2k3, kann aber mit den neuen Features nichts anfangen und stellt sich in der Vorschau nicht richtig dar. (Verarbeitet werden sie trotzdem.) Es gibt aber auch das Problem, dass Eventskripte nicht eingefügt werden können, weil sie als Text gelesen werden (ganze Events oder Eventseiten sind OK). Das kann behoben werden, indem man die eventfactory.dll mit dieser Version (https://cherryshare.at/f/8d7Bbn/eventfactory.dll) ersetzt!

elvissteinjr
20.02.2010, 22:07
Gutes Tool, erleichtert doch so manches, wenn man sich erstmal damit auseinandergesetzt hat.


Ich habe eine Frage: Wäre es irgendwie möglich eine Kommandozeilen-Version zu machen?
Ich wollte nämlich für mein Item Menü ein Programm schreiben, dass mir Text richtig positioniert und um Makerstil auf ein Pic schreibt. Ich fänds jetzt cool wenn ich auch den Eventcode, der ausgeführt wird wenn man das Item benutzt, automatisch generieren lassen kann.

Ich habe leider keine Möglichkeit Binäre Daten aus der Zwischenbeilage zu lesen oder gar zu schreiben. Darum die Bitte.

Cherry
21.02.2010, 00:10
Also ich versteh nicht ganz... was hast du da genau vor?

elvissteinjr
21.02.2010, 01:59
Im meinem Spiel hab ich ein eigenes Menü. Dieses ist im Stil vom standard Menü, weshalb es die original Schriftart benutzt.
Momentan nehm ich eine Textbox mit einfarbigen Hintergrund, schreibe die Item Name/Beschreibung/Wirkung hin und mach einen Screenshot davon.

Nun dachte ich mir, dass ich mir ein Programm schreibe dass mir die Arbeit abnimmt und die Buchstaben richtig und im RPG Maker Stil anordnet(sprich: Farbverlauf, Schatten und richtiger Abstand).
[...]


Und nun kam mir die Idee den Event Code, der benötigt wird, auch einfach generieren zu lassen, da diese sich nur geringfügig unterscheiden.
Und jetzt würde eine Kommandozeilen-Version von der RMEF ins Spiel kommen:
Exportierter Event Code laden(Vorlage), angegebene Werte ersetzen, in die Zwischenbeilage kopieren, fertig.
Das ganze wäre dann einfach mit Programmstart Parametern zu kontrollieren.
Oder auch: GUI weg lassen.

Und das alles nur weil ich keinen Event Code auslesen/schreiben kann, da ich nur Text von der Zwischenbeilage lesen/schreiben kann.

Cherry
21.02.2010, 11:44
Also dein Text-Schreib-Problem ist bereits gelöst: MyWindow (http://rpgcrisis.net/forums/index.php?automodule=downloads&req=idx&cmd=viewdetail&f_id=102)

Und das andere verstehe ich noch immer nicht. Wozu ohne GUI?

mhm
21.02.2010, 14:05
Whoa, das klingt ja echt unglaublich cool!
Ich werds direkt mal auf Herz und Nieren prüfen, aber es sieht so aus als könnte ich das für viele Dinge wunderbar gebrauchen. Danke, Cherry! ^^

elvissteinjr
21.02.2010, 16:33
Also dein Text-Schreib-Problem ist bereits gelöst: MyWindow (http://rpgcrisis.net/forums/index.php?automodule=downloads&req=idx&cmd=viewdetail&f_id=102)
Wozu ohne GUI?
Problem war das ja nicht. Hätte ich mir selbst gemacht.




Wozu ohne GUI?
Ich mache z.B. ein Item: Es soll jetzt 5HP heilen.
Da ich keine Möglichkeit habe Eventcode zu verarbeiten, lass ich jetzt RMEF starten, das mir den Code schreibt in dem es eine Vorlage modifiziert(sowie 8 andere Zeilen die sich immer geringfügig ändern), ohne dass ich irgendwas machen muss. Klar, es verfehlt ein wenig den Sinn von RMEF, aber mit einer Version die sich via Parametern steuern lässt kann man viel anfangen.

Cherry
21.02.2010, 17:08
Ich mache z.B. ein Item: Es soll jetzt 5HP heilen.
Da ich keine Möglichkeit habe Eventcode zu verarbeiten, lass ich jetzt RMEF starten, das mir den Code schreibt in dem es eine Vorlage modifiziert(sowie 8 andere Zeilen die sich immer geringfügig ändern), ohne dass ich irgendwas machen muss. Klar, es verfehlt ein wenig den Sinn von RMEF, aber mit einer Version die sich via Parametern steuern lässt kann man viel anfangen.

Ich kann dir leicht sagen, warum das nicht geht: das alles in Parameter zu packen (und die dann richtig auszulesen), ist eine Heidenarbeit, die auch recht sinnlos ist, da die Länge der Commandline begrenzt ist und da aber einiges zusammenkommt.

Das was du sagst, ist doch jetzt kein Problem. Du speicherst deine Einstellungen einfach und lädst sie wieder, wenn du sie brauchst.

Bist du sicher, dass du genau die verschiedenen Funktionen verstanden hast?

Sag mal genau (wirklich genau!), was du willst, also was in dem Event drin sein soll, wo die Daten herkommen, was jedesmal anders ist, etc., dann erstelle ich dir eine passende .efs-Datei (Settings), die du dann nur laden brauchst.

mfG Cherry

elvissteinjr
21.02.2010, 18:10
Sag mal genau (wirklich genau!), was du willst, also was in dem Event drin sein soll, wo die Daten herkommen, was jedesmal anders ist, etc., dann erstelle ich dir eine passende .efs-Datei (Settings), die du dann nur laden brauchst.
efs-Datei, gute Idee. Ich hab mich damit jetzt mal ein bisschen näher befasst und sehe, dass die Funktionalität fast ausreicht:
Ich kann beim Count Index nicht "from 1 to 1" angeben. Ich bekomm also nie eine einzelne Zeile bearbeitet.

Ich muss dich dann mal wieder hoch loben, dass du wirklich an fast jede Kleinigkeit gedacht hast. Ich hab noch gar nicht so weit gedacht, dass mittels Settings Dateien auch Code gespeichert wird und ich hab nicht weit genug die Hilfe gelesen, so dass ich von CSV Dateien auch noch nicht viel wusste. Wenn das oben beschriebene Problem noch ausgemerzt ist das Programm perfekt. 2 Buttons zu drücken ist dann wirklich nicht viel für mich um den Code zu bekommen.:D

Außerdem bekomm ich "Fehler beim Öffnen der Datei!" wenn ich den Help Button benutze. Über die Verknüpfung funktioniert die Hilfe.

Cherry
21.02.2010, 20:19
Beide Probleme (1 to 1 und Help Button) hab ich jetzt behoben. Außerdem wurde irrtümlicherweise jedem Move-Event-Befehl noch ein "Move Up" drangehängt.

Einfach nochmal runterladen.

elvissteinjr
21.02.2010, 21:18
Gut, klappt jetzt. Danke.

Daen vom Clan
25.02.2010, 12:11
Alter Schwede, echt nicht schlecht! :)

niR-kun
25.02.2010, 17:09
Auf dem Weg zum freien, legalen und (hoffentlich) kostenlosen RPG-Maker? :D

Da Tool ist auch jeden Fall nicht schlecht.

Cherry
27.02.2010, 23:54
Die neueste Version ist nun Wine-kompatibel, außerdem sind einige Fehler behoben: http://cherrytree.at/download/?did=11

Alan
10.03.2010, 22:20
Cherry, das ist absolut AWESOME!!! Das habe ich damals mit einem "Event Exporter" gemeint. Absolut fantastisch! Vielen vielen Dank dafür!


Gruß,



Alan


PS: Allen voran Sinus und Cosinus wurden sehr elegant gelöst, gefällt mir sehr gut!

Cherry
10.03.2010, 22:34
Bitte gerne ;)

Mit deinem ersten Satz meintest du die *.evd-Exportfunktion? Ist ja eigentlich ein Nebenfeature.

Alan
11.03.2010, 11:18
@Cherry: nein nicht ganz. Sondern eher dass man RM-Code in einem Text Editor schreiben kann, der dann quasi "compiliert" wird, in die Zwischenablage gespeichert und dann per STRG+V in den Maker eingefügt wird. Aber da die "Suchen & Ersetzen"-Funktion in ähnlicher Form auch bei der RMEventFactory eingebaut ist, wird die Texteingabe fast überflüssig.
Wenn du trotzdem Interesse hast, kannst du dich ja einmal an einem solchen Compiler versuchen ;) Also: "nimm .txt-Datei als Input, compiliere sie zu einem Maker-Event und speichere es in der Zwischenablage" - natürlich braucht die .txt eine gewisse Syntax die der Anwender einhalten muss, versteht sich von selbst ^^ Aber der Export-Vorgang in den RM scheint für dich ja kein Problem darzustellen, von daher...
Die Motivation für ein solches Unterfangen ist einfach die, dass ein erfahrener Nutzer beim Coden im RM via Maus einfach langsamer ist als würde er die Befehle wie in "echten" Programmiersprachen einfach in die Tastatur eingeben - also eine rein durch Komfort/Bediengeschwindigkeit motivierte Funktion.

Gruß,


Alan

MagicMaker
11.03.2010, 15:10
Für Texteingabe und dann convertieren gibt es wirklich ein Programm, aber besonders
zu empfehlen ist das nicht und den unnötigen Aufwand, alles als Text zu schreiben und
dann noch in einer unschönen Form bei der man jegliche Übersicht darüber verlieren kann
was man eigentlich macht, halte ich nicht für sehr nett. Okay es gibt eine Eventvorschau
direkt daneben, wie der Code umgesetzt aussieht aber naja...

Ich möchte ausserdem anzweifeln, dass zum Zweck zum Begutachten der Vorschau jeder
die Originalbefehle auf JP auswendig kennt, auch wenn man sie auf der linken Seite auf
englisch eintippt.

TKoolBridge (http://suppy1632.hp.infoseek.co.jp/tool/tb.html)

Alan
11.03.2010, 15:28
@Magic Maker: ja mit deinen Punkten magst du Recht haben... dass es so ein Tool bereits gibt, ist mir allerdings neu (gibt's da eine englische Übersetzung davon?). Gut, man scheint hier wirklich eine etwas eigenwillige Syntax gewählt zu haben. Aber dadurch, dass man Vars mit Nummer anspricht (zumindest lese ich den Beispiel-Screen mal so) und nicht mit Name wie sonst üblich wird es tatsächlich sehr schnell unübersichtlich. Und Code Completition, Syntax Highlighting etc. wird man auch vermutlich nicht haben - bin ein wenig verwöhnt diesbezüglich von diversen IDEs fürchte ich ^^'

Aber trotzdem gut zu wissen dass es sowas gibt - vielleicht probiere ich es mal aus! Nichts destoweniger halte ich die Event Factory für einen ausgezeichneten Schritt in die richtige Richtung!


Gruß,


Alan

Cherry
11.03.2010, 16:40
Diese Clipboard-Interface-Library, die ich beim EasyEventExporter, Battle Event Converter und jetzt eben RMEventFactory verwende, hab ich ja ursprünglich geschrieben für ein Teamprojekt mit Makenshi, den Advanced Event Editor, in dem man in einer C++-ähnlichen Sprache namens E++ Events schreiben können sollte, auch mit temporären Variablen und so, was dann aus einem Pool von Variablen bezogen worden wäre, und mit Formeln wie "v[11] = v[2] * (v[3] + v[4])", etc.

Aber leider fehlte Makenshi - und auch mir - die Zeit. Eine IDE hätte schon in Grundzügen existiert, am Interpreter und dem Databasereader, der dafür noch notwenig gewesen wäre, ist es gescheitert.

Alan
11.03.2010, 17:28
@Cherry: sehr sehr schade. Sowas wäre echt genial... keine Chance, dass die Arbeit am Projekt wieder aufgenommen wird?

Cherry
11.03.2010, 19:00
0,01%, sag ich mal.

elvissteinjr
04.05.2010, 23:14
So, ich melde mich auch mal wieder.
Mein Generator funktioniert...fast. Als ich die Settings Datei in RMEF machen wollte musste ich feststellen dass dort nicht genug Felder sind. Ich muss 16 Variablen mit generierten Werten aus einer Datei füllen, jedoch gibts nur 8 Reihen.
Kannst du da nicht einen Container mit Scrollbar oder Ähnliches reinbasteln?

Cherry
05.05.2010, 07:04
verwende den Trick, der auch bei enemies.efs verwendet wurde (Nachteil: Kommentare bleiben im Ergebnis drin):

Zwischen die einzelnen Zeilen Makercode machst du Kommentare mit %%blub = csv(............) und lädst das richtige, verwendest dann überall die selbe Zahl und lässt sie mit "%[blub]%" ersetzen.

elvissteinjr
05.05.2010, 15:36
Gut, scheint zu funktionieren. Aber kannst du nicht eine Funktion einbauen die die komplette Codezeile in der Vorlage entfernen kann? Nicht nur für die Comments, auch wen Werte auf 0 bleiben hätte ich es gern übersichtlicher. Lässt sich aber im Grunde alles manuell machen...


Mal wieder was zum Ultimate:
Das mit der Toolsliste ist ja schon ganz nett, aber knnst du auch machen dass man einen Button auf ein Tab in der Database einbetten kann? So dass z.B. mein Generator auf dem Item Tab direkt startbar ist.


Edit:
Es scheint zu funktionieren. Wie bekomme ich hin dass das Ganze in einer einzigen Fork bleibt die auch mit einem Wert gefüllt wird und über dieser auch ein Comment ist das geändert wird?

Cherry
05.05.2010, 19:56
@Ultimate: Schwierig. Ich könnte höchstens die Toolliste einbetten.
@dein Edit: Hä? Ich versteh nicht was du meinst.

elvissteinjr
05.05.2010, 21:12
Ich habe jetzt diesen Code für RMEF(ohne Anpassung an deine Methode):


- SCRIPT -
<> Comment: //Item[Name]
<> Fork Condition: If Variable [115] == 123456 then ...
. <> Change Variable: [166] = 111111
. <> Change Variable: [167] = 222222
. <> Change Variable: [168] = 333333
. <> Change Variable: [169] = 444444
. <> Change Variable: [170] = 555555
. <> Change Variable: [171] = 666666
. <> Change Variable: [172] = 777777
. <> Change Variable: [172] = 888888
. <> Change Variable: [173] = 999999
. <> Change Variable: [174] = 199999
. <> Change Variable: [175] = 299999
. <> Change Variable: [176] = 399999
. <> Change Variable: [177] = 499999
. <> Change Variable: [178] = 599999
. <> Change Variable: [179] = 699999
. <>
: End of fork

Wenn ich deine Methode benutze kann ich anscheinend keine Fork außen rum machen, zumindest nicht automatisiert.

In der Item Liste im CE sieht dann so aus(noch nicht für RMEF):

- SCRIPT -
<> Comment: //
: //Item [Name]
: //
<> Fork Condition: If Item #2 owning then ...
<> Change Variable: [115] = 2
<> Change Variable: [117] = Amount of item #2 owned
<> Change Variable: [132] = 1
<> Call Event: Common Event #12
<> Fork Condition: If Switch [44] == ON then ...
<> Jump To Label: 1
<>
: End of fork
<>
: End of fork
Für diesen Codeblock reicht die Anzahl der Felder natürlich aus, nur beim oberen wollte ich das ganze mit möglichst wenig manuellem Eingriff machen. Schließlich soll mein Tool ein Generator sein.

Cherry
05.05.2010, 23:09
Ich steh irgendwie auf der Leitung... :(

elvissteinjr
06.05.2010, 14:57
Vergiss es. Ich stand auf der Leitung. Hab noch einmal durchgeschaut.
Jetzt stehe ich ziemlich dämlich da. xD Hauptsache es funktioniert irgendwie.


Achja, es wäre zu genial wenn du eine DLL für die Verarbeitung von Makercode veröffentlichen könntest.:D
Oder gibt es wenigstens eine DLL die mir binäre Zugriff aufs Clipboard gibt, so dass ich versuchen kann den Code vom Programm selber generieren zu lassen?

Cherry
06.05.2010, 18:26
Diese DLL hab ich bereits gemacht... bloß bin ich beim Schreiben der äußert umfangreichen Dokumentation bei 10% steckengeblieben und hatte keine Lust mehr. Und keine Zeit.

elvissteinjr
06.05.2010, 19:19
Und die DLL selbst ist fertig und funktioniert? Das finde ich dann eigentlich sehr schade. Aber den Sourcecode oder eine minimale Dokumentation kann man wohl nicht erwarten, oder? Dokumentation könnte ich ja eventuell versuchen weiter zu machen. Wäre halt einfach echt schade darum.

Cherry
06.05.2010, 20:39
Naja, ich hatte schon vor, irgendwann das ganze mal zu veröffentlichen.

Es war damals für ein Gemeinschaftsprojekt mit Makenshi gedacht, dass aber aufgrund von beiderseitigem Zeitmangel stagniert ist. Auf Basis dieses Codes sind diese ganzen Zwischenablagen-Event-Programme entstanden (EEE, BEC, RMEF).

Hier die angefangene Dokumentation (http://share.cherrytree.at/showfile-1171/referenz.docx), damit du dir ein Bild machen kannst.

Die ganzen Eventbefehle fehlen bis auf Show Message, Message Options und Show Choice glaub ich.

elvissteinjr
06.05.2010, 23:47
Also die Dokumentation ist wirklich sehr ausführlich und verständlich geschrieben.
Also ich persönlich hätte theoretisch keinerlei Probleme die DLL zu verwenden. Die Basic Anlehnung passt auch sehr gut, denn Basic kann ich eh schon.

Verwendung der Event Commands vollenden und alle wären glücklich. Naja wenn's nicht so viele wären...

Cherry
02.08.2010, 14:31
Neue Version: 1.04

Bug behoben: Die Moveeventbefehle "Change Graphic" und "Play SE" verursachten Probleme.

http://cherrytree.at/download/?did=11

Cherry
14.03.2021, 13:33
Update für offiziellen RM2k3: Diese Version funktioniert zwar prinzipiell auch mit v1.10+ vom RM2k3, kann aber mit den neuen Features nichts anfangen und stellt sich in der Vorschau nicht richtig dar. (Verarbeitet werden sie trotzdem.) Es gibt aber auch das Problem, dass Eventskripte nicht eingefügt werden können, weil sie als Text gelesen werden (ganze Events oder Eventseiten sind OK). Das kann behoben werden, indem man die eventfactory.dll mit dieser Version ersetzt: https://cherryshare.at/f/8d7Bbn/eventfactory.dll