Lib-Scripts

Wie sich im Forum von Egosoft herausstellte, ist es für viele Scripter schwierig, solche wichtigen Sachen wie beispielsweise alle Stationen eines Komplexes oder die installierte Hardware eindeutig herauszufinden.
Die Lösung seht ihr nun auf dieser Seite: Eine Reihe zusätzlicher Scripts, die verschiedenste Funktionen übernehmen. Jeder Scripter sollte sich dieses Paket einmal ansehen, da für verschiedene Probleme Scripts enthalten sind.

Komplexscripts

lib.cm.getcomplex - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Dieser Script gibt den Hub (Das Kontrollzentrum) der angegebenen Station zurück.

Input:

Output:
  • $Hub - Der gesuchte Hub
  • null, falls die Station in keinem Komplex ist
Ressourcen:
  • lib.cm.ishub
  • lib.cm.isincomplex
  • lib.cm.getcomplexes

Download


lib.cm.getcomplexes - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Gibt alle Komplexe eines Sektors zurück. Dabei kann es entweder
a.) nur die Hubs oder
b.) die Komplexe in einem zweidimensionalen Array mit dem Hub im Subarray an der Stelle 0
ausgeben.

Input:

Output:
  • $Array.stations Das Array mit den Stationen. Je nach Eingabe zweidimensional. Das Array ist nach den Hubs bzw. deren Namen sortiert, die Subarrays mit den Komplexen sind nach den Stationstypen sortiert, allerdings befindet sich in diesen Subarrays der Hub an erster Stelle des Arrays. (klingt komplizierter als es ist)
Ressourcen:
  • lib.cm.ishub
  • lib.cm.sort

Download


lib.cm.ishub - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Prüft, ob angegebene Station ein Komplexhub ist.

Input:

Output:
  • [TRUE] falls die Station ein Hub ist
  • null falls nicht

Download


lib.cm.isincomplex - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Prüft, ob angegebene Station in einem Komplex ist.

Input:

Output:
  • [TRUE] falls die Station in einem Komplex ist
  • null falls nicht

Download


lib.cm.stationsofcomplex - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Gibt alle Stationen eines Komplexes sortiert zurück

Input:

Output:
  • $Complex nach Stationstyp sortiertes Array des Komplexes (Ohne Hub, nur die Fabriken)
Ressourcen:
  • lib.cm.getcomplex
  • lib.cm.sort

Download


Sonstige Libscripts

lib.cm.find.gates - DE/EN - 03.06.2007 - 2.10 - .xml(.zip)
Dieser Script gibt ein Array aller Gates im Sektor zurück. Dabei kann geht es nach folgenden Kriterien vor:
a) Ist das Gate bekannt? (optional)
b) Sortierung des Arrays nach der Entfernung zu einem bestimmten Objekt oder einer Sector Position: Aufsteigende Entfernung

Input:

Output:
  • $array.gates Array der Gates im Sektor, auf Wunsch sortiert

Download


lib.cm.getwingmen - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Dieser Script speichert in einer Globalen Variablen ein Array aller Wingmen und hält es aktuell:
Man startet den Script entweder direkt per Scriptcall oder global (Kommt auf dasselbe hinaus). Der Script prüft das Array der Wingmen und alle Spielerschiffe darauf, ob sie Wingmen sind (Eines pro Millisekunde) und speichert sie alle in dem Array. Somit sind bei 2000 Spielerschiffen nach spätestens 2 Sekunden alle Wingmen neu erfasst.
Das Script kann unmöglich doppelt laufen, da hier eine Prüfung eingesetzt wurde. Es handelt also ähnlich dem Lockmaster der HSW MK3.

Input: - Nichts -

Output:- kein direkter Output -

Download


lib.cm.installedhardware - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Gibt die installierte Hardware eines Schiffes als Array entsprechend der angegebenen Kriterien zurück

Input:

Output:
  • $Array.installed Array aller installierter Hardware
  • null wenn als Schiff ein ungültiger Wert angegeben wurde

Download


lib.cm.isknown - DE/EN - 03.06.2007 - 2.10 - .xml(.zip)
Prüft, ob das angegebene Objekt der angegebenen Rasse bekannt ist. Wichtig für Realismus im Spiel, da ein Schiff Nichts angreifen kann, was es nicht kennt, und etwas kennen sollte, was seine Kumpels ebenfalls kennen und vielleicht gerade angreifen. Dieser Script wird von allen KI- und Logistikscripts von mir verwendet.

Input:

Output:
  • [TRUE] wenn das Objekt angegebener Rasse bekannt ist
  • null wenn nicht

Download


lib.cm.sort - DE/EN - 18.03.2007 - 2.10 - .xml(.zip)
Sortiert das angegebene Array entsprechend der angegebenen Modi.
Die Rückgabe des Arrays beim CallScript-Befehl ist nmicht notwendig, da die Array-Variable nur ein Array-Pointer ist. Bei
006 @ $Complex2 = [THIS] -> call script 'lib.cm.sort' : Array=$Complex sort mode(s)='name'
wird das Array $Complex sortiert und dann im Array $Complex2 gespeichert. $Complex entspricht dabei $Complex2, da der X3SE mit Arrays anders umgeht, als man logisch denken würde.
Es reicht also, wenn man nur
006 @ = [THIS] -> call script 'lib.cm.sort' : Array=$Complex sort mode(s)='name'
angibt, da das Array $Complex danach sortiert ist.
(Oder: Sichert das Array vorher, wenn ihr es nachher noch unsortiert braucht!)

Input:

Normalerweise wird aufsteigend sortiert, aber man kann auch absteigend sortieren, indem man dem Modus einfach "/d" anfügt: 'name/d' -> Array beginnt mit Z und endet mit A

Zu guter Letzt kann man auch mehrere Modi hintereinander ablaufen lassen. Möchte man also primär nach dem (Schiffs)typ aufsteigend und sekundär nach dem Namen absteigend sortieren, so kann man die modi mit einem Komma trennen. Sind Schiffe mit gleichem Typ im Array vorhanden, werden sie sekundär also nach dem Namen sortiert:
'type,name/d'
Man kann auch die Nummer in den String setzen:
'2,1/d' oder 'type,1/d'
Wird ein ungültiger Befehl (z.B. 'typ', 'Name' oder 'Schild') eingegeben, wird die Sortierung sofort beendet und das Array zurückgegeben. Möglicherweise liegt dann ein halb sortiertes Array vor.

Output:

  • $Array in sortierter Form, eigentlich ist die Rückgabe nicht nötig
  • null wenn kein Array angegeben wurde (lol)

Download


lib.cm.tl.payment - DE/EN - 17.03.2007 - 2.00 - .xml(.zip)
Gibt für das angegebene Volk die momentanen Kosten eines TLs "pro Tor" zurück

Input:

Output:
  • $Costs die Kosten in Credits pro Tor
  • null wenn das Volk keines der 5 Hauptvölker oder der aktuelle Rang zu niedrig ist

Download