[SCR] [X3TC] Warenlogistiksoftware

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

RansomSpawn
Posts: 329
Joined: Tue, 29. Aug 06, 20:54
x3tc

Post by RansomSpawn »

sky669 wrote:Waypoint: Atmosphärentransporter2 (Unbekannter Sektor)
Ware: Energiezellen
Ware price: 0 credits
Transfer code: -103000
Price and cargo bay at station: 0 credits, cargo bay 340 units (0 %)
hm... ich glaub 340 units is bischen wenig platz ;)
da wird er es wohl nie schaffen 3000 EZ auszuladen.
eigentlich sollte er die 340 schon reinstopfen.
versuchs ma ohne die "bis zu..." option...
ma guggn was passiert :)


Gruß
Ransi
sky669
Posts: 1145
Joined: Thu, 22. Feb 07, 11:10
x3tc

Post by sky669 »

da bei diesen 340 steht er gerade neben/über/auf (was auch immer) dem zu betankendem TL. (diese 340 sind leere frachtraumeinheiten, der rest ist gefüllt nur mit energie - aja, und waffen und schilden und diesem klimbim....)

sprich er ist hingesprungen, aber er tankt nicht.

werd trotzdem mal dieses 'bis zu' ändern, obwohl ich glaube, dass der tank-frachter dann den TL mit energie zumüllt...

mal gugge ;- )
wolf

EDIT. yop. lass ich das 'bis zu' weg, müllt er den TL voll. sprich holt energie, ladet 3000 rein, holt energie, ladet 3000 rein etc. ich will aber nur, dass jeder TL eigentlich mit 3000 energiezellen betankt wirkt, und auch nur dann, wenn der energie-füllstand des TL's unter 1500 fällt. deswegen diese 'Minimum transfer of ware to fly: 50 %'

EDIT2. scheinbar funktioniert das mit SRD-kampfschiffen besser, aus welchen grund auch immer.
RansomSpawn
Posts: 329
Joined: Tue, 29. Aug 06, 20:54
x3tc

Post by RansomSpawn »

jap, is mir schon klar...
wieviel energiezellen sind denn schon in dem schiff?

denn eigentlich sollte er ja erst dann springen wenn weniger als 1500 drin sind ;) und bei 340 "fehlenden" einheiten kommts wohl auch nicht dazu.
klingt schon nach einem eigenartigen fall...

allerdings wartet er auch nicht auf ein rufsignal (is aus)!
vielleicht wartet er dann einfach am letzten aktiven waypoint bis er wieder was zu tun hat... wäre dann ein bug wenn die "request signal"-funktion aus ist denn eigentlich sollte er dann in seiner homebase warten.

irgendwie vermute ich dass einfach kein platz für genau 3000 EZ da sind...

versuch mal aus einem andern schiff der waypointliste n bischen EZ zu entnehmen und gugg was passiert. vielleicht einmal weniger als 1500 und danach mehr als 1500...
vielleicht wartet er dann an diesem schiff.

wenn du dieses phänomen nicht an nem anderen schiff erzeugen kannst dann is der AT wohl wirklich ein besonderes schiff für scripte womit sich lucike dann TC wieder installieren muss ;)
irgendwann :D


Gruß
Ransi
Schwarzer Adler
Posts: 512
Joined: Mon, 30. Oct 06, 13:16
x3

Post by Schwarzer Adler »

RansomSpawn wrote:ein analyselog des frachters mit den 4 wegpunkten wäre sehr hilfreich ;)
in der regel sollte er nämlich genau das machen was in den wegpunkten angegeben ist...

Gruß
Ransi
Woher bekomme ich denn dieses Analyselog?
MoSII
Posts: 504
Joined: Fri, 24. Jun 05, 16:07
x3tc

Post by MoSII »

Indem du inter den "Einstellungen des händlers / nachrichteneinstellungen / analyse ins fahrtenbauch" anklickst
Schwarzer Adler
Posts: 512
Joined: Mon, 30. Oct 06, 13:16
x3

Post by Schwarzer Adler »

Danke, denn werde ich mal dort nachschauen warum er sich so verhält und nicht so wie ich es ihm aufgetragen habe.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »


Warenlogistiksoftware MK1 und MK2
(Version 3.1.06 - 23. Februar 2009)

[ external image ]

[ external image ] [ external image ] [ external image ]


-> Warenlogistiksoftware MK1 und MK2 (Version 3.1.06)
-> Notwendige Befehlsbibliothek "Libraries" (Auf jeden Fall mit installieren !)

