RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 2:24

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
Offline
Alex
Alex
Benutzeravatar
Beiträge: 22
 Betreff des Beitrags: Rpg maker Script
BeitragVerfasst: Fr Aug 17, 2012 0:57 
Hi Leute,

Ich habe da mal eine Frage:

Hat jemand ein Ringmenü Script
für den Rpg maker 2003?
Wäre mir echt eine Hilfe.


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Attention-whore
Attention-whore
Benutzeravatar
Beiträge: 1968
Alter: 32
Wohnort: Hessen (Rhein-Main-Gebiet)
 Betreff des Beitrags: Re: Rpg maker Script
BeitragVerfasst: Fr Aug 17, 2012 1:40 
Ich hab eins. Wenn man jemanden anlabert, kommt nen Ringmenü mit so Sachen wie "Blut aussaugen", "Umwandeln", "Reden", etc

_________________
Ahure Mazda/Froschvampür hat geschrieben:
Mit Wasser in einem Raum voller Computer rumzuspritzen ist Sachbeschädigung und unter aller Sau. [...] Ich persönlich bin jedoch nicht geisteskrank oder gar gefährlich für die Gesellschaft wie diese Spinner in dem Video.


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Gnu-Hirte
Gnu-Hirte
Beiträge: 544
Alter: 24
 Betreff des Beitrags: Re: Rpg maker Script
BeitragVerfasst: Fr Aug 17, 2012 7:55 
Hmmm "Spielt weniger SKS!" das kommt mir ja fast so vor wie das Menü von VD2, na was das nur zu bedeuten hat...

Und Naruto_Kenner die ein erstmal überhaupt keiner helfen, wenn du uns nicht sagst was überhaupt in dem Ringmenü drin vorkommen soll. Soll irgendwas anderes vorkommen als im Standard Menü? Zudem ist das Ringmenü nur der Anfang, du musst ja noch die ganzen Menüpunkte dann auch skripten.
Anstatt hier nach einem fertigen Skript zu fragen, was du dir kopierst und dann nichtmal verstanden hast. Solltest du besser weiter üben, weil wenn du nicht weißt wie ein Skript funktioniert kannst du es auch nicht Debuggen, solltest du einen Fehler im Skript finden.

_________________
Wer Rechtschreibfehler findet kann sie behalten:P.

Schreibt(malt^^) was rein;):
http://www.graphicguestbook.com/djeurissen


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Citizen Nerd
Citizen Nerd
Benutzeravatar
Beiträge: 1146
Alter: 35
 Betreff des Beitrags: Re: Rpg maker Script
BeitragVerfasst: Mi Aug 22, 2012 14:38 
Ringmenüs kann man sich doch "einfach" selbst erstellen. Und diese zu erstellen macht ja sogar noch Spaß. Ich kann dir ja eben erklären wie so etwas funktioniert. Natürlich gehe ich davon aus, dass du weißt wie Variablen funktionieren. Wenn nicht: Lerne erst einmal das, denn ohne das Wissen brauchst du kein Spiel anfangen (aber ich will ja nichts unterstellen).

Ich gehe jetzt erst einmal davon aus, dass das Ringmenü immer in der Bildschirmmitte erscheint. Sie um den Helden erscheinen zu lassen kann (!) komplizierter sein, vor allen Dingen wenn das Menü nicht mehr auf den gesamten Bildschirm passt. Dann muss es nämlich leicht verschoben werden ~ und deswegen lassen wir das "Um den Helden"-Menü einfach weg.

Ich gehe außerdem davon aus, dass die Anzahl an anzeigbaren Icons (selbst wenn sie unsichtbar sind, es also aus irgendwelchen Gründen nicht existiert) dennoch vorhanden sind. Es wird also kein Menü, das automatisch zum nächsten verfügbaren Objekt/Icon springt, wie zB in Secret of Mana.

(0) Natürlich deaktivierst du erst einmal das Hauptmenü. Über ein Common Event (Paralleler Prozess) gibst du dann vor, dass die Taste "6" (Escape) gedrückt werden soll, damit dein Switch zum Aufruf deines Menüs angeschaltet wird. Der könnte zB "Ringmenü Aufrufen" heißen. Vergiss nicht am Ende ein "Wait 0.0" zu setzen, damit sich dein Spiel nicht aufhängt.
Das Ringmenü skriptest du dann später in einem neuen Common Event, welches auf Auto-Start steht und natürlich von dem Switch aktiviert werden muss. Jetzt zum eigentlichen Menü:

