Station scripten

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

Titan73
Posts: 15
Joined: Tue, 1. Apr 14, 10:59

Station scripten

Post by Titan73 »

Hallo zusammen
Ich wolte mal fragen wie man eine station scripten kan.
Wie man eine script weiss ich aber dir protoziren nichts.
Als erklährung ich spiele den MG mod und da gibt es eine rakete namens antiker drohne die kan man leider nirgens wo kaufen nur scripten deshalb wolte ich mir eine station scripten wo die herstellt.
Also so sollte es etwa ausschauen.

End produkt = antiker drohne
Zykluszeit = 10min
Anzahl produkt = 2

Primäre ressourcen:
Energiezellen = 100
Cahoona fleischblöcke =25
Erz = 25



So sollte es am schluss aussehen wen möglich.
Die zahlen hinter der ressourcen ist die menge die es benötigt.
Kan mir also jeman aufschreiben wie ich das eingeben mus?
Danke im voraus
User avatar
ubuntufreakdragon
Posts: 5223
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon »

du kannst nicht festlegen welche Menge oder wie viel Produziert wird, nur was woraus, denn Rest entscheidet das Spiel nach Warenwert.

du musst 1. per create station eine Station platzieren, dann per add product/resources die passenden Waren hinzufügen.

dann noch Schilde installieren

und das set Productiontask: true um die Produktion zu starten.

Hier noch nee Liste der möglichen Befehle:
http://forum.egosoft.com/viewtopic.php?t=286349
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist
User avatar
Aldebaran_Prime
Posts: 1387
Joined: Sat, 20. Feb 10, 17:47
x4

Post by Aldebaran_Prime »

zum Beispiel so, auch wenn es in unten stehendem Beispiel um eine Handelsstation handelt.

Code: Select all

$curxst = create station: type={Xenon Station (DOCK_X_TRADE)} owner=[Xenon] addto=$curxisec x=0 y=10000 z=0
= $curxst-> install 15 units of {2 GJ Schild}
$curxst-> set current shield strength to 30000000
$curxst-> add product to factory or dock: {Ruder-Optimierung}
$curxst-> add product to factory or dock: {Laderaumerweiterung}
$curxst-> add product to factory or dock: {Triebwerkstuning}
$curxst-> add product to factory or dock: {Singularitäts-Zeitverzerrungsantrieb}
$curxst-> add product to factory or dock: {Transporter}
$curxst-> station trade and production tasks: on=[TRUE]
User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Station scripten

Post by Klaus11 »

Ein ausführliches Beispiel mit Positionsauswahl auf der Sektorkarte, einem Produkt und drei Ressourcen.

Code: Select all

* alles was hinter dem Sternchen steht, gilt als Kommentar

* ein Argument festlegen, für die Position im Sektor
Argument 1 : setLoc, Var/Sector Position, ’Position wählen’

*Position der Station
$x = $setLoc[0]
$y = $setLoc[1]
$z = $setLoc[2]
$sec = $setLoc[3]

$neueStation = create station: type={Terraner M/AM-Gefechtskopffertigung M} owner=[Player]  addto=$sec x=$x y=$y z=$z
= $neueStation-> install 10 units of {2 GJ Schild}
$sstr = $neueStation-> get maximum shield strength
$neueStation-> set current shield strength to $sstr

*Produkt der Station
$neueStation-> add product to factory or dock: {M/AM-Gefechtskopf}

*Resourcen der Station
$neueStation-> add primary resource to factory: {Energiezellen}
$neueStation-> add primary resource to factory: {Siliziumscheiben}
$neueStation-> add primary resource to factory: {BoFu}

*Der Station einen Namen geben
$neueStation-> set name to 'MAM Gefechtskopf'

*Der nächste Eintrag sorgt dafür, dass die Station auch produziert.
$neueStation-> station trade and production tasks: on=[TRUE]

*Skript beenden
return null

