[SCR] [03.05.12] [X3TC/AP V1.0.03] Ship Order Manager (SOM)
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
Im gesamten MARS script (und das sind etwa 6 MB an XMLs) habe ich nicht ein einziges Goto verwendet. (Challenge! =)
Fast immer sind es Schleifen mit break/continue. Deswegen hab ich mir auch angewöhnt, Wait und Index=+ immer als erste Elemente einer Schleife zu setzen.
So kann ich bei Abbruchbedingungen jederzeit und überall zur Bearbeitung des nächsten Arrayelements übergehen.
Und die Schleifen werden nicht zu extrem verschachtelt.
Das ist immer ganz übel für die Lesbarkeit.
Fast immer sind es Schleifen mit break/continue. Deswegen hab ich mir auch angewöhnt, Wait und Index=+ immer als erste Elemente einer Schleife zu setzen.
So kann ich bei Abbruchbedingungen jederzeit und überall zur Bearbeitung des nächsten Arrayelements übergehen.
Und die Schleifen werden nicht zu extrem verschachtelt.
Das ist immer ganz übel für die Lesbarkeit.
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: 863
- Joined: Sat, 21. Feb 09, 12:54
ja - Du hast im MARS auch "nur" interne Funktionen und keine verschtelten Menüs, die je nach Usereingabe reagieren und keine visuellen Filterfunktionen usw. Da lässt sich das gar nicht vermeiden.
Bei meinen internen Funktionen habe ich auch keine goto's.... aber bei Menüs geht es schlicht und ergreifend nicht ohne, da nach einer Eingabe das Menü ja (leider) neu geladen werden muss, da es keine refresh-Funktionen gibt....
Du weißt worauf ich hinaus will
Bei meinen internen Funktionen habe ich auch keine goto's.... aber bei Menüs geht es schlicht und ergreifend nicht ohne, da nach einer Eingabe das Menü ja (leider) neu geladen werden muss, da es keine refresh-Funktionen gibt....
Du weißt worauf ich hinaus will

eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
Du meinst, um Größenordnungen weiter verschachtelt als das MARS Menü mit all seinen Anzeigen, Auswertungen, und den verschiedensten Eingabetypen? =)
Es ist auch im Paket das größte script.
Also alles nur Ausreden!
Menüs lassen sich aber schon dynamisch (also ohne Neuaufbeu) benutzen.
Ein Menü ist ein Array, dessen Inhalt von der Engine etwa 1x pro Sek angezeigt wird.
Und der Inhalt eines Array läßt sich ändern, einfügen, löschen...
Außerdem dürfen X3 scripts rekursiv sein. Ich hatte schon Setup scripts, die ihre eigenen Libraries waren oder ein AL Plugin, das aus einem einzigen Scriptfile bestand.
Es ist auch im Paket das größte script.
Also alles nur Ausreden!
Menüs lassen sich aber schon dynamisch (also ohne Neuaufbeu) benutzen.
Ein Menü ist ein Array, dessen Inhalt von der Engine etwa 1x pro Sek angezeigt wird.
Und der Inhalt eines Array läßt sich ändern, einfügen, löschen...
Außerdem dürfen X3 scripts rekursiv sein. Ich hatte schon Setup scripts, die ihre eigenen Libraries waren oder ein AL Plugin, das aus einem einzigen Scriptfile bestand.
Last edited by Gazz on Thu, 15. Jul 10, 22:57, edited 1 time in total.
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: 863
- Joined: Sat, 21. Feb 09, 12:54
alleine in deinem Config haste 39 gosubs und 2 goto... gosub ist ja auch nur ein goto mit einem internen return über endsub....
von dem her gesehen
aber lassen wir die diskussion hier an dieser stelle, da sie ja eigentlich nix zum thema beiträgt. ich würde das aber gerne die tage nochmal an anderer stelle aufgreifen.... das mit dem Ändern von Menüs und der Anzeige von Usereingaben ohne ein neues Laden würde mich schon mal interessieren. und sicherlich nicht nur mich. denn nichtmal lucike schafft es ohne ein neuladen und ich dachte, dass er es wissen sollte.... habe schon recht viel zeit in seinen scripts zugebracht....
EDIT: habs grade nochmal versucht. Du lädst Dein Menü im MARS auch neu, nachdem eine Usereingabe erfolgt ist
Und nur darum geht es ja... um die Verarbeitung von Usereingaben. Menüs, die keine Usereingabe haben müssen auch nicht neugeladen werden. ein Array aus einer gV zu befüllen und diese über eine anderes script von "außen" zu manipulieren ist nicht die Aufgabenstellung 
von dem her gesehen