(1) Du musst erst einmal wissen wieviele Menüpunkte du haben willst. Der Einfachheit halber sagen wir mal 8, denn das lässt sich relativ einfach auf einem Ring verteilen (quasi ein Icon in jeder "Himmelsrichtung", also Links, Rechts, Unten, Oben, Links Unten, Links Oben, Rechts Unten und Rechts Oben). Wir könnten auch 4 Icons erstellen, aber für so wenige lohnt es sich eigentlich nicht (außer wenn das Inventory auch ein Ringmenü ist und man somit zB nur 1 Icon haben kann).

(2) Du musst die Koordinaten jedes Menüpunktes kennen. Da hilft ausprobieren oder den Taschenrechner verwenden. Manche Grafikprogramme können auch die Koordinaten anzeigen auf dem der Cursor liegt. Ich bin der Meinung - könnte mich aber auch irren - dass das kostenlose Gimp dazu in der Lage ist.

(3) Jetzt gibt es mehrere Möglichkeiten, wobei ich zu folgender Methode tendiere. Sie vereinfacht vieles und spart Tipparbeit. Die Koordinaten, die du herausfandest, speicherst du in den "Common Events" als neues Event. Das Ganze setzt du als "Call Event" und skriptest nach folgendem Muster:

Code:
<> Bedingung: Variable Position= 1
  <> Variable Allg. X-Koordinate = X von Icon #1
  <> Variable Allg. Y-Koordinate = Y von Icon #1
 <> Else Handler
   <> Bedingung: Variable Position= 2
    <> Variable Allg. X-Koordinate = X von Icon #2
    <> Variable Allg. Y-Koordinate = Y von Icon #2
usw...


Damit musst du die Koordinaten nicht jedes mal neu eintippen wenn sich das Menü später bewegen soll, sondern brauchst einem Picture einfach nur sagen auf welcher Position es sich bewegen soll. Die Variablen "Allg. X-Koordinate" und "Allg. Y-Koordinate" in obigem Skript sind übrigens immer die Selben. Also nicht für jedes Icon eigene Variablen.

(4) Außerdem erstellst du 8 weitere Variablen (also eine pro Icon), die sich nennen könnten: "Inventar Position", "Statistiken-Position", usw. Achte darauf, dass diese Variablen ohne Unterbrechung angelegt werden, du also keine Leerstelle oder eine andersartige Variable zwischen ihnen hast (wichtig für Schritt 6). Jetzt vergibst du den Variablen ihre entsprechenden Positionen, von 1 bis 8, zB im Uhrzeigersinn. Diese Positionen sind stellvertretend für die Ausgangspositionen deiner Icons, daher darfst du diese Festsetzung im weiteren Verlauf nicht noch einmal wiederholen (sonst bewegt sich das Menü nicht, da es immer auf Startposition verbleibt). Das kannst du zB mit Labels umgehen:

Code:
Common Event: Auto-Start
<>Label 1
<> (Startpositionen deiner Icons)
<> Label 2
<> Der ganze restliche Code, den wir noch erstellen werden
<> Go to Label 2



(5) Jetzt wollen wir die Pictures auch anzeigen. Dafür brauchen wir, in diesem Beispiel, insgesamt 16 neue Variablen. Nämlich für jedes Icon eine individuelle X- und eine Y-Variable. Natürlich auch so benennen, dass du sie auseinander halten kannst. zB... X-Inventar, Y-Inventar / X-Statistiken, Y-Statistiken / usw. Diese Variablen werden jetzt jedoch nicht ausgefüllt; also wirklich nur anlegen. Und das möglichst ohne eine Leerstelle dazwischen oder anderen Variablen (ganz wichtig für Schritt 6).
Damit haben wir alle Vorbereitungen getroffen.
Folgender Code kommt an die Stelle, in der ich schrieb: "Der ganze restliche Code, den wir noch erstellen werden".

(6) Jetzt kommen wir zu etwas relativ Tollem, was immer wieder sehr praktisch ist um unnötige Skripterei zu ersparen, sofern man es beherrscht: Wir nennen es gerne "Pointer" (oder Pointer-Variablen). Wie du ja sicherlich bemerkt hast, befinden sich unter der Funktion "Variablen" immer noch Ziffern vor dem Variablennamen, angefangen bei 0, bis... ganz schön viel. Das sind die ID-Nummern der Variablen. Auf genau diese Ziffern zielt ein Pointer ab. Um jetzt jedem Icon seine eigenen Koordinaten automatisch (!) zuzuweisen, lege eine neue Variable an, die du zB nennst "Pointer Zuweisung X". Außerdem eine Zweite für die Y-Variablen, die nennen wir "Pointer Zuweisung Y".

