[Library] V1.0 final 29.01.05 Manage forbidden areas

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

Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

[Library] V1.0 final 29.01.05 Manage forbidden areas

Post by Naffarin »

Nachdem Lucike vorgesclagen hatte, bestimmte Sektoren oder Stationen im Stationsversorger zu blocken, ist diese Bibliothek entstanden.
Die Bibliothek selbst ist alleine für sich genommen wirkungslos, die internen Spielmechanismen benutzen die Daten nicht. Erst wenn Skriptpakete installiert werden, die diese Bibliothek verwenden, wird ein Effekt zu sehen sein

Download Bibliothekspaket
Im Skriptpaket werden 4 neue Kommandos definiert, die dem Spieler die Eingabe des gewünschten Sperrverhaltens erlauben.
Die Bibliothek ist für Scripter gedacht, um den Status eines Sektor oder einer Station abzufragen.

Usage (Spieler):

Im Skriptpaket werden 4 neue Kommandos definiert, 2 bei den zusätzlichen Schiffskommandos und 2 in der Allgemein-Sektion des Spielerschiffs.

zusätzliche Schiffskommando: Erlaube/Verbiete Sektor
Dieses Kommando fragt nach einem Sektor und verbietet den Zugang zu ihm, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn er oder eine der Stationen darin vorher geblockt war.

zusätzliche Schiffskommando: Erlaube/Verbiete station
Dieses Kommando fragt nach einer Station und verbietet den Zugang zu ihr, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn sie vorher geblockt war.

Allgemein: Erlaube/Verbiete Sektor
Dieses Kommando fragt nach einem Sektor und verbietet den Zugang zu ihm, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn er vorher geblockt war.
Die Einstellung wird anhand der Einstellung im Spielerschiff an alle spielereigenen Schiffe weitergeleitet, d.h wenn das Spielerschiff
vorher Zugang hatte, der nun verboten wurde, dann ist der Zugang für alle Schiffe verboten.

Allgemein: Erlaube/Verbiete Station
Dieses Kommando fragt nach einer Station und verbietet den Zugang zu ihr, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn sie vorher geblockt war.
Die Einstellung wird anhand der Einstellung im Spielerschiff an alle spielereigenen Schiffe weitergeleitet, d.h wenn das Spielerschiff
vorher Zugang hatte, der nun verboten wurde, dann ist der Zugang für alle Schiffe verboten.

Usage (scripters):

Die Skriptdatei lib.manageForbiddenAreas enthält den Code zur Verwaltung. Die Aufrufsignatur ist folgende:

Arg 1: VAR/Sector forbiddenSector, notwendiger Parameter, nicht null
Arg 2: VAR/Station forbiddenStation
Arg 3: VAR/Number mode, mögliche Werte 0-4
mode 0: setzen des Status (sector or station) bei [THIS] auf verboten, wenn momentan erlaubt, oder setzen auf erlaubt, wenn der Zugang momentan verboten ist.
mode 1: Abfrage des Status des Zielobjekts (Sektor oder Station), siehe Return codes
mode 2: Überschreiben des aktuellen Status auf [THIS] für das Zielobjekt (Sektor oder Station) auf verboten
mode 3: Überschreiben des aktuellen Status auf [THIS] für das Zielobjekt (Sektor oder Station) auf erlaubt
mode 4: aktuellen Statusarray für [THIS] bestehend aus Paaren von ( VAR/Sector, {ARRAY of VAR/Station}) pro Eintrag

Return value:
TRUE, wenn das Objekt nach der Aktion geblockt ist
FALSE, wenn das Objekt nach der Aktion erlaubt ist
ARRAY, nur mode 4

Installation:
Installieren mit cycrows x3 script installer, download in diesem Thread http://forum.egosoft.com/viewtopic.php?t=121351

Deinstallation:
Entfernen des Pakets mit cycrows x3 script installer, download in diesem Thread http://forum.egosoft.com/viewtopic.php?t=121351

Script attributes:

T File 8110 - Common library, forbid or allow sectors/stations
<t id="1221">COMMAND_TYPE_SHIP_21</t>
<t id="1222">COMMAND_TYPE_SHIP_22</t>
<t id="860">COMMAND_TYPE_GENERAL_60</t>
<t id="861">COMMAND_TYPE_GENERAL_61</t>

Page ID 8110
Commandcode 1221,1222,860 and 861
Last edited by Naffarin on Sun, 29. Jan 06, 15:21, edited 1 time in total.
Admiral_ss
Posts: 290
Joined: Sun, 12. Dec 04, 18:50
x4

Post by Admiral_ss »

Kurze Frage:

Im Spielerschiff gibt es nun unter "Allgemein" und "zusätzliche Schiffskommando" Erlaube/Verbiete Sektor

Allgemein heist für alle Schiffe im Spielerbesitz - das habe ich verstanden.

