[DISKUSSION] Allgemeine S&M-Fragen III

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
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13817
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Fri, 31. Dec 10, 18:52

bezüglich Menge von Schiffen/Stationen in SWs:

ich hatte mal kurz damit experimentiert.. man kann darüber einen kleinen Rabatt auf Stationen geben und vielleicht sogar auf Schiffe, indem man mehr als 1 bzw. 10 ins Lager tut - und um die Produktionstasks muss man sich in diesem fall auch nicht kümmern, das Lager leert sich beim Einkauf sowieso nicht.. lediglich per Script kann die Lagermenge geändert werden...
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 ;)

User avatar
Generalwest
Posts: 2718
Joined: Thu, 31. May 07, 18:07
x3tc

Post by Generalwest » Fri, 31. Dec 10, 19:39

mal was anderes: $ship -> find station: product $waren with best price: max.price=null, amount=$s.units, max.jumps=$jumps, startsector=$sektor, trader=$ship, exclude array=null übergibt mir eine Station (Fac) für das Produkt aber offenbar keine Docks.

Nun meene Question: Gibts das auch mit Docks? Ich mein es ist doof ne Station zu Basteln damit ich Erweiterungen kaufen kann per Script.
Image

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

Post by ScRaT_GER » Sat, 1. Jan 11, 13:13

Weiß echt keiner wie der Befehl "start command" funktioniert? Hier hatte ich danach gefragt.
Ich habe auch schon in den ES Skripts gesucht, habe aber noch keine Verwendung dieses Befehls gesehen.
Nun meene Question: Gibts das auch mit Docks? Ich mein es ist doof ne Station zu Basteln damit ich Erweiterungen kaufen kann per Script.

Code: Select all

038   |$factory = find station: product $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
039   |$dock = find station sells: resource $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
Ich benutze diesen Code. Irgendwann habe ich das mal getestet, also gehe mal davon aus, dass "find station sells" Docks findet, während das normale "find station" Fabriken findet.

MfG,
ScRaT

User avatar
Lucike
Posts: 12333
Joined: Sun, 9. May 04, 21:26
xr

Post by Lucike » Sat, 1. Jan 11, 14:00

ScRaT_GER wrote:Wie funktioniert eigentlich folgender Befehl:

Code: Select all

START <RefObj> -> command <Object Command>: arg1=<Value>, arg2=<Value>, arg3=<Value>, arg4=<Value>
So weit ich weiß funktionieren nicht alle Kommandos. Funktionieren tut zumindest "COMMAND_DOCKAT". Die Argumente nicht vergessen.

START $Ship -> command COMMAND_DOCKAT : arg1=$Station, arg2=null, arg3=null, arg4=null

Dieses nutze ich ab und zu.
ScRaT_GER wrote:
Nun meene Question: Gibts das auch mit Docks? Ich mein es ist doof ne Station zu Basteln damit ich Erweiterungen kaufen kann per Script.

Code: Select all

038   |$factory = find station: product $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
039   |$dock = find station sells: resource $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
Ich benutze diesen Code. Irgendwann habe ich das mal getestet, also gehe mal davon aus, dass "find station sells" Docks findet, während das normale "find station" Fabriken findet.
ich nutze das ähnlich, wie hier beim SGS:

Code: Select all

$Station =  find station: product $Ware with best price:  max.price=$WarePrice, amount=$WareBuy, max.jumps=$HomeJumps, startsector=$HomeSector, trader=[THIS], exclude array=$Array.Sector.Closed
$Dock =  find station sells: resource $Ware with best price: max.price=$WarePrice, amount=$WareBuy, max.jumps=$HomeJumps, startsector=$HomeSector, trader=[THIS], exclude array=$Array.Sector.Closed
  
if $Station -> exists
|if $Dock -> exists
||$WarePriceStation = $Station -> get price of ware $Ware
||$WarePriceDock = $Dock -> get price of ware $Ware
||$WareCargoStation = $Station -> get amount of ware $Ware in cargo bay
||$WareCargoDock = $Dock -> get amount of ware $Ware in cargo bay
||if $WarePriceDock < $WarePriceStation AND $WareCargoDock > $WareCargoStation
|||$Station = $Dock
|||$Dock = null
||end
|end
else if $Dock -> exists
|$Station = $Dock
|$Dock = null
end
Gruß
Lucike
Image

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