-> Beschreibung Warenlogistiksoftware MK1 und MK2 (PDF Format)

Voraussetzung: X³ Terran Conflict ab Version 1.3 (nicht kompatibel mit X³ Reunion) !!


23.02.2009 (Version 3.1.06)
  • Fehler in der WLS1-Warenabholroutine behoben.
  • Diverse kleinere Optimierungen.
Sticks
Posts: 216
Joined: Thu, 29. Nov 07, 15:35
x4

Post by Sticks »

er ist wieder da :D
cap-ch-b2
Posts: 184
Joined: Sun, 18. Nov 07, 17:22
x3tc

Post by cap-ch-b2 »

Hallo Lucike,

Danke für die Überarbeitung....

Jetzt funktionierts mit dem "Mindestlagerbestand Produzenten 15%".
Der WLS1 räumt das Zwischenproduktlager nicht mehr leer.(2.0-RC1)

Gruss
Beat
ColeTahn
Posts: 569
Joined: Mon, 9. Feb 04, 11:35
xr

Post by ColeTahn »

Ok jetzt hab ich aber ein Problem ;)
Ich kann nicht einstellen das er Waren nur einladen soll bzw er stelllt automatisch auf Einkauf, was natürlich dann Geld kostet. Ich denke mir das der Unterschied zwischen einlaufen und einladen sein soll oder ?
Ist ein wenig problematisch wenn man einen selbstversorger Komplex beliefern will der kein Einkommen hat, da muss man dann ständig Geld überweisen.

Geht das nicht anders ?
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ColeTahn wrote:Ok jetzt hab ich aber ein Problem ;)
Ich kann nicht einstellen das er Waren nur einladen soll bzw er stelllt automatisch auf Einkauf, was natürlich dann Geld kostet. Ich denke mir das der Unterschied zwischen einlaufen und einladen sein soll oder ?
Ist ein wenig problematisch wenn man einen selbstversorger Komplex beliefern will der kein Einkommen hat, da muss man dann ständig Geld überweisen.

Geht das nicht anders ?
Du hast bestimmt einen Warenpreis vergeben, dann wird daraus automatisch ein Ein- oder Verkauf. Ein Analyse-Log wäre nicht schlecht.

Gruß
Lucike
Image
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

Hallöle,

ich hoffe sehr, dass Lucike inzwischen hin und wieder ins Forum schaut.

Der interne Warenlogistiker (MK1) hat ein massives Problem zusammen mit dem Dockwaren-Manager. Das geht soweit, dass er eigentlich nicht benutzbar ist.

Der WLS war das erste Script überhaupt das ich drauf hatte und auch das erste, welches ich wieder deinstalliert hatte.

Deine anderen Scripts (hab ich inzwischen alle drauf) funktionieren ja fast Bug-frei, aber der WLS ist echt grausam.

Erstmal ein paar allgemeine Punkte. Ich rede immer vom internen, nicht vom externen (der geht nämlich wunderbar).

1. Startet man den WLS, wenn das betreffende Schiff noch nicht an der Heimatbasis angedockt hatte kann man keine Waren hinzufügen. Kommt eine Null-Reference-Exception und der WLS kackt ab. In diesem Zuge verliert das Schiff auch gleich noch seine Heimatbasis. -> einzige Möglichkeit der erste Start muss von der Heimatbasis aus erfolgen - soweit ja kein Beinbruch, aber dennoch unschön.

2. Es ist mir nicht gelungen einen zweiten Abnehmer einzustellen. Unmöglich. Wenn ich einen zweiten Abnehmer angeben will wird die Sektorkarte zwar aufgemacht, aber bei der Selektion eines Abnehmers (und dabei ist es völlig egal was das ist) kackt der WLS erneut ab. Tada. Würde ich nun als schon schwerwiegender einstufen. Diesmal allerdings ohne "Null" - der WLS verabschiedet sich sang- und klanglos.

Das waren vor einigen Wochen meine ersten Versuche damit, woraufhin ich ihn wieder deinstalliert hatte.

Hab ihn dann für den HUB-Plot wieder istalliert gehabt - allerdings nur die externe Variante verwendet (MK2). Das hat auch alles wunderbar geklappt.

Nun dachte ich mir ich geb ihm nochmal eine Chance und nutze den MK1 um meine Schiffsproduktion im HQ am Laufen zu halten. Pustekuchen. Hab mit dem Dockwaren-Manager die jeweiligen Produkte beschränkt und wollte dann loslegen.

Ausgangslage:
2 Mistral SF mit installiertem MK1 und jeweils einem Logistiker als Pilot.

