Konsum-Script für eigene Handelsstationen

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
Centauri Gamma
Posts: 207
Joined: Wed, 30. Nov 05, 13:37
x3tc

Konsum-Script für eigene Handelsstationen

Post by Centauri Gamma » Fri, 22. Jul 11, 23:27

Ich möchte eine Handelstation aufbauen, und ich würde gerne wissen wie ich eine x-beliebiege Ware die ich dort einstelle, per Script so manipuliere dass in einer zufälligen Anzahl an Minuten eine geringfügige auch zufällige Menge dieser Ware "verschwinden" (also verkauft wird) und man die entsprechenden Credits dafür erhält.

Ich habe schonmal im Game auf einer No-Player Handelsstation gesehen dass zum Beispiel einige Cahoona Fleischblöcke verschwanden.

Is ja klar auf einer Handelsstation gibt es Gäste, und die konsumieren Güter.
Das will ich mit einem Script simulieren. Ist das machbar? Wenn ja, kann mir da jemand helfen?

User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike » Sat, 23. Jul 11, 14:54


Es gibt natürlich mehrere Wege, um das zu simulieren:

Code: Select all

001   while [TRUE]
002 @ |= wait randomly from 120000 to 600000 ms
003   |
004   |$Array.Ware = [THIS] -> get tradeable ware array from station
005   |skip if  is datatyp[ $Array.Ware ] == DATATYP_ARRAY
006   ||continue
007   |
008   |$ArraySize =  size of array $Array.Ware
009   |$Random =  = random value from 0 to $ArraySize - 1
010   |$Ware = $Array.Ware[$Random]
011   |
012   |$WareCargo = [THIS] -> get amount of ware $Ware in cargo bay
013   |$Random =  = random value from 0 to $WareCargo - 1
014   |$Random = ( $Random + 1 ) / 10
015   |
016   |$WarePrice = [THIS] -> get price of ware $Ware
017   |$Credits = $Random * $WarePrice
018   |
019   |$Random = - $Random
020   |= [THIS] -> add $Random units of $Ware
021   |
022   |[THIS] -> add money: $Credits
023   |
024   end
025   
026   return null

Code: Select all

001   * --------------------------------------------------------------------------------
002   
003   $TimeLoop = 0
004   
005   while [TRUE]
006 @ |= wait 1000 ms
007   |
008   |inc $TimeLoop = 
009   |
010   |$Ware = Energiezellen
011   |skip if not $TimeLoop == 10
012   ||gosub Consumption
013   |
014   |$Ware = Cahoona Fleischblöcke
015   |skip if not $TimeLoop == 30
016   ||gosub Consumption
017   |
018   |skip if not $TimeLoop > 60
019   ||$TimeLoop = 0
020   |
021   end
022   
023   return null
024   
025   * --------------------------------------------------------------------------------
026   
027   Consumption:
028   
029   skip if [THIS] -> trades with ware $Ware
030   |endsub
031   skip if [THIS] -> get amount of ware $Ware in cargo bay
032   |endsub
033   
034   = [THIS] -> add -1 units of $Ware
035   
036   endsub
037   
038   * --------------------------------------------------------------------------------
039   
040   return null

Code: Select all

001   $Array.Ware = [THIS] -> get tradeable ware array from station
002   skip if  is datatyp[ $Array.Ware ] == DATATYP_ARRAY
003   |return null
004   
005   while [TRUE]
006 @ |= wait 60000 ms
007   |
008   |$While =  size of array $Array.Ware
009   |while $While
010   ||dec $While = 
011   ||$Ware = $Array.Ware[$While]
012   ||skip if not [THIS] -> get amount of ware $Ware in cargo bay
013   |||= [THIS] -> add -1 units of $Ware
014   |end
015   |
016   end
017   
018   return null
Gruß
Lucike
Image

User avatar
eMYNOCK
Moderator (DevNet)
Moderator (DevNet)
Posts: 2060
Joined: Thu, 21. Aug 03, 10:37
x4

Post by eMYNOCK » Sat, 23. Jul 11, 23:09

Konsumverhalten für eigene Handelsstationen (bei bedarf auch mit entsprechender Übernahme des Sektors)

STO

Centauri Gamma
Posts: 207
Joined: Wed, 30. Nov 05, 13:37
x3tc

Post by Centauri Gamma » Mon, 27. Feb 12, 00:16

Tja, tja...irgendwie kommt man immer wieder zu X zurück. Ist jetzt echt eine Weile her dass ich mal gezockt habe oder hier im Forum war, aber jetzt ist es wieder soweit :-)

So, ich hab mir den Code von Lucike mal ein bischen angeguckt, aber da steh ich n bischen auf dem Schlauch. Mit Scripten hatte ich nie was am Hut.

Wenn ich nun ein neues Konsum-Script für eine Handelsstation erstelle, scripte ich das genau so wie es oben steht, und überhaupt, wie verknüpfe ich das Script mit meiner ( oder mehreren ) Handelsstation-en?

Oder hat jemand ein solches Script schon geschrieben?

(Das STO ist mir zu komplex.)

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Mon, 27. Feb 12, 05:15

dass script mus manuell auf der jeweiligen Station gestartet werden ;) (Referenzobjekt -> [THIS] )

User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz » Mon, 27. Feb 12, 09:53

Wenn Du das Script automatisch auf allen HS starten möchtest, dann hast du das Problem, daß es dafür kein "event" gibt.

Was aber möglich ist:
Global allen TS ein secondary SIGNAL_DOCKED verknüpfen, das prüft, ob es auf einer Deiner Stationen andockt und wenn ja, prüft ob das Scrpt läuft - und es startet wenn nicht.


Sollen die Waren beim Verbauch bezahlt werden?
Da könnte man dafür oder dagegen argumentieren. Letzten Endes ist das die Entscheidung des Scripters. =)
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.

Centauri Gamma
Posts: 207
Joined: Wed, 30. Nov 05, 13:37
x3tc

Post by Centauri Gamma » Mon, 27. Feb 12, 23:52

@Gazz

Also, das Script soll für alle meine HS gelten, die AI-HS haben ja schon so eine Art Konsumfunktion, zumindest denk ich das beim Thema Cahoona-Fleischblöcke :-)

Das heisst also dass ich das Script aus dem Stationsmenu heraus starten muss?

Naja, was soll denn ein "Konsum-Script" bringen wenn es keine Credits generiert. Klar die Güter die verbraucht werden, sollen den "Normalpreis" der Waren reinfahren.

Was bringt denn sonst so eine Handelsstation noch so, ausser dass es ein Hangar für Jäger ist.

User avatar
eMYNOCK
Moderator (DevNet)
Moderator (DevNet)
Posts: 2060
Joined: Thu, 21. Aug 03, 10:37
x4

Post by eMYNOCK » Tue, 28. Feb 12, 17:49

Was bringt denn sonst so eine Handelsstation noch so, ausser dass es ein Hangar für Jäger ist.
Lagerplatz, zwar nicht viel aber manchmal genug.

Und wenn man mit dem Handelsvertreter aus dem Bonuspack auch noch eine reelle Preisspanne der gelagerten Waren festlegt einen regelmäßigen Strom von KI Schiffen die zu besuch kommen.

Post Reply

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