Die Position speichern hat aber für dich keinen Mehrwert, da du ja trotzdem wissen musst, welche Variable du überhaupt referenzieren musst. Du müsstest also am Ende dennoch irgendwo die ID der Skill-Variable speichern - und hättest dann wieder nichts gewonnen.
Du müsstest dann ALLE Skill-Variablen einzeln durchgehen und schauen, wo die sind - wenn du später Skills hinzufügst musst du das jedes Mal anpassen und wenn es mehr als 27 Skills sind hast du auch mehr abfragen als nötig. Andersherum, die einzelnen Positionen durchgehen und schauen "Welcher Skill liegt da?" ist da effizienter.
Einfacher ist, wenn du erstmal überlegst, was du an Konstanten hast - das wären deine 3*9 Felder, die irgendwie belegt oder nicht belegt sind. Da die konstant sind, kannst du die als Ausgangspunkt nehmen und dann halt den dynamischen Part eintragen, nämlich, was denn in dem Slot drinsteckt. Und da du die ID der Variablen dieser Felder kennst und die einmal am Stück irgendwo im Maker einrichten kannst (bspw. 100-126) kannst du das dann automatisch mit Pointern machen und sparst dir die ganzen Abfragen von Hand.
Wenn du die Skills dagegen abfragst anstatt der Felder musst du wieder von Hand in die Abfragen wenn du was hinzufügst - und kannst das auch nicht mehr so schön automatisieren, da die IDs dann ja vermutlich nicht mehr gleichmäßig verteilt sein werden.
? Tue ich nicht. Ob ein Skill erlernt wurde kann man zum Teil der Skill-Variable machen: Wenn der Skill-Lvl = 0 ist bzw die ganze Variable 0, ist der Skill nicht erlernt. Oder du fügst den Skill erst bei Erlernen der Liste hinzu, das geht auch - bis dahin ist die Variable ja per default 0.
Du brauchst bloß eine Liste pro Char, da dir sonst die verfügbaren Ziffern ausgehen, und eine "Masterliste", damit du selbst den Überblick über deine selbst-vergebenen Skill-IDs behältst.
(EDIT: Aaah, ich glaube ich weiß, was du meinst. Ich ging davion aus, dass nicht erlernte Skills bei dir auch nicht angezeigt werden sollen, daher schrieb ich, dass die Skill-ID erst bei erlernen eingetragen wird. Kann man aber auch zu Beginn eintragen und einfach Level auf 0 setzen oder so.)
Ja. Wenn du einfach den Skill-Level addierst trennst du die Ziffern ja nicht mehr voneinander, sprich, du würdest die ursprüngliche, bereits vorhandene Zahl verfälschen. Wenn die Skill-ID = 12 ist und der Level 2, dann wäre 12+2=14. Das bekommst du so aber nie wieder auseinander. 12+(2*100) = 12 + 200 = 212 dagegen schon: Die Hundertserstelle (2) ist das Level, die Zehner- und Einerstelle (12) die ID.
Den Skill-Level hatte ich jetzt mal in die Variable mitaufgenommen, damit du dort alle Infos hast - kannst es natürlich aus der Anzeige raus lassen. Wie gesagt, kannst den höchstens auch nutzen um abzufragen, ob ein Skill erlernt wurde - ist der Level = 0, kann der Char den Skill nicht, oder so.
Mal aufgedröselt:
1. Setze Pic Pointer auf die Nummer des Felds, bei dem wir sind
2. +100, damit der Pic-Pointer nun die ID der Variable hat, die unserem Feld zugeordnet ist
3. Setze die Pic-Pointer Variable auf den Inhalt der Variable, deren ID im Pic-Pointer momentan gespeichert ist - wenn Picpointer also = 100 ist und Variable 100 = 5, wäre der Picpointer nun = 5.
4./5. Befehl liest nun den Skill-Level aus, was ich so oder so tun würde, einfach um zu gucken, ob der Char den Skill überhaupt kann.








Zitieren