[Script][Release]Komplex Bilanz, Berechnung und Überwachung [V0.7]

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

[Script][Release]Komplex Bilanz, Berechnung und Überwachung [V0.7]

Post by -eni- » Sat, 13. Jan 07, 16:17

Komplexbilanz Software V0.7

Kurzbeschreibung
  • Erstellen einer Laufenden Bilanz des Komplexes oder der Station
  • Berechnung der stündlichenProduktion und Verbrauch
  • Meldung von Schiffsverlusten.
  • Aufzeichnung der erwirtschafteten Credits.
  • Erkennung von Mangelware (1h im vorraus)
  • Umrechung der Produktion in relative S Fabriken
  • Auf Wunsch erstellen einer Übersicht für alle aktiven Bilanzen
  • Optionales Stopen der Produktion bei erreichen von 80% des Maximallager

Code: Select all

Belegte Commandoslots
COMMAND_TYPE_STATION_51   Starten der Bilanzaufzeichnung
COMMAND_TYPE_STATION_52   Anzeige der Bilanz und Produktion
COMMAND_TYPE_TRADE_54     Anzeige der Übersicht aller Stationen

Belegte task IDs
7750                      Watcher Scripts zum Beenden der Bilanz
Bild des Komplexberichts
[ external image ]

2 Neue Kommandos auf Stationen.
*Bilanz Aktivieren
*Bericht konfigurieren/anzeigen

1 Neues Handelskommando auf dem Spielerschiff
* Anzeigen aller aktiven Bilanzen

Die Kommandos sind jeweils Optional. Man kann also auch einen Produktionsbericht ohne aktive Bilanz und umgekehrt anwenden.


Beim Aktivieren der Bilanz wird eine Kapitalobergrenze abgefragt. Zusätzlich sollte kein weiteres Tool laufen, welches Geld von der Station an den Spieler überweist, da sonst Geldbeträge von der Aufzeichnung nicht erfasst werden.
Wird die Bilanz mit "keine" ersetzt, so löscht ein Zusatzscript spätestens nach einer Minute alle Daten dieser Software. Es bleiben also bei Deaktivierung keine Rückstände. (zumindest keine die ich kenne)

Die Bilanz berechnet jede Minute den Vergangenen Gewinn/Verlust und überweist eventuelle Finanzüberschüsse an den Spieler. In die Gewinn/Verlust Rechung gehen hierbei auch alle Waren auf Frachtern des Komplexes ein.

Konfiguration/Breicht Anzeigen
0= Hilfe
1= Produktiosnbreicht/Bilanz Anzeigen
2= Produktionslimit aktiv
3= Produktionslimit inaktiv

Der Bericht ermittelt beim Aufruf zu jeder Ware die Produktion/Verbrauch für die nächste Stunde und berechnet daraus der Theoretische Komplexgewinn pro Stunde in abhängigkeit der eingestellten Preise. Zusätzlich werden Waren wo der Stündliche verbrauch über dem Restvorrat liegt Rot hervorgehoben.
Produktions/Verbrauchsmenge werden in 2 Angaben dargestellt.
1. tatsächliche Menge
2. Menge in relativen S Fabriken. Ein Überschuss in 4 Relativen S Einheiten würde genau für die Versorgung von 2 M fabriken langen.

Zusätzlich kann über die Konfiguration (2 = ein. 3= aus) die Obergrenze für die Produktion auf 80% des maximallagers gesetzt werden. Sinn dieser Grenze ist das immer genug Platz für die Fracht eines Schiffes ist der seine Ladung nicht verkaufen konnte. Ohne diese Grenze kann es einem Frachter, welcher mehrer produkte verkaufen soll, passieren das er Frachtreste nicht an die Station zurücktransferieren kann, da diese das Lager in der Zwischenzeit gefüllt hat.

Um unbemerkte Schiffsverluste zu vermeiden wird Minute geprüft ob eines der Schiffe des Komplexes Fehlt. Ist dies der Fall wird eine entsprechende Nachricht an den Spieler geschickt.

Alle Aktionen ausser Geldüberweisen sind passiv. Es werden also keine anderen Systeme beeinflusst oder gestört.

