Script in Arbeit: Intelligente Zielsuche

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Script in Arbeit: Intelligente Zielsuche

Post by falcon55 »

Wer kennt es nicht, man sitzt in einem M3, 500m vor einem ebenfalls ein M3 mit niedrigen Schilden und man drückt die Zielerfassung um es zu erfassen. Stattdessen wird ein M1 in 15km Entfernung anvisiert. Bis man es geschafft hat, das M3 anzuvisieren, sind dessen Schilde voll und es klebt einem am Heck.

Ich arbeite zurzeit an einer intelligenten Zielerfassung, die diese Probleme beheben soll.
Das Script basiert auf den Notizen von Gazz:
http://forum.egosoft.com/viewtopic.php? ... 06#2428306

Jeder Gegner wird einzeln bewertet und am Ende wird der Gegner mit der höchsten Priorität ausgewählt.
Das Schreiben des Scripts ist nicht sonderlich schwer, dafür aber die Bewertung der Gegner. Hier brauche ich eure Hilfe

Zurzeit wird jeder Gegner folgendermaßen bewertet:

Ignorieren
Wenn ein Ziel bereits markiert ist und der Spieler ein Neues anfordert erhält das Ziel -100 Punkte

Geschwindigkeit
Die Geschwindigkeit wird mit der Lasergeschwindigkeit des Spielers verglichen:

Code: Select all

100 * 200 / ( ( 2 * Geschwindigkeit + Lasergeschwindigkeit ) * 100 / Lasergeschwindigkeit ) - 100 
Ein Xenon L mit einer Geschwindigkeit von 165m/s würde bei einer EMP (588m/s) als Spielerwaffe +28 Punkte bekommen.


Ziel des Feindes
Wenn der Feind das Spielerschiff zerstören möchte, erhält er +75 Punkte.
Attakiert er ein anderes Schiff des Spielers erhält er +25 Punkte (außer TS, TP +100; TM +90)

Entfernung
Die Entfernung des Feindes wird mit der Feuereichweite verglichen:

Code: Select all

100 * 200 / ( ( Entfernung + Reichweite ) * 100 / Reichweite ) - 100 
Bei einem Feind 750m entfernt ist und der Spieler EMPs benutzt (Reichweite 2000m) erhält er +45 Punkte.
Desto weiter die Gegner entfernt sind, desto irrelevanter sind die Entfernungen zwischen ihnen.

Winkel zum Spielerschiff
Wenn sich der Gegner direkt vor dem Spielerschiff befindet, erhält er +100 Punkte. Hat er eine Abweichung von 10° zum Spielerschiff erhält er +90 Punkte, bei einer Abweichung von 20° sind es +80 Punkte usw.
Desto weiter der Gegner vom Spielerschiff entfernt ist, desto irrelevanter ist der Winkel:

Code: Select all

Winkelbonus * ( -1000000 / Feuerreichweite * Entfernung + 1000000 ) / 1000000 
Der Winkel zu einem Gegner der 20 km entfernt ist, ist schließlich egal.

Stärke

Die Stärke des Gegners wird Parabelförmig berechnet:

Code: Select all

( S - G )^2 / -500000 + 100 
S= Anzahl an Schüssen des Spielers nötig um Gegner zu zerstören
G= Anzahl an Schüssen des Gegners nötig um Spieler zu zerstören
Wenn man also in einem M4 sitzt, wird vorzugsweise ein gleichstarkes M4 ausgewählt, oder aber auch ein M3 oder M5. Es wird aber bestimmt kein M6 ausgewählt (außer es gibt nichts anderes).
Ebenso wird sich ein M1 einen möglichst gleichstarken Gegner suchen und M5 vermeiden.

Am Ende werden alle Boni addiert, der Feind mit der höchsten Bewertung wird ausgewählt.

Hier brauche ich eure Unterstützung. Der Bewertung kann sicherlich deutlich verbessert werden. Habt ihr Vorschläge für bessere Formeln? Sind weitere Bewertungen wünschenswert? Oder ist eine der obigen Bewertungen unsinnig?

Das aktuelle Script könnt ihr hier runterladen:
http://www.xplanefreeware.net/hosted/de ... /I_AIM.zip
Um es zu benutzen muss ein Hotkey für 'I AIM' angelegt werden.
Es funktioniert soweit, nur die Bewertungen sind wahrscheinlich noch nicht perfekt, weshalb ich um eure Hilfe bitte.
Jeder Scan generiert zurzeit die Log Datei 7375 in der die meisten Bewertungen ausgelesen werden können.
Last edited by falcon55 on Fri, 22. Jan 10, 16:37, edited 3 times in total.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

