[S][03.06.08][0.8b] GAIUS - Global AI Upgrade Scripts

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

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

User avatar
ralfooo
Posts: 51
Joined: Thu, 5. Feb 04, 21:24
x4

Post by ralfooo »

Hallo Das_Wrack,


habe den hotfix 4 nicht installiert. Habe an meiner Station Silizium, an dieser konnte ich nicht andocken, folgende veränderungen vorgenommen.

++Neue Bonuspack installiert. Danach konnte ich als Spielerschiff wieder andocken. Das eigene Shiff der Station, Stationsmanager aktiviert, sagen wir Demeter 15 konnte auch andocken, zeigte aber keiner Reaktion als das Schiff an der Station andockte. Kein Ankauf, kein Verkauf. Habe das Schiff von der Station entfernt. Und auf Universumshändler geschickt.++


>>Jetzt kommt es.++Habe der Station ein anderes Schiff zugewiesen. Z. B. Demeter 28. Hat eine Weile gedauert bis das neue Schiff angedockt hat. Aber es hat funktionert. Das schiff hatte 2500 Energiezellen an Bord und hat es der Station Silizium alpha übhergeben. Im Moment kauft das Schiff wieder Energiezellen für die Station.<<

Ich schätze das ich das Problem gelöst habe.
Tha_Wolf
Posts: 81
Joined: Fri, 6. Feb 04, 00:05
x4

Post by Tha_Wolf »

Hi ich habe folgendes Problem: Transporter mit Sprungantrieb und Befehl- Verkaufe zum besten Preis ->Energiezellen, nun springt der transporter auch dorthin und verkauft, aber er verkauft alle EZ und springt nicht zurück sondern gondelt durch die Sprungtore zurück.
Bei Anderen waren konnt ichs bis jetzt nicht beobachten haben noch keinen Sprungantrieb.
Transporter die mit der Warenlogistik unterwegs sind springen gar nicht bis jetzt.

mfg Wolf
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

-.- OK, das liegt sicher daran, dass der Händler alle EZ verkauft, die für den Sprung nötig sind. Ich dachte eigentlich, das gelöst zu haben, aber scheinbar eben doch nicht. Kommt auf meine 2Do-Liste ^^

@ ralfoo
... Dann installier den Hotfix mal... Der ist nicht umsonst da, er behebt einige Probleme mit dem Landecomputer und den Bewegungskommandos.

@ Das_Wrack
Der Fehler ist bekannt, seine Ursache hingegen nicht. Mit GAIUS hat es nicht direkt zu tun, da die Schiffe das Problem auch noch haben, wenn GAIUS deaktiviert ist. Wahrscheinlich docken einige Schiffe an den falschen Slot an und dann nicht wieder ab, weshalb sie nicht in den Klammern angezeigt werden. Mir bleibt momentan keine Zeit zum Testen, weshalb ich später versuchen muss, den Fehler zu beheben. Ein Respawn oder die Vernichtung der Station hilft immer, manchmal auch die Vernichtung aller Schiffe, die daran andocken wollen und davor im Raum stehen.
Seit 0.7_4 ist der Fehler zumindest für Universumshändler behoben.

btw: Versucht bitte nicht, mehr als 10 TS/TP/M6/M7 auf einmal an eine Werft oder ein AD, mehr als 5 derartige Schiffe auf einmal an einer HS oder mehr als 15 Mittelklasseschiffe auf einmal an eurer PHQ per Landecomputer andocken zu lassen - einige können nicht wieder abdocken und wenn ihr in diese Schiffe wechselt... versucht es selbst. Es wird mit der "Twilight Zone" beschrieben *g*
Das_Wrack
Posts: 3
Joined: Sun, 30. May 04, 11:04
x2

Post by Das_Wrack »

yeah, jetzt hats mein M7-Spielerschiff erwischt, als ich mir grad ne Nova-KSW-MK3-Eskorte zulegen wollte... :shock: eigentlich wollte ich die Hyperion noch nicht demontieren, bevor ich nicht die Kohle für den eigenen Sektor zusammengespart hab (ich brauch das Ding ja nicht, aber ich will nicht, dass der so nem unpassenden Besitzernamen wie "BurnIt" kriegt ^^). Damit fällt wohl auch der Verdacht mit den falsch angedockten Schiffen weg (hatte 1 Nova aufklärer und 1 Eclipse angedockt gehabt. Das Eclipse hab ich an mein HQ andocken lassen, dann die Nova gekauft und in den freien Slot geschickt. Fremdschiffe können ja nicht versucht haben, mir in den Hangar zu kriechen) Landecomputer hatten die beiden Novas auch noch nicht, so dass es daher eigentlich auch nicht kommen sollte.

