Komplex-Fabriken

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

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

Post Reply
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Komplex-Fabriken

Post by Reflexer » Sun, 20. Jun 10, 05:05

Hallo Leute,

gibt es eine Möglichkeit herauszufinden, ob eine Fabrik zu einem Komplex gehört?

Gruß
Reflexer

User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer » Sun, 20. Jun 10, 06:40

Hab jetzt 2 Stunden rumexperimentiert. Der einzige Unterschied zwischen einer alleinstehenden Fabrik und der Fabrik eines Komplexes, den ich grade feststellen kann ist die Abfrage auf

Code: Select all

-> is docking possible of 
Bei Komplex-Fabs kommt da immer null zurück....

Ich hoffe es gibt noch eine andere Möglichkeit das rauszufinden.....

User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER » Sun, 20. Jun 10, 09:34

Ich verwende dazu den Befehl <IF/RetVar> = <RefObj> -> is detectable.
Bei Stationen die im Komplex sind, gibt er "null" zurück, ansonsten [TRUE].

MfG,
ScRaT

User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer » Sun, 20. Jun 10, 18:24

Bei mir nicht - habs grade getestet.... kommt bei allen [TRUE] zurück...

User avatar
Cadvan
Posts: 2940
Joined: Sun, 14. Mar 04, 05:05
x4

Post by Cadvan » Sun, 20. Jun 10, 18:46

ob eine station in einem beliebigen komplex ist bekommst du tatsächlich nur herraus indem du testest ob ein schiff der classe m5 andocken darf

Code: Select all

$m5 = M5
if $station -> is docking possible of $m5
  was auch immer passieren soll
end
Willst du herrausfinden in WELCHEM hub eine solche station steckt wird es schon schwieriger: sind bei mir 26 zeilen code

du saucht alle stationen des sektors und überprüfst sie ob sie ein komlexzentrum sind.
wenn ja dann holst du dir alle stationen des komplexzentrums und vergleichst sie mit der ausgangsstation

User avatar
Saetan
Posts: 3223
Joined: Wed, 1. Feb 06, 19:26
x4

Post by Saetan » Sun, 20. Jun 10, 18:48

Alternativ könntest du den Befehl: <RetVar/IF> <RefObj> get environment verwenden. Ist die Station Teil eines Komplexes, müsste - wenn ich mich recht erinnere - das Komplexzentrum zurück gegeben werden, ansonsten der jeweilige Sektor.

User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer » Sun, 20. Jun 10, 18:50

Nein - das habe ich schon getestet. Stationen sind im Sektor - egal ob im Komplex oder nicht.

Ich prüfe aktuell auch auf docking possible.... anders schein es tatsächlich nicht 100%ig zu funktionieren...

User avatar
Saetan
Posts: 3223
Joined: Wed, 1. Feb 06, 19:26
x4

Post by Saetan » Sun, 20. Jun 10, 19:04

Ja, in der Tat, da hatte ich es falsch in Erinnerung.

In meinem Script in welchen ich Stationen eines Komplexes auslese, nutze ich:

Code: Select all

$Array.Stations = $Station -> get factory array from sector
... lässt sich aber ja auch nur dann effizient einsetzen, wenn man prüfen will, ob eine Station in einem bestimmten Komplex ist und nicht zur Prüfung ob sie in einem beliebigen Komplex liegt.

User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER » Sun, 20. Jun 10, 20:26

Bei mir nicht - habs grade getestet.... kommt bei allen [TRUE] zurück...
Oh, du hast recht. Ich habe gerade nochmal in meinem Code nachgeschaut und es scheint genau anders herum zu sein, d.h. der Befehl gibt [TRUE] zurück, wenn die Station sich in einem Komplex befindet. Hier der Code, den ich verwende:

Code: Select all

091   ||||$dummy = $object -> is detectable
092   ||||skip if $dummy
093   |||||gosub CreateEntry:
Hier wird nur ein Eintrag erstellt, wenn $object NICHT detectable ist.

Es könnte auch sein, dass sich das Verhalten inzwischen geändert hat. Schließlich ist das schon eine Art Hack, da der Befehl wohl kaum dazu gedacht ist, herauszufinden, ob eine Station sich in einem Komplex befindet.

Zur "is docking possible" Lösung: So ganz wasserdicht ist sie auch nicht, da es durchaus sein könnte, dass eine Station keine Andockklammern hat und deswegen die Bedingung fälschlicherweise fehlschlagen würde.

Am sichersten, aber auch am ineffizientesten, ist die Lösung von Seatan, mit "get factory array from sector".

MfG,
ScRaT

User avatar
Cadvan
Posts: 2940
Joined: Sun, 14. Mar 04, 05:05
x4

Post by Cadvan » Sun, 20. Jun 10, 20:30

is docking possible M5 funktioniert immer bei stationen.

selbst ohne andockklammern kann ein m5 IMMER irgendwo an stationen andocken. Stichwort interner hangar.

das dockable funktionierte soweit ich weiß bis 2.5
mit 2.5 hat ego etwas geändert, wodurch es nicht mehr so funktioniert.
is dockable M5 ist die einzige verbliebene möglichkeit für einen kurzen check.

User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer » Sun, 20. Jun 10, 21:29

Wenn nichts docken kann, dann muss ich auch keine Gammlerschiffe rausschmeißen ;) somit ist es (in meinem Fall) unerheblich :)

User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest » Sun, 20. Jun 10, 21:48

selbst ohne andockklammern kann ein m5 IMMER irgendwo an stationen andocken. Stichwort interner hangar.
seit wann hat beispielsweise eine Erzmine ein internen Hangar? Aber bei Internen geb ich Huefte recht, man kann immer ein Schiff der Smallshipclass (M5-M3) im Hangar erzeugen den Ego unterbindet nur die Andockerlaubniss wenn "Hangar" auf Schiff voll.

Factorys = Andockklammer
Docks = Intern oder hab ich was nicht mitbekommen?

User avatar
Cadvan
Posts: 2940
Joined: Sun, 14. Mar 04, 05:05
x4

Post by Cadvan » Mon, 21. Jun 10, 06:31

ich meinte damit: eine station hat immer entweder andockklammern oder einen internen hangar.
Und Stationen halten immer einen andockplatz für den spieler frei (ausnahme: big ships)
Somit gibt docking possible of M5 immer true zurück, wenn eine station frei steht und immer nur dann false, wenn sie in einem komplex eingebunden ist.

Post Reply

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