Post by ScRaT_GER » Sat, 1. Jan 11, 15:34

START $Ship -> command COMMAND_DOCKAT : arg1=$Station, arg2=null, arg3=null, arg4=null

Dieses nutze ich ab und zu.
Ah, okay. Und hat das irgendeinen Vorteil gegenüber dem direkten Aufruf des Skripts?

Ich hatte ja gehofft, man könnte darüber irgendwie elegant verschiedene Skripts für unterschiedliche Schiffsklassen ausführen.
D.h. man registriert in einem Setup-Skript für verschiedene Schiffklassen verschiedene Skripts für ein bestimmtes Kommando. Über diesen Befehl (start command) könnte man dann einfach im Benutzercode, ohne die Schiffsklasse zu beachten, das Kommando starten und das richtige (vorher registrierte Skript) wird aufgerufen.

Wenn das nicht geht, wäre wohl die normale Vorgehensweise ein Skript für alle Schiffsklassen zu registrieren und dann in diesem Skript die Unterscheidung zu machen, oder?

MfG,
ScRaT

User avatar
Generalwest
Posts: 2718
Joined: Thu, 31. May 07, 18:07
x3tc

Post by Generalwest » Sat, 1. Jan 11, 15:36

wieso verwendest du kein check Script ala "für welches Schiff ist das Kommando sichtbar" es gilt für verschiedene Waren aber auch für alles andere: Hangars, Größe, Schiffsklasse usw

das check scirpt löst vl n preload Script aus oder ne anderes mit ner local var das dann alles andere regelt bzw vorinstalliert. doof zu Scripten aber es wäre ne Möglichkeit.
Image

User avatar
Gazz
Posts: 12430
Joined: Fri, 13. Jan 06, 17:39
x3tc

Post by Gazz » Sat, 1. Jan 11, 15:58

ScRaT_GER wrote:Wenn das nicht geht, wäre wohl die normale Vorgehensweise ein Skript für alle Schiffsklassen zu registrieren und dann in diesem Skript die Unterscheidung zu machen, oder?
Mag nicht elegant sein aber ein Starter-Script ist wirklich die einfachste Möglichkeit und sogar recht übersichtlich.
Alle Argumente werden einfach an das "richtige" Script weitergereicht.

Kommandos sind für KI-Schiffe recht nützlich. z.B. werden für die turret scripts beim Sektorwechsel automatisch Kommandos gestartet und keine Scripts.

Was funktioniert und was nicht muß man aber im Einzelfall probieren.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.

Cpt.Falcon
Posts: 251
Joined: Fri, 24. Dec 10, 17:30
x3tc

Post by Cpt.Falcon » Sat, 1. Jan 11, 21:42

Über welches Logbook Command kann dem Spieler eine Frage stellen, auf die der Spieler dann per "Knopfdruck" antworten kann?
So wie bei den Plots: "Möchten Sie uns helfen" "Ja","Nein".

User avatar
Generalwest
Posts: 2718
Joined: Thu, 31. May 07, 18:07
x3tc

Post by Generalwest » Sat, 1. Jan 11, 22:18

spontan fällt mir nur "callback" (audio commands) ein. ja nein Argument ist auch möglich oder per Costume Menü
Image

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

Post by ScRaT_GER » Sat, 1. Jan 11, 22:22

Mag nicht elegant sein aber ein Starter-Script ist wirklich die einfachste Möglichkeit und sogar recht übersichtlich.
Alle Argumente werden einfach an das "richtige" Script weitergereicht.

Kommandos sind für KI-Schiffe recht nützlich. z.B. werden für die turret scripts beim Sektorwechsel automatisch Kommandos gestartet und keine Scripts.

Was funktioniert und was nicht muß man aber im Einzelfall probieren.
Ja, ist etwas schade. aber was solls...
wieso verwendest du kein check Script ala "für welches Schiff ist das Kommando sichtbar" es gilt für verschiedene Waren aber auch für alles andere: Hangars, Größe, Schiffsklasse usw
Es geht im Hauptsächlichen um die KI, also nicht darum ein Kommando aus der Kommandokonsole des Schiffes zu starten. Ich hatte gehofft, man könnte für ein Kommando verschiedene Skripts für verschiedene Schiffsklassen registrieren und dann mit "start command" starten, sodass basierend auf den vorher registrierten Skripts das richtige ausgewählt wird.
Aber das geht ja anscheinend nicht so automatisch, weswegen man diese "Arbeit" eben selbst machen muss.
Über welches Logbook Command kann dem Spieler eine Frage stellen, auf die der Spieler dann per "Knopfdruck" antworten kann?
Einfach über "get user input: type={Var/Boolean}", wenn ich mich richtig erinnere.