Gibts noch irgendwo ne ältere KSW-MK3-Version, die ordentlich funzt aber noch ohne GAIUS daherkommt?
Kuczek
Posts: 6
Joined: Thu, 23. Mar 06, 10:35

Post by Kuczek »

Also ich hab das Problem auch, aufgefallen ist es mir nach dem Hotfix auf 0.7b4, ich kann aber nicht sagen, ob es tatsächlich erst da aufgetreten ist. Betroffen sind bisher der Goner-Tempel in WBSW sowie die Schiffswerft in Argon Prime. Scheinbar werden die Andockplätze der Stationen blockiert (möglicherweise beim abdocken von Schiffen nicht wieder freigegeben). An der Schiffswerft zB. hatte ich 2 eigene Schiffe angedockt und hab mit dem Spielerschiff dort keine Landeerlaubnis bekommen. Nachdem ich eines meiner Schiffe abgedockt hatte konnte ich dann selber landen. An der Werft waren außer meinen beiden nur noch 1 KI Schiff angedockt zu der Zeit.

Vor dem Update auf KSW 1.17/GAIUS 0.7 ist dieser Fehler definitiv nicht aufgetreten.

GAIUS ist bei mir im AI Menü 1x vertreten und Katapultstarts/Landecomputerbenutzung nicht aktiviert.

Achja, ich hab das Spiel sauber neu installiert weil ich ohnehin neu anfangen wollte, also kann ein Fehler beim Updaten der Scripts ausgeschlossen werden.

Vielleicht kannst du mal checken, ob eines der GAIUS-Skripte beim an- oder abdocken möglicherweise die Stationsslots blockieren könnte?


Ansonsten funktioniert alles wie gewohnt und ich möchte eigentlich nicht mehr auf deine tollen Skripte verzichten! :thumb_up:
Mene
Posts: 6
Joined: Sat, 25. Aug 07, 11:34

Post by Mene »

Also ich hab das Problem auch, aufgefallen ist es mir nach dem Hotfix auf 0.7b4, ich kann aber nicht sagen, ob es tatsächlich erst da aufgetreten ist. Betroffen sind bisher der Goner-Tempel in WBSW sowie die Schiffswerft in Argon Prime. Scheinbar werden die Andockplätze der Stationen blockiert (möglicherweise beim abdocken von Schiffen nicht wieder freigegeben). An der Schiffswerft zB. hatte ich 2 eigene Schiffe angedockt und hab mit dem Spielerschiff dort keine Landeerlaubnis bekommen. Nachdem ich eines meiner Schiffe abgedockt hatte konnte ich dann selber landen. An der Werft waren außer meinen beiden nur noch 1 KI Schiff angedockt zu der Zeit.
Ähnliche Probleme habe ich auch. Als erstes hatte es meine Minen getroffen. Kein Schiff dockte mehr an...hab dann mal ein Kontrollzentrum angeschlossen und es ging wieder. Im Augenblick stauen sich aber ca. ein Dutzend Schiffe vor einem Sonnenkraftwerk in Linie der Energie. Ich glaube auch, daß das mit den Kontrollzentrum nur eine vorübergehende Lösung des Problems war. Die Frachter spinnen schon wieder rum.
Als ich selbst andocken wollte, bekam ich die meldung, daß es z.Z. nicht möglich wäre.
Für mich würde es durchaus logisch klingen, daß die Plätze beim abdocken nicht wieder frei gegeben werden und somit blocken.
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Das_Wrack wrote:Gibts noch irgendwo ne ältere KSW-MK3-Version, die ordentlich funzt aber noch ohne GAIUS daherkommt?
Es gibt überhaupt keine ältere KSW MK3-Version, die ordentlich funzt. Wenn dir GAIUS nicht gefällt, dann kannst du es einfach deaktiviert lassen. In diesem Fall wird es nur von MK3-Schiffen ausgeführt. Alle dann auftretenden Fehler können nicht direkt durch GAIUS verursacht sein. GAIUS ist einfach die Grundlage der KSW MK3 und bis zur Fertigstellung der KSW MK3 ist keine separate Version geplant. Die Verknüpfungen sind einfach zu komplex als dass man die MK3 jetzt extrahieren könnte.

Notfalls gibt es nur die Option, beides zu deinstallieren. Alle danach auftretenden Probleme können nicht durch GAIUS verursacht sein ^^

