Anonymous | Login | Signup for a new account | 29.03.2024 16:57 CET |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0001623 | [X-Skript] Allgemein | major | always | 31.07.07 15:45 | 03.09.07 03:06 | ||||
Reporter | Natter | View Status | public | ||||||
Assigned To | Jim_Raynor | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | closed | Product Version | V0.910 - Beta 4 | ||||||
Summary | 0001623: mzUFO wird mit UFO.escape nicht sofort beendet | ||||||||
Description |
Wenn das letzte registrierte UFO mit UFO.escape entkommt, dann ird die Mission nicht sofort beendet (getestet durch anschließende Ausgabe von Nachrichtenfenstern). Dies ist eventuell auch die Ursache dafür, dass der aktuelle Spielsatz DarkAge abstürzt, sobald das UFO mit geskripteter KI verschwindet (event_UFOCommandComplete eird nochmal ausgelöst?). |
||||||||
Additional Information | |||||||||
Attached Files |
error-31-07-2007-14-24.txt [^] (3,095 bytes) 31.07.07 15:46 CommandTest.xms [^] (1,658 bytes) 01.08.07 00:40 UKI000Forschuhgsschiff.xms [^] (5,123 bytes) 01.08.07 01:16 |
||||||||
|
Notes | |
(0002586) Jim_Raynor 31.07.07 15:54 |
Häng mal bitte noch dein Testskript an, dann ist es für mich leichter zum testen ;) |
(0002587) Natter 31.07.07 16:26 edited on: 31.07.07 18:09 |
Du brauchst mehrere Skripte - hab sie dir alle in die UKI.zip gepackt. Ist nicht mehr der Orginalzustand, aber Fehler tritt noch auf. Ansonsten kannst du dir auch DarkAge aus dem Forum (Spielsatzintern) downloaden - dort müsstest du nur die Zeile UFO.UserKI:=true; ergänzen |
(0002588) DirkF 31.07.07 20:49 |
Man sollte sich vielleicht mal genau angucken, wann das Event "CommandComplete" ausgelöst wird und wann nicht - schließlich ging dieses Event früher ja auch öfter verloren, und jetzt scheint es auch bei UFO.Escape auszulösen obwohl das keinen Sinn ergibt... |
(0002589) Jim_Raynor 31.07.07 22:19 |
siehe Rückmeldung in http://www.xforce-online.de/forum/index.php?action=vthread&forum=13&topic=1571&page=-1#4 [^] Es wird kein CommandComplete mehr nach dem Escape aufgerufen ... |
(0002590) Jim_Raynor 01.08.07 00:40 |
So, ich kann es nicht nachvollziehen. Habe jetzt mal ein kleineres Testskript geschrieben und da gibt es keine probleme. Allerdings muss ich auch ehrlich sagen, dass ich garnicht so richtig weiß, wo denn eigentlich das Problem ist. Fakt ist: - die Events werden gelöscht, wenn auch das UFO aus dem Speicher gelöscht wird - bei Escape, wird kein CommandComplete ausgelöst. Es macht nichts weiter als Nachricht "entkommen" zu senden und dann das UFO-Objekt zu zerstören. - Wenn das letzte UFO mit Escape "zerstört" wird, läuft das Skript erstmal weiter, da die Prüfung ob alle UFOs weg sind, erst später passiert. Sofort beendet wird ein Skript nur mit mission_win, mission_loose oder mission_abort. Mit den Testskript da, konnte ich auch nichts so richtig anfangen, da da noch einiges fehlt (zum Beispiel die Globale Variable). Ich bitte also um ein allein-Ablauffähiges skript (kann auch eine angepasste Version von meinem sein), bei dem es zu dem Problem kommt. |
(0002591) Natter 01.08.07 01:17 |
Mit obigen Skript sollte es aber funktionieren. |
(0002593) Jim_Raynor 01.08.07 10:00 |
Na dann bin ich mal gespannt. Lässt sich der Fehler auch im Skript-Editor nachvollziehen oder nur im Spiel? Vielleicht hat es sich aber wirklich auch mit 0001612 und kann das deshalb nicht reproduzieren ... Naja mal schauen. |
(0002594) Natter 01.08.07 16:22 |
Nur im Spiel. In medit klappt alles. |
(0002596) Jim_Raynor 01.08.07 22:47 |
Gut, ich habe was gefunden, und das was ich gefunden habe gefällt mir nicht so richtig. Das Problem ist, dass Escape aus CommandComplete heraus aufgerufen wird ... und kann es passieren, dass noch einiges mit dem UFO gemacht wird ... Einzigster Workaround ist, einen Timer von einer Minute zu registrieren und dann dort das UFO flüchten zu lassen. In der Version 0.910 möchte ich da nichts mehr dran ändern, da es doch neue Probleme nachsichziehen kann. Zu dem brauche ich erstmal eine richtige Idee, wie ich das Problem elegant lösen kann ... |
(0002597) DirkF 01.08.07 23:05 |
Wie wäre es, wenn UFO.Escape zwar alle betreffenden Funktionen und ereignisse aufruft, aber statt dem Löschen des Objektes nur ein internes Flag "zu löschen" setzt. Und am Anfang der nächsten Rundenbearbeitung (bevor irgendwelche Skripte gestartet werdne können) werden alle UFOs mit diesem Flag gelöscht. Eventuell zusätzlich zum Flag das UFO noch auf hidden/keine Ereignisse umschalten (siehe die entsprechenden Mantistickets) |
(0002599) Jim_Raynor 02.08.07 10:05 |
Ja, ich denke so werde ich es machen. Aber ich bin mir unsicher, ob ich es noch in die Version 0.910 aufnehme oder nicht ... Wer weiß, was für Seiteneffekte das wieder auslöst. |
(0002600) DirkF 02.08.07 10:30 |
Gerade wegen der unbekannten Seiteneffekte meinte ich ja das man das UFO dann zusätzlich vom Geoscape wegnehmen sollte - und diese Funktion ist meines Wissens nach sowieso erst für später geplant, kann man ja beides in der 0.915 umsetzen. |
(0002604) Jim_Raynor 02.08.07 21:16 |
Ich habe es jetzt doch in die Version 0.910 aufgenommen. Schlimmere Seiteneffekte als jetzt können nicht auftreten ;) |
Mantis 1.0.7[^] Copyright © 2000 - 2007 Mantis Group |