PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablenwerte anzeigen?



PrinZZ
06.12.2006, 22:43
Wie kann ich machen, dass ein wert einer beliebigen variabel zb in einer bildschirmecke angezeigt wird? :confused:

gruß PrinZZ

ive beaten tetris
07.12.2006, 06:33
eine variable ist ein versteckter wert der nicht aufgrund seiner funktionsart angezeigt werden kann. wenn du den wert einer variable rausfinden möchtest musst du dir einen befehl ausdenken der den wert der variable beinhaltet. willst du beispielsweise ein bild positionieren und benutzt dazu die werte welche in einer variable gespeichert sind kannst du diese werte abrufen in dem du beim show picture befehle die jeweiligen variablen für die x und y achse angibst


bilderläuterung 1 (http://img208.imageshack.us/img208/8748/blubb1so6.jpg)
bilderläuterung 2 (http://img221.imageshack.us/img221/740/blubb2uo2.jpg)
bilderläuterung 3 (http://img221.imageshack.us/img221/8380/blubb3hn8.jpg)

Kelven
07.12.2006, 09:47
Ich glaube, PrinZZ hat etwas anderes gemeint.

@PrinZZ
Dir bleibt nichts anderes übrig, als 10 Pictures für die Zahlen 0-9 anzulegen und die für jede Stelle der Zahl anzuzeigen. Dafür brauchst du dann mehrere Forcabfragen, in denen du für jeden Wert das passende Picture anzeigst. Falls du die Zahlen in einem Menü auf einer eigenen Map anzeigen willst, kannst du anstelle von Pictures auch Charsets benutzen.

PrinZZ
07.12.2006, 11:46
Danke kelven das hab ich gemeint (auch dir danke für deine mühe miku!)
Das Problem ist nur, dass mein held über 300 hp haben soll -.-
Egla dann muss ich mich mit weniger hp und somit auch niedriger angriffskraft abgeben...

Kelven
07.12.2006, 15:35
Solange du die Pictures für nichts anderes brauchst, kannst du 3 oder 4 dafür einsetzen um die Ziffern anzuzeigen.

Caine Luveno
12.12.2006, 20:46
Danke kelven das hab ich gemeint (auch dir danke für deine mühe miku!)
Das Problem ist nur, dass mein held über 300 hp haben soll -.-
Egla dann muss ich mich mit weniger hp und somit auch niedriger angriffskraft abgeben...

Hm? mit Drei Pics kommst du soweit ich weiß bis 999 HP... mit 4 sogar bis 9999 HP, das sollte ja wohl reichen :)

natix
12.12.2006, 20:59
[QUOTE=PrinZZ;1652563]Danke kelven das hab ich gemeint (auch dir danke für deine mühe miku!)
Das Problem ist nur, dass mein held über 300 hp haben soll -.-
[QUOTE]

Du musst die Zahl halt aufsplitten, du hast ja eine Variable in der der Wert der gesamten HP ist. Diese jagst du dann durch folgendes Skript:


Set: Var[001:HP Hero] = Var[002:HP Hero2]
Set: Var Value 3-5 = 0
Label#1
Fork Var[002:HP Hero2] => 100
Var[002:HP Hero2] -100
Var[003:HP 100er] +1
Goto Label#1
else
Fork Var[002:HP Hero2] => 10
Var[002:HP Hero2] -10
Var[004:HP 10er] +1
Goto Label#1
else
Fork Var[002:HP Hero2] => 1
Var[002:HP Hero2] -1
Var[005:HP 1er] +1
Goto Label#1
end
end
end

Und nach den Variablen 100er, 10er und 1er kannst du dann die Zahlen anzeigen lassen. (Das ganze ist ´nen bissel pseudo-mäßig gemacht. ^^

Sgt. Pepper
12.12.2006, 22:24
Du musst die Zahl halt aufsplitten, du hast ja eine Variable in der der Wert der gesamten HP ist. Diese jagst du dann durch folgendes Skript:


Set: Var[001:HP Hero] = Var[002:HP Hero2]
Set: Var Value 3-5 = 0
Label#1
Fork Var[002:HP Hero2] => 100
Var[002:HP Hero2] -100
Var[003:HP 100er] +1
Goto Label#1
else
Fork Var[002:HP Hero2] => 10
Var[002:HP Hero2] -10
Var[004:HP 10er] +1
Goto Label#1
else
Fork Var[002:HP Hero2] => 1
Var[002:HP Hero2] -1
Var[005:HP 1er] +1
Goto Label#1
end
end
end

Und nach den Variablen 100er, 10er und 1er kannst du dann die Zahlen anzeigen lassen. (Das ganze ist ´nen bissel pseudo-mäßig gemacht. ^^
Verrückt?
Das ist doch totaler Schwachsinn o_O°.

Die einfachste Methode die Variable in seine Stellen aufzuteilen ist folgende:

Var 1 ist die 1erStelle
Var 2 die 10er-Stelle
Var 3 die 100er-Stelle


var 1-3 set Hero HP
var 1 mod 10
var 2 mod 100

Beispiel:
Hero hat 579 HP.
579 mod 10 = 9 = Einerstelle
579 mod 100 = 79 = Zehnerstelle
579 mod 1000 = 579 = Hunderterstelle (kann man sich ja sparen)

Anschließend in Form von Wenn Variable größer als 1 (10; 100) ist, dann zeige Zahl 1 an, etc.

Natürlich kann man sich auch einiges an Arbeit ersparen, indem man es so macht:



var 1-3 set Hero HP
var 1 mod 10
var 2 mod 100
var 3 - var 2
var 2 - var 1
var 2 / 10
var 3 /100

Beispiel:
Hero hat 579 HP.
579 mod 10 = 9 = Einerstelle
579 mod 100 = 79
579 - 79 = 500
79 - 9 = 70
500 / 100 = 5 = Hundererstelle
70 / 10 = 7 = Zehnerstelle

5, 7, 9, passt.

So muss man bei jeder Zahl nur prüfen ob sie einen bestimmten einstelligen Wert hat.

PrinZZ
13.12.2006, 18:22
Ok nur leider hab ich keine ahnung von nix xD was soll ich nun mit den skripts machen? als Eventbefehle machen?
<----nix blick

Sgt. Pepper
13.12.2006, 21:00
Na gut, ähm.
Also angenommen, du willst, dass der Wert der Variable X oben rechts in der Ecke angezeigt wird.

Dazu erstellst du ein Common Event mit dem Titel, sagen wir "Variablen aktualisieren" oder so.
Dann benennst du die 3 Variablen nach der Variable X zu "X 1er" "X 10er" und "X 100er" oder sowas in der Richtung.
Rein kommt folgendes:

Variable [X 1er] set Variable [X]
Variable [X 10er] set Variable [X]
Variable [X 100er] set Variable [X]
Variable [X 1er] mod 10
Variable [X 10er] mod 100
Dieser "Code" tut folgendes:
Er speichert den Wert von der Variable X und "spaltet" ihn in die Hunderter- Zehner und Einerstelle auf. (Info: "mod" teilt eine Variable durch einen Wert und speichert in die Variable den Rest. Beispiel: 25 mod 7 = 4
Weil: 25 / 7 = 3, Rest: 4.
( 7 * 3 + 4 = 25))

Dieses Common Event bleibt auf Call Event.

Anschließend musst du noch ein Common Event erstellen. Nenn es meinetwegen "X anzeigen". Vorneweg zur Funktionsweise des Scripts:
Zuerst wird wie oben erläutert die Variable in die Hunderterstelle, Zehnerstelle, und Einerstelle aufgeteilt. Anschließend wird für jede Zahl (Eine Dreistellige Zahl, wie in diesem Fall besteht aus drei Bildern) ein Bild angezeigt, und zwar so, dass durch Bedingungen die richtige Ziffer angezeigt wird.

Daraus ergibt sich folgender "Code":


Call Event "Variablen aktualisieren"

if Var [X 1er] == 0 {
Show Picture 1 "Zahl 0"
}
if Var [X 1er] == 1{
Show Picture 1 "Zahl 1"
}
if Var [X 1er] == 2{
Show Picture 1 "Zahl 2"
}
if Var [X 1er] == 3{
Show Picture 1 "Zahl 3"
}
if Var [X 1er] == 4{
Show Picture 1 "Zahl 4"
}
if Var [X 1er] == 5{
Show Picture 1 "Zahl 5"
}
...
if Var [X 10er] => 90 {
Show Picture 2 "Zahl 9"
} else case {
if Var [X 10er] => 80 {
Show Picture 2 "Zahl 8"
} else case {
if Var [X 10er] => 70 {
Show Picture 2 "Zahl 7"
} else case {
if Var [X 10er] => 60 {
Show Picture 2 "Zahl 6"
}
...
if Var [X 100er] => 900 {
Show Picture 3 "Zahl 9"
} else case {
if Var [X 100er] => 800 {
Show Picture 3 "Zahl 8"
} else case {
if Var [X 100er] => 700 {
Show Picture 3 "Zahl 7"
} else case {
if Var [X 100er] => 600 {
Show Picture 3 "Zahl 6"
}
...

Das ganze als Parallel Process (Wenn möglich auch mit Switch als Bedingung und Wait am Ende, aber das ist vorerst nicht so wichtig).

Beschäftige dich einfach damit, hier geht es nicht um maker-kenntnisse, hier geht es nur darum, das Prinzip zu verstehen. Danach geht das von selbst. Hat man nämlich einmal verstanden, wie das funktioniert, geht das wie von selbst (Sollte es auch, denn wer einmal ein Menü gescriptet hat, KENNT diese Prozedur :D).
Wenn du btw wirklich Anfänger bist, dann beschäftige dich besser mit anderen Dingen, bevor du dazu kommst, weil das schon fast abstrakt ist.

Fleeks
18.12.2006, 09:13
Wow, jetzt versteh ich das MOD dingsens endlich, dankesehr. Ich liebe euch, jetzt beherrsche ich ihn vollkommen!