station scripten, wie?

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

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

Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

station scripten, wie?

Post by Xuniverse »

hi leutz,

kann mir jemand helfen wie ich eine beliebige station (kein spielerhauptquartier) in einen beliebigen sektor skripten kann? ich möchte eine schiffswerft mit yaki-schiffen, die den yaki gehört, in einen unbekannten sektor scripten damit man dort yaki-schiffe erwerben kann.
das gleiche würde ich auch gerne mit einer terranischen schiffswerft/ausrüstungsdock tun.

danke im voraus
User avatar
Chris Gi
Posts: 960
Joined: Wed, 20. Sep 06, 09:57
x3tc

Post by Chris Gi »

Ist wohl das falsche Forum. Hier ist X2, nicht X3.

Ich weiß nicht, wie stark sich das in X3 verändert hat, aber unter X2 ging das so:

Code: Select all

$station = create station: type= <Var/Station Type> owner= <Var/Race> addto= <Var/Sector> x= <Var/Number> y= <Var/Number> z= <Var/Number>
$station -> add product to factory or dock: <Schiffstyp>
$station -> add product to factory or dock: <AndererSchiffstyp>
$station -> station trade and production tasks: on= TRUE
--------------------------------

[ external image ]
Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

station scripten

Post by Xuniverse »

vielen dank für deine hilfe.
mit normalen fabriken scheint das zu klappen. bei einer schiffswerft kann ich allerdings keine schiffe bestücken :oops:
irgendein befehl fehlt hier
Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

Post by Xuniverse »

Chris Gi wrote:Ist wohl das falsche Forum. Hier ist X2, nicht X3.

Ich weiß nicht, wie stark sich das in X3 verändert hat, aber unter X2 ging das so:

Code: Select all

$station = create station: type= <Var/Station Type> owner= <Var/Race> addto= <Var/Sector> x= <Var/Number> y= <Var/Number> z= <Var/Number>
$station -> add product to factory or dock: <Schiffstyp>
$station -> add product to factory or dock: <AndererSchiffstyp>
$station -> station trade and production tasks: on= TRUE
:wink:
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25130
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus »

@Xuniverse
Wie ich dir eben schon in deinem anderen Thread geschrieben habe, benutze den Edit-Button und unterlasse solche Beiträge, die nur aus einem Zitat und einem Smilie bestehen.
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!
Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

Schiffswerft in X3TC scripten?

Post by Xuniverse »

Hi Community,

ich würde gerne mit Hilfe des Script-Editors eine Yaki-Schiffswerft in einem beliebigen Sektor erstellen, bei der man die Yaki-Schiffe erwerben kann. Leider haut das nicht richtig hin. Ich kann Stationen Skripten, die Waren vertreiben, jedoch ist das Platzieren von zu verkaufenden Schiffen irgendwie nicht möglich.

mein Script:

>>general objects commands >>create objects
$station = create station: type = ... owner = yaki addto = (sektor ...) x = ... y = ... z = ...
>>trade commands >>for stations
$station -> add product to factory or dock ...
$station -> add product to factory or dock ...
$station -> add product to factory or dock ...
>>general object commands
$station -> station trade and production tasks on = TRUE
end

kann mir jemand dabei helfen, dass das klappt?

Danke im Voraus
User avatar
RiRu
Posts: 43
Joined: Wed, 6. Nov 02, 20:31
x3ap

Post by RiRu »

Direkt helfen kann ich Dir nicht, aber schau mal die Scripte von Kraxl an, zu finden hier: http://www.madxhawk.com/downloads.php?cat=25.
Das sollte Dir weiter helfen, da Kraxl da die Völkerwerften "bearbeitet" hat.

Grüße
RRProdaction - Ihr Versorger im Teladi-Einflußbereich und darüber hinaus i.A.
User avatar
Chris Gi
Posts: 960
Joined: Wed, 20. Sep 06, 09:57
x3tc

Post by Chris Gi »