Wie gesagt, wollen wir jetzt den einzelnen X- und Y-Variablen ihre Nummern automatisch geben, statt sie manuell einzutippen.
Schaue jetzt nach, welche ID die Variable hat, die die erste individuelle X-Variable deiner Icons ist. Aus obiger Ausführung wäre das zB die Variable "X-Inventar". Die wird wahrscheinlich nicht 0 sein, sondern zB 125 (ist jetzt nur angenommen). Deiner Variable "Pointer Zuweisung" gibst du jetzt diese ID als Wert (also set 125).
Das Selbe für den Y-Wert. Die ID wird aus obiger Beispielangabe wahrscheinlich 126 sein.

Rufe jetzt dein Variablenfenster auf. Dir ist oben sicherlich aufgefallen, dass es drei Zeilen für den Ursprung deiner Variable gibt. In der ersten Zeile lassen sich die Variablen direkt auswählen und bearbeiten. In der dritten Zeile lassen sich ganze Gruppen von Variablen bearbeiten (das kommt später auch noch). Die zweite Zeile ist der sogenannte "Pointer", der folgendermaßen funktioniert, was du auch direkt nachmachen kannst:
Die Variable die du dort angibst, ist "Pointer Zuweisung X", die ja den Wert 125 hat. Besagte zweite Zeile zielt nun nicht direkt auf die Werte der angegebenen Variablen, sondern auf die Werte der angegebenen ID-Nummer! Und das ist die erste individuelle X-Variable (zB X-Inventar). Nehmen wir also an (nicht nachmachen), dass du jetzt dem Pointer sagst: "set 5", wird exakt diese Variable (X-Inventar) mit dem Wert 5 versehen. An dem eigentlichen Pointer verändert sich nichts, sondern nur seinem ZIEL (deswegen heißt es "Pointer").

Ich weiß nicht wie ich nun Folgendes in Worte fassen soll ohne mich selbst zu verwirren, daher tippe ich dir den nachfolgenden Code direkt ein (es ist der selbe Code und das selbe Event wie oben, nur ausgefüllt und leicht korrigiert). ACHTUNG: Wir machen hier mit dem Pointer zweierlei Sachen. Um dich hingegen nicht zu verwirren, hier was ich im Folgenden meine:

Wenn ich schreibe "Pointer X/Y Zeile 1", wird die erste Zeile im Variablenfenster verändert.
Wenn ich schreibe "Pointer X/Y Zeile 2", wird die zweite Zeile im Variablenfenster verändert.
Beachte, dass auch das ZIEL mit Pointern arbeiten kann weswegen es auch dort drei Zeilen gibt, was wir hier jedoch nicht tun werden. Achte also darauf, dass beim ZIEL die ERSTE Zeile aktiviert ist.

Code:
Common Event: Auto-Start
<>Label 1
<> (Startpositionen deiner Icons)
<> Label 2
<> "Pointer X Zeile 1" SET (zB) 125
<> "Pointer X Zeile 1" SET (zB) 126
<> Variable "Position" (die wir schon anlegten) SET 1
<> Label 3
<> Dein CALL EVENT vom Anfang aufrufen
<> "Pointer X Zeile 2" SET Variable "Allg. X-Koordinate"
<> "Pointer Y Zeile 2" SET Variable "Allg. Y-Koordinate"
<> Variable "Position" + 1
<> "Pointer X Zeile 1" + 2
<> "Pointer Y Zeile 1" +2
<> Bedingung: WENN "Pointer X" GRÖSSER: Letzte ID der individuellen X-Variable
<> dann: Go To Label 6
<> ansonsten: Go To Label 3
<> Label 6


(ich vergebe übrigens immer Labelziffer 6 zur Beendigung, was "quasi" für Escape steht, um die Übersicht zu wahren. Es kann auch jede andere Ziffer sein)
Ich ging erstmal davon aus, dass du immer abwechselnd die Variablen X- und Y schriebst, weswegen "Pointer X Zeile 1" immer um 2 erhöht wird, statt um 1, damit der Pointer immer auf den jeweilig korrekten Variablen liegt. Mit obigem Code sollten allen Pictures ihre Variablen automatisch zugewiesen werden. Um Koordinaten brauchen wir uns nun nie wieder kümmern.

(7) Nach "Label 6" müssen nur noch die Bilder angezeigt werden, auf ihren individuellen Koordinaten, die wir obig automatisch zugewiesen haben.