V0.1
Relatives S fab Feature
Geänderte Commandslots
Berechnungen Korrigiert/Optimiert

V0.2
HQ Fix
Performanceverbesserung

V0.3
-Nividium in die Produktionsliste aufgenommen.
-neuen Bug in der Produktionsberechnung gefixt.
-Bericht auf 26 Waren begrenzt. (sollte "unlesbare" Berichte verhindern) Umstellung auf mehrseitige Berichte für mehr waren sobald ich Zeit hab (Februar)

V0.4
-RelValue des 1GJ Schild korrigiert.
-RelValue für alle Nividium festgelegt.
-Bug in der Darstellung von Komazahlen korrigiert.
-Bei unbekannter Ware wird nun der RelValue 1 ausgegeben und im Logbuch erscheint eine entsprechende Fehlermeldung mit Name der Ware.

V0.5
-Gesammtübersicht auf das Spielerschiff hinzugefügt
-Kosmetische Änderungen innerhalb der Scriptstruktur

V0.6
-Automatisches Scriptupdate eingebaut
-Handelskommando des Spielerschiffes zeigt nurnoch die Hauptübersicht als Bericht. Einzelberichte werden dabei still ins Log geschrieben.
-Zusatzoption des Produktionslimits
-Einige relValue eingefügt

Version 0.7
* Beim deaktivieren der Produktionregelung laufen nun alle Fabriken wieder normal an.
* Sollte ein Komplex mehr als 25 Waren haben, so wird ein mehrseitiger Bericht generiert.
* RelValue für Hurican und Militärisches Personal korrigiert.
* Kommandoslots und Textfile geändert und für die Kompatibilitätsliste beantragt.

Bekannte Bugs
-Megakomplexe wo Zahlen über 2Mrd. auftretten ...

Zukünfige Planungen
-Rechnung mit Strings um die 2Mrd problematik zu lösen.
-Signieranforderungen erfüllen. naja. Irgend wann zumindest.

Desweiteren wäre ich offen für Kritik und Vorschläge.

Gruss Eni.
Last edited by -eni- on Sun, 25. Feb 07, 19:23, edited 13 times in total.

User avatar
-Ford-
Posts: 2064
Joined: Wed, 18. Jan 06, 18:40
x4

Post by -Ford- » Sat, 13. Jan 07, 16:20

Wow ... Nettes Script ... Mal angucken ... *Saug* :)

Gruß
Ford
Ponyfabulous

Knot3n
Posts: 133
Joined: Sat, 19. Nov 05, 20:07
x3

Post by Knot3n » Sat, 13. Jan 07, 16:31

Cooles Script, das hat mir noch gefehelt :) da hat man dann noch mehr überblick.

Danke
Ich wollte die Welt verändern .. doch Gott rückte den Quellcode nicht raus ...


[ external image ]

User avatar
SymTec ltd.
Posts: 5285
Joined: Mon, 11. Apr 05, 21:11
x3tc

Post by SymTec ltd. » Sat, 13. Jan 07, 16:33

Tolle Sache.

Zur Schiffsproblematik: Du könntest ein Array definieren, in dem für jedes Schiff Pilotenname und Schiffsname gespeichert wären. So hättest du auch nach dem Ableben des Schiffes Zugriff auf dessen Gruddaten (wenn auch nicht auf dessen Ladung)

CC Vorsitzender
Posts: 1672
Joined: Wed, 7. Jun 06, 14:25
x4

Post by CC Vorsitzender » Sat, 13. Jan 07, 16:36

sieht super aus :)

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- » Sat, 13. Jan 07, 16:42

SymTec ltd. wrote:Tolle Sache.

Zur Schiffsproblematik: Du könntest ein Array definieren, in dem für jedes Schiff Pilotenname und Schiffsname gespeichert wären. So hättest du auch nach dem Ableben des Schiffes Zugriff auf dessen Gruddaten (wenn auch nicht auf dessen Ladung)
War auch schon eine Überlegung. Allerdings hab ich noch keine erfahrungen zur performance und bei grossen Komplexen werden es gefährlich schnell sehr viele Berechungen und datenverschieben.
Eventuell falls ich eine Erweiterung zur Händlersteuerung mache. Bisher wäre es einer Meinung nach sonst zu viele Aufwand eine Solches Array zu pflegen, nur um den Namen des Toten Schiffes in der Nachricht zu haben.
Muss man sich halt mit dem normalen Logeintrag für Ort und Name Begnügen. Hauptsache man wurde auf den Verlust hingewiesen und es gibt keine "Stillen Tod" mehr

