- Neue Lib.: Kapern und Schleudersitz [Update] -
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
Hey
Ist ein wenig Arbeit diese ganzen Scripte rauszusuchen und dann den jeweiligen Schiffen das passende Script zuzuordnen, aber nicht schwer.
Wenn man darauf aufbaut, sind alle Schiffe im Universum in der Lage zu Kapern und nicht nur der Spieler. Es würde dann auch keine Endlosschleife laufen und das Script nur aufgerufen, wenn es gebraucht wird.
Soweit mir bekannt geworden ist, wird das Spielerschiff dieses Signal nicht senden. Ist somit auch nicht zu Kapern. Werde ich mal Testen.
Gruß,
Micha
Habe da nur ein Haken entdeckt. Es ist möglich, ein Schiff anzuvisieren und abzuwarten, bis die Schilde von einem anderem Schiff runtergeschossen werden um dann erst mit meiner Attacke zu beginnen. Die Lib wird gestartet und mit (wenig) Glück hat man das Schiff gekapert. Das ist etwas zu leicht, gerade wenn man sich in einen Fight einmischt.Ich hätte es halt so gemacht, dass man das Ziel des Spielers überprüft (wie du es gemacht hast) und dann das Script startet (1mal) und fertig.
Es gibt eine Möglichkeit, das 'signal_attacked' abzufangen und die Lib zu Starten. Habe damit auch Versuche unternommen. Doch dann muß man noch die Scripte mit einbinden, die eigentlich für dieses Signal geschrieben wurden. Ansonsten werden sich die Angegriffenen Schiffe nicht verteidigen.(oder man lässt es einfach weiterlaufen und wartet ob jemand Anderes das Schiff kapert).
Ist ein wenig Arbeit diese ganzen Scripte rauszusuchen und dann den jeweiligen Schiffen das passende Script zuzuordnen, aber nicht schwer.
Wenn man darauf aufbaut, sind alle Schiffe im Universum in der Lage zu Kapern und nicht nur der Spieler. Es würde dann auch keine Endlosschleife laufen und das Script nur aufgerufen, wenn es gebraucht wird.
Soweit mir bekannt geworden ist, wird das Spielerschiff dieses Signal nicht senden. Ist somit auch nicht zu Kapern. Werde ich mal Testen.
Gerne, ich werde mal versuchen die Lib Spieler unabhängig in X2 einzubinden.Also ich fänd's jedenfalls gut wenn du das Script noch weitermachst.
Gruß,
Micha
-
- Posts: 820
- Joined: Mon, 16. Feb 04, 13:08
Update
- Khaak können ab sofort keine Schiffe kapern
Proteste bitte hier

- Khaak können ab sofort keine Schiffe kapern
Proteste bitte hier

da kenn ich mich leider nicht ausMichaRose wrote:Es gibt eine Möglichkeit, das 'signal_attacked' abzufangen und die Lib zu Starten. Habe damit auch Versuche unternommen. Doch dann muß man noch die Scripte mit einbinden, die eigentlich für dieses Signal geschrieben wurden. Ansonsten werden sich die Angegriffenen Schiffe nicht verteidigen.