wenn du dir nicht sicher bist, wie das Punktesystem aufgebaut werden soll mach es doch direkt durch den Benutzer einstellbar, ohne den Script-Code ändern zu müssen (t-files bieten sich hierfür optimal an) und gib darin einfach deine default-Werte an ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Danke für den Vorschlag, aber glaubst du ernsthaft, dass sich Benutzer eigene Formeln in den t-files basteln werden? :wink:

Ich denke, dass wir gemeinsam gute Gewichtungen und Formeln finden können, die am effektivsten in den meisten Situationen sind.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Am wichtigsten ist, dass sich der Gegner in Feuerreichweite vor dem Schiff befindet. Das könntest du natürlich über den Winkel zum Spielerschiff herausfinden, aber leider bietet der SE keine Möglichkeit den Arcussinus, -cosinus oder -tangens zu berechnen.
Es ist allerdings möglich herauszufinden, ob sich der Gegner in einem Kegel vor dem Spielerschiff befindet - Gazz hat dazu ein Library-Skript geschrieben.

Ansonsten würde ich UniTraders Vorschlag auch unterstützen. Das macht die Anpassung wirklich deutlich einfacher und für dich bedeutet es quasi keinen extra Aufwand (Werte im Setupskript aus der T-File lesen, statt dort zu definieren).

MfG,
ScRaT
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

ScRaT_GER wrote:Am wichtigsten ist, dass sich der Gegner in Feuerreichweite vor dem Schiff befindet. Das könntest du natürlich über den Winkel zum Spielerschiff herausfinden, aber leider bietet der SE keine Möglichkeit den Arcussinus, -cosinus oder -tangens zu berechnen.
Es ist allerdings möglich herauszufinden, ob sich der Gegner in einem Kegel vor dem Spielerschiff befindet - Gazz hat dazu ein Library-Skript geschrieben.
Genau. Dies ist bereits als 'Winkel zum Spielerschiff' implementiert (siehe oben). Was jetzt interessant ist, ist die Gewichtung. Ich könnte hier z.B. maximal 200 Punkte oder mehr vergeben. Irgendwelche Vorschläge?
Lord Leon
Posts: 35
Joined: Thu, 7. Jan 10, 01:12

Post by Lord Leon »

Weiters wichtig, ist das ziel eine Rakete die mich als Ziel hat?

Wie stark ist die Rakete?

Fliegt das Ziel auf mich zu, von mir weg (+50punkte) fliegt es vor mir vorbei (links nach rechts, oder umgekehrt)
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Danke, Lord Leon. Raketen werde ich definitiv mit einplanen.

Die Flugbahn des Gegners wird etwas schwieriger, mal sehen was ich da machen kann.

Ich habe jedenfalls das Script stark verbessert, die aktuelle Version könnt ihr bei dem Link oben runterladen.

-Der Fightskill wurde entfernt.
-Entfernung verbessert
-Die Relevanz des Winkels zum Spielerschiff nimmt mit der Entfernung ab
-Die Stärke des Gegners wird komplett neu berechnet
-Die Maximalwerte werden in der t-Datei Gespeichert (7375-L049.xml)
Dies ermöglicht bestimmten Kriterien eine höhere Relevanz zu geben.

Die neuen Formeln habe ich im Anfangspost editiert und erklärt.

Ein paar Punkte:
-Wieweit sollte die Geschwindigkeit des Gegners bewertet werden?
Soll es mit der Schiffgeschwindigkeit verglichen werden, oder mit der Lasergeschwindigkeit?
Oder genügen die schwache Schild- und Hüllenwerte schon als Gegnerbewertung?
Ein M5 wird z.B. bereits von einem M1 aufgrund seiner schwachen Schild- und Hüllenwerte ignoriert, solange es nichts besseres gibt.

-Was soll ich mit Zielen machen, die der Spieler nicht möchte?
Soll ich lediglich dem vorigen Ziel eine schlechte Bewertung geben, oder dem Schifftyp oder sogar der ganzen Schiffklasse?
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

