Archiv verlassen und diese Seite im Standarddesign anzeigen : ^^^^^^^^^^Variable No???????!!!
RockFtMaker
11.05.2008, 10:32
Was verdammt nochmal bringt der befehl "variable no"
bei mir wird der immer als 0 angezeigt:D
danke
Ich vermute mal dass du eine andere Übersetzung / Version hast als ich, aber ich hatte auch mal deine von daher weiß ich was du meinst. In der neueren Version wurde der Befehl durch "Variable Reference" ersetzt. Du veränderst dadurch also nicht die Variable, die du angibst, sondern jene, deren ID dem Wert der von dir angegebenen Variable entspricht. Kleines Beispiel:
Variable [001: Testvari] set, 50
Variable Reference [001] add, 13
Damit erhöhst du die Variable mit der ID 50 (da 001 ja den Wert 50 hat) um 13. Es ist ein wenig kompliziert zu verstehen, aber als Anfänger braucht man das gar nicht und selbst als erfahrener Skripter nur selten.
Greetz!
Alan
RockFtMaker
11.05.2008, 10:46
Hi thx für deine antwort aber ich will alle funktionen des maakers verstehen.
ich will mal genauer wissn was man damit erreichen kann. vllt in einem praktischen beispiel. kann mir des jemand detailliert erklert?:(
Seh mal hier nach:
http://www.multimediaxis.de/showthread.php?t=106651
Der drittletzte Post, von Cherry.
Wenn du den nicht verstehst, dann gebe ich dir ein einfacheres Beispiel.
Also ich werd hier mal Cherry zitieren, er hat das mal äußerst treffend erklärt.
Stell dir vor, du hast ein eigenes KS. Da sind 4 Gegner. Und der Held will angreifen. Er hat Gegner 2 ausgewählt. In der Variable 100 (Gegner Auswahl) steht jetzt 2. Nun hast du, sagen wir, die HP der Gegner in den Variablen 201 bis 204 (Gegner 1 HP: 201......Gegner 4 HP: 204). Machen wir das ganz primitiv und ziehen wir beim Angriff direkt 10 HP ab. Du könntest nun machen:
<> Bedingung Var[0100] == 1
....<> Variable ändern Var[0201] - 10
.... : Else Case
....<> Bedingung Var[0100] == 2
........<> Variable ändern Var[0202] - 10
........ : Else Case
........<> Bedingung Var[0100] == 3
............<> Variable Ändern Var[0203] - 10
........ : Else Case
............<> Variable Ändern Var[0204] - 10
........ : End Case
.... : End Case
: End Case
oder aber...
<> Variable ändern Var[0100] + 200
<> Variable ändern Variable Nr. [0100] - 10
Im ersten Schritt wird die Vari 100 (Gegnerauswahl) um 200 erhöht. Wenn Gegner 2 gewählt wurde, steht nun "202" drin. Und nun? Es wird nun der Wert aus Vari 100 genommen (202) und die Variable mit dieser Nummer verändert! In diesem Fall wird dann der Vari 202 10 abgezogen.
Das selbe Ergebnis, viel weniger Code. Und jetzt stell dir mal vor, es geht um was komplexeres (Harvest Moon...), wo wir dann nicht 4 sondern z.B. 300 Möglichkeiten haben!
mfG e.hoff
Edit: hups, ne Minute zu langsam...
Natürlich ist es sehr lobenswert, alle Funktionen verstehen zu wollen, aber speziell grade die, die du dir hier ausgesucht hast, ist eine der Schwersten wenn's um's Verständnis geht. Im Prinzip ist das nämlich der Maker-Ersatz für Datenfelder, sogenannte "Arrays" wie sie in verschiedenen Programmiersprachen auftauchen. Ich würde vorschlagen du hebst dir den für gaaaanz zum Schluss auf, der hat es nämlich *wirklich* in sich. Aber wie gesagt - die Verwendung ist äußerst selten, kannst du mir glauben, ich arbeite mittlerweile schon einige Jahre mit dem Maker und hab den Befehl vielleicht fünf mal gebraucht, höchstens.
Greetz!
alan
RockFtMaker
11.05.2008, 10:55
ich glaube ich check es so grad aer könntest du mir ein einfacherers beispiel geben? zur sicherheit.
thx
EDIT: Ich WILL es aber jetzt vverstehen.XD
Also, du hast beispielsweise die Variable 0001. Diese hat anfangs ja noch den Wert 0, das ist klar.
Du hast zusätzlich die Variablen 0005, 0006, 0007. Nun möchtest du, dass einer von diesen Variablen (0005,0006,0007) z.B. der Wert 15 abgezogen wird.
Du kannst anhand von einer einzigen Variable bestimmen, welcher anderen Variable der Wert 15 abgezogen werden soll. Dazu haben wir jetzt die Variable 0001.
Nun kannst du der Variable 0001 entweder 5, 6 oder 7 addieren.
Dann hat diese Variable den Wert 5, 6 oder eben 7.
Dann machst du Variable Nr. ändern, wählst die Variable 0001 und schon wird die Variable verändert, welchen Wert die 0001 hat.
Also, neues Beispiel: 0001 hat z.B. den Wert 2. Dann machst du bei der Variable Nr. ändern und + 1. Dann wird der 2. Variable in der Liste 1 hinzugefügt.
Ist das so verständlich genug?^^
Schonmal in das Ebook geschaut?
Naja ich würde Variablen ja als träger gewisser Zahlenwerte bezeichnen, kann man auch (umständlicherweise) als Switches benutzen... nur eben viel komplexer, im Book steht (oder wars wo anders?) das so:
Willst du eine Tür erst öffnen lassen wenn der Held 4 Monster getötet hat dann stell ein das die Variable 0001 jedesmal um 1 erhöht wird wenn ein Monster umgebracht hat, dann stellst du auf seite eins des Türevents ein (Sry das sieht jetzt nicht so wie im maker aus un dich hab den Deutschpatch xD):
[Bedingung: Var 0001 => 4]
-Nachricht: "Die tür ist offen, das is ja mal geiloooooO!!!!!!!!!!1111"
[Ansonsten]
-Nachricht: "Die Tür ist zu... W0000000t???????"
Hoffe man kann erkennen was das ausdrücken soll o__o
The_Burrito
11.05.2008, 11:29
Es ist ein wenig kompliziert zu verstehen, aber als Anfänger braucht man das gar nicht und selbst als erfahrener Skripter nur selten.
Würde ich so nicht stehen lassen. Ich hab diesen Befehl damals so oft verwendet. Zum Glück braucht man das beim XP nicht mehr.
Schonmal in das Ebook geschaut?
Naja ich würde Variablen ja als träger gewisser Zahlenwerte bezeichnen, kann man auch (umständlicherweise) als Switches benutzen... nur eben viel komplexer, im Book steht (oder wars wo anders?) das so:
Willst du eine Tür erst öffnen lassen wenn der Held 4 Monster getötet hat dann stell ein das die Variable 0001 jedesmal um 1 erhöht wird wenn ein Monster umgebracht hat, dann stellst du auf seite eins des Türevents ein (Sry das sieht jetzt nicht so wie im maker aus un dich hab den Deutschpatch xD):
[Bedingung: Var 0001 => 4]
-Nachricht: "Die tür ist offen, das is ja mal geiloooooO!!!!!!!!!!1111"
[Ansonsten]
-Nachricht: "Die Tür ist zu... W0000000t???????"
Hoffe man kann erkennen was das ausdrücken soll o__o
Öhmmm... also entweder hab ich das jetzt falsch verstanden oder das hat nix mit der Option "Variable Reference" zu tun. o_O
Öhmmm... also entweder hab ich das jetzt falsch verstanden oder das hat nix mit der Option "Variable Reference" zu tun. o_O
Du hast es schon richtig verstanden. Nesis' Beispiel erklärt ne Variable, aber nicht den Begriff "VariableNo.".
Würde ich so nicht stehen lassen. Ich hab diesen Befehl damals so oft verwendet. Zum Glück braucht man das beim XP nicht mehr.
Ganz großes Dito.
Ohne Variablen No. eine große Aufwändige Technik aufzubauen ist unglaublich umständlich o_O.
Ohne diesen Variablen-Befehl wäre umfangreiches Skripten mit dem RPG-Maker 2000 imho kaum denkbar.
@RockFtMaker
Wenn du den Befehl anhand dieser Beispiele hier nicht verstehst, würde ich mir noch etwas mehr Zeit mit Skripten lassen. Man kann das kaum besser erklären.
C ya
Lachsen
Du hast es schon richtig verstanden. Nesis' Beispiel erklärt ne Variable, aber nicht den Begriff "VariableNo.".
Weiß ich doch, mein Post sollte etwas ironisch wirken. Ist wohl eher nicht so rübergekommen ne?^^
mfG e.hoff
http://de.wikipedia.org/wiki/Zeiger_%28Informatik%29
Insbesondere in Java isses herrlich. Da benutzt man praktisch nur Zeiger ^^
Zeiger sind ungemein praktisch wenn du sie erstmal verstanden hast. Wenn der Maker schon keine Variablenübergabe in Funktionen hat, dann kann man wenigstens mit Zeigern den Effekt erreichen.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.