-
- Posts: 317
- Joined: Mon, 9. Feb 04, 18:12
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
dPM_HeMan:
Habe ich geschafft! Das Signal wird abgefangen, die lib gestartet und danach sofort zum offiziellen Script gesprungen. Das ganze wird dann durch eine ini. Datei bei Programmstart geladen.
Derzeit bin ich in der lib selber am machen. Wenn sie meiner Meinung nach einwandfrei Funktioniert, dann werde ich dir die lib und meine Vorstellungen, was man noch einfügen könnte, mailen. Was meinst Du dazu?
Testen konnte ich das gestern Abend nur ganz kurz, aber ich habe festgestellt, das wenn ein Schiff mit einem einzigen Schuß zerstört wird, der Pilot aussteigt. Leider wurden bei anderen Schlachten die Fight Commandos des Angreifers beendet und die lib dafür gestartet. Nach dem ersten Schuß! Muß ich noch ein wenig dran Arbeiten und das Problem lösen!
Ich habe auch die lib ein wenig (viel) umgeschrieben, die Grundfunktionen und Vorraussetzungen sind aber immer noch die selben. Die lib ist jetzt gradliniger, sie fängt oben an und arbeitet sich dann Funktion um Funktion nach unten durch. Es macht es so auch einfacher neue Funktionen hinzuzufügen, Änderungen vorzunehmen oder Bugs zu beseitigen.
Zu den Änderungen:
1. Es wird der lib auch der attacker übergeben.
2. Passagiere werden nicht als Namensarray, sondern als Anzahl angegeben.
3. Passagier- und Pilotennamen werden Rassenabhängig zufällig ausgewählt.
4. Das gekaperte Schiff fliegt wenn möglich zur nächsten Station oder entfehrnt sich aus dem Schlachtgetümmel.
5. Ist das Schiff nach einer Minute wieder Kampffähig (Schild, Hülle, Laser), wird es dich Unterstützen.
6. Das Abbrechen der While Schleife wurde verbessert.
7. Das wichtigste: Jede Rasse kann Kapern, oder gekapert werden. Bei den Khaak muß mans noch testen.
Schiffe, die mit der MK3 Arbeiten haben da eine eigene Behandlung des Signals und werden daher auch nicht an die lib gebunden. Soviel steht fest!
Gruß,
Micha
Habe ich geschafft! Das Signal wird abgefangen, die lib gestartet und danach sofort zum offiziellen Script gesprungen. Das ganze wird dann durch eine ini. Datei bei Programmstart geladen.
Derzeit bin ich in der lib selber am machen. Wenn sie meiner Meinung nach einwandfrei Funktioniert, dann werde ich dir die lib und meine Vorstellungen, was man noch einfügen könnte, mailen. Was meinst Du dazu?
Testen konnte ich das gestern Abend nur ganz kurz, aber ich habe festgestellt, das wenn ein Schiff mit einem einzigen Schuß zerstört wird, der Pilot aussteigt. Leider wurden bei anderen Schlachten die Fight Commandos des Angreifers beendet und die lib dafür gestartet. Nach dem ersten Schuß! Muß ich noch ein wenig dran Arbeiten und das Problem lösen!
Ich habe auch die lib ein wenig (viel) umgeschrieben, die Grundfunktionen und Vorraussetzungen sind aber immer noch die selben. Die lib ist jetzt gradliniger, sie fängt oben an und arbeitet sich dann Funktion um Funktion nach unten durch. Es macht es so auch einfacher neue Funktionen hinzuzufügen, Änderungen vorzunehmen oder Bugs zu beseitigen.
Zu den Änderungen:
1. Es wird der lib auch der attacker übergeben.
2. Passagiere werden nicht als Namensarray, sondern als Anzahl angegeben.
3. Passagier- und Pilotennamen werden Rassenabhängig zufällig ausgewählt.
4. Das gekaperte Schiff fliegt wenn möglich zur nächsten Station oder entfehrnt sich aus dem Schlachtgetümmel.
5. Ist das Schiff nach einer Minute wieder Kampffähig (Schild, Hülle, Laser), wird es dich Unterstützen.
6. Das Abbrechen der While Schleife wurde verbessert.
7. Das wichtigste: Jede Rasse kann Kapern, oder gekapert werden. Bei den Khaak muß mans noch testen.
Warum eigentlich nicht? Das macht es doch noch spannender. Man könnte auch ein Array übergeben in dem steht wer (nicht) kapern darf. Als Ersatz für den Parameter 'Capture possible'.- Khaak können ab sofort keine Schiffe kapern
Schiffe, die mit der MK3 Arbeiten haben da eine eigene Behandlung des Signals und werden daher auch nicht an die lib gebunden. Soviel steht fest!
Sau schwer umzusetzen! Aber eine gute Idee für ein eigenes 'Khaak Spionage' Script.fliegt dan nur audf wen man das Schiff Scannt
Gruß,
Micha
-
- Posts: 820
- Joined: Mon, 16. Feb 04, 13:08
klar, mach dasMichaRose wrote:Derzeit bin ich in der lib selber am machen. Wenn sie meiner Meinung nach einwandfrei Funktioniert, dann werde ich dir die lib und meine Vorstellungen, was man noch einfügen könnte, mailen. Was meinst Du dazu?