aber lassen wir die diskussion hier an dieser stelle, da sie ja eigentlich nix zum thema beiträgt. ich würde das aber gerne die tage nochmal an anderer stelle aufgreifen.... das mit dem Ändern von Menüs und der Anzeige von Usereingaben ohne ein neues Laden würde mich schon mal interessieren. und sicherlich nicht nur mich. denn nichtmal lucike schafft es ohne ein neuladen und ich dachte, dass er es wissen sollte.... habe schon recht viel zeit in seinen scripts zugebracht....
EDIT: habs grade nochmal versucht. Du lädst Dein Menü im MARS auch neu, nachdem eine Usereingabe erfolgt ist


eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
Dann hat mich die Suchfunktion belogen (ich glaub ich hab das space falsch codiert) aber ist ja auch egal. Ohne Gosubs geht es aber nie, da es keine Funktionen/Prozeduren gibt.
Für dynamische Menüs brauchst du auf jeden Fall 2 Tasks, weil der Task, der das Menü startet, bis zur Usereingabe tot ist.
Ein 2. Task kann aber im Menü-Array herumfuhrwerken während es angezeigt wird.
Die Usereingabe schließt dann das Menü.
Das Array existiert aber noch, kann also mit mehr oder weniger kleinen Änderungen neu angezeigt werden.
Bei user interfaces ist meist die Rechenzeit für den kompletten Neuaufbau unerheblich, so daß sich eigentlich niemand die Arbeit macht.
Ist eher interessant, wenn man z.B. eine 20-zeilige Kampfstatistik runtime anzeigen will ohne daß andauernd für den Neuaufbau geklickt werden muß.
Für normale Auswahlmenüs... eher uninteressant.
Da ist es eher sinnvoll, sich wiederverwertbare Teile wie einen mühsam zusammengesuchten Warenbestand während der gesamten Menüanzeige zwischenzuspeichern.
Da die Usereingabe das Menü immer schließt, ist ein Refresh auch ger nicht vorgesehen.
Für dynamische Menüs brauchst du auf jeden Fall 2 Tasks, weil der Task, der das Menü startet, bis zur Usereingabe tot ist.
Ein 2. Task kann aber im Menü-Array herumfuhrwerken während es angezeigt wird.
Die Usereingabe schließt dann das Menü.
Das Array existiert aber noch, kann also mit mehr oder weniger kleinen Änderungen neu angezeigt werden.
Bei user interfaces ist meist die Rechenzeit für den kompletten Neuaufbau unerheblich, so daß sich eigentlich niemand die Arbeit macht.
Ist eher interessant, wenn man z.B. eine 20-zeilige Kampfstatistik runtime anzeigen will ohne daß andauernd für den Neuaufbau geklickt werden muß.
Für normale Auswahlmenüs... eher uninteressant.
Da ist es eher sinnvoll, sich wiederverwertbare Teile wie einen mühsam zusammengesuchten Warenbestand während der gesamten Menüanzeige zwischenzuspeichern.
Da die Usereingabe das Menü immer schließt, ist ein Refresh auch ger nicht vorgesehen.
Last edited by Gazz on Thu, 15. Jul 10, 23:15, edited 1 time in total.
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: 863
- Joined: Sat, 21. Feb 09, 12:54
Siehste - wir sind uns letztendlich doch immer einig 
aber das wir auch immer erst rumdiskutieren müssen
lol

aber das wir auch immer erst rumdiskutieren müssen

eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
Ist das hier nicht die Selbsthilfegruppe für Programmierer? =P
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: 1962
- Joined: Tue, 8. Jan 08, 18:19
oOIm gesamten MARS script (und das sind etwa 6 MB an XMLs) habe ich nicht ein einziges Goto verwendet. (Challenge! =)
Meinst du das ernst oder ist mein Ironiedetektor kaputt?
Das geht nur sehr begrenzt. Usereingaben wie Strings sind in Menüs ja schlicht und ergreifend nicht möglich. Die einzige Möglichkeit die dynamischen Menüs auszunutzen ist die "value selection".das mit dem Ändern von Menüs und der Anzeige von Usereingaben ohne ein neues Laden würde mich schon mal interessieren.
Der aktuell angezeigte Wert der value selection ist auch im Menü-Array gespeichert. Wenn dieses also von einem externen Skript überwacht wird, ist es möglich auf Änderungen dort zu reagieren, ohne dass das Menü merklich neu gezeichnet wird.
Das ganze ist aber ganz schön aufwändig, weswegen es nur Sinn macht, wenn das Menü quasi Hauptbestandteil des Skripts ist.
Damit ließen sich z.B. aufklappbare Untermenüs realisieren.
Anders geht's aber nicht. Nur dem Umstand, dass X tatsächlich Zeiger für Arrays verwendet, ist es zu danken, dass dynamsche Menüs überhaupt möglich sind.ein Array aus einer gV zu befüllen und diese über eine anderes script von "außen" zu manipulieren ist nicht die Aufgabenstellung
MfG,
ScRaT
-
- Posts: 863
- Joined: Sat, 21. Feb 09, 12:54
AHHHHHHHHHHHHHHHHHHHHHHHHH!
Ich werde noch bekloppt hier.....
Scrat...... warum? Das Thema war durch und Gazz und ich waren uns einig!
Die Grundaussage von mir war:
"Um eine USEREINGABE in einem Menü zu verarbeiten und diese danach IM selben Menü anzuzeigen ist ein Neuladen des Menüs NOTWENDIG!" da es kein Refresh gibt und Menüverarbeitung immer über einen Rückgabewert funktioniert.
Ich möchte das jetzt aber bitte bitte bitte nicht alles nochmals durchkauen

Ich werde noch bekloppt hier.....


Scrat...... warum? Das Thema war durch und Gazz und ich waren uns einig!
Die Grundaussage von mir war:
"Um eine USEREINGABE in einem Menü zu verarbeiten und diese danach IM selben Menü anzuzeigen ist ein Neuladen des Menüs NOTWENDIG!" da es kein Refresh gibt und Menüverarbeitung immer über einen Rückgabewert funktioniert.
Ich möchte das jetzt aber bitte bitte bitte nicht alles nochmals durchkauen


eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 13244
- Joined: Fri, 13. Jan 06, 16:39
Obwohl value selection technisch gesehen cool ist, ist es einfach zu begrenzt für die meisten Anwendungen oder Eingaben.
Außer daß der Neuaufbau des Menüs normalerweise 1-2 Frames dauert, passiert ja auch nix.
Technisch ist es halt weniger cool aber da die Scriptnutzer das gar nicht wissen, können sie es auch nicht richtig un-würdigen.
Kann man machen, hab ich aber noch nie live gesehen. Schon gar nicht rein zu dem Zweck, das Blinzeln des Menüs zu unterbinden.
Außer daß der Neuaufbau des Menüs normalerweise 1-2 Frames dauert, passiert ja auch nix.
Technisch ist es halt weniger cool aber da die Scriptnutzer das gar nicht wissen, können sie es auch nicht richtig un-würdigen.
Kann man machen, hab ich aber noch nie live gesehen. Schon gar nicht rein zu dem Zweck, das Blinzeln des Menüs zu unterbinden.
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: 863
- Joined: Sat, 21. Feb 09, 12:54
Huhu,
hab mich nach Gazz Einwand doch dazu entschlossen das Script in "Ship Order Manager" (SOM) umzubenennen.
Jetzt darf ich die ganzen 50 Screenshots alle nochmal machen
*grummel*
Reflexer
hab mich nach Gazz Einwand doch dazu entschlossen das Script in "Ship Order Manager" (SOM) umzubenennen.
Jetzt darf ich die ganzen 50 Screenshots alle nochmal machen

Reflexer
eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 2062
- Joined: Thu, 18. Aug 05, 13:04
Erwähn doch einfach vorher, dass man in den Screenshots "System" durch "Mangager" ersetzten soll. Nicht dass sich jetzt deswegen noch der Release verzögert.
Kann man ja immer noch nach und nach ersetzen. Ich glaube vielen Leuten würde das auch gar nicht unbedingt auffallen.
MfG _Belgarion_

Kann man ja immer noch nach und nach ersetzen. Ich glaube vielen Leuten würde das auch gar nicht unbedingt auffallen.
MfG _Belgarion_
Eine Blase voll Luft fürchtet spitze Nadeln.
-
- Posts: 863
- Joined: Sat, 21. Feb 09, 12:54
Mit den ganzen Änderungswünschen, die bisher angefallen sind, ist der Release-Termin heute Abend auch unrealistisch geworden.
Ich habe zwar grade Urlaub, aber meine Familie fordert berechtigterweise auch Ihre Zeit mit mir
Ich denke es wird morgen werden. Ich möchte einfach nichts unfertiges bzw. nichts komplett getestetes releasen. Hat ja keiner was davon, wenn das Script Bugs hat.
Ich habe zwar grade Urlaub, aber meine Familie fordert berechtigterweise auch Ihre Zeit mit mir