HQ mit eingestellten Maximalbeständen. z.B. EZ 45.000, Erz 3.000,... insgesammt 7 Waren

Dachte mir nun, dass ich mal bei beiden Logistikern die selben Waren einstelle und sie losrennen lasse.

Beide hatten EZ als erste Ware drin. Das HQ wurde auf 45k aufgefüllt. Soweit ja nicht verkehrt. Allerdings sind beide mit voller Ladung hingeflogen wobei der erste da noch 3k ausladen konnte und der zweite hatte volle Fracht (14k) und stand vor dem HQ und stand und stand....

Ok. Dachte ich mir ich gebe dem einen Frachter die eine häfte der Warenliste und dem anderen die zweite hälfte. Gesagt - getan.

WLS beendet und neu gestartet, damit die Änderungen auch wirklich drin sind.

Inzwischen waren im HQ durch das manuelle Ausladen 55k EZ -> 10k mehr als eingestellt.

Der Frachter, der EZ immer noch als erste Ware drin hatte hat darauf hin - Du wirst es Dir schon denken können - EZ eingeladen. :? Obwohl im HQ 10k mehr waren, als per Beschränkung eingetragen. Ich hab ihn dabei beobachtet was dann kam. Anstatt loszufliegen hat er die EZ wieder ausgeladen (und die 300 für den Sprungantrieb dringelassen) und danach - Du wirst es Dir schon denken können - EZ eingeladen. Im 20 Sekundentakt. Rein - raus - rein - raus. Ewig.

Nun gut - dachte ich mir ich nehm die EZ mal wieder aus seiner Warenliste raus und er soll mit Erz weitermachen (3k am HQ eingestellt). 1k waren schon dort, musste er ergo 2k liefern. Er liefert also so lustig vor sich hin bin 2863 im HQ sind. Er wieder zur Heimatbasis und den Frachtraum mit Erz vollgeknallt und zum HQ geflogen. Dort angekommen hat er festegestellt, dass die da ja alle gar nicht reinpassen (mit der Beschränkung). War macht er - er fliegt zurück zur Heimatbasis, läd die Erze aus und knallt sich dann den Frachtraum voll mit - Du wirst es Dir schon denken können - 1.800 Erz. Genau. Die, die immer noch nicht ins HQ passen. Das macht er endlos. Die anderen Waren auf seiner Liste ignoriert er komplett.

Dachte mir dann ich füll mal eben die Erze im HQ auf 3k auf, damit er da nicht ewig sinnlos hin- und herfliegt. Rate was dann passiert? Genau. Das selbe wie bei den EZ. Er läd endlos die Erze ein und wieder aus ohne loszufliegen.

So - bevor die Frage kommt. Getestet und festgestellt mit der aktuellsten Version "Warenlogistiksoftware_X3TC_V3106" und dem neusten DM "Dochwarenmanager_X3TC_V3b01".

Neben Deinen anderen (wirklich erstklassigen Scripten, die auch alle wunderbar funktionieren) hab ich noch MARS und den Complex-Cleaner installiert.

Ich hoffe, dass Du das Problem beheben kannst, weil so ist der MK1 unbenutzbar, es sei denn man lässt nur exakt eine Ware von A nach B bringen.

Liebe Grüße
Reflexer

P.S. Sorry, dass es so viel Text geworden ist.

Nachtrag: An den 5% Einstellungen habe ich nix geändert. Alles so gelassen wie es war.
cap-ch-b2
Posts: 184
Joined: Sun, 18. Nov 07, 17:22
x3tc

Post by cap-ch-b2 »

@Reflexer : Ich hatte gestern mit einem WLS1(3106) ein ähnliches Prob...

Ich habe meinen Hauptstützpunkt vom HUB auf ein vAD-AD verlegt und ein WLS1(4 Waren) hat nur noch volle Ladungen EZ transportiert.
Kaum war er in seiner Heimatbassis war der Laderaum voll mit EZ obwohl er dann in Bereitschaft ging !!!

Einzige Lösung : Befehl abbrechen, alle Produkte und Stationen Löschen, alle (wirklich alle) Einstellungen auf "Standart" setzen, neu einstellen und wieder Starten;
...dann sollte es wieder funktionieren !

Ich muss noch betonen; bei mir war das nur bei einem WLS1 so. Alle andern WLS1 funktionieren einwandfrei (..bisher)
So - bevor die Frage kommt. Getestet und festgestellt mit der aktuellsten Version "Warenlogistiksoftware_X3TC_V3106" und dem neusten DM "Dochwarenmanager_X3TC_V3b01".
...tjiaa...die Frage kommt trotzdem...