zu 1. 2. 4. 5. :MichaRose wrote:Zu den Änderungen:
1. Es wird der lib auch der attacker übergeben.
2. Passagiere werden nicht als Namensarray, sondern als Anzahl angegeben.
3. Passagier- und Pilotennamen werden Rassenabhängig zufällig ausgewählt.
4. Das gekaperte Schiff fliegt wenn möglich zur nächsten Station oder entfehrnt sich aus dem Schlachtgetümmel.
5. Ist das Schiff nach einer Minute wieder Kampffähig (Schild, Hülle, Laser), wird es dich Unterstützen.
6. Das Abbrechen der While Schleife wurde verbessert.
7. Das wichtigste: Jede Rasse kann Kapern, oder gekapert werden. Bei den Khaak muß mans noch testen.
das entfremdet ein wenig den Sinn und Zweck, zu dem ich dass eigentlich gemacht habe, besonders Punkt 1. ,da der Sinn ja war ein Schiff zu erstellen, dass von jedem Angreifer gekapert werden kann, der grade vorbeikommt. Man erstellt halt ein Schiff, startet das Script und wartet ab was passiert; sollte es irgendwann z.B. von Piraten angegriffen werden, ham die halt ne Chance das zu erobern (oder der Pilot ne Chance sich zu retten, z.B nützlich beim Universumshändler). Punkt 2 ist insofern ungünstig, weil ich die Passagiere auch teilweise auf andere schiffe übertragen möchte, aber na gut mach du mal und ich guck mir das dann an

ja schon, der Grund wieso ich das jetzt aber erstmal so gemacht habe ist, damit nicht zufällig irgendwelche gekaperten Khaak-Schiffe rumfliegen, bei allen anderen Rasse ist das egal, da der Computer dann einfach die Kontrolle übernimmt (wie, wenn man z.B. ein Argon Schiff ohne Befehl erstellt und n paar Sekunden wartet, dann nimmt die KI die Steuerung in die Hand -> "race logic control" nur ich weiß nicht was die Khaak mit Transportern machen würden ect. ...)MichaRose wrote:Warum eigentlich nicht? Das macht es doch noch spannender. Man könnte auch ein Array übergeben in dem steht wer (nicht) kapern darf.- Khaak können ab sofort keine Schiffe kapern
*phu* ich glaub wir machen besser 2 Libs daraus, für die verschiedenen Ansprüche