Ich denke es wird morgen werden. Ich möchte einfach nichts unfertiges bzw. nichts komplett getestetes releasen. Hat ja keiner was davon, wenn das Script Bugs hat.
eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 2062
- Joined: Thu, 18. Aug 05, 13:04
-
- Posts: 863
- Joined: Sat, 21. Feb 09, 12:54
Hallo Leute,
die letzten Arbeiten und Test sind in Arbeit.
Es wurde eine Umfrage eingefügt, ob der SOM was kosten soll. Ich bitte um eine Meinungsabgabe
Ich habe noch ein Frage an die künftigen Nutzer. SInd die aktuell verfügbaren Schiffserweiterung soweit vollständig, oder habe ich was vergessen? Aktuell sind folgende verfügbar:
Standarderweiterungen
- Laderaumerweiterung
- Triebwerkstuning
- Ruder-Optimierung
Kampferweiterungen
- Kampfsoftware MK1
- Kampfsoftware MK2
- MARS (falls MARS installiert ist)
- MEFOS (falls MEFOS installiert ist)
- Boost Erweiterung
Handelserweiterungen
- Handelssoftware MK1
- Handelssoftware MK2
- Handelssoftware MK3
- Warenlogistiksoftware MK1 (falls der Warenlogistiker installiert ist)
- Warenlogistiksoftware MK2 (falls der Warenlogistiker installiert ist)
Sonstige Erweiterungen
- Navigationssoftware MK1
- Spezialsoftware MK1
- Patrouillensoftware
- Duplex Scanner
- Triplex Scanner
- Sprungantrieb
- Transporter
- Lebenserhaltung für den Frachtraum
- Landecomputer
- Trägerkommandosoftware
Gruß
Reflexer
die letzten Arbeiten und Test sind in Arbeit.
Es wurde eine Umfrage eingefügt, ob der SOM was kosten soll. Ich bitte um eine Meinungsabgabe

Ich habe noch ein Frage an die künftigen Nutzer. SInd die aktuell verfügbaren Schiffserweiterung soweit vollständig, oder habe ich was vergessen? Aktuell sind folgende verfügbar:
Standarderweiterungen
- Laderaumerweiterung
- Triebwerkstuning
- Ruder-Optimierung
Kampferweiterungen
- Kampfsoftware MK1
- Kampfsoftware MK2
- MARS (falls MARS installiert ist)
- MEFOS (falls MEFOS installiert ist)
- Boost Erweiterung
Handelserweiterungen
- Handelssoftware MK1
- Handelssoftware MK2
- Handelssoftware MK3
- Warenlogistiksoftware MK1 (falls der Warenlogistiker installiert ist)
- Warenlogistiksoftware MK2 (falls der Warenlogistiker installiert ist)
Sonstige Erweiterungen
- Navigationssoftware MK1
- Spezialsoftware MK1
- Patrouillensoftware
- Duplex Scanner
- Triplex Scanner
- Sprungantrieb
- Transporter
- Lebenserhaltung für den Frachtraum
- Landecomputer
- Trägerkommandosoftware
Gruß
Reflexer
eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 915
- Joined: Fri, 26. Mar 10, 21:15
Folgende fallen mir jetzt so ein:
Handelserweiterungen:
-Schnäppchen-Finder
-Verkaufspreis-Finder
Sonstige:
-Bioscanner (ich bin jetz nich sicher ob man den kaufen kann)
-Digitales Sichtverbesserungssystem (vielleicht auch zu "Kampferweiterungen")
-Erkundungssoftware
-Frachtscanner
-Mineralienscanner
-Mineralienkollektor
-SINZA
(System Override Software und Software Signaturverschlüsselung gibt´s auch noch, ich weiß aber net ob du die kaufbar machen willst oder nicht, da die eine illegal und die andere sehr selten ist)
Handelserweiterungen:
-Schnäppchen-Finder
-Verkaufspreis-Finder
Sonstige:
-Bioscanner (ich bin jetz nich sicher ob man den kaufen kann)
-Digitales Sichtverbesserungssystem (vielleicht auch zu "Kampferweiterungen")
-Erkundungssoftware
-Frachtscanner
-Mineralienscanner
-Mineralienkollektor
-SINZA
(System Override Software und Software Signaturverschlüsselung gibt´s auch noch, ich weiß aber net ob du die kaufbar machen willst oder nicht, da die eine illegal und die andere sehr selten ist)
-
- Posts: 863
- Joined: Sat, 21. Feb 09, 12:54
hmmm - möchte an dieser Stelle nochmal den Sinn des SOM hervorheben: Das Kaufen von VIELEN Schiffen um Flotten aufzubauen und um Träger mit Jägern zu bestücken.
Wer braucht (außer im Spielerschiff) Erweiterungen wie:
-Schnäppchen-Finder
-Verkaufspreis-Finder
-Bioscanner
-Digitales Sichtverbesserungssystem
-Erkundungssoftware
-Frachtscanner
-Mineralienscanner
-Mineralienkollektor
-SINZA
Um das Spielerschiff oder ein einzelnes Schiff zu kaufen und auszurüsten ist der SOM eigentlich nicht gedacht. Da ist man an einer Schiffswerft deutlich schneller und kommt einfacher ans Ziel!
Wenn es Gründe dafür gibt, warum 200 Jäger oder 50 Transporter z.B. einen Bioscanner benötigen, dann lasse ich mich natürlich gerne eines Besseren belehren
Gruß
Reflexer
Wer braucht (außer im Spielerschiff) Erweiterungen wie:
-Schnäppchen-Finder
-Verkaufspreis-Finder
-Bioscanner
-Digitales Sichtverbesserungssystem
-Erkundungssoftware
-Frachtscanner
-Mineralienscanner
-Mineralienkollektor
-SINZA
Um das Spielerschiff oder ein einzelnes Schiff zu kaufen und auszurüsten ist der SOM eigentlich nicht gedacht. Da ist man an einer Schiffswerft deutlich schneller und kommt einfacher ans Ziel!
Wenn es Gründe dafür gibt, warum 200 Jäger oder 50 Transporter z.B. einen Bioscanner benötigen, dann lasse ich mich natürlich gerne eines Besseren belehren