irgendein befehl fehlt hier
Ähm, sorry. Natürlich kann man bei dem Befehl keine Schiffe angeben :oops: .
Stattdessen musst Du sowas machen:

Code: Select all

$ware = <Schiffstyp>
$station -> add product to factory or dock: $ware
--------------------------------

[ external image ]
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25130
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus »

Da es hier wohl doch um X3: TC geht und du für diese Fragestellung sicherlich nicht zwei Threads benötigst,...


***verschoben und Themen zusammengefügt***


PS: Mit einem kurzen Hinweis per PN, wohin der Thread eigentlich hinsollte, hätte ich oder ein anderer Mod diesen auch gleich ins richtige Forum geschoben.
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!
Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

Upgrades in gescripteter Piratenbasis kaufen?

Post by Xuniverse »

hi Chris Gi,

ersteinmal vielen Dank :wink:

Du scheinst dich ja recht gut mit dem Scripten auszukennen! :o

ich will ne piratenbasis scripten, in der ich auch upgrades wie Bioscanner, Transporter, Sprungantrieb usw kaufen kann.
Die Standardsachen funktionieren:

$station = create station: type = Piraten Basis owner = Piraten addto = Unbekannter Sektor x=1000 y = 1000 z = 1000

=$station -> install 8 units of 200 MJ Schild

$station -> add product to factory or dock: Laderaumerweiterung
$station -> add product to factory or dock: Triebwerkstuning
$station -> add product to factory or dock: Ruder-Optimierung
$station -> add product to factory or dock: Sklaven
$station -> add product to factory or dock: Raumkraut
$station -> add product to factory or dock: Raumsprit
$station -> add product to factory or dock: Raumfliegen
$station -> add product to factory or dock: Handfeuerwaffen
$station -> add product to factory or dock: Handfeuerwaffen der Piraten
$station -> add product to factory or dock: Enterkapsel
$station -> station trade and production tasks: on = [TRUE]
return null

Soweit funktioniert das Script! :wink:

Mit den Befehlen "add product to..." funktioniert das jedoch nicht bei einem Bioscanner, Transporter und anderen Sachen :?
ThRex
Posts: 157
Joined: Mon, 11. Oct 04, 12:15
x3

Post by ThRex »

Wieso soll die Basis denn Raumkraut, Raumsprit, Sklaven und Raumfliegen produzieren?!

Im Normalfall soll sie die ja kaufen.
Xuniverse
Posts: 71
Joined: Sun, 28. Aug 05, 13:58
x2

Post by Xuniverse »

die basis produziert das ja auch nicht, sie kauft es an. laderaum- triebwerks- und ruderoptimierung kann man ankaufen bzw tunen.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

bei erweiterungen muss man iirc noch einmalig 1 Einheit von dieser dem Lagerraum hinzufügen, da man ja aus einem leeren Lager nicht kaufen kann.. (bim Kauf verschwinden die Erweiterungen einfach nur nicht ;) )
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)
ThRex
Posts: 157
Joined: Mon, 11. Oct 04, 12:15
x3

Post by ThRex »

Das sollte dann in etwa so aussehen:

Code: Select all

$station = create station: type = Piraten Basis owner = Piraten addto = Unbekannter Sektor x=1000 y = 1000 z = 1000

=$station -> install 8 units of 200 MJ Schild
$sstr = $Station->get maximum shield strength
$Station->set current shield strength to $sstr
[b]//Alternativ kannst Du der Station noch einen Namen geben![/b]
$Station->set name to 'Medizinisch-, Ökologisches Werk zur Förderung des Allgemeinbefindens'


$station -> add product to factory or dock: Laderaumerweiterung
$station -> add product to factory or dock: Triebwerkstuning
$station -> add product to factory or dock: Ruder-Optimierung
$station -> add product to factory or dock: Sklaven
$station -> add product to factory or dock: Raumkraut
$station -> add product to factory or dock: Raumsprit
$station -> add product to factory or dock: Raumfliegen
$station -> add product to factory or dock: Handfeuerwaffen
$station -> add product to factory or dock: Handfeuerwaffen der Piraten
$station -> add product to factory or dock: Enterkapsel
$neueStation->add primary resource to factory: (Hier die Ressourcen eintragen.)
$station -> station trade and production tasks: on = [TRUE]

