[SCR] [03.05.12] [X3TC/AP V1.0.03] Ship Order Manager (SOM)

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

User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

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.
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.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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 ;)
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

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.
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.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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 :D
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

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.
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.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

Siehste - wir sind uns letztendlich doch immer einig :D

aber das wir auch immer erst rumdiskutieren müssen :D lol
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

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.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Im gesamten MARS script (und das sind etwa 6 MB an XMLs) habe ich nicht ein einziges Goto verwendet. (Challenge! =)
oO
Meinst du das ernst oder ist mein Ironiedetektor kaputt?
das mit dem Ändern von Menüs und der Anzeige von Usereingaben ohne ein neues Laden würde mich schon mal interessieren.
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".

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.
ein Array aus einer gV zu befüllen und diese über eine anderes script von "außen" zu manipulieren ist nicht die Aufgabenstellung
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.

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

Post by Reflexer »

AHHHHHHHHHHHHHHHHHHHHHHHHH!

Ich werde noch bekloppt hier..... :o :o

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 :D

:lol:
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

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.
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.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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
_Belgarion_
Posts: 2062
Joined: Thu, 18. Aug 05, 13:04
x3tc

Post by _Belgarion_ »

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. :wink:

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.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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.
_Belgarion_
Posts: 2062
Joined: Thu, 18. Aug 05, 13:04
x3tc

Post by _Belgarion_ »

Bei dem Wetter + Ferien... ist das natürlich verständlich.

Ich wünsche dir einen schönen Tag. (auf das du gut erholt wieder ans Werk gehen kannst. :D )

MfG _Belgarion_
Eine Blase voll Luft fürchtet spitze Nadeln.
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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
Striker304
Posts: 915
Joined: Fri, 26. Mar 10, 21:15
x3tc

Post by Striker304 »

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)
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

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
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Also SINZA finde ich schon sinnvoll. Z.B. wenn man sich entscheidet mal eben das Fluggefährt zu wechseln.

MfG,
ScRaT
Fips67
Posts: 189
Joined: Tue, 2. Oct 07, 11:43
x3tc

Post by Fips67 »

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
Ich weiß, dass ich nichts weiß. Sokrates
Striker304
Posts: 915
Joined: Fri, 26. Mar 10, 21:15
x3tc

Post by Striker304 »

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
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.
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 :wink:. Und der Mineralienscanner ist für den Prospektor notwendig. Die Erkundungssoftware ist sinnvoll für Aufklärerstaffeln. Und wenn ich mir ne Staffel M7M kaufe, dann würde ich da schon nen Frachtscanner und nen Bioscanner reinbauen, wenn ich mal eins der M7M wechsle, so sollten mir diese Softwares doch auch zur Verfügung stehen können. Deshalb sollte man es dem Spieler offen lassen, welche Erweiterungen er letzten Endes einbaut, aber zumindest sollte er die Möglichkeit haben, alle ihm sinnvoll erscheinenden Erweiterungen einzubauen.

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