mfg
HeMan
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
Der Nachteil ist, das das Script ständig am laufen ist, auch wenn es nicht gebraucht wird. Der Sinn bleibt genau der gleiche, wie Du eben Beschrieben hast. Die lib wird auf dem Schiff ausgeführt, das gerade angegriffen wird. Ausgelöst dadurch, wenn darauf geschossen wird. Der Kumpel muß natürlich wissen, wer ihn in diesem Moment gerade Angreift und bekommt das mitgeteilt. Wenn Du den Angriff unterbrichst, um Schilde aufzuladen und z.B. ein Argone den Angriff weiterführt, ist dieser dann Kaperberechtigt. Ausschlaggebend ist, wer da gerade aufs Schiff feuert. Wenn der Bandit entkommt wird die lib beendet und später, wenn er wieder angegriffen wird, von einem Piraten, wird sie erneut gestartet. Die lib ist also nur bei Bedarf aktiv. Der Sinn und Zweck ist also Haargenau der gleiche. Nur ein wenig anders umgesetzt.dPM_HeMan wrote: zu 1. 2. 4. 5. :
das entfremdet ein wenig den Sinn und Zweck, zu dem ich dass eigentlich gemacht habe, besonders Punkt 1. ,da der Sinn ja war ein Schiff zu erstellen, dass von jedem Angreifer gekapert werden kann, der grade vorbeikommt. Man erstellt halt ein Schiff, startet das Script und wartet ab was passiert; sollte es irgendwann z.B. von Piraten angegriffen werden, ham die halt ne Chance das zu erobern (oder der Pilot ne Chance sich zu retten, z.B nützlich beim Universumshändler).
Der attacker wird bei einem Angriff vom Programm gleich mitgeliefert. Diese Variable gleich zu nutzen, ist die sicherste Methode den attacker festzustellen.
Werden Passagiere Namentlich in den Schiffsinfos angezeigt? Keine Ahnung! Aber ich denke mal, das Du es mit deinem Sklavenhändler Script Kompatibel halten und die dort generierten Namen verwenden möchtest. Kein Problem! Mir fällt eh gerade auf, das in einem M5 nicht 500 Passagiere reinpassen!dPM_HeMan wrote:Punkt 2 ist insofern ungünstig, weil ich die Passagiere auch teilweise auf andere schiffe übertragen möchte
Punkt 4 und 5 kann mit eingeschaltet werden, wenn der Astronaut auch in die nächste Station flüchten darf.
Der Unihändler (MK3) wird nicht warten, bis die Schilde unten sind. Der macht sich sofort aus dem Staub, wenn er angegriffen wird. Entweder in die nächste Station oder mit dem Sprungantrieb. Habe ich Live miterlebt, wie dieses Script arbeitet. Wirklich Live!
Machst Du offiziell einen Schleudersitz für die beiden. Ich habe das so gemacht, das der Pilot aussteigt, wenn das Schiff zerstört wird. Mit gleichen Namen.dPM_HeMan wrote:P.S.: ich glaub ich mach aus den Passagieren ne lokale Variable, dann krieg ich das vielleicht auch den Schleudersitz für BPH und Univ.Händler hin
Gruß,
Michael
Michael
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
dPM_HeMan wrote:Ist doch klar, die Transporter vesuchen Schiffe zu töten, in Ermangelung derer Fliegen sie wahrscheinlich extrem nervend um die Schiffe rum. Also eigentlich witzig...MichaRose wrote:ja schon, der Grund wieso ich das jetzt aber erstmal so gemacht habe ist, damit nicht zufällig irgendwelche gekaperten Khaak-Schiffe rumfliegen, bei allen anderen Rasse ist das egal, da der Computer dann einfach die Kontrolle übernimmt (wie, wenn man z.B. ein Argon Schiff ohne Befehl erstellt und n paar Sekunden wartet, dann nimmt die KI die Steuerung in die Hand -> "race logic control" nur ich weiß nicht was die Khaak mit Transportern machen würden ect. ...)MichaRose wrote:Warum eigentlich nicht? Das macht es doch noch spannender. Man könnte auch ein Array übergeben in dem steht wer (nicht) kapern darf.- Khaak können ab sofort keine Schiffe kapern
*phu* ich glaub wir machen besser 2 Libs daraus, für die verschiedenen Ansprüche
mfg
HeMan
-
- Posts: 820
- Joined: Mon, 16. Feb 04, 13:08
versteh ich das jetzt richtig, dass du es geschafft hast, dass Script automatisch zu starten, wenn jemand angeriffen wird ? also ohne konkreten Aufruf ?MichaRose wrote:Der Nachteil ist, das das Script ständig am laufen ist, auch wenn es nicht gebraucht wird. Der Sinn bleibt genau der gleiche, wie Du eben Beschrieben hast. Die lib wird auf dem Schiff ausgeführt, das gerade angegriffen wird. Ausgelöst dadurch, wenn darauf geschossen wird.
da hast du wahrscheinlich recht. Ich frag mich ja wer als attacker angegeben wird, wenn es mehrere gibt, der Letzte ?Der attacker wird bei einem Angriff vom Programm gleich mitgeliefert. Diese Variable gleich zu nutzen, ist die sicherste Methode den attacker festzustellen.
ne nicht offiziell, zumindest noch nichtMachst Du offiziell einen Schleudersitz für die beiden. Ich habe das so gemacht, das der Pilot aussteigt, wenn das Schiff zerstört wird. Mit gleichen Namen.