-Wieweit sollte die Geschwindigkeit des Gegners bewertet werden?
Soll es mit der Schiffgeschwindigkeit verglichen werden, oder mit der Lasergeschwindigkeit?
Das Problem an der Lasergeschw. ist, dass man diese iirc nicht per Skript auslesen kann. D.h. du müsstest die gleiche Maßnahme wie Gazz ergreifen, alle Werte in einer T-File zu speichern.
Generell fände ich die Lasergeschw. als Kriterium besser als die Schiffsgeschw..
-Was soll ich mit Zielen machen, die der Spieler nicht möchte?
Soll ich lediglich dem vorigen Ziel eine schlechte Bewertung geben, oder dem Schifftyp oder sogar der ganzen Schiffklasse?
Ich würde nur das einzelne Schiff ignorieren, bzw. eine schlechte Wertung geben, da es ja sein könnte, das man das Schiff z.B. kapern möchte, wenn man die Eskorte erledigt hat.

Ich kann das Skript leider momentan nicht ausprobieren, werde aber am WE mal reinschauen.

MfG,
ScRaT
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Das Problem an der Lasergeschw. ist, dass man diese iirc nicht per Skript auslesen kann. D.h. du müsstest die gleiche Maßnahme wie Gazz ergreifen, alle Werte in einer T-File zu speichern.
Generell fände ich die Lasergeschw. als Kriterium besser als die Schiffsgeschw..
Doch, das ist in der Tat bereits möglich:
<RetVar> = get bullet speed of laser <Var/Ware>

Ich würde nur das einzelne Schiff ignorieren, bzw. eine schlechte Wertung geben, da es ja sein könnte, das man das Schiff z.B. kapern möchte, wenn man die Eskorte erledigt hat.
Da ist was dran. Mal sehen, ob man nicht die Intention des Spielers irgendwie erahnen kann...

Ich kann das Skript leider momentan nicht ausprobieren, werde aber am WE mal reinschauen.
Darüber würde ich mich sehr freuen.
Du kannst ja mal mit den Maximalwerten rumspielen und von deinen Erfahrungen berichten.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Doch, das ist in der Tat bereits möglich:
<RetVar> = get bullet speed of laser <Var/Ware>
Oh, na dann sollte es gehen. =)
Da ist was dran. Mal sehen, ob man nicht die Intention des Spielers irgendwie erahnen kann...
Da ich, wie gesagt das Skript noch nicht ausprobiert habe und mir auch noch nicht die Skriptdateien selber angesehen habe, weiß ich momentan nicht, wie das Skript selber funktioniert.
Schaltet man mit dem Hotkey die Ziele durch oder passiert das alles automatisch (sollte evtl. im Startpost erwähnt werden ;) )? Im ersteren Fall wäre es ja ziemlich einfach, im letzteren Fall vielleicht am einfachsten über einen weiteren Hotkey möglich (oder über die Doppelbelegung eines Hotkeys), der dafür sorgt, dass eine lokale Variable auf dem Ziel gesetzt wird, sodass es ignoriert wird.



MfG,
ScRaT
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Zurzeit ist es nur ein Hotkey.
Wenn dieser gedrückt wird, wird automatisch das Beste Ziel ausgewählt.

Ich plane, dass solange sich Feinde in Scannerreichweite befinden, das nächstbeste Ziel automatisch anvisiert wird, sobald das aktuelle Ziel zerstört wurde. Ansonsten soll man das Ziel ebenfalls per Hotkey wechseln können.

Zusätzlich sollen auch Raketen unter bestimmten Bedingungen (z.B. kein Heckgeschütz) automatisch anvisiert werden.

Erst wenn sich kein Feind mehr in Scannerreichweite befindet, wird sich das Script komplett beenden und muss per Hotkey erneut aufgerufen werden. So zumindest mein Plan :wink:

Ich habe das Script aktualisiert. Es ist wieder unter dem selben Link oben zu finden.
-Ein paar Fehler in den Formeln wurden behoben
-Neue Formel zur Bewertung der Geschwindigkeit
-Für alle Bewertungen kann somit jetzt ein Maximum festgelegt werden, wodurch sich die Prioritäten stark verändern lassen
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Lord Leon wrote: Fliegt das Ziel auf mich zu, von mir weg (+50punkte) fliegt es vor mir vorbei (links nach rechts, oder umgekehrt)
Ich könnte theoretisch berechnen, wo sich der Gegner ungefähr nach einer Sekunde befinden wird und diese Position für die Berechnung des Winkels zum Spielerschiff verwenden.

Praktisch würde es bedeuten, dass wenn sich z.B. ein Gegner direkt vor mir befindet, aber nach einer Sekunde schon aus dem Bild fliegen wird, er einen geringeren Bonus erhalten wird.
Andersherum würde ein Gegner, der sich jetzt neben mir befindet, aber mir in einer Sekunde vor das Fadenkreuz fliegen wird, eine höhere Bewertung bekommt.
Wäre das in etwa so, wie du es dir vorstellen würdest?
Lord Leon
Posts: 35
Joined: Thu, 7. Jan 10, 01:12

