Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : XP - Eigenes Message System [Ruby]



MagicMagor
22.02.2005, 15:24
Vorwort
Wie vielleicht bekannt ist, ist die Textbox des Maker XP in ihrer Funktionalität, gegenüber der Textbox des 2k ein wenig eingeschränkt. Abhilfe schaffte da bisher nur das Advanced Message Script, das die Standard Textbox um einige weitere '\' Befehle erweiterte.
Nun auch mich störte die Textbox des XP, aber nicht nur wegen der fehlenden Befehle, sondern auch weil sie immer noch nur 4 Zeilen gleichzeitig anzeigen konnte und eine fixe Größe hatte.
Das alles brachte mich dazu, mittels Ruby ein komplett eigenes System zu schreiben um Text auszugeben. Mein Skript manipuliert nicht die normale Textbox, diese ist weiterhin normal nutzbar. Stattdessen ist mein Skript eine Alternative zur normalen Textbox. Zumindest, soll es das werden, falls es mal wirklich fertig wird.
Das Skript ist momentan (V. 0.5) nutzbar, es enthält aber noch nicht alle Features, die ich gerne drin hätte, und die nötig wären um komplett auf die normale Textbox zu verzichten.

Features
- Das Nachrichtenfenster kann bis zu 15 Zeilen Text darstellen (Wert ist einstellbar).
- Sowohl in Höhe als auch in der Breite, paßt sich das Fenster dem Text an
- Zusätzlich zum Nachrichtenfenster, kann ein Titelfenster, mit einer Zeile Text angezeigt werden
- Die Position des Fenster kann pixelgenau angegeben werden
- Der Verlauf des Events kann bei Erscheinen des Fensters unterbrochen werden, muss aber nicht.
- Es ist möglich den Text, während er angezeigt wird zu manipulieren.
- Das Fenster wird normal per Tastendruck geschlossen, es kann aber auch über Ruby-Skript geschlossen werden.
- Es ist möglich die Werte von Variablen, dem Text hinzuzufügen

Was nicht möglich ist:
- Wenn das Fenster angezeigt wird, ist es nicht möglich die Größe zu ändern.
- Es gibt keinerlei Möglichkeiten ähnlich dem "Show Choice", dem Spieler Auswahlmöglichkeiten anzubieten. (Code ist dafür teilweise vorhanden, aber weder vollständig noch bugfrei)