[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE
User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Wie kann ich einen Komplex übergeben?

Post by Klaus11 »

Hallo Piloten,

nun habe ich auch mal eine Frage zum Thema Skripten. Das ich mich schon länger mit diesem Thema beschäftigt habe, zeigt mein Skriptbeispiel oben.

Was möchte ich erreichen?
Es geht darum, dass ich einen Stationskomplex an ein Volk übergeben möchte.

Beispiel: 1 x Bofu + 1 x Bogas = Bofukomplex und diesen übergeben. Der Komplex soll nicht geskriptet werden, da er im Spiel gebaut wird.

Der folgende Code diente mir zum experimentieren. Vielleicht kann mir jemand helfen, dieses Knäuel zu entwirren. Ich wäre sehr froh und dankbar, wenn es endlich gelänge.

Code: Select all

$anvisiert1 = get player tracking aim
$KlasseZ = $anvisiert1-> get object class
* $AuswahlZ = [TRUE]

$Compl = array alloc: size=0

* if $KlasseZ-> is of class [Komplexzentrum]
* $Complexes==$anvisiert1
* else
* return null
* end

$Complexes.count = size of array $Complexes
* dec $Complexes.count
* $ComHab-> set serial name of station to $Complexes.count

$Complexes.count = size of array $nStation
* dec $Complexes.count
* $ComHab-> set serial name of station to $Complexes.count

* $Sts.i = size of array $Compl

$Komplexstationen = $nStation-> get station array from sector
* $nStation-> set owner race to $RasseN
* $n = size of array $Komplexstationen

for each $St in array $nStation using counter $Sts.i

$St-> set owner race to $RasseN

end

$ComHab-> set owner race to $NewRace
for each $St in array $Compl using counter $Sts.i
$St-> set owner race to $NewRace
end

$Komplexstationen-> set owner race to $RasseN

* $nStation-> set owner race to $RasseN

= wait 1000 ms
return null
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE
User avatar
JSDD
Posts: 1379
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD »

... ich denke, mit dem "get environment" kann man entscheiden, ob ne station zu einem komplex gehört oder nicht (ist nur geraten)
... andererseits würd sich n blick in andere scripts (z.B. lucikes komplexrechner o.ä.) lohnen

... wenn ja (also zum komplex gehörend), dann via set owner race ... den besitzer wechseln (also "übergeben")

... ob das ganze funktionieren kann, weiß ich ehrlich gesagt nicht, wüsst aber nix was 'gegen sprechen würd ... viel spaß beim testen ^^

(konkretere fragen können konkreter beantwortet werden ;))
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele
User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 »

Hallo JSDD,

ich danke Dir, für die schnelle Antwort. Leider ist sie nicht sehr hilfreich.
JSDD wrote:... ich denke, mit dem "get environment" kann man entscheiden, ob ne station zu einem komplex gehört oder nicht (ist nur geraten)
Dieser Befehl taugt für mein Vorhaben überhaupt nicht und ein Ratespiel habe ich nicht veranstaltet.
JSDD wrote:... andererseits würd sich n blick in andere scripts (z.B. lucikes komplexrechner o.ä.) lohnen
Habe ich bereits ausgiebig getan und in meiner Anfrage schon angedeutet.
JSDD wrote:... wenn ja (also zum komplex gehörend), dann via set owner race ... den besitzer wechseln (also "übergeben")
Dieser Befehl ist korrekt und in meinem Beispielskript schon vorhanden.
JSDD wrote:... ob das ganze funktionieren kann, weiß ich ehrlich gesagt nicht, wüsst aber nix was 'gegen sprechen würd ... viel spaß beim testen ^^
Ich hoffe auf eine Antwort die mir tatsächlich weiterhilft, von jemandem der sich auch auskennt.

JSDD wrote:(konkretere fragen können konkreter beantwortet werden )}
Da gebe ich Dir völlig Recht!

Die Aufgabe lautet: Es geht darum, dass ich einen Stationskomplex an ein Volk übergeben möchte.
Inwiefern ist diese Anfrage unkonkret? Was kann daran missverstanden werden?
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25130
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus »

Klaus11 wrote:Es geht darum, dass ich einen Stationskomplex an ein Volk übergeben möchte.
Die prinzipielle Vorgehensweise hast du ja schon in deinem Beispielscript. Jetzt musst du nur noch darauf achten, dass du die richtigen Befehle nutzt, um die Stationen zu erhalten, und alle Variablen anlegst, bevor du sie nutzt.

Ich mach das mal an einem eigenen kleinen Beispiel deutlich.

Code: Select all

Arguments
• 1: race , Var/Race , 'race' 

Source Text


001   $aim = get player tracking aim
002   skip if $aim -> is of class Komplexzentrum
003   |return null
004   
005   $aim ->set owner race to $race
006   $factory.arr = $aim -> get factory array from sector
007   $size.factory.arr = size of array $factory.arr
008   while $size.factory.arr
009   |dec $size.factory.arr = 
010   |$factory = $factory.arr[$size.factory.arr]
011   |$factory ->set owner race to $race
012   end
013   return null


Prinzipiell würde es auch schon ausreichen, wenn du nur den Besitzer des Komplexkontrollzentrums änderst. Der Komplex produziert dann auch schon, genügend Ressourcen vorausgesetzt, hat unendlich viel Geld (immer 2 Mrd. Credits) und die automatische Preisanpassung funktioniert ebenfalls. Wenn das Kontrollzentrum zerstört werden würde, würden die Stationen aber dir gehören, und eben nicht dem Besitzer des Kontrollzentrums.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!
User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 »

Hallo X2-Illuminatus,

Herzlichen Dank für Deine qualifizierte Antwort. Dies ist die Lösung, nach der ich so lange gesucht habe. :lol: :lol:

Die einfache Variante, Übergabe des Komplexes, hat mich nicht zufrieden gestellt. Weil die Stationen immer noch vom Spieler beeinflusst werden konnten. Es war möglich, die Produktion einzelner Fabriken an und aus zu schalten.

Es beruhigt mich zu wissen, dass hier noch Fachleute zu erreichen sind.

Noch mal vielen Dank dafür.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

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