User avatar
Zargabaath
Posts: 82
Joined: Sun, 30. Jan 05, 18:43
x3tc

Post by Zargabaath » Sat, 13. Jan 07, 16:56

Nabend,

also, erst mal geniales Script, sowas hab ich schon gesucht!
Das wird sicherlich der Hit schlecht hin! ^^


Gleich mal sugen und testen! ^^

MfG
Chaos N.
Learn to Post

Boronen Schlächter und stolz drauf!

sarok
Posts: 96
Joined: Sat, 9. Sep 06, 18:08
x3

Post by sarok » Sat, 13. Jan 07, 18:12

hallo,

vielen dank für diese erweiterung - damit driffst du genaumeinen punkt :)

mfg
sarok

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- » Sun, 14. Jan 07, 10:17

So. Kleines Problem. Wollte heute etwas einbauen, was den Verbrauch/Produktion zusätzlich in relativen S Fabriken anzeigt.
Also z.B. -1200 Weizen/h = es fehlen 2 S Fabs (oder halt 1M) zum ausgleich.

Problem dabei ist nun die Ermittelung der Produktion.

Code: Select all

$percycle = $station -> get number of resources per cycle for ware $ware
Macht aber enorm Ärger!


Code: Select all

Resourcen je   | Energiezellen   |      Rastar     |       Erz       |
Cycle von      |Script  |  Real  |Script  |  Real  |Script  |  Real  |
bEPW Fertigung | 960    | 1500   | 96     | 150    | 160    | 250    |
bPS  Fertigung | 1500   | 2220   | 150    | 222    | 250    | 370    |
25MJ Fertigung | 330    | 630    | 33     | 63     | 55     | 105    |
Bedeutet, das ein Grossteil (vor allem Hightech) der Fabs bei einsatz der Egosoftbefehle Falsche Produktionswerte zurück gibt.

Somit sind alle Produktions/Verbrauchsberechnungen die ich bisher gemacht habe sehr mit Vorsicht zu betrachten, da ich einfach mal davon ausgegangen bin das diese Befehle korrekte Daten liefern.

damit wären wir bei der Lösungssuche. Meine bisherige Idee ist eine eigene Funktion die den Verbrauch/produktion zurückgibt. Die dafür nötige Tabelle ist aber riesig und vorerst Zeitlich nicht drin.

User avatar
Nedasch [KBG]
Posts: 1563
Joined: Fri, 28. Oct 05, 19:11
x3tc

Post by Nedasch [KBG] » Sun, 14. Jan 07, 12:24

Ich habs mir auch mal geholt, macht die Überwachung des Profits eines Komplexes etc. hoffentlich einfacher ;)

BadAngel1976
Posts: 185
Joined: Wed, 23. Nov 05, 19:47
x3tc

Post by BadAngel1976 » Wed, 17. Jan 07, 01:38

Hallo eni....

wenn Du mal dein 2 Milliarden Problem lösen möchtest, kann ich Dir vieleicht helfen... Grundrechenarten Addition, Subtraktion und Multiplikation habe ich schon fertig... Nur die dumme Division fehlt noch... Hab bisher noch keinen vernünftigen Algorithnmus gefunden (ausser die sogenannte Schulmethode) um es effektive zu lösen... Wenn ich dafür ne halbwegs schnelle Lösung noch finde werde ich es insgesamt auch als LIB Veröffentlichen...

MFG

BadAngel

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- » Wed, 17. Jan 07, 19:30

V0.1 Ist Fertig.