Screen
Hier einmal ein Beispielscreen, der das System in Aktion zeigt. Sowohl Map als auch Textinhalt sind nur testweise.
System in Aktion (http://www-public.rz.uni-duesseldorf.de/~axkoe001/msgscreen.png)

Download
Im Download sind zwei txt-dateien mit Ruby-Code enthalten, sowie eine Readme, die das Einfügen des Scriptes in das eigene Projekt, sowie die grundlegende Benutzung erklärt. Zusätzlich gibt es eine Dokumentation, die alle wichtigen Variablen und Befehle des Systems erläutert, die benutzt werden können.
Download (http://www-public.rz.uni-duesseldorf.de/~axkoe001/msg-script.zip)

Nachwort
Wegen der fehlenden Kommandos, kann dieses System noch nicht für normale Gespräche verwendet werden, aber um größere Textmengen wie Erklärungen oder ähnliches anzuzeigen, eignet es sich hervorragend.
Ich weiß nicht, ob und wann ich an diesem Skript weiterarbeite um die fehlenden Kommandos einzubaueen, also fragt erst gar nicht danach. Weiterhin gebe ich nur eingeschränkten Support. Wenn ihr Probleme mit dem Skript, was das Einbinden oder das Benutzen angeht, schreibt es hier in den Thread.
Grundlegende Ruby-Kentnisse sind für das Benutzen nicht unbedingt erforderlich, aber hilfreich.

Edit:
Es hat sich ein kleiner Tippfehler, in der readme.txt eingeschlichen. In der Readme steht als Schritt 08. die einzufügende Zeile "$msg_system = Msg_System.new(15)", es muss aber heißen "$msg_system = Msg_system.new(15)". Ruby unterscheidet groß- und kleinschreibung. Sorry für den kleinen Fehler, lade gleich ne korrigierte Version hoch.

Climhazard
22.02.2005, 15:32
Das ist ne tolle Idee, poblem ist ob es für Anänger geeignet ist aba für XP Makers ist das schon ganz top!

V-King
22.02.2005, 16:01
Das ist ne tolle Idee, poblem ist ob es für Anänger geeignet ist aba für XP Makers ist das schon ganz top!
Meines Erachtens nach ist der komplette RMXP nicht für Anfänger geeignet.

Aber tolles Skript :)
Ne schöne Arbeit, die du dir da gemacht hast ^^

Wegen der Textfenstergröße: Sogar kommerzielle RPG's haben sowas, dass die Textboxgröße so groß ist, wie der längste angezeigte Satz im Dialog ^^

Oder meintest du eher, dass die Textbox immer und überall 15 Zeilen groß ist?

MagicMagor
22.02.2005, 16:07
Wegen der Textfenstergröße: Sogar kommerzielle RPG's haben sowas, dass die Textboxgröße so groß ist, wie der längste angezeigte Satz im Dialog ^^

Oder meintest du eher, dass die Textbox immer und überall 15 Zeilen groß ist?
Letzteres eben nicht. Die Breite des Textfenster ist so groß, das die längste Zeile angezeigt werden kann (sofern dies nicht die maximalbreite überschreitet), und es werden auch nur soviele Zeilen angezeigt, wie mit Text gefüllt sind. (Wobei ' ' hier auch als gefüllt gilt)

Wenn du also nur einen Satz hast, hast du auch eine sehr kleine Textbox. Wenn der Text aber komplett über alle 15 Zeilen geht, dann ist auch die Textbox entsprechend groß (dürfte dann bis zum unteren Rand gehen).
15 ist nur das Maximum. Eine 16te Zeile gibt es nicht, weil sie wohl immer ausserhalb des Screens liegen würde.

assaassa
22.02.2005, 19:41
Frage:
ich hab mir das script mal gedownloaded jetzt is das prob das der in der

Window_MsgCommand

einiges so anzeigt
オブジェクト初期化

was muss ich machen um das anders zusehen oder ist das normal???

Iron Rose
23.02.2005, 16:36
Ich finde das system recht gut.
Wird es auch ein Show Face geben?
Das wäre sehr nützlich ^ ^
Das in einer Extrabox ein Face angezeigt wird.

eisRegen2k4
23.02.2005, 17:06
Frage:
ich hab mir das script mal gedownloaded jetzt is das prob das der in der

Window_MsgCommand

einiges so anzeigt
?????????

was muss ich machen um das anders zusehen oder ist das normal???wenn die dinger grün und mit einem "#" davor angezeigt werden, dann sind es comments...
die tun beim script nix zur sache^^

[KoA-Dani]
23.02.2005, 17:18
Echt klasse Idee MagicMagor ! Hoffe du bekommst es fertig.




Meines Erachtens nach ist der komplette RMXP nicht für Anfänger geeignet.

Ach, wieso wird nur immerwieder so ein Blödsinn verbreitet -.- . Wieso bitte soll der XP nicht für Anfänger geeignet sein ? Du kannst die vorgefertigten Befehle genauso wie beim Rm2k benutzen bzw dein Game zusammenklicken. Nur weil man noch mit Ruby scripten kann, muss man das nicht tun. Ausserdem wird vieles sehr viel einfacher, weil man solche Scripts z.B. einfach nur kopieren braucht (man muss sie kein Stück kapieren. Einfach copy&paste).

MagicMagor
23.02.2005, 18:20
@asaaaa
Wie Eisregen schon gesagt hat, sind das Kommentare. Die Klasse Window_MsgCommand, ist eine verkürzte Version des Window_Selectable, dementsprechend ist der Code dort eine Kopie, samt der ursprünglichen, japanischen Kommentare. Das braucht dich nicht weiter zu beunruhigen..

@Iron Rose
Ein System für Faces ist nicht geplant. Ich halte Faces nicht unbedingt für die beste Erfindung des Makers, und das System soll andere, mMn wichtigere Funktionen bieten. Solange muss man sich wohl noch damit begnügen, selbst ein Pic anzuzeigen..

@Dani
Nunja, ich sehe in dem einfachen Copy&Paste von Ruby-Skripten eigentlich ein Problem. Fremden Code zu verwenden, ohne ihn zu kapieren, ist problematisch. Sobald sich zB beim Übertragen ein Fehler eingeschlichen hat, ist unmöglich ihn alleine zu finden, davon abgesehen ist es unmöglich ein System selbstständig zu erweitern bzw. seinen Bedürfnissen anzupassen.
Davon abgesehen, was bringt es eine supertolle Feature-Liste zu haben, wenn nahezu nichts davon selbst gemacht ist, sondern nur kopiert wurde?

[KoA-Dani]
23.02.2005, 18:43
@Dani Nunja, ich sehe in dem einfachen Copy&Paste von Ruby-Skripten eigentlich ein Problem. Fremden Code zu verwenden, ohne ihn zu kapieren, ist problematisch. Sobald sich zB beim Übertragen ein Fehler eingeschlichen hat, ist unmöglich ihn alleine zu finden

Imo ist es schwer, beim "Übertragen" einen Fehler in ein Script zu bringen. Natürlich kann man dabei die erste oder letzte Zeile nicht markieren o.ä. , aber das lässt sich ja leicht beheben. Bei einem veröffentlichten Script steht auch immer dabei, wie dieses einzusetzten ist (bzw. wo man diesen "hin-pasten" soll). Es ist sehr viel schwerer und Fehleranfälliger ein Rm2k Script zu übertragen, als ein Ruby Script zu kopieren, da sind wir uns doch einig ? Also verstehe ich nicht recht, welches Problem du hierbei siehst.




, davon abgesehen ist es unmöglich ein System selbstständig zu erweitern bzw. seinen Bedürfnissen anzupassen.
Scripts sind entweder gut und brauchbar, oder eben nicht. Man siehe z.B. dein Script. Will man dieses Feauter haben, so benutzt man dein Script (falls es denn mal fertig ist usw. usf. bla..). Anderfalls halt nicht. Nur weil es dieses Script gibt, braucht man es nicht nutzen. Wo ist da das Problem ? Wenn es einige Feauters in diesem Script nicht gibt, gibts sie halt nicht. Das ist bei den Standartfunktionen beim Maker selbst doch genauso, da heult auch keiner, dass man das und das nicht verändern kann. Ausserdem muss man sich in vielen Fällen kein Stück mit Ruby auskennen, um Scripts zu editieren bzw an sein Game anzupassen. Dazu sind oft kleine tuts an die Description der Scripts angehängt, wobei man da immer nur einpaar Werte verändern muss.


Davon abgesehen, was bringt es eine supertolle Feature-Liste zu haben, wenn nahezu nichts davon selbst gemacht ist, sondern nur kopiert wurde?

Naja, das ist typisches RPGMaker-Community-denken :> . Ala "ich hab diese Feauters selber gescriptet, ich bin so toll". Wieso verallgemeinert man das nicht ? Wieso wird z.B. VD gepriesen ? So gut wie alles war schon vorgefertigt und wurde lediglich leicht angepasst. Man musste movement nicht programmieren, musste praktisch nur rumklicken.

Man muss endlich mal umdenken, also "das Spiel ist gut und macht Spaß, ich bin toll".

Dem Spieler ist es scheissegal, ob der Ersteller eines Games drei Jahre an einem KS gesessen ist, oder in einpaar Sekunden ein Script kopiert und integriert hat. Solange das ganze Spass macht, ist das doch sowas von irrelevant. Wir sind doch hier, um tolle Spiele zu machen. Nicht um anzugeben, wie toll man scripten kann (Scripts alleine machen noch kein Spiel aus). Und wenn man unbedingt mit Scripten angeben will, dann soll man es gefälligst lernen (Ruby ist nun wirklich alles andere als schwer).

MagicMagor
28.02.2005, 17:00
Nunja Dani, einerseits ist es mitunter möglich, daß sich im Skript Bugs eingeschlichen haben, die der Autor nicht kennt. Je komplexer ein Skript wird, umso größer ist die Gefahr für Bugs, und nicht unbedingt jeder unterzieht seine Skripts ausführlichem Testing.
Außerdem ist es möglich, daß man selbst zwei verschiedene Skripts benutzen will, die beide zusammen inkompatibel sind, oder man sie leicht anders einbinden muss, wenn man sie zusammen nutzen will. Das trifft vor allem darauf zu, wenn die Skripts schon bestehende Systeme (wie das KS) modifizieren.
Als Autor gehe ich immer von einem "reinen" RTP-Spiel aus, wenn es um Ruby geht. Sprich ich gehe davon aus, alle Standard-Skripts sind vorhanden und unverändert. Sobald dies nicht mehr gegeben ist, können sich Fehler einschleichen, die man als Ruby-Laie nicht finden und entfernen kann.

Was die Sache mit den Features angeht. Vielleicht etwas unglücklich ausgedrückt, aber jeder der ein Spiel vorstellt möchte auch ein wenig Annerkennung, eine Würdigung seiner Leistung. Ein Spiel zu machen, mit eigenem KS, eigenem Menü und einer menge sonstigem Custom-Kram ist eine viel größere Leistung, wenn jedes Skript selbstgeschrieben ist, und wenn es nur ein "Nachbau" war, als wenn man die Skripts einfach nur kopiert. Davon abgesehen halte ich nicht viel vom Zusammenkleistern mehrerer Skripte, wenn man nicht fähig ist sie zu modifizieren, weil man ohnehin nie immer das findet, was man für sein eigenes Spiel braucht.

Von der Gefahr, daß bestimmte KS oder Menü-System irgendwann so oft verwendet wurden, daß sie, wie Chipsets, als "ausgelutscht" gelten mal abgesehen.

@All
Ich habe der Zip ein kleines FaQ hinzugefügt, wo unter anderem beschrieben wird, wie die meisten Messagebefehle des 2kers mit meinem System umzusetzen sind. (zB. \! oder \^)

[KoA-Dani]
28.02.2005, 17:24
Nunja Dani, einerseits ist es mitunter möglich, daß sich im Skript Bugs eingeschlichen haben, die der Autor nicht kennt. Je komplexer ein Skript wird, umso größer ist die Gefahr für Bugs, und nicht unbedingt jeder unterzieht seine Skripts ausführlichem Testing.
Außerdem ist es möglich, daß man selbst zwei verschiedene Skripts benutzen will, die beide zusammen inkompatibel sind, oder man sie leicht anders einbinden muss, wenn man sie zusammen nutzen will. Das trifft vor allem darauf zu, wenn die Skripts schon bestehende Systeme (wie das KS) modifizieren.
Als Autor gehe ich immer von einem "reinen" RTP-Spiel aus, wenn es um Ruby geht. Sprich ich gehe davon aus, alle Standard-Skripts sind vorhanden und unverändert. Sobald dies nicht mehr gegeben ist, können sich Fehler einschleichen, die man als Ruby-Laie nicht finden und entfernen kann.

Was die Sache mit den Features angeht. Vielleicht etwas unglücklich ausgedrückt, aber jeder der ein Spiel vorstellt möchte auch ein wenig Annerkennung, eine Würdigung seiner Leistung. Ein Spiel zu machen, mit eigenem KS, eigenem Menü und einer menge sonstigem Custom-Kram ist eine viel größere Leistung, wenn jedes Skript selbstgeschrieben ist, und wenn es nur ein "Nachbau" war, als wenn man die Skripts einfach nur kopiert. Davon abgesehen halte ich nicht viel vom Zusammenkleistern mehrerer Skripte, wenn man nicht fähig ist sie zu modifizieren, weil man ohnehin nie immer das findet, was man für sein eigenes Spiel braucht.

Von der Gefahr, daß bestimmte KS oder Menü-System irgendwann so oft verwendet wurden, daß sie, wie Chipsets, als "ausgelutscht" gelten mal abgesehen.



Gut gut, aber das alles kann man fast genauso auf den Rm2k übertragen. Die Scripts sind da nur in einer anderen Form (die viel aufwendiger importiert werden muss).

Nochmal: Es ist doch besser wenigstens einpaar "erschlichene" Feauters zu haben, als überhaupt keine, findest du nicht ? Ich rede jetzt von Leuten, die überhaupt nix zustande bekommen. Erfahrenere Leute werden auch mit den Scripts zurechtkommen.

Auch bei Rm2k Scripts kann es Bugs geben, von denen der Autor nichts weiss. Zumal man noch als nooby beim Übertragen sehr viele eigene Bug produziert (unbewusst) und sie genausowenig findet/finden könnte.

Man kann ja weiterhin so arbeiten, wie mit den Rm2k auch, nur hat man ganz einfach mehr Möglichkeiten.


Was die Sache mit den Features angeht. Vielleicht etwas unglücklich ausgedrückt, aber jeder der ein Spiel vorstellt möchte auch ein wenig Annerkennung, eine Würdigung seiner Leistung.

Was hindert einen daran, dies genauso mit dem XP zu machen ? Vielleicht, dass man noch ne menge toller msg-box Spielereien betreiben kann ? (Mit diversen, einfach kopierten Scripts). Und wenn jemand auf eigene Faust sowieso nichts hinbekommt, ist er mit einem Script besser bedient, als mit garnix.


@KS-auslutsch: .. Ich weiss, ich wiederhole mich immer und immerwieder, aber das ist nunmal immer so, egal welchen Maker du nimmst. Ausserdem muss man die Animationen usw. immernoch selbst machen, ansonsten wird das Spiel sowieso nix.



Und wenn das alles nicht überzeugt: Man kann das Script ja genauso einfach wieder löschen und alles wäre so, wie es vorher war. Das alles ist viel besser, als überhaupt nichts machen zu können(wie beim Rm2k/2k3).