-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
Richtiger gehts nicht! Es gibt drei Dateien, die man sich nur ins Script Verzeichnis kopieren und das Spiel starten muß. Läuft alles von alleine! Die Offiziellen Verteidigungsscripte werden dabei in keinster Weise beeinflußt. Du wirst begeistert sein, was aus deiner Idee geworden ist!dPM_HeMan wrote:versteh ich das jetzt richtig, dass du es geschafft hast, dass Script automatisch zu starten, wenn jemand angeriffen wird ? also ohne konkreten Aufruf ?
Paralell dazu kann man ja die Lib aus anderen Scripten auch starten, für dein Sklavenhändler Script. Die beiden Methoden behindern sich nicht. Da habe ich etwas mit Globalen Variablen gemacht um abzufragen ob das Schiff A schon von Schiff B angegriffen wird. Falls Schiff C auch Schiff A angreifen sollte, hat er dieselben Kapermöglichkeiten wie Schiff B. Da laufen dann zwei Libs paralell. Durch eine ausgeklügelte Kontrolle werden die Libs nach gebrauch auch wieder beendet. Bei meinen Beobachtungen der KI Schiffen liefen maximal 35 Libs gleichzeitig.
Das mit der Übergabe der Namen für die Passagiere habe ich auch wieder rückgängig gemacht und dafür einen Zufallsgenerator eingebaut, falls keine Namen übergeben werden. Abhängig für die Anzahl der Survivor ist die größe des zerstörten oder gekaperten Schiffes. Die Piloten werden immer das Schiff verlassen, auch Xenon und Khaak! Für die beiden musste ich mir etwas nettes für die Pilotennamen ausdenken.
Allerdings weiß ich noch nicht, ob das mit den Passagieren so hinhaut. Das einsacken der automatisch generierten Passagiere darf nämlich nur der Spieler und bleibt für die KI ausgeschaltet.
Ob die Pilotenkontrolle funktioniert weiß ich auch noch nicht. Zu diesen Tests bin ich noch nicht gekommen.
Ja, funktioniert sehr zuverlässig und wer alles als attacker angegeben wird habe ich ja oben schon beschrieben. War heute schon fett am Testen. Dazu habe ich eine Logging Funktion eingebaut. Das Logfile wird im X2 Ordner gespeichert wenn die Debug Variable in der Lib auf TRUE gesetzt wird.dPM_HeMan wrote:da hast du wahrscheinlich recht. Ich frag mich ja wer als attacker angegeben wird, wenn es mehrere gibt, der Letzte ?
Sehr gute Idee. Und der Pilot, wenn dieser nicht auch abgeschossen wird, wartet in der nächsten Station auf einen neuen Transporter.dPM_HeMan wrote:Ich versuche nur die lokalen Variablen des Piloten mit zu speichern und ihn wiederverwendbar zu machen, wenn man ihn aufsammelt.
Das tun sie nicht. Ich habe das mal getestet. Transporter (voll kampffähig), die Khaak gehören werden auf Kommando Idle gesetzt und Eiern wie blöde durch den Sektor. Die Jäger der anderen Rassen stürzen sich sofort auf den Transporter. Musst also sehr schnell sein, wenn Du den TS einsacken willst.Arsenal wrote:Ist doch klar, die Transporter vesuchen Schiffe zu töten, in Ermangelung derer Fliegen sie wahrscheinlich extrem nervend um die Schiffe rum. Also eigentlich witzig...
Zur neuen Version der Lib:
HeMan wird noch heute einen Download Link von mir bekommen, damit er es Testen und seine Meinung dazu äußern kann. Ewentuell sind dann noch Korrekturen und weitere Tests nötig. Wenn dann alles soweit klar ist, obliegt es HeMan, diese Lib hier zum Download anzubieten.
Gruß,
Michael
Michael
-
- Posts: 91
- Joined: Sun, 25. Jul 04, 04:57
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
Der Script Editor muß schon gestartet werden, wenn Du unsegnierte Scripte nutzen möchtest. Extra ein Script starten oder in einem etwas einstellen brauchst Du nicht.duenenstampfer wrote:Kommt denn da noch eine version wo ich nicht den editor starten muss?
ich krig das nicht gebacken mit dem editor
Im Weltraum einfach Thereshallbewings eintippen um den Editor zu freizuschalten. Darauf achten, das dieses T am Anfang großgeschrieben wird und der Rest klein. Ob der Editor aktiv ist, siehst Du am oberen linken Bildschirmrand. Dort steht dann Modified.
Mehr ist nicht nötig!
Gruß,
Michael
Michael
-
- Posts: 91
- Joined: Sun, 25. Jul 04, 04:57
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25
-
- Posts: 91
- Joined: Sun, 25. Jul 04, 04:57
-
- Posts: 196
- Joined: Fri, 13. Feb 04, 16:56
-
- Posts: 328
- Joined: Sat, 28. Feb 04, 19:25