
Ich hab ein Gegenvorschlag.
001 while [TRUE]
002 ~ @ = wait 20 ms
003 ~ $ware.arry = $stat -> get tradeable ware array from station
004 ~ $ware.size = size of array $ware.arry
005 ~ while $ware.size
006 ~~ dec $ware.size =
007 ~~ $ware = $ware.arry[$ware.size]
008 ~~ $amount = $stat -> get ware storage percentage: ware=$ware
009 ~~ if $amount <= 30
010 ~~~ $stat -> set intermediates sellable to [TRUE]
011 ~~ else
012 ~~~ $stat -> set intermediates sellable to [FALSE]
013 ~~~ break
014 ~~ end
015 ~~
016 ~ end
017 end
018 return null
Ich hab zwar nich getestet was das Script macht, allerdings ist das in etwa 5% von deinem.
ok zum Befehl tradeable ware arry from station solltest du dir ehrlich mal Gedanken machen wie das arbeitet. ich hab hier ne else, und kein skip if. skip if Version wäre dann so in etwa:
001 while [TRUE]
002 ~ @ = wait 20 ms
003 ~ $ware.arry = $stat -> get tradeable ware array from station
004 ~ $ware.size = size of array $ware.arry
005 ~ while $ware.size
006 ~~ dec $ware.size =
007 ~~ $ware = $ware.arry[$ware.size]
008 ~~ $amount = $stat -> get ware storage percentage: ware=$ware
009 ~~
010 ~~ skip if $amount <= 30
011 ~~~ $stat -> set intermediates sellable to [TRUE]
012 ~~
013 ~~ skip if not $amount <= 30
014 ~~~ $stat -> set intermediates sellable to [FALSE]
015 *break
016 ~ end
017 ~
018 end
019 *end
020 return null
das Problem bei skip if ist bei mir immer das man nur eine Zeile überspringen lassen kann.
irwie gefällt mir meine Version noch nicht richtig weil wenn der befehl von Zeile 12/ 10 so funktioniert wie ich denke wird das Script ständig die Option "Andere Völker dürfen hier kaufen" auf Ja und anschließend wieder auf nein stellen. also sollte man eventuell eine Loacal Var einbinden.
Eine Erweiterungsidee:
Du speicherst die Ware in der if abfrage von Zeile 10 beim oberen Beispiel, in einem Arry.
Anschließend Prüfst du nur das Arry ob die Waren Zwischenzeitlich wieder aufgefüllt wurden. Weitere Ideen, bzw das man nur bestimmte waren sperren kann weis / hab ich nicht. Ich persönlich hätte es gleich mit dem "Flieg zu Station & Komm wieder zurück" Teil verknüpft den auf die Art hab ich das ein wenig besser unter Kontrolle was man bei mir Kauft bzw Verkauft. Die Stationen sind idR auf "Dürfen andere Völker hier kaufen" auf "Nein" gestellt.
obwohl eine idee hätt ich schon wie man das machen kann:
als erstes nimmst du den Gegenvorschlag... und baust es so um:
001 while [TRUE]
002 ~ @ = wait 20 ms
003 ~
004 ~ $n = 0
005 ~
006 ~ $ware.arry = $stat -> get tradeable ware array from station
007 ~ $ware.size = size of array $ware.arry
008 ~ $s = $ware.size
009 ~ while $ware.size
010 ~~ dec $ware.size =
011 ~~ $ware = $ware.arry[$ware.size]
012 ~~ $amount = $stat -> get ware storage percentage: ware=$ware
013 ~~
014 ~~ skip if $amount >= 30
015 ~~~ inc $n =
016 ~ end
017 ~
018 ~ if $n == $s
019 ~~ $stat -> set intermediates sellable to [TRUE]
020 ~ else
021 ~~ $stat -> set intermediates sellable to [FALSE]
022 ~ end
023 end
024 return null
ob das dann aber auch hinhaut so musst du allein Rausfinden da meine Stationen alle Prope voll sind. Ich hoffe auch das $s = = $waren.size entspricht, weil wenn man die size am ende einer auslese schleife nimmt ist die var 0 ^^ und alles damit hinfällig, ob sich x³ so überlisten lässt wird sich zeigen. wenn nicht würde ich die size Zeile nochmal kopieren und $s get size of arry $waren.arry draus machen dann hast du eben zweimal den befehl get size of arry.