Wie siehts mit den "zusätzliche Schiffskommando"´s auf dem Spielerschiff aus? Gilt das dann nur für das Spielerschiff; oder hat es die selbe Bedeutung wie unter "Allgemein"?


Ps. Wie immer, ein klasse Script von dir - meine Hochachtung! :D
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Das Schiffskommando gilt nur für das Schiff auf dem es ausgeführt wird, falls man mal einzelne Schiffe gesondert konfigurieren will.
Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego »

Ich habe das Skript (die Bibliothek) am So zusammen mit der 1.24 der Stationsverwaltung installiert und hatte keine Verluste mehr - zumindest in den fixierten Sektoren nicht.
Gestern nun flogen 3 Schiffe in die Xenon-Sektoren... Bei einem hab' ich neugeladen und mir das genauer angesehn.
Der Discovery flog also Richtung Xenon. Ich habe den Sektor, wo er hin wollte, aus der Liste der (allgemein) gesperrten entfernt und wieder eingehängt. Der flog trotzdem weiter. Was kann da falsch sein?

Anm.: Er hatte ein Ziel, das hinter dem Sektor lag. Die andern beiden waren Versorger der Stationsverwaltung auf dem Rückflug und hatten offensichtlich keine Energie mehr zum Springen.
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Wenn der Discoverer mit den Standardbefehlen geflogen ist, dann wird er die verbotenen Sektoren nicht beachten, da die Bibliothek explizit von einem Skripter benutzt werden muss...ich müsste sonst jede Menge veränderter Standarddateien von Egosoft mitliefern, was ich allein aus rechtlichen Gründen schon nicht machen will/darf.

Zur Zeit wird also nur der Stationsversorger die EInstellung beachten.

Warum diese beiden Transporter durchgeflogen sind, ist mir allerdings ein Rätsel, die einzige Erklärung, die ich habe, ist, daß sie zwischendurch angegriffen wurden als sie einen Zielsektor auf der einen Seite des Xenonsektors hatten und sich auf der anderen Seite in Sicherheit gebracht haben, um dann wieder ihr normales Ziel anzufliegen. An der Situation kann ich leider nicht viel machen, weil ich da die Skripte der MK3 Software benutze und mit ihr das Problem teile, daß Transporter mit Standardantrieb fliegen, wenn sie zwischendurch angegriffen wurden.

Kannst du mal im Log nachschauen, ob die beiden Transporter vorher angegriffen wurden und dann in Sicherheit gesprungen sind, mit einer Konstellation wie ich sie beschrieben habe ?
Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego »

Die Transporter habe ich leider sterben lassen (waren nur "kleine" Frachter) und somit kein Save. Wenn der nächste zum Friedhof fliegt, guck ich mir das an.

Danke für die Hilfe!
Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego »

Da war wieder ein Verrückter. :twisted:

Komplex Grosses Riff. Ziel ISE Schmiede Menelaus Paradies. Abgeschossen in Xenon 437 (kam aus Schwarze Sonne). Ware BoFu.
Die war er offensichtlich nicht vollständig losgeworden.

Genauer: Frachtraum 2255/5000
Energie 30
BoFu 437
Kampfdrohnen 5

Ich räum das weiter zurückliegende Save auch mal auf. Der Sektor war übrigens gesperrt. Das habe ich nochmals überprüft.

P.S. Es hat grade wieder einen erwischt. Dasselbe Spiel und wieder _keine_ Warnung vorher. Das Logbuch ist leer.
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Kannst du bitte mal, falls du ein Save vor dem Verlust hast, in der Schiffsinfo runterblättern und beschreiben, was dort unter Task Info steht.

Vermutlich wird da am Anfang so etwas wie plugin.strader.supply sein gefolgt von einem oder mehreren plugin.strader.... Skripten

INteressant wäre für mich, ob noch weitere Skripte nach den plugin.strader... aufgerufen werden, oder nicht.
Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego »

Ok - Da steht (hab alles abgeschrieben):

Skript Task-Id = 0 --------------
PID = 137....
Prio = 0
Interrupts=enabled
IntReq=no
Stack Depth = 5

Current Stack [script at bottom runs]
1. plugin.strader.trade prio=0
2. plugin.strader.supply prio=0
3. plugin.strader.sellMultiWares prio=0
4. plugin.autotrade.jumptostation prio=0
5. !move.movetostation prio=0
6. !move.movetosector prio=0

Leider nicht mehr. :oops:
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Hmpf, das hab ich befürchtet, daran kann ich nämlich relativ wenig machen.

Das Problem kommt meiner Beobachtung daher, daß entweder der Trader keinen Fuel mehr hatte, oder auf der Heimatbasis keine Energiezellen da waren, oder der Trader zwischendrin angegriffen wurde.

In diesem Fall benutzt er Standardtriebwerke, um zum Ziel zu kommen und die dabei verwendete Wegfindung benutzt die library nicht, da es Teile der Handelssoftware MK3 bzw Standardskripte von Egosoft sind.

