Notes |
(0004609)
Natter
03.09.11 04:09
|
Hmm, ist eine Kombination aus mehreren Fehlern. Die eigentliche Ursache liegt im Spielsatz. Das Kartenskript enthält einen Fehler:
procedure CalculateMapSize(Units : Integer);
begin
MapWidth := 2;
MapHeight := 2;
end;
Die Karte besteht dadurch nur aus 4 Feldern - maximal 4 Einheiten können platziert werden, bei der 5. kommt eine leicht abgeänderte Fehlermeldung. Jetzt kommt der zweite Fehler hinzu - diesmal im Programm selbst. Das Suchen nach einer freien Position zum platzieren passiert mit repeat ... until. Um eine Endlosschleife zu vermeiden, gibt es eine Zählvariable mit Abbruchbedingung nach 5000 Versuchen. Kurz vor dem setzen der Einheit hat Christian aber nochmal eine Sicherheitsprüfung eingebaut, die ASchaut, ob die ermittelte Position überhaupt auf der Karte liegt. Da keine Position ermittelt wurde sondern die Suche nach 5000 durchläufen abgebrochen wurde, tut sie das nicht. Christian hat hier nochmal eine Zufallssuche eingebaut, wieder mit repeat until. Diesmal fehlt allerdings die Abbruchbedingung. Das Programm hängt in einer Endlosschleife. |
|
(0004610)
Natter
03.09.11 04:12
|
Die Endlosschleife im Programm hab ich jetzt abgefangen. Das eigentliche Problem im Spielsatz muss durch eine aktualisierte Karte behoben werden. Wer nicht auf eine neue Version des Spielsatzes warten will, kann dies theoretisch auch selbst tun. Das sollte den Fehler übrigens beheben, ohne das man nochmal von vorne beginnen muss. |
|
(0004611)
Natter
03.09.11 19:30
|
Hab hier mal noch die korrigierte Karte mit angehängt. Diese kann über den Spielsatzeditor (unter Resourcen) gegen die alte getauscht werden (Rechtsklick auf 'ww Silo Engine Ersatz' und dann Resource ersetzen auswählen). |
|