Kuczek wrote:GAIUS ist bei mir im AI Menü 1x vertreten und Katapultstarts/Landecomputerbenutzung nicht aktiviert.

Vielleicht kannst du mal checken, ob eines der GAIUS-Skripte beim an- oder abdocken möglicherweise die Stationsslots blockieren könnte?
:sceptic:
Also... du hast den Landecomputer deaktiviert, wobei beim Andocken nur das übliche Andockkommando benutzt wird.
Außerdem hast du den Katapultstart deaktiviert, was zur Folge hat, dass die Abdockmanöver gemäß den ursprünglichen Scripts ablaufen.

Jetzt wird der Fehler für mich noch mystischer, da es in diesem Fall keine wirkliche Änderung in der Vorgehensweise des An- und Abdockens gibt und trotzdem ein solcher Fehler verursacht wird...

Eine Blockierung der Stationsslots ist nur unter einer Bedingung möglich: Verwendung des Landecomputers und mehr Schiffe, die gleichzeitig andocken, als Slots vorhanden sind. Da bei dir der LC deaktiviert ist, ist das undenkbar...

@ Mene
Meine letzte Idee ist noch, einen bestimmten Script im Paket zu überbrücken. Mit der Überbrückung dieses Scripts wäre dann der Andockscript wie im Original, abgesehen von einem anderen Namen und einem anderen Scriptverweis. Das bedeutet, dass der Fehler selbst nicht mehr beim GAIUS-Code liegen kann.

Da ein englischer User das Problem aber auch noch mehrere IG-Stunden nach Deinstallation hatte, wobei die Scripts logischerweise gelöscht und damit unbrauchbar gemacht wurden, kann es ein Fehler in der Engine sein. GAIUS ist diesbezüglich nen bisschen... naja ... unerklärbar.

btw: Ich nehm doch an, du hast den Hotfix installiert.
Mene
Posts: 6
Joined: Sat, 25. Aug 07, 11:34

Post by Mene »

Jo, habe aktuelle Version von GAIUS und den Hotfix installiert. Vorher aber weder KSW 3 noch eine andere Variante von GAIUS....also völlig frisch und neu.
Wenn ich mich aber selber im Sektor befinde, fangen die Schiffe sich an zu bewegen....sprich, sie machen das, was sie sollen.
Kann aber immo das Phänomen nicht weiter beobachten, da ich erst am WE wieder dazu komme länger am Stück zu spielen.

Spiele de X-Tendet Mod und noch das alte Bonus Packet....will am WE mal das neue drüber installieren, da ich gelesen hab, daß sich das Problem bei einem User erledigt hatte...siehe Seite 6?
User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12166
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

@X-Freak Cartman

Da du hier anscheinend die NPC dazu gebracht hast den Sprungantrieb zu benutzen, hätte ich eine kleine Frage.

Sagen wir mal, das wir die Sprungtore entfernen, sofern möglich, evtl. auch nur unsichtbar machen. Würden die NPC's, mit der Hilfe von GAIUS, trotzdem von Sektor zu Sektor "gondeln"?

Oder anders gefragt, könnte man etwas machen, das die NPC den Sprungantrieb benutzen und somit die Sprungtore durch Sprungpunkte ersetzen könnte?

Danke für die Aufmerksamkeit.

MFG

Ketraar
Image
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Hmm... dafür müsste man nicht nur GAIUS, sondern alle Scripts im Spiel modifizieren.

Das erinnert mich an Galaxy Commander (dolle Physikengine, wenn auch recht simpel ^^), wo man bei so genannten L-Punkten, also Punkten ohne nennenswerte Gravitation, eine Art Sprungantrieb nutzen konnte, um in andere Sonnensysteme zu gelangen (Das Universum besteht dort aus regelrechten Sonnensystemen, wo die Planeten gigantische Entfernungen zueinander haben. Dort wurde mit dem Raum natürlich extrem getrickst)

Aber zurück zum Thema: Durch die Entfernung der Sprungtore sind alle Sektoren scripttechnisch gleich weit entfernt (per Prüfung genau null Sektoren -.-). Man müsste also immer 60/120/240 Energiezellen für einen Sprung abgeben, egal, ob es ein Sprung von Kingdom's End nach Argon Prime oder nach Maelstrom ist.
Dadurch, dass die Entfernungsprüfung nicht mehr funktioniert, werden viele Scripts unbrauchbar.

