Hallo,
da der Titel dann doch etwas konfus klingt muss ich wahrscheinlich genau erläutern.
In Key-Value-Tables kann der Key ja ne eigene Table sein. Wenn ich jenen Key nicht kenne, wie kann ich darauf zugreifen? Ein Beispiel:
Ich weiß die Class sieht so aus:
[lua]testClass = {
["table: 0A23AD78"] = { ... };
["table: 0A23AD79"] = { ... };
["table: 0D13A618"] = { ... };
}
[/lua]
Es werden zweieinhalb Sachen passieren die ich so nicht erwartet hätte:
- table.getn(testClass) wird 0 sein, dazu gleich mehr.
- for i=1, #testClass do wird nicht einmal durchlaufen, eben weil getn 0 (null) ist.
- Selbst ein arbiträr getestetes testClass[1] bringt nil.
Meine Theorie ist folgende: die tables in testClass sind nur die keys, nicht die values, evtl. hat testClass nichtmal values (wobei man eigentlich erwarten sollte das wäre der Inhalt der tables). Nicht existierende values (nil) heißen in lua normalerweise dass der Wert in testClass nicht existiert, bzw. zumindest nicht aufgerufen werden kann. Und wenn alle values nil sind, wird getn daher 0 auswerfen.
Ich weiß, das ist dreimal um die Ecke gedacht, aber anders kann ich mir es nicht erklären.
Wer es selbst mal ausprobieren möchte kann sich gerne die g_currentMission.tipTriggers printen lassen und dann getn, for usw. ausprobieren.
Bin für jegliche Aufklärung dankbar,
--Jakob