Hi,
Heute mal mit einer grundlegenden Frage zu unterschieden in schleifen.
Es handelt sich bei dem Skript um dieses Thema: http://planet-ls.de/board/inde…age=Thread&threadID=17816
Im Skript, lese ich die Texte der Beschreibung mit einer Schleife aus. Man muss die Anzahl der Zeilen angeben und dann die Zeilen durchnummerieren:
[lua] self.numberTextLines = getXMLInt(xml, "MapBuyableObjects."..self.buyableText..".description#lines");
for k=1, self.numberTextLines do
local linesname = string.format("MapBuyableObjects."..self.buyableText..".line%d", k);
self.descriptionText[k] = getXMLString(xml, linesname .. "#description");
end;
[/lua]
Ein Beispiel für eine andere Schleife wäre so:
(orginale Sprayer.LUA)
[lua] local i=0;
while true do
local baseName = string.format("vehicle.sprayValves.sprayValve(%d)", i);
local node = getXMLString(xmlFile, baseName.. "#index");
if node == nil then
break;
end;
node = Utils.indexToObject(self.components, node);
i = i+1;
end;[/lua]
Meine Frage zu den Schleifen ist nun, welche Schleifen sind die besseren oder auch sinnvolleren??? Vielleicht gibt es sogar unterschiede in der Performance?!
Ein großer unterschied zu meiner Schleife ist natürlich, das ich bei mir die Anzahl der Zeilen vorher angebe und dann die Zeilen auch nummeriere.
Und noch eine kleine Frage bezüglich des Ladens einer XML aus dem Savegame. Da ich einzelnen Statuse der Objekte speichern muss, muss ich diese auch wieder laden, das klappt soweit auch schon ganz gut. Beim wälzen von anderen Map Skripten aus dem Ls11 ist mir diesbezüglich folgendes aufgefallen, dort wird vorm Laden der XML abgefragt:
[lua] if g_server ~= nil then
[/lua]
Wie ich aus eigener Erfahrung weiß, wirft mir g_server im MP beim Client ein Error aus (a nil value, bei falscher Abfrage ), also g_server ist für den Client nil!
Auf die jetztige Abfrage bezogen bedeutet das ja, das im MP der Client die XML nicht aus dem Savegame lädt. Sondern dann wohl vom Host erhält während der Synchronisierung zu Spielbeginn.
Sehe ich das richtig? Das ich im MP beim Client das Laden der XML aus dem Savegames "abschalten" muss?