Berechnungen sind nun alle korrekt und als zusätzliche Spalte wird der Verbrauch/Produktion in S Fabriken umgerechnet angezeigt. Sagt diese Spalte z.B. bei Energie +14,3 so ist noch Platz für 7 M Fabriken + minimalen Überschuss. Lässt gut erkennen das ein SKW einen Tick zu viele Kristalle benötigt.
Desweiteren Wurden die Commandolots geändert, da ich mit Lucikes neuem eine überschneidung hatte.
Sind nun Station51 und station52.
Auch ist keine Aktive Bilanz zum Abfragen der Produktion mehr nötig. Bei Statusanzeige ohne aktive bilanz taucht einfach die Produktionsrechnung auf, ohne die Gewinn der Letzten Stunde Info. Ideal um kurz zu Prüfen für wie viele Kristallfabs eine Mine SI abwirft.

@BadAngel
Interesse an der 2Mrd Sache hab ich in jedem Fall. Hat aber Zeit, da ich vorerst nicht mehr zu grossen Änderungen komme.

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

Post by Lucike » Wed, 17. Jan 07, 19:58

Das Ding muss ich mir auch mal näher anschauen. :)

Gruß
Lucike

Info: -eni-, Du kannst auch Umlaute in der Sprachdatei verwenden. Allerdings muss die Datei dann im UTF8-Format gespeichert werden.

User avatar
SuperVegeta
Posts: 1611
Joined: Tue, 20. Dec 05, 11:13
x3tc

Post by SuperVegeta » Thu, 18. Jan 07, 22:17

ich hab mal ne Frage:

es wird etwas umbenannt (Station/Ship)

was wird denn dort umbenannt und wuzo :?:

User avatar
Victus
Posts: 4239
Joined: Mon, 2. Oct 06, 10:38
x3tc

Post by Victus » Thu, 18. Jan 07, 22:27

SymTec ltd. wrote:Tolle Sache.

Zur Schiffsproblematik: Du könntest ein Array definieren, in dem für jedes Schiff Pilotenname und Schiffsname gespeichert wären. So hättest du auch nach dem Ableben des Schiffes Zugriff auf dessen Gruddaten (wenn auch nicht auf dessen Ladung)
Naja, das müsste auch gehn :)
2D-Array
Schiff[0][0] = Schiffsname
Schiff[0][1] = Pilotenname
Schiff[0][2] = Geladener Frachttyp1
Schiff[0][3] = Geladener Frachttyp1-Menge
Schiff[0][4] = Geladener Frachttyp2
Schiff[0][5] = Geladener Frachttyp3-Menge
...
Schiff[1][0] = Schiffsname
Schiff[1][1] = Pilotenname
Schiff[1][2] = Geladener Frachttyp1
Schiff[1][3] = Geladener Frachttyp1-Menge
Schiff[1][4] = Geladener Frachttyp2
Schiff[1][5] = Geladener Frachttyp3-Menge
etc

Ob X3 auch 3D Arrays unterstützt weiß ich nicht, aber das wäre hier sicher Praktisch (wg. Geladene Fracht und Menge)
PS: Fass nicht die Katze an! Nie!

"***modified*** und stolz drauf!" ist auch nur Mainstream...

User avatar
SymTec ltd.
Posts: 5285
Joined: Mon, 11. Apr 05, 21:11
x3tc

Post by SymTec ltd. » Fri, 19. Jan 07, 08:40

Ich habe selbst schon versucht, mit 2D-Arrays zu arbeiten. Es scheiterte bisher an der Deklaration. 3D-Arrays werden wohl nicht unterstützt.

Xtreme-Gamer
Posts: 239
Joined: Fri, 29. Oct 04, 21:01
x4

Post by Xtreme-Gamer » Fri, 19. Jan 07, 13:59

WOW!
Super Script. So etwas fehlt mir mir noch. :thumb_up: :thumb_up: :thumb_up:

Endlich bekommt man mal einen Überblick über seine Station.


PS: Es gibt noch einen weiteren Bug:
Wenn ich das Script in meinem Hauptquartier starte und den Bericht abfrage, ist alles durcheinander aufgelistet und ich blickenicht mehr durch.
Ich kann auch mal die beiden Scriens hochladen,wenn interesse besteht und mir jemand eine gute Seite verrät, wo ich sie hochladen kann.
mfG
Xtreme-Gamer
_______________________________________
Meine Scripts
X³R: Notrufe von TS-Frachtschiffen erhalten
X³TC: Credit Management

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- » Fri, 19. Jan 07, 15:21

