PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Errechnen und Ausgabe der Level...



lokipoki
18.06.2006, 10:52
Ich wollte in meinem selbstgebauten Menue die Level meine Charaktere ausgeben.

Mein Code in CE zur Berechnung der Level:

Var Oper:[1-3] set, 0
Var Oper:[1-3] set, Level Zack
Var Oper: [2 Hero Level [Z] set, Var [1 Hero Level [H]]'s Value
Var Oper: [2 Hero Level [Z] mod, 100
Var Oper: [2 Hero Level [E] set, Var [1 Hero Level [Z]]'s Value
Var Oper: [2 Hero Level [E] mod, 100

Funktioniert aber irgendwie nicht... Wo liegt das Problem? Weis jemand wie ich das Problem loesen kann?

Dhan
18.06.2006, 12:32
Erstmal:
Var Oper:[1-3] set, 0
unnötig, nächste Zeile is auch ein Set

ansonsten öhm die letzte Zeile muss
Var Oper: [2 Hero Level [E] mod, 10
heißen, nicht
Var Oper: [2 Hero Level [E] mod, 100

und die beiden Zeilen
Var Oper: [2 Hero Level [Z] set, Var [1 Hero Level [H]]'s Value
Var Oper: [2 Hero Level [E] set, Var [1 Hero Level [Z]]'s Value
sind unnötig, ob du jetzt Zehner oder Hunderter mod 10 machst, ist egal, kommt aufs gleiche Ergebnis raus

btw, wieso ist Variable 2 sowohl Z wie auch E?

Also: du brauchst:
Var Oper:[1-3] set, Level Zack
Var Oper: [2 Hero Level [Z] mod, 100
Var Oper: [3 Hero Level [E] mod, 10
würde mit der eingabe 546 machen:
V1,V2,V3 = 546
V2 = V2 mod 100 = 546 mod 100 = 46
V3 = V3 mod 10 = 546 mod 10 = 6
Also als Endergebnis wird 546 aufgesplittet in 546, 46 und 6, das was du wohl willst

Kelven
18.06.2006, 14:52
Warum wird bei der Zehnerstelle eigentlich Mod 100 genommen? Die Level gehen doch nur bis 50 bzw. 99.

Ich würde einfach Variable 1 = Level setzen, dann den Wert durch 10. Damit hab ich die Zehnerstelle. Dann Variable 2 = Level und Mod 10, dann hab ich die Einerstelle.

lokipoki
18.06.2006, 14:58
Wie muessen dann die Events auf der Menue Map aussehen?

Wenn mein Charakter das Level 1 besitz wird immer 11 ausgegeben.

Erster Event

If Hero Level [E] >= 1 (dann das "einer" charset, dabei auf action key gestellt)

Zweiter Event

If Hero Level [Z] >= 0 (dann das "nuller" charset, dabei auf action key gestellt)

Was mache ich falsch???

Kelven
18.06.2006, 15:31
Die Anzeigeevents müssen jeweils 10 Eventseiten haben, bei denen du mit 0 anfängst und dann aufsteigend die weiteren Zahlen einbaust. Also Seite 1 hat Bedingung "Wenn Variable > 0", dann die nächste Seite "Wenn Variable > 1" usw. Als Charset wählst du für die Seiten dann die entsprechende Zahl.

lokipoki
19.06.2006, 09:54
Ok hab Variabel 1 und 2 auf Zack Level gesetzt und beide mod 10 genommen. Bei der Ausgabe von Level 1, wird aber bei mir 11 ausgegeben.

Was mach ich falsch?

Kann mir jemand die Ausgabe mal schicken??

Kelven
19.06.2006, 12:50
Du mußt bei der Zehnerstelle durch 10 teilen, nicht Modulo nehmen. So sieht es bei mir im Maker aus:



Change Var: Var[0001:Zehnerstelle] (Set)-Alex's Level
Change Var: Var[0002:Einerstelle] (Set)-Alex's Level
Change Var: Var[0001:Zehnerstelle] (/)-10
Change Var: Var[0002:Einerstelle] (Mod)-10

Caine Luveno
19.06.2006, 20:03
Die Zehnerstelle braucht man eigentlich gar nicht berechnen.

Und wenn man das mit / 10 macht, kann es passieren das der Maker bei z.B. 45 4,5 anfängt zu runden und das Ergebniss stimmt nicht mehr.

Ich würde mir ganz einfach die Einerstelle per Mod 10 holen und dann folgernde Abfragen durchführen:




//für die Zehner:
if (Var: Zehnerstelle>90) {
Showpicture Id:1, zahl_9.png;
} else {
if (Var: Zehnerstelle>80) {
Showpicture Id:1, zahl_8.png;
} else {
//und so weiter
}
}


//für die Einer:
if (Var: Einerstelle=9) {
Showpicture Id:2, zahl_9.png;
} else {
if (Var: Einerstelle=8) {
Showpicture Id:2, zahl_8.png;
} else {
//und so weiter
}
}



Ok hab Variabel 1 und 2 auf Zack Level gesetzt und beide mod 10 genommen. Bei der Ausgabe von Level 1, wird aber bei mir 11 ausgegeben.

Was mach ich falsch?

Die Zehnerstelle darf man modulo nehmen. Aber nicht 10. Modulo gibt den Rest einer Division aus.

Effekt:
45 / 10 = 4 Rest 5 (Mod gibt 5 aus).

45 / 100 = 0 Rest 45 (Mod gibt 45 aus).

Daher kommt es das du zweimal eine 1 bekommst.

1 / 10 = 0 Rest 1.

Wenn du das auf Einer als auch auf Zehner anwendest haben beide den Wert 1 und so kommt das halt...

Kelven
19.06.2006, 20:25
lokipoki zeigt das aber gar nicht mit Pictures an, außerdem rundet der Maker soweit ich weiß nicht, sondern schneidet den Rest weg.

Mal angenommen der Held hat Level 35, dann würde das nach meiner Vorgehensweise so aussehen:

35/10 = 3
35 mod 10 = 5

Sollte richtig sein. Es stimmt aber, dass man sich die Zehnerstelle sparen kann, in dem man bei der Anzeige direkt abfragt, ob der Wert >10, 20, 30 usw. ist.

Dhan
23.06.2006, 10:56
Wozu /10? Man kann doch auch abfragen > 30 > 40 > 50 etc, muss man ja nicht mit > 3 > 4 > 5 machen


edit: @Kelven: uh joa jetz seh ichs ^^ in zu großem Zeitdruck posten bringts nech stell ich fest ^^

Kelven
23.06.2006, 12:46
Jo, das hab ich im Beitrag vorher ja auch geschrieben. ;)