Hast du auch die neuste Befehlsbibliothek drauf ?
Sonst bitte noch das Log hier reinposten.

Gruss
Beat
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

cap-ch-b2 wrote:Einzige Lösung : Befehl abbrechen, alle Produkte und Stationen Löschen, alle (wirklich alle) Einstellungen auf "Standart" setzen, neu einstellen und wieder Starten;
...dann sollte es wieder funktionieren !
Hab ich grade versucht - leider ohne Erfolg. Keinerlei Änderung im Verhalten. :(
cap-ch-b2 wrote:Hast du auch die neuste Befehlsbibliothek drauf ?
Meine aktuell installierte Befehlsbibli ist "Befehlsbibliothek_X3TC_V3207". Somit die aktuellste.
cap-ch-b2 wrote:Sonst bitte noch das Log hier reinposten.
Da ich ja selber Programmierer/SW-Entwickler bin werde ich mir mal die Mühe machen und in den kommenden 2-3 Stunden einen ausführlichen Test mit definierten Situationen und einem Testprotokoll durch zu führen. Ich hoffe, dass es helfen wird das Problem zu fixen. Da ich ja nicht der einzige bin, der Probleme mit dem Modul hat.

Ich werde es dann hier einstellen, sobald ich fertig bin.

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

Post by Lucike »

Reflexer wrote:Kommt eine Null-Reference-Exception und der WLS kackt ab.
Was genau bedeutet das? Eine verständliche Erklärung wäre nicht schlecht.

Zum zweiten Problem wäre ein Analyse-Log nicht schlecht.

Nachrichteneinstellungen -> Analyse ins Fahrtenbuch

Das Log ist dort zu finden, wo die Spielstände sind.

Gruß
Lucike
Image
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

Lucike wrote:
Reflexer wrote:Kommt eine Null-Reference-Exception und der WLS kackt ab.
Was genau bedeutet das? Eine verständliche Erklärung wäre nicht schlecht.
Ich vermute Du verwendest bei der Abfrage eine Art Array, in das die Werte geschrieben werden bzw. aus welchem Werte gelesen werden. Dieses Array ist zu dem Zeitpunkt nicht verfügbar und es kommt zu einem "Null-Reference"-Fehler. Bedeutet die angegebene Referenz bzw. das Object gibt "null", also "nicht vorhanden" zurück bzw. um es korrekter auszudrücken: Das System bzw. die Runtime gibt zurück, dass das Objekt nicht vorhanden ist und die Routine bzw. das Script wird abgebrochen. In der Prgrammierung nennt man das eine Null-Reference-Exception. Habs einfach genau so genannt, weil ich den Ausdruck, den ihr Scripter dafür verwendet nicht kenne. Scripten ist zwar nicht Programmieren, aber doch ähnlich.

Das Problem nicht vorhandener Objekte ist häufig bei der Verwendung verschiedener Threads bzw. bei der asynchronen Abarbeitung von Code zu finden oder wenn Codeschnipsel eventgetriggert sind. Letzteres bedeutet der Code schlummert in einer Art sleep (wait) solange bis ein Ereignis aufritt. Wenn nun der Listener nicht korrekt angemeldet ist bzw. nicht korrekt funktionert bzw. auf Grund von Laufzeitproblemen dem schlafenden Code nicht sagt "Jetzt gehts los", dann schläft er ewig und evtl. benötigte Objekte, die laufzeitparallel angelegt werden sollten, werden dann nicht angelegt und im Hauptthread bricht alles zusammen.

Man kann sowas in der Programmierung bei laufzeitparallelen Prozessen mit "Begin Invoke" bzw. "Invoke requierd" abfangen. Ob es sowas beim scripten gibt und ob das überhaupt benötigt wird weiß ich leider nicht.

Ist schwierig das in "allgemeine" Worte fassen und zu erklären.

Hoffe Du hast verstanden was ich meine. Da ich mich mit dem Scripten unter X3 nicht auskenne und mich auch noch nicht damit auseinander gesetzt habe, kann ich nur allgemeingültige Aussagen treffen. Vielleicht helfen sie Dir ja aber trotzdem weiter.

Das Log erstelle ich nachher - muss dazu erstmal die MK1-Kollegen wieder laufen lassen.

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

Post by Lucike »

Reflexer wrote:Ist schwierig das in "allgemeine" Worte fassen und zu erklären.
Ich hab schon verstanden, nur wollte ich wissen wie es sich im Spiel darstellt. Das meinte ich mit "Was genau bedeutet das?". Mit "die WLS kackt ab" komm ich nicht wirklich klar.

Gruß
Lucike
Image
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

OK ;) Da haben wir an einander vorbei geredet. Sorry.

