Archiv verlassen und diese Seite im Standarddesign anzeigen : Errechnen und Ausgabe der Level...
lokipoki
18.06.2006, 09: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?
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
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, 13: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???
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, 08: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??
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, 19: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...
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.
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 ^^
Jo, das hab ich im Beitrag vorher ja auch geschrieben. ;)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.