SuperVegeta wrote:ich hab mal ne Frage:

es wird etwas umbenannt (Station/Ship)

was wird denn dort umbenannt und wuzo :?:
Der Complex der die Bilanz aktiviert bekommt seinen namen Türkis eingefärbt. Kann diese Option aber auch ausbauen wenn sie jemanden stlört. fand es halt praktisch zur schaffung von übersicht.


Victus [KBG] wrote:Naja, das müsste auch gehn Smile
2D-Array
2D- Arrays hab ich schon bei verschiedenen Sachen benutz und eine implementierung wäre kein so grosses Problem. 3D Arrays sollten ähnlich funktionieren wie die 2D- Arrays. in das Feld eines 2 D Arrays einfach ein 3. Packen. Allerdings muss der Zugriff dann von hand erfolgen, da es dafür keine direkte Sriptoperation gibt.
Ändert aber nichts an der Grundfrage.
Macht es Sinn diese Informationen zu Sammeln, Speichern und zu pflegen? Kostet schliesslich alles Speicher und Rechenleistung. Und bisher sehe ich in diesen Informationen noch keinen echten nutzen.

Xtreme-Gamer wrote:PS: Es gibt noch einen weiteren Bug:
Wenn ich das Script in meinem Hauptquartier starte und den Bericht abfrage, ist alles durcheinander aufgelistet und ich blickenicht mehr durch.
HQ hab ich selber noch nie getestet. Meins dümpelt immernoch in einem TL rum bis ich entschieden hab wo hin damit.
Aber Ursache wird vermutlich der aufbau der Tabelle sein. Diese reagiert sehr empfindlich auf Fehlende oder zusätzliche Zeilen. Sollte z.B. ein Warenname so lang sein, das er einen zeilenumbruch erzeugt, so ist die Tabelle futsch. hatte anfangs mal 4 Spalten und als ich dann bei einem Komplex getestet hab der "Beta Energie Plasmawerfer" hatte wars aus. Seither nurnoch 3 Spalten. (zwei zusätzliche sind geschummelt über [right])

Xtreme-Gamer
Posts: 239
Joined: Fri, 29. Oct 04, 21:01
x4

Post by Xtreme-Gamer » Fri, 19. Jan 07, 21:12

-eni- wrote:
Xtreme-Gamer wrote:PS: Es gibt noch einen weiteren Bug:
Wenn ich das Script in meinem Hauptquartier starte und den Bericht abfrage, ist alles durcheinander aufgelistet und ich blickenicht mehr durch.
HQ hab ich selber noch nie getestet. Meins dümpelt immernoch in einem TL rum bis ich entschieden hab wo hin damit.
Aber Ursache wird vermutlich der aufbau der Tabelle sein. Diese reagiert sehr empfindlich auf Fehlende oder zusätzliche Zeilen. Sollte z.B. ein Warenname so lang sein, das er einen zeilenumbruch erzeugt, so ist die Tabelle futsch. hatte anfangs mal 4 Spalten und als ich dann bei einem Komplex getestet hab der "Beta Energie Plasmawerfer" hatte wars aus. Seither nurnoch 3 Spalten. (zwei zusätzliche sind geschummelt über [right])
Nein, die Waren sind nicht das Problem. Die Namen passen locker in die Spalte. Es ist nur fast überall "null"!!!???
Hier sind die Scriens:
[ external image ]
[ external image ]
mfG
Xtreme-Gamer
_______________________________________
Meine Scripts
X³R: Notrufe von TS-Frachtschiffen erhalten
X³TC: Credit Management

-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- » Sat, 20. Jan 07, 11:10

V0.2

HQ gefixt
Allgemeine Performanceverbesserung


Hoffe das das HQ jetzt geht. Zumindest das Probem der Produktionsmenge (null) ist weg. Testberichte bei mir waren ok. Aber war auch nie eine so lange Warenliste. Sollte es aber die Länge der Liste sein hab ich sowiso ein Problem.

Post Reply

Return to “X³: Reunion - Scripts und Modding”