$s1 = Laderaumerweiterung 
$s2 = Triebwerkstuning
$s3 = Ruder-Optimierung
$s4 = Sklaven
$s5 = Raumkraut
$s6 = Raumsprit
$s7 = Raumfliegen
$s8 = Handfeuerwaffen
$s9 = Handfeuerwaffen der Piraten
$s10 = Enterkapsel
check1:
= $Station->add (hier muß die Anzahl der Waren rein) units of Laderaumerweiterung
= $Station->add (hier muß die Anzahl der Waren rein) units of Triebwerkstuning
= $Station->add (hier muß die Anzahl der Waren rein) units of Ruder-Optimierung
= $Station->add (hier muß die Anzahl der Waren rein) units of Sklaven
= $Station->add (hier muß die Anzahl der Waren rein) units of Raumkraut
= $Station->add (hier muß die Anzahl der Waren rein) units of Raumsprit
= $Station->add (hier muß die Anzahl der Waren rein) units of Raumfliegen
= $Station->add (hier muß die Anzahl der Waren rein) units of Handfeuerwaffen
= $Station->add (hier muß die Anzahl der Waren rein) units of Handfeuerwaffen der Piraten
= $Station->add (hier muß die Anzahl der Waren rein) units of Enterkapsel
[b]//Die Anzahl der zu lagernden Produkte hängt von der gewählten Station ab!!![/b]
= wait 10000 ms
goto label check1
return null

[b]///Es ist nicht möglich eine Station zu erstellen, die sowohl Endprodukte produziert
///und aufkauft! Für eines mußt Du Dich entscheiden! Dieses Beispiel geht vom produzieren aus![/b]
[/b]
User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest »

Stationen vom Type Dock (wie es die Pir Base ist) nutzen "Produkt" Einträge um damit zu handeln.

Am Anfang hab ich das auch noch mit labels (check1) gemacht, bis mir Ogger mal sehr arg auf die Finger haute. Gut geholfen hat es ne Zeitlang wirklich nicht, da ich das mit den while´s noch nicht so wirklich drauf hatte. Aber so wies jetzt ist möchte ich das weitertragen was Ogger zu mir damals gesagt hat: "Mit labels baut man keine Schleifen dafür sind wihles da" :roll: Sorry Ogger aber das musst jetzt mal raus :)

will man die Piri base nicht immer gefüllt haben Rex lass den check teil weg dann ist der Piri auf alle fälle nicht so enorm reich ;) (denk an die lieben verwandten)

was Uni meinte ist folgendes:

Software Erweiterungen sprich Maintype 16 müssen als erstes mit dem Befehl: $station -> add product to factory or dock: Laderaumerweiterung eingefügt werden anschließend kommt der befehl:
= $Station->add (hier muß die Anzahl der Waren rein) units of Laderaumerweiterung und zwar waren anzahl 1. das Reicht um die Software Erweiterungen endlos zu verkaufen (falls es sich um eine nicht Spielerstation handelt)
Unis Ansage wrote:bei erweiterungen muss man iirc noch einmalig 1 Einheit von dieser dem Lagerraum hinzufügen,
wenn dein Beispiel überhaupt funzt dann frag ich mich wieso, weil du zwei verschiedene variablen für die selbe Station nutzt.( $station (beim add produkt), $Station (beim einfügen von waren))

Eine If/Var <expresion> ist bei waren eigentlich nicht erforderlich dient aber der Optischen Scriptgestaltung.

