Konsum-Script für eigene Handelsstationen
Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators
-
- Posts: 207
- Joined: Wed, 30. Nov 05, 13:37
Konsum-Script für eigene Handelsstationen
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?
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?
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
Lucike
-
- Posts: 207
- Joined: Wed, 30. Nov 05, 13:37
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.)
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.)
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. =)
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.
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
-
- Posts: 207
- Joined: Wed, 30. Nov 05, 13:37
@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.
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.
Lagerplatz, zwar nicht viel aber manchmal genug.Was bringt denn sonst so eine Handelsstation noch so, ausser dass es ein Hangar für Jäger ist.
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.