Da ich eher MD Scripte schreibe, habe ich mal etwas recherchiert und eine auch eine Lösung parat und diese getestet.
Bei mir waren vor dem Scriptaufruf ca 20.500 Spacefly-Scripte auf dem Stack.
Beim Aufruf hat das Script gemeldet, dass es 3.500 Spaceflys gekillt hat. Eine Kontrolle im Scripteditor hat ergeben, dass tatsächlich danach nur noch 17.000 Spacefly-Scripte auf dem Stack waren - scheint also zu funktionieren.
Das Script ist so geschrieben, dass es im MD manuell gestartet werden muss.
Zudem ist es aktuell auf die Entfernung von 3 Sprüngen begrenzt, weil es schon bei 9 Sprüngen ewig gebraucht hat.
Wenn man sein ganzes Universum bereinigen möchte, sollte man das Script noch etwas weiterentwickeln, so dass wirklich alle Sektoren erfasst werden. Ich weiß nicht, ob das Spiel vollständig abstürzt wenn man "99" einträgt, oder ob es einfach ewig dauert -so lange wollte ich jetzt nicht warten.
Code: Select all
<cue name="KillSpacefly">
<condition>
<check_all>
<cue_completed cue="dummy"/>
</check_all>
</condition>
<action>
<do_all>
<find_object class="spacefly" multiple="1" group="SpaceFlyGroup">
<sector x="10" y="10"/>
<jumps max="3"/>
</find_object>
<incoming_message author="Debug" text="Anzahl Raumfliegen zu löschen: {group.object.count@SpaceFlyGroup}"/>
<destroy_group group="SpaceFlyGroup"/>
</do_all>
</action>
</cue>
Ich bin gespannt ob das bei |K.O.S.H. auch funktioniert!?
P.S.: habe das Script gerade mal mehrfach laufen lassen und die jumps nach jedem durchlauf um 3 erhöht - am Ende dann auf 99 gesetzt. Dadurch konnte ich die Spacefly-Scripte bis auf 4.100 reduzieren.
Dann hat das MD-Script aber keine weiteren Spaceflys gefunden. Die 4.100 restlichen dümplen also irgendwo in einem abgetrennten Sektor herum, der nicht über "Jumps" ermittelt werden kann. Den Effekt hatte ich zuletzt mit Aldrin.
Gebracht hat das Killen der 16.000 Scripte auf dem Stack aber nur 2-3 FPS
Sorry - habe gerade gesehen, das JSDD das Gleiche schon ein paar Seiten vorher gepostet hat...