(8) Okay, jetzt wollen wir das Ringmenü bewegen. Und das ist nach unser obigen Arbeit tierisch einfach. Das Einzige was wir tun müssen, ist die "Position"s-Variablen jeweils um 1 zu erhöhen oder 1 zu vermindern, wenn wir nach Links oder Rechts drücken. Wie Tastenabfragen funktionieren solltest du hoffentlich wissen (Registerkarte Seite 3). Die nachfolgende "Bedingung" muss nur noch abfragen ob du nach Links (Wert 2) oder Rechts (Wert 3) drückst. Das speichern wir in einer Variable namens zB "Menükoordination".

(9) Nachfolgend begeben wir uns wieder einmal ins Variablen-Fenster, wo wir endlich Zeile 3 verwenden, womit ganze Variablengruppen verändert werden können. Einfach die ID der Start- und der End-Variable angeben. Diese sollen die EINZELNEN INDIVIDUELLEN POSITIONS-VARIABLEN sein, die wir anfänglich angaben und vergaben. In die bereits angelegte Bedingung packst du nur noch rein: Wenn Links (Wert 2), dann all diese Variablen "-1". Und wenn Rechts (Wert 3), dann "+1".
ACHTUNG: Dadurch kann es zu Positionsnummern von 0 und 9 kommen, die wir nicht definiert haben. Daher muss nachfolgend noch eine Bedingung hinein, die solche Positionen umstellt. Auch das lässt sich wieder einfach mit Pointern lösen, funktioniert aber auch genauso gut über eine Folge von Bedingungen in der Form (für Links):
Code:
<> Wenn Variable Position Icon1 = 0
<> Dann SET Position Icon1 = 8
  <> Else Handler: <> Wenn Variable Position Icon2 = 0
<> Dann SET Position Icon2 = 8
usw....

Entsprechend natürlich, bei der anderen Richtung (Rechts):
Wenn Position Icon1 (usw) = 9 --> Dann SET Position Icon1 = 1

(10) Anschließend muss sich das Ringmenü endlich bewegen. Dazu müssen nur noch die Koordinaten neu eingespeist werden. Kopiere dir daher am besten den Abschnitt (zwischen "Label 3" bis "Go To Label 3") einfach herunter. Nicht vergessen die Labelnummern zu ändern, ebenso wie von "Label 6".
Zum guten Schluss nur noch die Bilder mit dem entsprechenden Befehl bewegen. Fertig!


Mehr muss man eigentlich nicht wissen. Und wenn das zu kompliziert war: Hey, DU wolltest ein Ringmenü. Fertige Skripte bringen dir nichts, wenn du den Inhalt nicht verstehst. Ich hoffe du hast zumindest eine Idee davon bekommen, wie es funktionieren kann.

PS: Es ist sehr gut möglich, dass obige Angaben Fehler in den Details haben; es funktioniert lediglich in der Theorie reibungslos. Das Skript wurde nicht geprüft. Und es gibt sicherlich noch etwas einfachere Methoden, wie zB das Nichtkopieren des "Label 3"-Abschnitts, sondern es lediglich in ein neues Call Event zu packen.

Übrigens: Man kann sich auch ein automatisch erweiterbares Menü skripten, was sicherlich bei Inventaren sehr cool ist. Man muss sich nur den Umfang (Kreis) des Menüs vorgeben und entsprechend dividieren, wodurch mit viel Aufwand entsprechende Koordinaten automatisch herausspringen. In der Theorie funktioniert das auf jeden Fall.

[MG]

_________________
RPG Maker...
...Let's Plays «
...Tutorials «
...Pixel und Gedönse «


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Gnu-Hirte
Gnu-Hirte
Beiträge: 544
Alter: 24
 Betreff des Beitrags: Re: Rpg maker Script
BeitragVerfasst: Mi Aug 22, 2012 17:55 
Naja generell macht es einen heiden Spaß etwas zu skripten^^...

Und desto komplizierter das Skript wird umso mehr habe ich Spaß an einem Skript. Nur irgendwann merkt man leider, das der Rpg Maker zu sehr einschränkt...

_________________
Wer Rechtschreibfehler findet kann sie behalten:P.

Schreibt(malt^^) was rein;):
http://www.graphicguestbook.com/djeurissen


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Citizen Nerd
Citizen Nerd
Benutzeravatar
Beiträge: 1146
Alter: 35
 Betreff des Beitrags: Re: Rpg maker Script
BeitragVerfasst: Do Aug 23, 2012 9:31 
djeurissen hat geschrieben:
Nur irgendwann merkt man leider, das der Rpg Maker zu sehr einschränkt...


Mag zwar Off Topic sein, aber: Die Grenzen auszuschlachten, macht doch den Reiz aus. Für mich jedenfalls.

[MG]

_________________
RPG Maker...
...Let's Plays «
...Tutorials «
...Pixel und Gedönse «


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de