Warning: ob_start(): function 'compress_handler' not found or invalid function name in /www/htdocs/xfmantis/core.php on line 18
0002031: zwei Aliensichtungen bei Einsatzstart zu sehen -> aufgehängt - Mantis
Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002031 [X-Force] Bodeneinsatz crash have not tried 17.10.08 13:07 26.03.09 03:00
Reporter LennStar View Status public  
Assigned To Natter
Priority normal Resolution fixed  
Status closed   Product Version V0.915a04
Summary 0002031: zwei Aliensichtungen bei Einsatzstart zu sehen -> aufgehängt
Description Einsatz gestartet, zwei Soldaten sehen ein Alien oder zwei verschiedene, ich tippe auf ersteres.

Maus lässt sich noch bewegen, aber nichts mehr damit machen.

Additional Information
Attached Files  Absturz_Bodenstart.jpg [^] (152,078 bytes) 17.10.08 13:07
 Screen002.jpg [^] (140,191 bytes) 25.10.08 13:02
 Screen003.jpg [^] (140,029 bytes) 25.10.08 13:02

- Relationships

SYSTEM WARNING: Creating default object from empty value

has duplicate 0002041closed Natter Blocker bei Start Bodeneinsatz 
related to 0002036closed  Alien-Hotspots werden ignoriert 

- Notes
(0003609)
LennStar
25.10.08 13:03

Noch mal zwei screens von so einem Vorfall.
Da scheint außerdem was mit der Karte nicht zu stimmen - die hotspots für Soldaten und Aliens liegen direkt nebeneinander.

Beide vom selben Einsatz (9 Aliens)
 
(0003646)
DirkF
25.01.09 13:03

Der Grund sowohl für die sichtbaren Aliens neben den Soldaten alsauch für den Blocker beim Start dürfte mit folgender Routine aus EinsatzKI.pas (unter TGroupKI.addunit) zusammenhängen:

    // Keine Spawnpunkte mehr vorhanden
    if length(fSpawnPoints)=0 then
    begin
      if length(fNotUsedSpawns)=0 then
      begin
        Dummy:=5000;
        repeat
          Pos:=Point(random(fMapSize.cx),random(fMapSize.cy));
          dec(Dummy);
          if Dummy=0 then
            break;
        until CalculateEntfern(Pos,fForbiddenZone)>fForbiddenRange;
      end
      else

Wenn es keine Spawnpunkte mehr gibt, werden zufällige Positionen gesucht - und zwar solange, bis derartige Positionen außerhalb der "Verbotenen Zone" gefunden werden.

1.Problem:
Diese Verbotene Zone soll der Startbereich der Spielersoldaten sein - aber ich habe keine Programmzeile mehr gesehen, in der der Startpunkt der Soldaten gespeichert wird. Abgesehen davon das das auf der Dorfkarte gar nicht klappen würde, weil sich die Soldaten (wenn eine größere Zahl vorhanden ist) dort auf mehrere Straßenfelder verteilen.
Ich vermute deshalb das die Speicherung dieses Startpunktes irgendwann gelöscht wurde (weil nicht mehr eindeutig), ohne die Auswirkungen auf diese Überprüfung zu bedenken.

2. Problem:
Die Verbotene Zone wird mit einem festen Radius von 20 um den (aktuell anscheinend undefinierten) Startpunkt gesetzt, und alle Alien-Hotspots in diesem Bereich sind ungültig.
Radius 20 geht aber weit über einen 15*15-Raum hinaus, und gerade bei kleineren Karten von 2x2 oder 3x3 Räumen kann eine mittig definierte Verbotszone einen großen Teil der Karte für Aliens ungültig machen.
Der Absturz passiert wahrscheinlich immer genau dann...


Eine vorübergehende Lösung sollte sein, die Karten größer zu machen und mit mehr Alien-Hotspots zu versehen. Auf Dauer müssen wir die "Verbotene Zone" aber wieder vernünftig definieren, damit solche Pannen nicht wieder vorkommen.
 
(0003654)
Natter
12.02.09 17:32

Also ich finde es nicht gut, weiter auf eine solche Zufallsfunktion zu setzen - dann werden die Karten nie ordentlich erstellt. Ich hab jetzt erstmal eine entsprechende Meldung ins spiel eingebaut (die kommt allerdings nur, wenn die Hotspots für Aliens nicht ausreichen).
 
(0003655)
Natter
12.02.09 17:41

Könnte der Fehler auch mit Bug 2019 zusammenhängen?
 
(0003656)
Natter
12.02.09 18:04

Also an Bug 2019 liegt es nicht (ist ja bei mir schon behoben, hab aber trotzdem gerade den Fehler gehabt). Aber an der ForbiddenRange liegt es glaube auch nicht unbedingt. Hab da testweise mal auf 200 gesetzt - trotzdem startet der Bodeneinsatz normal. Ich denke, es hängt wirklich irgendwie mit den Sichtungen gleich zu begin zusammen. Man kann zwar vermuten, dass im Falle eines zu großen verbotenen Bereiches die Chance steigt, dass die Aliens neben dem Spieler auftauchen, aber damit sollte das Programm umgehen können. Schließlichj kann das auch mal Absicht sein.
 