Post by Lord Leon »

So in die Richtung, da ein schiff das auf mich zu, bzw wegfliegt ein besseres ziel, aber auch eine grössere gefahr bwdeutet als zb ein vorbeifliegendes schiff welches seinen kurs erst anpassen muss.

eines noch zu raketen, geht es auszulesen ob eine rakete von freund oder Feind gestartet wurde, hatte einige kämpfe vor kurzem, und die Mk2 Zielhilfe hat immer wieder "Freundliche" Poltergeist Rakete anvisiert welche Feinde verfolgten. Blöd!!
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

es ist möglich auszulesen, aber ich denke dass sämtliche Raketen die auf deinen Besitz gestartet wurden sowieso feindlich sind.. und Raketen die auf nicht dem Spieler gehörende Schiffe gerichtet sind zu erfassen wäre ja blödsinn.. (anders kann man Raketen übrigens nicht erfassen.. man kann nur Raketen erfassen, die auf ein angegebenes Objekt gerichtet sind.) Die Standard-Zielerfassug dagegen sucht sich das erstbeste Objekt in Blickrichtung...



PS mit ner Lib von mir und Gazz ist es übrigens kein problem, die Flugrichtung eines Objektes abzuschätzen ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Geschwindigkeit
Die Geschwindigkeit wird mit der Lasergeschwindigkeit des Spielers verglichen:
Also ich weiß ned...
Wenn Du es sowieso schon "richtig" machen willst, dann ist das einzige Kriterium für Treffsicherheit die Flugzeit der Bullets.
MARS verwendet z.B. sowas in der Richtung aber ist vom System her nicht ganz vergleichbar.

Wichtig wäre nur, daß du für alle in Frage kommenden Schiffe Buch führst.
Möglichst genau jede 1s wird die Entfernung (und evtl. Position) notiert.

Dadurch kannst du ganz einfach delta v (Dv) ermitteln.
Eine Substraktion ist viel einfacher als die komplette Trigonometrie durchzuackern.

Flugzeit ist nur ( Entfernung / ( Bullet.speed +/- Dv)).

Geschwindigkeiten und Kurse der beiden Schiffe sind dadurch völlig irrelevant.
Wie die Flugzeit zustande kommt ist genauso unwichtig wie die offizielle bullet.speed des Lasers.

Und wenn die Flugzeit > 1-2 Sek ist, dann muß es schon ein richtig großes Ziel sein damit das irgendwie klappen kann.
Ganz einfacher Filter.


Günstige Schußposition ist natürlich wieder ein ganz anderes Kriterium, das hiermit nix zu tun hat.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Gazz,

du hast recht, dass deine Formel viel besser angibt ob ein Ziel getroffen werden kann oder nicht, aber für mein Script kann ich die Formel nicht benutzen.

Deine Formel gibt mir das bestmögliche Ziel für diesen Moment an, was z.B. für Geschütze interessant ist, die schnell das Ziel wechseln dürfen.

Mein Script ist allerdings nur für den Spieler. Wenn man ihm jede Sekunde ein neues Ziel geben würde, würde es nur verwirren. Deshalb können die Feinde nur genau einmal bewertet werden, was dann den besten Feind für den Spieler ergeben wird.
Stell dir vor, du hast einen Punktsingularitätsprojektor als Waffe. Vor dir Fliegt ein M5 mit 500 Sachen genau auf dich zu, laut deiner Formel also ein perfektes Ziel. Was ist jetzt aber wenn das Ziel abdreht? Es wird unmöglich zu treffen sein...

Deshalb scheint mir die Maximalgeschwindigkeit des Gegners ein besserer Anhaltspunkt zu sein. Oder habe ich da einen Denkfehler?
PS mit ner Lib von mir und Gazz ist es übrigens kein problem, die Flugrichtung eines Objektes abzuschätzen Wink
Das war auch meine Idee :wink:
Danke übrigens für das Script, es ist ja wahrlich ein Wundermittel für Alles!
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Maximalgeschwindigkeit an sich ist bedeutungslos, da sie ebenso positiv wie negativ wirken kann.
Vmax und Schiffsgröße sind aber dennoch als grober Schätzwert für die Manövrierfähigkeit brauchbar.

Schnelle Zielwechsel sind natürlich Quatsch aber ich sagte ja schon, daß das System nicht ganz kompatibel ist.