Gruß
Reflexer
eigene Projekte: Reflexers kleine Scriptsammlung
-
- Posts: 189
- Joined: Tue, 2. Oct 07, 11:43
Wenn ich mal eben meine Prospektoren zum Mineralienabbau schicken möchte, sollten die Frachter über Scanner und Kollektoren verfügen.
SINZA ist definitiv nur auf dem Spielerschiff nutzbar, dies kann ich jederzeit einfach transferieren, wenn ich das Schiff wechsel.
Meine persönliche Meinung ist, alle Erweiterungen, die von spielereigenen Schiffen nutzbar sind, wären für "Sammelbestellungen" sinnvoll.
A liabs schwäbisches Grüßle...Fips
SINZA ist definitiv nur auf dem Spielerschiff nutzbar, dies kann ich jederzeit einfach transferieren, wenn ich das Schiff wechsel.
Meine persönliche Meinung ist, alle Erweiterungen, die von spielereigenen Schiffen nutzbar sind, wären für "Sammelbestellungen" sinnvoll.
A liabs schwäbisches Grüßle...Fips
Ich weiß, dass ich nichts weiß. Sokrates
-
- Posts: 915
- Joined: Fri, 26. Mar 10, 21:15
Aber zumindest ANBIETEN kann man sie doch. Das heißt ja nicht, dass der Spieler sie einbauen MUSS, sondern es besteht die MÖGLICHKEIT es zu tun.hmmm - möchte an dieser Stelle nochmal den Sinn des SOM hervorheben: Das Kaufen von VIELEN Schiffen um Flotten aufzubauen und um Träger mit Jägern zu bestücken.
Wer braucht (außer im Spielerschiff) Erweiterungen wie:
-Schnäppchen-Finder
-Verkaufspreis-Finder
-Bioscanner
-Digitales Sichtverbesserungssystem
-Erkundungssoftware
-Frachtscanner
-Mineralienscanner
-Mineralienkollektor
-SINZA
Um das Spielerschiff oder ein einzelnes Schiff zu kaufen und auszurüsten ist der SOM eigentlich nicht gedacht. Da ist man an einer Schiffswerft deutlich schneller und kommt einfacher ans Ziel!
Wenn es Gründe dafür gibt, warum 200 Jäger oder 50 Transporter z.B. einen Bioscanner benötigen, dann lasse ich mich natürlich gerne eines Besseren belehren
Außerdem würde es die Diskussion ersparen, welche Erweiterung jetzt für den SOM sinnvoll ist und welche nicht.
Den Mineralienkollektor finde ich z.B. sehr sinnvoll, wenn man sich 15 Bergbau-TS kauft, dann brauchen die den nun mal, um die Astros einzusammeln