In diesem Fall kann man also keinen Fix liefern, es sei denn ich würde die entsprechenden MK3 und Standard Routinen durch eigene ersetzen.
Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego »

Also Energiezellen hatte der nicht genug, um nach Hause zu springen. Ich habe jetzt probehalber in der Heimatbasis Energiezellen als Produkt hinzugefügt (die waren da nicht drin). Mal sehn, ob noch einer Kamikaze macht.

Danke für die Hilfe und die Skripte!

Jetzt kann ich Killmissionen annehmen, ohne dauernd angehupt zu werden. Macht wieder richtig Spass.
User avatar
enenra
Posts: 7150
Joined: Fri, 8. Apr 05, 19:09
x4

Post by enenra »

@Naffarin
Ist es so gewollt, dass man an zwei Orten den Befehl auswählen kann?

Ich kann unter "allgemein" UND unter der zusätzlichen Komandokonsole den Befehl "Verbiete Sektor auswählen (den anderen auch)
scorpio2001de
Posts: 148
Joined: Sat, 7. Aug 04, 17:40
x4

Post by scorpio2001de »

DSE [ITF] wrote:@Naffarin
Ist es so gewollt, dass man an zwei Orten den Befehl auswählen kann?

Ich kann unter "allgemein" UND unter der zusätzlichen Komandokonsole den Befehl "Verbiete Sektor auswählen (den anderen auch)
lies doch mal das ausgangsposting ;)

"Im Skriptpaket werden 4 neue Kommandos definiert, 2 bei den zusätzlichen Schiffskommandos und 2 in der Allgemein-Sektion des Spielerschiffs.
zusätzliche Schiffskommando: Erlaube/Verbiete Sektor
Dieses Kommando fragt nach einem Sektor und verbietet den Zugang zu ihm, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn er oder eine der Stationen darin vorher geblockt war.

zusätzliche Schiffskommando: Erlaube/Verbiete station
Dieses Kommando fragt nach einer Station und verbietet den Zugang zu ihr, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn sie vorher geblockt war.

Allgemein: Erlaube/Verbiete Sektor
Dieses Kommando fragt nach einem Sektor und verbietet den Zugang zu ihm, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn er vorher geblockt war.
Die Einstellung wird anhand der Einstellung im Spielerschiff an alle spielereigenen Schiffe weitergeleitet, d.h wenn das Spielerschiff
vorher Zugang hatte, der nun verboten wurde, dann ist der Zugang für alle Schiffe verboten.

Allgemein: Erlaube/Verbiete Station
Dieses Kommando fragt nach einer Station und verbietet den Zugang zu ihr, wenn er vorher nicht geblockt war.
Er wird erlaubt, wenn sie vorher geblockt war.
Die Einstellung wird anhand der Einstellung im Spielerschiff an alle spielereigenen Schiffe weitergeleitet, d.h wenn das Spielerschiff
vorher Zugang hatte, der nun verboten wurde, dann ist der Zugang für alle Schiffe verboten.
"
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Ja, bei allgemein wird die Einstellung für den gewählten Sektor an alle Spielerschiffe übertragen, beim Schiffskommandoslot nur an das gewählte Schiff.

Die Trennung ist dazu da, daß man einzelnen Schiffen einen Sektor erlauben kann, während die Mehrheit nicht reinfliegen darf, oder andersrum.
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Update auf Version 1.0 final, die Liste der verbotenen Sektoren und Stationen wird nun auch bei Benutzung des Schiffskommandoslots an den Spieler versendet.
Deleted User

Post by Deleted User »

Jhuuu so was war schon lange mal nötig...
komisch das wir immer nachholen müssen was egosoft versäumt..


MfG
Hudruf
Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin »

Naja, alleine für sich hilft die lib ja nicht viel, hoffen wir mal, daß sich die lib einigermassen durchsetzt.
Emerald Flint
Posts: 2566
Joined: Wed, 1. Mar 06, 12:11
x3

Post by Emerald Flint »

Die lib ist klasse, bloß nutzen diese die meisten Scripte leider nicht, oder ich hab nicht aufgepasst ;)
User avatar
-Ford-
Posts: 2064
Joined: Wed, 18. Jan 06, 18:40
x4

Post by -Ford- »

@Naffarin

gibt es auch noch einen Downloadlink ohne *.spk?
Emerald Flint
Posts: 2566
Joined: Wed, 1. Mar 06, 12:11
x3

Post by Emerald Flint »

Nein, gibt es nicht und Naffarin hat sein X3 in die Ecke zum Verstauben gelegt, so dass ich nicht weiss, ob sich hier noch etwas tut...
Only the dead ones have seen the end of war. Plato

"Warnung: Frachtraum enthält nun... Argon Eins" :gruebel:

Master! Apprentice!

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