WLS kackt ab heißt es poppt für eine halbe Sekunde das Fenster auf, in dem normalerweise die Waren drin stehen sollten und da steht dann "null". Das Fenster geht wieder zu, sowie auch die Konfig-Übersichtsseite des WLS. Wobei das nicht ganz korrekt ist. Die Seite bleibt vorhanden, verliert aber den Fokus bzw. die Modalität.

Die Standard-Command-Liste wird sichtbar und ist aktiv. Wird diese dann geschlossen, dann wird wieder die WLS-Konfig-Seite sichtbar. Man kann aber nix einstellen. Muss sie quasi schließen. Tut man dies und öffnet dann die normale Command-Seite, dann ist die Homebase weg.

Hoffe ich habs verständlich geschrieben.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

So - nun mal das Log.

Wobei ich vermute, dass es nicht sehr aussagekräftig ist. Eine Sache ist mir jedoch aufgefallen.

Beim Consumer stimmen die Cargo Bay Werte nicht. Die 58% sind nur bei den EZ. Beim Erz sind es 67% (2019/3000) und bei den Kristallen 321% (9658/3000). Er scheint das nur beim ersten Wert zu ermitteln und dann überall einzutragen.

Hier die Log-Datei:

Code: Select all

Commodity Logistics Software MK1

Script version: 3106
Libraries version: 3207
Pilot Union version: 3103

Pilot: Pok Sillarne
Pilot rank: Logistiker
Flight time: 67:15 hour
Employ time: 474:14 hour
Payment: 139.845 credits
Profit: 0 credits
Expenses: 0 credits

Promotion: Yes
Payment: Global account

Ship name: WL-Intern 1 (EG-HQ) Mistral SF (R)
Ship class: TS
Ship type: Mistral Superfrachter
Transport class: extra-großer Container XL
Cargo bay size: 15000 units
Cargo bay volume: 257 units

Relation to Argonen: Neutral
Relation to Boronen: Neutral
Relation to Split: Neutral
Relation to Paraniden: Neutral
Relation to Teladi: Neutral
Relation to Xenon: Feind
Relation to Kha'ak: Feind
Relation to Piraten: Feind
Relation to Goner: Neutral
Relation to ATF: Neutral
Relation to Terraner: Neutral
Relation to Yaki: Feind

Commodity Logistics Software MK1: installed
Commodity Logistics Software MK2: installed
Fight Command Software MK1: installed
Fight Command Software MK2: installed

Transporter Device: installed

Supply Command Software: not installed

Jump Drive: installed
Jump Drive: activated
Jump Drive: allowed
Jump Drive energy: 200 energy cells
Jump Drive minimum jumps: 1 jumps

Home base: Erzgürtel KZ (Erzgürtel)
Home base class: Komplexzentrum
Home base type: Argonen Kontrollzentrum
Station account: 750.004.480 credits
Global account: 1.736.397.279 credits

Dock with ship in battle: No
Wait for request signal: No

Home products: Kristalle (1.432 credits), Energiezellen (12 credits), Erz (50 credits)

Supplier min cargo bay: 5 %
Consumer min cargo bay free: 5 %

Supplier: Erzgürtel KZ (Erzgürtel)
     Energiezellen (Cargo bay 99 %)
     Erz (Cargo bay 99 %)
     Kristalle (Cargo bay 99 %)

Consumer: HQ Arne (Trantor)
     Energiezellen (Cargo bay 58 %)
     Erz (Cargo bay 58 %)
     Kristalle (Cargo bay 58 %)
Der zweite, der von einer anderen Basis aus läuft hat obenrum das selbe stehen, nur bei Supplier und Consumer was anderes:

Code: Select all

Supplier: Reich d. Pontifex KZ (Reich des Pontifex)
     Computerkomponenten (Cargo bay 99 %)
     Teladianium (Cargo bay 99 %)

Consumer: HQ Arne (Trantor)
     Computerkomponenten (Cargo bay 58 %)
     Teladianium (Cargo bay 58 %)
Und da sind die tatsächlichen Werte CK 100% (3000/3000) und Tela auch 100% (3001/3000).

Hoffe das bringt Dir irgendwas.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Jetzt kommen wir weiter. ;)

Trägt die Datei "8001-L049.pck" im T-Ordner das Datum 23.02.2009 - 22:57?

Gruß
Lucike
Image

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