MfG,
ScRaT

Striker304
Posts: 890
Joined: Fri, 26. Mar 10, 22:15
x3tc

Post by Striker304 » Sat, 1. Jan 11, 22:23

Ich meine folgender Befehl könnte da auch noch helfen:

Code: Select all

<RetVar/IF><RefObj> get user input without sector: type=<Script Reference Type>, title=<Var/String> 
Bei Script Reference type müsste Var/Boolean funktionieren, dann kriegst du meine ich ne Ja/Nein auswahl.

mfg
Striker

User avatar
Generalwest
Posts: 2718
Joined: Thu, 31. May 07, 18:07
x3tc

Post by Generalwest » Sat, 1. Jan 11, 23:10

Lucike wrote:
ScRaT_GER wrote:
Nun meene Question: Gibts das auch mit Docks? Ich mein es ist doof ne Station zu Basteln damit ich Erweiterungen kaufen kann per Script.

Code: Select all

038   |$factory = find station: product $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
039   |$dock = find station sells: resource $ware with min. jumps: max.price=$maxPrice, amount=$amount, max.jumps=200, startsector=$startSec, trader=$refObject, exclude array=$exclude
Ich benutze diesen Code. Irgendwann habe ich das mal getestet, also gehe mal davon aus, dass "find station sells" Docks findet, während das normale "find station" Fabriken findet.
ich nutze das ähnlich, wie hier beim SGS:

Code: Select all

$Station =  find station: product $Ware with best price:  max.price=$WarePrice, amount=$WareBuy, max.jumps=$HomeJumps, startsector=$HomeSector, trader=[THIS], exclude array=$Array.Sector.Closed
$Dock =  find station sells: resource $Ware with best price: max.price=$WarePrice, amount=$WareBuy, max.jumps=$HomeJumps, startsector=$HomeSector, trader=[THIS], exclude array=$Array.Sector.Closed
  
if $Station -> exists
|if $Dock -> exists
||$WarePriceStation = $Station -> get price of ware $Ware
||$WarePriceDock = $Dock -> get price of ware $Ware
||$WareCargoStation = $Station -> get amount of ware $Ware in cargo bay
||$WareCargoDock = $Dock -> get amount of ware $Ware in cargo bay
||if $WarePriceDock < $WarePriceStation AND $WareCargoDock > $WareCargoStation
|||$Station = $Dock
|||$Dock = null
||end
|end
else if $Dock -> exists
|$Station = $Dock
|$Dock = null
end
Gruß
Lucike
Hat Funktioniert. Allerdings verhält sich der Frachter seltsam ^^ macht nix
Image

Bedachto
Posts: 1061
Joined: Fri, 17. Oct 08, 11:24
x3tc

Post by Bedachto » Sun, 2. Jan 11, 22:01

Ich spiele mit Patch 3.0 und bin der Meinung,Vanilla Spieler zu sein.
Ich habe aber ein modified bei mir entdeckt.
Isr das normal ?
Frieden?- oder Remis?

User avatar
Reacecor
Posts: 350
Joined: Mon, 22. Nov 10, 21:26
x3tc

Post by Reacecor » Sun, 2. Jan 11, 22:11

Welchen Spielstart hast du gewählt? Der Selbsterstellte ist nämlich automatisch ***modified***.

Gruß

Bedachto
Posts: 1061
Joined: Fri, 17. Oct 08, 11:24
x3tc

Post by Bedachto » Mon, 3. Jan 11, 05:31

Ich spiele als vreunreinigter Paranid.
Ich habe aber letztens 2 mal neu angefangen (Als Goner und verunreinigter Paranid) um kurz später doch wieder mit den alten Saves weiter zu machen.
Gespeichert hatte Ich unter demselben Profil...falls das eine Rolle spielt.
Frieden?- oder Remis?

Post Reply

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