Im Prinzip aber schon. =P
Auch MARS wechselt ja nicht bei der kleinsten Veränderung im Wert zweier Ziele.
Das aktuelle Ziel bekommt ganz einfach einen X % Bonus so daß das zweite Ziel schon um X % "besser" sein muß, damit der Zeitverlust durch die Neuausrichtung der Laser (oder in deinem Fall, der Cockpitlaser) auch ökonomisch vertretbar ist.

Die Stickiness des Ziels läßt sich dann in TFile oder Menü beliebig einstellen.

Flugzeit der Projektile und Zielgröße sind nach wie vor das wichtigste "einfache" Kriterium für Treffbarkeit.

Was aber gerade bei Jägern als Ziel unheimlich viel ausmacht, ist die tatsächliche Wenderate. Ein Jäger, der eine leichte Kurve fliegt, ist bei mittlerer Entfernung kaum zu treffen. MARS berücksichtig das und kann so die Jäger ignorieren, die gerade "ausweichen". Bei deren scripts oder actions zu spionieren wäre sehr unsportlich. =P
(Außerdem sind diese Jäger im Moment keine Bedrohung, was aber wieder ein anderes Thema ist)
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
Lord Leon
Posts: 35
Joined: Thu, 7. Jan 10, 01:12

Post by Lord Leon »

Mars in die entwicklun einfliessen zu lassen währe fast schon unsportlich, da die inteligente ziel und waffenwahl, kombiniert mit den Flugfähigkeiten (mancher) spielerfast schon Cheaten währe.

Ich glaube der Hauptsinn der Zielwal sollte sein, das Ziel auszuwählen welches der Spieler auch wählen würde, wenn er die Hand vom Joystick weggeben könnte und das Ziel per Maus auswählen.
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Update:
Wenn der Spieler den Hotkey drückt, läuft eine Endlosschleife, die automatisch das nächste Ziel auswählt, sobald das aktuelle Ziel verloren wird (z.B. durch Zerstörung)

Wenn sich keine Feinde mehr in Scannerreichweite befinden wird das Script beendet.
Auch diese Funktion wird in Zukunft verbessert.

Achtung!:
Der Name des Hotkeys hat sich geändert, deshalb bitte erstmal die alte Version deinstallieren:
-Alle Script Dateien normal überschreiben
-Das Script setup.plugin.f55.IAIM.uninstall.xml aus dem uninstall Ordner in den Script Ordner legen
-Spiel Starten, speichern und beenden
-Das Script setup.plugin.f55.IAIM.uninstall.xml aus dem Script Ordner entfernen

-Das Script setup.plugin.f55.IAIM.uninstall.xml kann auch in Zukunft wieder verwendet werden, um das Script zu deinstallieren.

Flugzeit der Projektile und Zielgröße sind nach wie vor das wichtigste "einfache" Kriterium für Treffbarkeit.
Da stimme ich dir zu. Im Moment bin ich mir halt noch nicht sicher, wie genau ich es am besten in das Konzept des Scripts einbauen kann. Die Art und Weise wie du dies berechnest ist eher eine Momentaufnahme, ich hingegen brauche vielmehr die 'Durchschnittssituation' mit dem Gegner.
Mal sehen, ob mir da was einfällt.
Ich glaube der Hauptsinn der Zielwal sollte sein, das Ziel auszuwählen welches der Spieler auch wählen würde, wenn er die Hand vom Joystick weggeben könnte und das Ziel per Maus auswählen.
Da hast du vollkommen recht und das ist genau was ich versuche.
Ok, ich versuche das Script sogar noch ein bisschen intelligenter als den Spieler zu machen :P
falcon55
Posts: 42
Joined: Sun, 8. Apr 07, 23:17
x4

Post by falcon55 »

Zu den Raketen:
Ich habe den Command

Code: Select all

<RetVar> = <RefObj> -> get array of missiles aiming to me
gefunden, damit sollte ich wohl die Raketen bekommen, die den Spieler zerstören wollen.
Hat jemand eine Idee um Raketen zu finden, die meinen Besitz angreifen?


Update:
-einige Fehler behoben
-Für die Bewertung des Winkels wird die geschätzte Position des Spielers und des Gegners in der nächsten Sekunde genommen
-Wenn kein gegnerisches Schiff gefunden wird, wird die dichteste gegnerische Station anvisiert. Es erfolgt keine weitere Bewertung für Stationen (oder wäre eine Bewertung des Schildes oder Hülle sinnvoll?)

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”