(0003657)
Natter
12.02.09 19:50

Habe jetzt die Ursache gefunden, wenn ich auch keine elegante Lösung habe. Das Problem ist die Reihenfolge bei Start des Bodeneinsatzes. Als erstes werden die Einheiten erzeugt (TGameFigure) - dabei wird auch gleich das passende AI-Skript gestartet. Anschließend werden die Einheiten auf der Karte platziert - wenn sie sich dabei sehen können, werden natürlich auch die entsprechenden Events ausgelöst. In dieser Phase ist aber noch nicht klar, wer eigentlich am Zug ist, daher kann es zu Schüssen kommen, die aber noch nicht wirklich ausgeführt werden, weil der Bodeneinsatz noch nicht richtig gestartet wurde. Wenn alles fertig erstellt wurde, wird die Zugseite auf Spieler gestellt. Beim wechsel der Zugseite muss aber immer solange gewartet werden, bis alle laufenden Aktionen beendet wurden (also z.B. Gehen, Schießen etc.). Folglich wird gewartet, bis alle Schüsse beendet wurden, was aber nie passiert. Daher kommt der Spieler nicht zum Zug.

Ich hab jetzt erstmal das AlienAI_default-Skript angepasst. Einige Events dürfen nicht schon bei StartMission, sondern erst z.B. bei NextRound registriert werden. Damit ist das Problem erstmal beseitigt, auch wenn es keine wirklich elegante Lösung ist.
 
(0003660)
DirkF
12.02.09 21:06

Stimmt - das ist keine elegante Lösung.
Außerdem muss die Abfolge der Startaktionen sowieso noch erweitert werden, z.B. um Skripte zur Platzierung von Ausrüstung auf dem Boden etc.

Ich mache mal einen Forum-Text zur Diskussion auf, das sollte besser geplant werden.
 
(0003723)
Natter
25.02.09 06:43

Hatte gestern bei meinen Tests wieder Probleme mit dem Einsatzstart. Zwar hing es nicht mehr mit Sichtungen zusammen, trotzdem bliewb der Einsatz hängen.

Ich habe aber noch eine Idee, wie man das beheben kann (und damit auch die Umstellung im Skript überflüssig macht). Muss ich heute Abend mal ausprobieren.
 
(0003724)
Natter
25.02.09 16:33

TDXIsoEngine.NextRound -> fFigures.WaitForRoundEnd;
wird in der nullten Runde nicht mehr aufgerufen. Damit sollte das Problem erledigt sein (und hoffentlich kein neues auftreten). Soweit ich das sehe, wird der Aufruf sowieso nur gebraucht, wenn der Spieler die Runde beendet, obwohl seine Einheiten noch Befehle ausführen (z.B. laufen).

Damit können die Events auch wieder in StartMission registriert werden (was dann gegebenenfalls schon zu Spielstart zu einer Rundenunterbrechung führen kann).
 

- Issue History
Date Modified Username Field Change
17.10.08 13:07 LennStar New Issue
17.10.08 13:07 LennStar File Added: Absturz_Bodenstart.jpg
25.10.08 13:02 LennStar File Added: Screen002.jpg
25.10.08 13:02 LennStar File Added: Screen003.jpg
25.10.08 13:03 LennStar Note Added: 0003609
25.10.08 23:24 DirkF Relationship added related to 0002036
23.11.08 12:28 DirkF Relationship added related to 0002041
25.01.09 13:03 DirkF Note Added: 0003646
12.02.09 17:32 Natter Note Added: 0003654
12.02.09 17:41 Natter Note Added: 0003655
12.02.09 17:41 Natter Status new => feedback
12.02.09 18:04 Natter Note Added: 0003656
12.02.09 18:04 Natter Status feedback => confirmed
12.02.09 19:50 Natter Status confirmed => resolved
12.02.09 19:50 Natter Fixed in Version  => V0.915a05
12.02.09 19:50 Natter Resolution open => fixed
12.02.09 19:50 Natter Assigned To  => Natter
12.02.09 19:50 Natter Note Added: 0003657
12.02.09 20:07 Natter Relationship replaced has duplicate 0002041
12.02.09 21:06 DirkF Note Added: 0003660
25.02.09 06:43 Natter Note Added: 0003723
25.02.09 06:43 Natter Status resolved => confirmed
25.02.09 16:33 Natter Status confirmed => resolved
25.02.09 16:33 Natter Note Added: 0003724
26.03.09 03:00 Gast Status resolved => closed


Mantis 1.0.7[^]
Copyright © 2000 - 2007 Mantis Group
Powered by Mantis Bugtracker