PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ^^^^^^^^^^Variable No???????!!!



RockFtMaker
11.05.2008, 11:32
Was verdammt nochmal bringt der befehl "variable no"
bei mir wird der immer als 0 angezeigt:D
danke

Alan
11.05.2008, 11:43
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, 11: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?:(

T-Free
11.05.2008, 11:49
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.

cilence
11.05.2008, 11:50
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...

Alan
11.05.2008, 11:51
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, 11: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

T-Free
11.05.2008, 12:11
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?^^

Nesis
11.05.2008, 12:24
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, 12: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.

cilence
11.05.2008, 12:33
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

Aurae
11.05.2008, 12:57
Ö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.".

Lachsen
11.05.2008, 13:03
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

cilence
11.05.2008, 18:06
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

Dhan
11.05.2008, 19:19
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.