zum anderen ist es besser solche Scripte local auf der Station laufen zu lassen und eine "If exists" Prüfung einzubauen. So wie es bei deinem Beispiel aussieht läuft das Script solange bis man es im global Script Task bereich manuell abstellt (auch wenn die Station schon längst durch umwelteinflüsse gegangen worden ist) fügt es weiter waren ein ^^.

lass es doch einfach das nächste mal von Erzeugungsscript callen, bau ne while schleife mit nem wait ein, und mach ne exist prüfung. Bei der Anzahl an waren wäre der nächste schritt ein Arry das in dem Fall einfacher ist. Ich würde wieder das append empfehlen da man es später noch einfacher ändern kann. Das sähe dann so aus:

008 $ware.1 = Bergungsversicherung
009 $ware.2 = Bioscanner
010 $ware.3 = Aufklärungsdrohne
011 $ware.4 = Boost Erweiterung
012 $ware.5 = Digitales Sichtverbesserungssystem
013 $ware.6 = Versorgungssoftware
014 $ware.7 = Duplex Scanner
015 $ware.8 = Erkundungssoftware ....

058 $produ.arry = array alloc: size=0
059 append $ware.1 to array $produ.arry
060 append $ware.10 to array $produ.arry
061 append $ware.11 to array $produ.arry
062 append $ware.12 to array $produ.arry
063 append $ware.13 to array $produ.arry
064 append $ware.14 to array $produ.arry
065 append $ware.15 to array $produ.arry
066 append $ware.15 to array $produ.arry ....

106 $produ.size = size of array $produ.arry
107 while $produ.size
108 ~ dec $produ.size =
109 ~ $produ = $produ.arry[$produ.size ]
110 ~ skip if $station -> uses ware $produ as product
111 ~~ $station -> add product to factory or dock: $produ
112 end
114 while [TRUE]
115 ~
116 ~ if not $station -> exists
117 ~~ return null
118 ~ end
119 ~
120 ~ if $station -> exists
121 ~~
122 ~~ $ware.arry = $station -> get tradeable ware array from station
123 ~~ $ware.arry.size = size of array $ware.arry
124 ~~ while $ware.arry.size
125 ~~~ dec $ware.arry.size =
126 ~~~ $ware = $ware.arry[$ware.arry.size]
127 ~~~ $free = $station -> get free amount of ware $ware in cargo bay
128 ~~~ if $free >= 1
129 ~~~~ = $station -> add $free units of $ware
130 ~~~ end
131 ~~ end
156 ~ end
157 ~
158 ~ @ = wait 100 ms
159 end

das ist n Sinnbeispiel da die oberen waren die hier rausgeschnippelt sind, nicht zu den append waren passen das muss man noch angleichen, allerdings werd ich jetzt nicht 100 Zeilen posten

die oberen Zeilen wo ich die Variablen miteinander verglichen habe kann man sich beim append schenken, da das append so ziemlich alles reinhauen kann was man möchte. Ich hab hier das Trabal waren arry genommen da es sich um eine Art von YAd Prototyp handelt. Es ist vielmehr ein Übertragsprojekt von mir. Es wird aber eine erweiterte Version von dem Reamke von mir geben. Ach ja wieso ich das genommen hab ist klar das irgendwann bei Spieler eigenen Stationen einem die Erweiterungen ausgehen, anders als bei NPC Stationen.

PS: tu mir bitte einen gefallen und minimiere deine ! sonst fühlt sich das ?=)(/&%$§"*'+#~ benachteiligt. :oops:

Edit da eine frage übersehen wurde:
vielen dank für deine hilfe.
mit normalen fabriken scheint das zu klappen. bei einer schiffswerft kann ich allerdings keine schiffe bestücken Embarassed
irgendein befehl fehlt hier
du musst schiffe und stationen mit einer rev Var expresions vergleichen und die variable dann als produkt einfügen das sieht dann so aus

$ware.1 = Panzerkreuzer Admiral Chester

wenn du eine Fabrick einfügen willst musst du noch eine zusätzlich in das Lager de SW schmeißen.

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