Nimmt man beispielsweise den Unihändler her, so müsste man ihn erst auf folgende Sachen vorbereiten: (Unter der Idee des Sprungantriebs, da das mit den Toren nicht ganz so einfach ist, dort wird eine Kollission benötigt und die Schiffe werden effektlos beschleunigt)
- Vernachlässigung der Entfernung, stattdessen einfach nur ein Sprung
- Mitführen ausreichender EZ-Mengen
- Sprung in unverbundene Sektoren (Verhindert, da er die Entfernung berücksichtigt.

Sämtliche Stationshändler (auch die von GAIUS, zumindest noch) weigern sich, in Sektoren zu fliegen, die nicht mit dem Torsystem verbunden sind (zumindest afaik, weiß nich, ob Lucike oder gnasirator da was dran gedreht haben).

Dann hätten wir noch Formationssprünge: Egal, wie groß die Distanz zwischen den Schiffen und dem Anführer ist, sie springen immer mit in den Sektor. Dazu können sie auch in einem X-Beliebigen Sektor, vielleicht sogar im Zielsektor sein, und sie springen trotzdem dort hin - selbst, wenn der Abstand zum Zieltor genau 0 Meter beträgt (saublöde KI, ich arbeite natürlich dran)

Zu guter Letzt hätte man noch das Problem, dass viele Schiffe den JD gar nicht benutzen können, hier wird die Zahl dieser Schiffe sogar noch vergrößert, da hier auch M3 mit geringem Frachtraum (Perseus) rausfallen. Und dann hätten wir noch Missionen wie beispielsweise die gute alte Kill-Mission oder XIs. Was soll man mit diesen Schiffen anstellen?

Und um die ganze Sache noch komplizierter zu machen, hat der Spieler mit Shift+J trotz Allem die Möglichkeit, von jedem Punkt des Unis zu einem Tor zu springen.

Wie du siehst, ist es etwas Anderes, den Sprungantrieb zu erlauben als den Sprungantrieb anzupassen oder zu modifizieren. Um X3 vor dem Absturz durch GAIUS zu bewahren, erlaube ich übrigens allen Schiffen, die in einen unverbundenen Sektor fliegen wollen und keinen Sprungantrieb nutzen können, einen sprungantriebslosen Sprung... aber wann kommt so etwas schon mal vor?


Eine einfachere Variante wäre da wirklich eine Mod der Sprungtore, jedoch müsste man hier den "Ereignishorizont" des Sprungtors - also die Ebene, die man berühren muss, um zu springen - praktisch unsichtbar machen, um Sprungpunkte zu simulieren. Vielleicht könnte man ja eine Art Hologramm einbauen, das darstellt, wo sich der Sprungpunkt befindet. Die Beschleunigung könnte man dann aber nicht durch einen Sprungblitz ersetzen.

Afaik hat mal jemand die Sprungtore in seinem Spiel durch Hyperraumfenster aus Stargate ersetzt.

Einen Vorteil haben die Dinger übrigens immer: Sie haben keine Polygone, die bei Kollission Schaden verursachen. Dadurch kann man problemlos mit riesigen Schiffen das tor passieren, was beispielsweise bei der normalen XTendedMod unmöglich wäre (Schonmal einen Leviathan in einem Tor stecken sehen?)
User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12166
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

Ich verstehe *glaub* was du meinst. Was mich hier aber interessiert ist genau sowas wie ein Hyperraum-Sprung zu simulieren. Wie du unschwer an meiner sig erkennen kannst, sind diese Fragen in Bezug einer Total-Conversion, also keine Probleme mit irgend welchem unbrauchbaren Zeug, was evtl. von X3 Stammt.

Sorry wenn ich hier diesen Topic stibitz, aber könntest du dir vorstellen, dass sowas machbar wäre? Wenn man bedenkt, das man nicht an UT oder XI's denken muss...

Wollte das nur noch fragen, dann bin ich wieder weg. :D

MFG

Ketraar
Image
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Schon gedacht, dass es für Star Wars ist.

Vor einem Jahr (+-) hatte ich mal eine beratende Funktion im Babylon5-Team, wo es eben um einen Hyperraum-Sprung ging. Die damalige Idee war, spezielle Hyperraum-Sektoren zu erstellen. Um den Sektor zu wechseln, musste man erst durch diesen Hyperraum fliegen.

Das Problem: Jeder Sektor müsste mit dem Hyperraum verbunden sein, das also ein paar hundert sein können - die Engine erlaubt aber nur 6 aktive Sprungtore, der Rest funktioniert nur für das Spielerschiff, die KI erkennt sie nicht (daran kann ich nix drehen). Bei 240 Sektoren wären es also 60 Hyperraum-Sektoren, wenn man bedenkt, dass der Hyperraum untereinander auch noch verbunden sein muss. Dann hat man im Hyperraum noch ein gigantisches Verkehrsaufkommen (ist ja nur für Durchreise), theoretisch dürfte man dort keine Stationen bauen und nach B5-Logik gibt's dort auch keine Waffen. Eigentlich sollte man andere Schiffe noch nicht mal sehen.


Tja, einen richtigen Hyperraum kannst du dir also dementsprechend abschminken (wüsste sowieso nicht, wie der bei Star Wars aussehen sollte... gibt's da überhaupt einen wirklichen?)
Ein Hyperraumsprung wäre jedoch, wie schon genannt, mit einem unsichtbaren Sprungtor möglich. Das würde bedeuten, dass vom Tor nur noch der Ereignishorizont übrig bleibt, und ihr diesen so moddet, dass er durchsichtig ist.

Berührt das Schiff den Ereignishorizont dann, so springt es praktisch in den Hyperraum. Damit hat man jedoch auch keinen Erfolg, da man nicht frei wählen kann, wo es hingehen soll.


Also gut, nach ewigen Umschweifen beantworte ich dir endlich mal deine Frage:
Es wäre möglich. Sogar relativ leicht, wenn ihr euch an bestimmte Regeln haltet.

Als Erstes: Der Sprungpunkt
Wie ihr den kennzeichnet ist euer Problem, es empfiehlt sich hier das Special Object 34 oder vll auch Special Object 65. Auf jeden Fall solltet ihr ihn irgendwie in einem Array oder sonsto abspeichern. Es empfiehlt sich folgender Array-Aufbau:

0 - Sektor
1 - Objekt/Position (Position ist praktischer, da das Objekt zerstört werden kann. Man kann es notfalls auf seiner Position neu spawnen)
2 - nächster Sektor
3 - Objekt/Position
...

Somit kann man per "get index" genau abfragen, wo der Sprungpunkt liegt. Mehrere Sprungpunkte würde ich hier in ein zweites Array packen:
0 - Sektor
1 - Array(Position1, Position2, Position3, ...)
2 - nächster Sektor
...

Hier muss man dann nur noch das Array auslesen und nicht das ganze große Array durchforsten.

Zu verändernde Scripts:

- !move.movetosector:
Hier müsst ihr das Schiff nicht dazu veranlassen, zu einem Sprungtor zu fliegen, sondern eher zu einem bestimmten Punkt (Die Mitte eines Sektors empfiehlt sich hier, jedoch ist jeder andere Punkt im Universum möglich). Ich würde an deiner Stelle Sprungbereiche einrichten, an denen die Schiffe dann springen. Zum genauen Sprungvorgang komm ich später.
Die Schiffe müssten also erst in die Sprungbereiche (5, 8 oder 20 km um einen Sprungpunkt, sind gängige Zahlen im X-Uni) fliegen, um springen zu können.

- !move.jump:
Hier ist ebenfalls der Sprungpunkt wichtig, nicht einfach nur das Vorhandensein eines Sprungantriebs. Das bedeutet, dass ihr prüfen müsst, wie weit das Schiff von einem Sprungpunkt entfernt ist. Ist es zu weit weg, so ist ein Sprung nicht möglich.
Außerdem müsst ihr dafür sorgen, dass der Script "ship.signal.leaderjumps" nicht gestartet wird, wenn das Schiff nicht am momentanen Leader oder dessen Leader oder dessen Leader oder dessen Leader oder dessen Leader ... angedockt ist (Hier empfiehlt sich wieder ein Array, das von !move.jump nach signal.leaderjumps durchgegeben wird. Von dort wird es dann jedoch wieder nach !move.jump durchgegeben. Da es nur ein Array-Pointer ist, werden alle Schiffe der Flotte hier der Reihe nach eingetragen - glückliche Fügung, dass der SE hier auf unserer Seite ist. Dann einfach nur noch Dockedat des Followers auf Index im Array prüfen) oder in der Nähe eines Sprungpunktes und nicht im selben Sektor wie das Ziel ist.

- !move.jumptogate.nearest
Da es keine Tore mehr gibt, muss hier regulär der Sektor gewählt werden. Somit springt das Schiff in die Sektormitte. Nach Ablauf des von !move.jump sollte der Script das Schiff dann an die Zielposition bewegen, wenn die Zielsektoren identisch sind. Glücklicherweise gibt es hier eine Kollissionsabfrage, sodass das Objekt sicher bewegt wird.

- jeden Kommando-Script im Spiel, der direkt springen lässt:
Hier müsst ihr verhindern, dass der Spieler in der Lage ist, ein Sprungtor auszusuchen. Es empfiehlt sich, einen Sektor wählen zu lassen, wenn es in jedem Sektor sowieso nur einen Sprungpunkt gibt. Für mehrere Sprungpunkte hab ich keine Idee, abgesehen von einer auswählbaren Position im Raum, zu der man möglichst nah hin möchte. Dazu später nochmal was.

So, nun aber zum Sprungvorgang selbst:
1. Frage: Wie deaktiviert man den beliebigen Sprungantrieb für den Spieler?

Ganz einfach: Neue Ware einfügen. Diese könnt ihr ja ebenfalls Sprungantrieb nennen, (<t id="56789">{17,3983}</t>), damit sie ebenfalls ausgesprochen wird. Hier müssen alle Scripts geändert werden, die den Sprungantrieb starten oder ihn abfragen, also !move.jump sowie !move.jumptogate.nearest.

2. Frage: Wenn der Sprungantrieb derartig überbrückt ist - wie benutz ich den Befehl "use jumpdrive"?

Ganz einfach: Man fügt den richtigen Sprungantrieb temporär hinzu. Vielleicht seid ihr ja in der Lage, ihn "aktivierter Sprungantrieb" oder so zu nennen - was jedoch mit der Umbenennung zur Aussprechung des JDs in Konflikt steht.

Diese Änderung sollte sowieso nur für eine hundertstel Sekunde sein. Grund:

3. Frage: Was, wenn der Sprung abgebrochen, ein anderes Script gestartet wird?

Ganz einfach: Starte einen Task eine Zeile vor "use jumpdrive", der den JD nach einem wait von vll 0 bis 5 ms wieder wegnimmt. Weiß jetzt nich, wie es um Schiffe steht, die springen obwohl der JD schon wieder entfernt wurde. afaik springen sie trotzdem. Notfalls kannst du einfach prüfen, ob !move.jump auf Task null ist. Ist er es nicht mehr, wird der JD weggenommen.

4. Frage: EZ-lose Sprünge? Wie machen?

Ganz einfach: Änder eine Zeile vor Aufruf des Tasks die Benutzerrasse in "neutral" und im Task direkt nach dem ersten Wait dann wieder in "Player". Somit ist garantiert, dass die Rasse zurückgesetzt wird.
NPC-Schiffe verbrauchen beim Sprung keine EZ.

Ein globaler Script empfiehlt sich übrigens eher als ein Task, wenn der globale Script nicht bis Ablauf des Sprunges warten muss, da ihr aber sowieso das Universum komplett ändert, isses sowieso egal.

5. Frage: Wie jetzt eigentlich springen? Hab's net gecheckt!

Ganz einfach:
1 - Zum Start des Sprungs einfach !jumptogate.nearest aufrufen
2 - jumptogate.nearest sucht behält nun die übergebene Position und sucht den besten Sprungpunkt im Zielsektor heraus
3 - jumptogate.nearest startet den Script !move.jump und übergibt diesem Script den Zielsektor
4 - move.jump fügt den alten Sprungantrieb den Schiffen hinzu, außerdem ändert es notfalls die Rasse, damit die Schiffe torlos springen können.
5 - move.jump startet den Task
6 - move.jump startet den eigentlichen Sprung, außerdem startet es nahe Follower und veranlasst sie ebenfalls zum Springen. Hierfür empfiehlt sich jedoch, dass sie maximal 5 km vom Leader entfernt sind, damit auch große Flotten kein Sprungproblem haben
7 - der Task entfernt den JD wieder und setzt die Rasse zurück
8 - nach dem Countdown springt das Schiff
9 - nach dem Sprung wird das Schiff von !move.jumptogate.nearest auf die Zielposition gesetzt

- Fertig!

Als Zielposition ist übrigens jede Position im Sektor möglich, dank dem oben genannten Array kann man jedoch auch nur zu den festen Positionen springen lassen.
Shift+J ist übrigens deaktiviert, der Spieler ist zu keinem Zeitpunkt unter normalen Bedingungen in der Lage, normal zu springen.


btw: Auf diese Weise wären auch Flotten-Sprungantriebe oÄ möglich. Diese könnten dann alle Follower und notfalls auch alle Objekte in der Nähe des Leaders mitnehmen (Nichtschiffe müssten per put into environment bewegt werden, fein prüfen, ob der Spieler grad dort angedockt ist, ansonsten CTD).
Geregelt würden derartige Flottenantriebe dann über !move.jump bzw. !ship.signal.leaderjumps (zumindest der einfachste Weg).


Es empfiehlt sich übrigens noch, den Sprungeffekt zu modden.
User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12166
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

:o :o :o

Acht du grüne neune, mir ist ganz schwindelig geworden...

Vielen Dank für die Mühe, bin froh das es möglich ist, ein paar Sachen hab ich sogar verstanden. :roll:

Ich werde diese Info mal rüber beamen, leider ist unser einziger Scripter MIA.
Werde halt auch noch Scripten lernen müssen. (wollte es sowieso mal machen sobald ich Zeit habe)

Was wir uns gedacht hatten (als Kompromiss), war es die Tore zwar unsichtbar zu machen, aber wegen den NPC diese trotzdem einfügen, nur halt eben nicht sichtbar. Aber deiner Beschreibung nach ist es möglich ein bisschen mehr SW-Flair einzufügen. Obwohl mich diese Aussage etwas verwirt:
Das Problem: Jeder Sektor müsste mit dem Hyperraum verbunden sein, das also ein paar hundert sein können - die Engine erlaubt aber nur 6 aktive Sprungtore, der Rest funktioniert nur für das Spielerschiff, die KI erkennt sie nicht (daran kann ich nix drehen). Bei 240 Sektoren wären es also 60 Hyperraum-Sektoren, wenn man bedenkt, dass der Hyperraum untereinander auch noch verbunden sein muss.
Unsere Uni hat ca. 300! Sektoren, wenn ich dich jetzt richtig verstanden hab, dann könnten wir "nur" 75 Sektoren haben die "besprungen" werden können...
Dann hat man im Hyperraum noch ein gigantisches Verkehrsaufkommen (ist ja nur für Durchreise), theoretisch dürfte man dort keine Stationen bauen und nach B5-Logik gibt's dort auch keine Waffen. Eigentlich sollte man andere Schiffe noch nicht mal sehen.
Uns würde reichen, wenn man (wie jetzt auch) nur ne kurze Sprungein-/austritt-Sequenz sehen würde. Also nicht richtig Reisen im Hyperraum, das ist etwas zuviel, denke ich. Die Sprungsequenz wäre also nicht viel anders als jetzt, nur eben halt ohne Tore und dafür mit sogenannten Sprungzonen, in denen der Sprungantrieb funktioniert und ausserhalb dieser eben nicht. Unser Problem waren die NPC's ( Not Particularly Clever ), die zu doof sind den Sprungatrieb (oder wie der dann halt genannt wird) zu benutzen. Durch GAIUS wurde ich halt eben neugierig, in der Hoffnung das sowas machbar wäre.

Herzlichen Dank für die Aufklärung.

MFG

Ketraar

PS.: Ich weiss nicht inwiefern ich dieses Topic verunstallte, sollte das der Fall sein bitte melden.
Image
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Ketraar wrote:Not Particularly Clever
:roll:


Wenn du willst, kann ich auch gern die Sachen scripten, wenn ich Zeit hab. Ist nich sonderlich viel, außerdem hättest du gleich noch die typischen GAIUS-Fixes drin.

Du müsstest mir nur mitteilen, wie du gedenkst, das Ganze genau umzusetzen. Ich bräuchte eine oder zwei (Flotten-Sprungantrieb) Waren und Zeit...

So, jetzt aber mal zurück zu den Problemen: Die bestehen bei meiner Möglichkeit darin, dass es sicher auch Schiffe geben soll, die nicht springen dürfen, oder?
In diesem Fall müsste man noch dafür sorgen, dass sie den Sektor nicht verlassen dürfen. NPCs sollten über einen JD verfügen, notfalls würde er einfach hinzugefügt. In diesem Fall bestünde das Problem, dass der originale JD für manche Schiffe zu groß ist - also die Warenklasse verringern, hier wäre S oder "-" bzw. null angebracht.

Und was wird aus zurückgelassenen Schiffen? Also Formationsschiffe, die von ihrem Träger im Stich gelassen wurden, da er einfach wegspringt?

Es wäre einfacher, wenn jedes kleine Schiff im Uni in der Lage ist, zu springen. Kampfdrohnen würden natürlich nicht springen, sie hätten die Ehre, im Sektor bis an ihr Lebensende zu kämpfen oder beim Sprung eingesammelt zu werden.

So, am Anfang des Spiels müsstet ihr nur noch das Array mit den Sprungpositionen generieren. Da ich keine große Ahnung von Mapping hab, kann ich euch nur sagen, dass das jetzt euer Problem würde. Stationsdummys wären hier beispielsweise hilfreich. Diese könnte man dann per Setup-Script einfach abfragen, entfernen und das Array dadurch generieren. Beim Start des Galaxy-Scripts sind afaik noch keine Objekte vorhanden, bin mir aber unsicher.

GAIUS ist übrigens frei verfügbar, also könnt ihr gern ein paar Teile davon extrahieren. Ich empfehle natürlich die kommende Kampf-KI ^^

btw: Würde man die Tore unsichtbar machen, so hätte man das Problem, dass die Schiffe von einem Ende der Galaxis zum Anderen Ende eine Ewigkeit bräuchten. Die JD-Idee gefällt mir grad ^^

btw: Du bist der Moderator, du entscheidest, wann es Spam wird. Mir ist das egal, da der Thread oben bleibt :D
User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12166
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

X-Freak Cartman wrote:btw: Du bist der Moderator, du entscheidest, wann es Spam wird. Mir ist das egal, da der Thread oben bleibt :D
Nicht ganz, Spam ist Spam ob ich das will oder nicht. :wink:

Deswegen kriegst auch gleich Post. :D

MFG

Ketraar
Image
Tha_Wolf
Posts: 81
Joined: Fri, 6. Feb 04, 00:05
x4

Post by Tha_Wolf »

Hio wollte mal nachfragen ob man den "Bug" mit den EZ nicht irgenwie schnell fixen kann, irgenwie hab ich keine lust mehr ohne Gaius zu spielen und da ich derzeit auf den Ez Verkauf angewiesen bin möche ich auf Springende Verkäufer nicht verzichten.
Natürlich hab ich keine Ahnung wie aufwendig das ist, ohne dem oder dem nächsten Release werde ich wohl vorerst X3 nicht mehr angreifen.
Gaius ist zu genial um ohne zu zocken!
DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa »

Moin
Ich habe mal wieder mit dem Komplexbau begonnen und Handelsvertreter eingestellt. Komischerweise benutzen die nicht den Landecomputer! Keine Ahnung warum.
Gruß
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Ganz einfach: Wie ich geschrieben hab (glaub ich zumindest), optimiert GAIUS die Original-KI, nicht die zusätzliche KI anderer Scripter. Der Handelsvertreter ist so ein Beispiel. Lucike (oder war's STL? Ich glaub Ersterer...) hat hier eigene Bewegungsroutinen geschrieben, auf die ich keinen Einfluss nehmen will. Hier musst du wohl oder übel damit leben oder einfach die entsprechende Scriptstelle finden (oder den Autor bitten, mir eine GAIUS-Version zukommen zu lassen ^^)

@ Tha_Wolf
Hmm... ich könnte es natürlich versuchen, da es ein unabhängiger Teil ist. Der nächste Release ist übrigens momentan noch nicht absehbar, innerhalb der letzten 10 Tage hab ich X3 aus Zeitgründen nicht ein mal starten können und dieses WE komm ich auch net dazu (große Familienfeier). Bevor ihr fragt: Den externen SE nutz ich nich, da er aller 30 Sekunden abstürzt

Notfalls muss es halt mal kurz ohne GAIUS gehen. Sieht so aus, als müsste ich für den EZ-Bug einfach nur eine zusätzliche Prüfung in trade.sellwareandreturn einbauen, aber momentan bin ich froh, die eine Stunde für das Forum entbehren zu können (ich hasse es, mehr als je 3 Forenseiten nach Topics durchwühlen zu müssen), sodass ich denke, am Sonntag oder Montag eine Testversion liefern zu können.

Viel Spaß noch
- EL
Tha_Wolf
Posts: 81
Joined: Fri, 6. Feb 04, 00:05
x4

Post by Tha_Wolf »

Dann viel Spaß bei der Familienfeier!

Gibt es ein Stationsversorgungsscipt das mit Gaius funktioniert?
Ich persöhnlich vermisse das alte SDS aus X2, das war viel einfacher zu bedienen als die neuen im Zusatzpaket.

Danke Dir
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Erm... sie funktionieren eigentlich alle mit GAIUS, allerdings nutzen sie nicht die jeweils anderen Funktionen.

Da ich sowieso momentan eine Komplexverwaltung (kein Handel) schreibe, werde ich sie wohl noch ein bisschen ausdehnen, damit auch der Handel betroffen ist. Getreu meinem Motto müsstet ihr hier dann nur ein Kommando auf einem Frachter starten, anstatt hunderte Argumente angeben zu müssen.

Return to “X³: Reunion - Scripts und Modding”