[SCR] [TC+AP] MK3-Kommandomenü (ursprüngl. UTProfit) - v1.5.1: 07.10.18

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

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

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

[SCR] [TC+AP] MK3-Kommandomenü (ursprüngl. UTProfit) - v1.5.1: 07.10.18

Post by Nightmare86 » Wed, 30. May 18, 14:26

[integriert: MK3-Profitansicht]
(Link UTProfit Originalscript aus dem englischen Forum: viewtopic.php?t=244298&postdays=0)


Vorgeschichte / Idee:

Hallo Liebe :x3: fans,

Auf der Suche nach einer einfach gehaltenen Erweiterung, die es ermöglicht ein zu sehen, ob und wieviel Profit überhaupt ein MK3-Händler erwirtschaftet, bin ich auf das Script UTProfit von Euclid im Englischen Forum gestoßen. Da in selbigem Beitrag Euclid auf eine Useranfrage antortete: "By all means, please feel free to publish your German version." und ich im deutschen Forum keine Umsetzung finden konnte, habe ich diese nun hiermit erstellt :)

Mittlerweile hat sich durch die fortwährende Arbeit und Weiterentwicklung sehr viel gegenüber dem Ursprungsscript geändert. Neben neuen angezeigten Informationen, lässt sich der Profit jedes Händlers in einer Händlerübersichtsliste einsehen.

Mehr und Mehr entwickelte sich das Script von einem reinem Ansichtsmenü hin zu einem Befehlmenü und letztlich zu einer Plattform, von der man alle seine MK3-Händler konfigurieren und managen kann.


Offizielle Beschreibung:

Das MK3-Kommandomenü ist eine Softwareübergreifende Plattform, welche standardisierte Erweiterungen für die Handelssoftware-MK3 der Firma © BurnIt & MKess Software Ltd. über eine gemeinsame Benutzeroberfläche mit einander verbindet und dadurch dem Anwender einen höheren Bedienkomfort bietet. Sobald ein Händler mit dem Handelskommando beauftragt wurde, wird dieser im MK3-Kommandomenü gelistet und kann dort durch die integrierte Profiteinsicht, welche detaillierte Informationen zu einem Händler liefert, eingesehen werden. Darüber hinaus bieten integrierte Managementfunktionen, nachträgliche Anpassungen an einen jeweiligen Händler und runden somit dieses umfangreiche Verwaltungsmenü ab.


Funktionsübersicht:

- Aufruf per Hotkey oder Stationskommando
- Einblendung von Händlerinformationen
- Handelskommando Neuzuweisung bzw. Änderung
- Händlerspezifische Änderungsmöglichkeiten
- Aufruf von Konfiguartions-Fremdtools

Wie das ausschaut und welche Informationen angezeit werden, lässt sich am besten anhand der nachfolgenden Screenshots verdeutlichen!


Screenshots:

Image Image Image Image Bilder links nach rechts zeigen: Hotkeyaufruf, Stationsaufruf, Händlerübersicht (Hauptmenü), Berichtseinsicht (Untermenü mit detailierteren Informationen)


Erweiterte Info:

- Menü ausgelegt für vertikale Auflösungen von XXXX x 1050 Bildpunkte oder höher. Bei niedriger vertikaler Auflösungen wird die Berichtseinsicht "Scrollbar"

- Die Einbindung weiterer und spezifischen Änderungen der "MK3 Optimierung Reloaded Software", machte diese Software vorrausetzend. Anzeigewerte bei der Vanilla MK3-Software sind dadurch verschieden, weshalb diese nicht mehr unterstützt wird!

- Das Script greift beim Aufruf auf vorhandene Variablen, einfacher gesagt auf vorhandene Informationen die im Spiel bereits durch die Scripte der Handelssoftware MK3 bestehen zu, liest diese Informationen aus und fügt sie in einem Menü zusammen. Eine Aktualisierung der Infos kann daher nur durch erneute Auswahl des jeweiligen Schiffes bzw. neuaufruf der Händlerübersicht eingesehen werden. Wird das Menü geschlossen, so bleibt auch das Script nicht weiter Hintergrund aktiv und es werden keine Informationen zusätzlich zu den Handelssoftware scripten "geloggt" (gespeichert) was auch die Größe des Spielstandes nicht negativ beeinflusst.

- Tipp: Um die eingesetzen Händler besser zu differentzieren empfiehlt es sich, diese verschieden zu benennen!

- Tipp: Wem meine Farbgebung nicht ganz zusagt, der kann im Odner "t" die Datei "7006-L049.xml" mit dem normalen Windows "Editor" oder anderen Tools bearbeiten. Wichtig ist nur das die Codierung "UTF-8" nicht geändert und somt das "T-file" für das spiel nicht lesbar machen. Eine Sicherheitskopie empfiehlt sich um sich möglichen Ärger zu ersparen. Mögliche Farbgebungen sind bereits im "T-file" vermerkt.

- Meine Scripterfahrung war zu Beginn sehr begrenzt und ist mit der Zeit mehr gewachsen (mein erstes Script :)), so konnte ich durch viel hin und herprobieren nach und nach auch immer mehr verwirklichen und weitere Versionen veröffentlichen. Die Funktionen sind getestet und funkionieren, allerdings kann es sein das man scripttechnisch etwas verbessern könnte, daher freue ich mich sehr über Hilfe und Rückmeldungen zu den Scriptzeilen aber auch generell zur Weiterentwicklung des scripts, sowie Wünsche, Tipps und Anmerkungen und generelles Feedback von Spielern zum Script, die dabei helfen mögliche Fehler aus zu merzen und das Script weiter zu verbessern und benutzerfreundlicher zu gestalten.


Installation & Anwendung:

1. Entpacke die Dateien aus dem *.zip Archiv.
2. Kopiere den Inhalt des Ordners "MK3-Kommandomenü\X3 - Albion Prelude" oder "MK3-Kommandomenü\X3 - Terran Conflict" je nach Spielversion zusammen mit dem Inhalt von "MK3 Optimierung Reloaded" in selbige Ordner im X3 Spielverzeichnis (für AP muss "MK3 Optimierung Reloaded" ebenfalls eine Ordner-Ebene höher in \addon\ gelegt werden). Bereits vorhandene Dateien müssen überschrieben werden.
3. Spiel Starten Menü "Steuerung" aufrufen, schaltfläche "Oberfläche" wählen und am Ende der Seite unter "Erweiterungen" eine Hotkeytaste für das MK3-Kommandomenü zuteilen. Jetzt kann das Script per Hotkey oder alternativ aus der Commandokonsole einer Station aufgerufen werden!
4. Ist unter "Erweiterungen" kein Eintrag mit "MK3-Kommandomenü" zu sehen, so muss vorher einmalig der Scripteditor aktiviert und das Spiel neu geladen bzw. neu gestartet werden. -> Scripteditor aktivieren


Ressourcen:

COMMAND_TYPE_STATION_55
setup.plugin.UTProfit.xml
plugin.UTProfit.xml
uninstall.plugin.UTProfit.xml
T-file: 7006
- page id = 2010; text id = 1155
- page id = 2011; text id = 1155
- page id = 2022; text id = 1155
- page id = 9900; text id Bereich = 0 bis 399


Kompatibilität:

- Vanilla TC + AP
- DE + ENG spielversion
- MK3 Sektorlisten Manager (in MK3 Optimierung Reloaded enthalten)
- MK3 Laderaum Manager (in MK3 Optimierung Reloaded enthalten)
- EMC4AP
- DAE


Aktueller Status & Download:

Script wurde mit verschiedenen Erweiterungen getestet (siehe Kompatibilität) und läuft mit den aufgelisteten Mods, Scripten bzw. Spielversionen!

Den Änderungslog zu den Versionen gibt es im zweiten Post Bugfixing / Weiterentwicklung

Die Händleraktion (Kommando) ist teils im Zusammenhang mit einer Ware (wantedware) verbunden, sodass es z.B. folgender informations Ausgabe kommt: "kaufe Energiezellen". In einem ausgiebigen Test konnten jedoch nicht alle Kommandos, welche die Handelsoftware MK3 verwendet, simuliert und dementsprechend die Informations Ausgabe jedes Kommandos mit Ware oder ohne Ware eideutig formatiert werden. So wurden verbleibende Kommandos bereits vor formatiert. Sollten an dieser Stelle seltsame Kommando Informationen auftauchen, diese bitte melden damit diese korrekt formatiert werden können!

-___________
|__________|
|_Download:_| v1.5.1: Soo Captain Spucki dann zeig uns doch mal den Download Link! ->> :tuichdoch: <<-
|__________|

88 Downloads insgesamt (Stand 21.11.18) :D Schön das X3 immernoch gespielt wird :) :thumb_up:


Externe Alternativen und Infos:

Script: Handelsübersicht von ScRaT_GER -> (Erfasst gehandelte Waren und führt ein Fahrtenbuch der Händler)
Script: MK3 Handelsprotokoll von SymTec ltd. -> (Erstellt eine externe Logdatei zur Einsicht der Rentabilität des Händlers)
Info: [Sammelthread] X3 - MK3-Software (Univ.Händler) - Fragen und Antworten
Info: Handelssoftware MK3 - Technisches Datenblatt (Readme und weitere Infos) -> (ab v1.5 dem Downloadarchiv beigefügt)


Deinstallation:

1. Script Editor öffnen, script uninstall.plugin.UTProfit markieren, taste "r" drücken und nachfolgende zwei mal mit Eingabetaste bestätigen. Nach erfolgreicher Deinstallation erscheint eine Deinstallationsbestätigung.
2. Spiel abspeichern und Programm beenden.
3. Alle Script-Dateien aus X3 Spielverzeichnis entfernen.
4. Zuvor gesperichertes Spiel erneut laden und ohne "MK3-Kommandomenü" weiterspielen.


Danksagung:

Vielen Dank! an ticaki, moggy2, Dr Xavia, SymTec ltd., DrBullwinkle, gnasirator, Egosoft und allen anderen die an der Handelssoftware MK3 bzw. deren "Optimierung Reloaded" gearbeitet haben!

Vielen Dank! an Klaus11 für die fortwährende Unterstützung, wodurch es mir überhaupt erst möglich war die Version 1.2 am Anfang ohne die zuvor bekannten Bugs heraus zu bringen!

Vielen Dank! für konstruktive Kritik, Verbesserungsvorschläge, Fehlermeldungen und sonstiges Feedback!


viele Grüße
Nightmare86
Last edited by Nightmare86 on Wed, 21. Nov 18, 10:13, edited 89 times in total.
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Wed, 30. May 18, 14:26

Bugfixing / Weiterentwicklung

Änderungslog:

In Bearbeitung:
Derzeit keine Veränderungen geplant!

Released v1.5.1: 07.10.18 (24 Downloads)

- v1.5.1: Änderung : Script seperiert für TC und AP, da das Script für TC unkompatibel war. Änderungen beziehen sich nur auf Beschreibungen im AP-Script. Beim TC-Script wurde die Abfrage zur Vorhandenheit von Scriptdateien und die dazugehörige Fehlermeldungen deaktiviert, welches auch den Aufruf vom "MK3 -Laderaummanager & -Blacklistmanager betrifft. Desweiteren musste auch ein inkompatibler Menübefehl diesem Script an TC angepasst werden, wodurch nun alle Menüzeilen auswählbar sind.
- v1.5.1: Bugfix : Die Bezeichnung der Textid wurde berichtigt, wodurch das richtige Textfile nicht geladen werden konnte. Dadurch kam es zu "Readtext-Fehler" und Auslösung von Fehlermeldung "404-1".


Released v1.5: 01.10.18 (15 Downloads) - nicht mehr verfügbar, durch neue Version ersetzt!

- v1.5: Neu : Neues Untermenü zur Änderung der Statisiken implementiert, hierdurch kann ein Fehler der MK3 Optimierung Reloaded im Zusammenhang eines Pilotenwechsels behoben und gegebenenfalls der Profit zurückgesetzt werden
- v1.5: Neu : Der Blacklist- und der Laderraummanager, beides in der MK3 Optimierung Reloaded enthalten, können ab sofort aus dem Menü aufgerufen werden
- v1.5: Neu : Durch Fortschritt des Menüs und Verlässlichkeit von korrekt eingeblendeten Informationen, wird die Software "MK3 Optimierung Reloaded" vorrausgesetzt. Die Vanilla MK3-Software wird absofort nicht mehr unterstützt
- v1.5: Neu : Händler kann jetzt aus der Berichtseinsicht als Sektor- und Regionalhändler oder Universumhändler neu beauftragt werden und zudem beliebig umbenannt werden
- v1.5: Neu : Heimatbasis kann aus der Berichtseinsicht jetzt neu zugeteilt oder gelöscht werden
- v1.5: Neu : Menü Optionen nun aus Händlerübersicht und Berichtseinsicht verfügbar: Zurück zur Händlerübersicht + Aktualisiere Berichtseinsicht (Händlerübersicht) bzw. Schließe Menü
- v1.5: Neu : Audioausgabe (Bordcomputer Betty) mit Untertiteln bei diversen Ereignissen hinzugefügt
- v1.5: Neu : Erweiterte Infos (Ja / Nein) Kampfdrohnen zur Verteidigung an Bord
- v1.5: Neu : Infozeilen: Aktion, Handelsfahrtennummer, Zielstation, bisherige Dauer der Aktion, Auf Station, Konstrukteursrasse und maximal verfügbare Händlerreichweite hinzugefügt
- v1.5: Neu : Heimatbasis (ja/Nein), Beschädigung der Schiffshülle, Händlerrang sowie die derzeitige Handelsart wird nun in der Händlerübersicht mit angezeigt
- v1.5: Änderung : Umbenennung durch weiter forangegangene Script Entwicklung in "MK3 Kommandomenü"
- v1.5: Änderung : Infozeile Gezahltes Pilotenghalt wurde entfernt, da dieses nicht richtig berechnet wurde
- v1.5: Änderung : Menüstrukturen und Farbcodierung durch Neuerungen Angepasst

Bekannte Probleme - Bugs v1.5:
- In Erstausgabe war die Textid falsch angegeben, wodurch das Textfile nicht geladen werden konnte. Fehler behoben und Download ersetzt, Datei bitte noch einmal erneut herunterladen!


Released v1.4: 18.06.18 (29 Downloads) - nicht mehr verfügbar, durch neue Version ersetzt!

- v1.4: Neu : Uninstallscript beigefügt.
- v1.4: Neu : Negativer Profit wird in der Händlerübersicht jetzt farblich hervorgehoben
- v1.4: Neu : Erweiterte Infos (Ja / Nein) Spezialsoftware MK1 installiert
- v1.4: Änderung : Erfassung und Ausgabe der Systemzeit geändert, dadurch erscheinen jetzt auch Sekunden in der Ausgabe.
- v1.4: Änderung : Die Auflistung der Händler in der Übersicht wird jetzt nach Name sortiert, von oben nach unten A -> Z
- v1.4: General Änderung : Das Script wird von nun an in den Erweiterungen der Oberfläche wieder zu finden sein, da dieses Script keine Befehle ausführt und von daher dort nicht so richtig hineinpasst. Aufruf jetzt durch zugewiesenen Hotkey oder aus einer beliebigen Station heraus.
- v1.4: Bugfix : Erwirtschafteter Profit jetzt auch auf der Berichtsseite, dem richtigen Händler zugeordnet.
- v1.4: Bugfix : Ausgabe Sektor- und Regionalhändler jetzt wieder richtig.
- v1.4: Bugfix : Fehler in Berechnung der maximal verfügbaren Laderaumgröße behoben!


Released v1.3: 11.06.18 (7 Downloads) - nicht mehr verfügbar, durch neue Version ersetzt!

- v1.3: Neu : Fehlermeldungen wenn T-File oder Script Datei nicht vorhanden sind, erscheinen im Spiel als eingehende Nachricht
- v1.3: Neu : Menü mehr strukturiert und Einträge auf Berichtsseite jetzt nicht mehr auswählbar
- v1.3: Neu : Erweiterte Infos (Ja / Nein) Ruderoptimierung maximal, Schiff ist bewaffnet, Kampfsoftware MK1 installiert, Kampfsoftware MK2 installiert, Sprungantireb vorhanden
- v1.3: Neu : Infozeilen Warentransportklasse, Hüllenintegrität %, Zeit der Berichtserstellung, Laderaumkapazität: xxx von max: xxx, Schildkapazität: xxx von max: xxx und Höchstgeschwindigkeit: xxx von max: xxx
- v1.3: Änderung : Die Profitinformation wird jetzt früher im Script abgerufen und hinter den Schiffsnamen im Auswahlmenü eingeblendet. So erhält man die wichtigste Information direkt dem einzelnen Händler zugeordnet.
- v1.3: Änderung : Infozeile Pilotenrang + Name wurde von Schiffs - Informationen nach Handels - Informationen verschoben

Bekannte Probleme - Bugs v1.3:
- #1: Fehler in Berechnung der maximal verfügbaren Laderaumgröße, Anzeige bei noch nicht maximalen Ausbau Fehlerhaft
- #2: Erwirtschafteter Profit wird auf der Berichtsseite nicht Händlerzugehörig wiedergegeben.
- #3: Unterscheidung Sektorhändler und Regionalhändler vertauscht.


Released v1.2: 05.06.18 (5 Downloads) - nicht mehr verfügbar, durch neue Version ersetzt!

- v1.2: Neu : Kommentare erweitert, T-ID bereiche festgelegt und Dateien aufgeräumt
- v1.2: Neu : Infotext zum wählbaren Handelskommando im Handelsmenü hinzugefügt
- v1.2: Neu : Die Infozeile im Schiffsauswahlsmenü informiert jetzt darüber welche Anzahl an Händler gefunden wurden, so bleibt das Fenster auch bei keinem aktiven MK3 Händler, bis auf die Überschrift, nicht komplett leer!
- v1.2: Neu : Unterteilung der Infozeilen Kategorien: Schiffs - Informationen und Handels - Informationen
- v1.2: Neu : Neben einem farbig gestaltetes Menü gibt es nun weitere Infozeilen: Gezahltes Pilotenghalt, Handelsreichweite, Schiffs ID, Schiffsklasse, Händlerschiff, Heimatsektor und Heimatbasis
- v1.2: Änderung : Alle Erläuterungen nun nicht mehr Script intern, sondern werden aus dem T-file ausgelesen
- v1.2: Bugfix : Durch die neue Erfassung der Sektor- und Regionalhändler unter v1.1 wurden die Sektorhänder nicht mehr von den Lokalen Händlern unterschieden. Behoben!
- v1.2: Bugfix : Abbruch Handel bzw. Aktivierung Autopilot bei Menü Aufruf entfernt (vielen Dank an Klaus11!)


Released v1.1: 30.05.18 - (8 Downloads) - nicht mehr verfügbar, durch neue Version ersetzt!

- v1.1: Änderung : Erläuterungen im Script intern angepasst
- v1.1: Neu : Übersetzung und Erstellung des T-files 7006.L049
- v1.1: Bugfix : Erfassung von Sektorhändler, diese wurden zuvor nicht erfasst
- v1.0: ursprüngliches Originalscript

Bekannte Probleme - Bugs v1.1:
- #1 Beim Aufrufen des Übersicht Menüs eines jenen Händlers wird der Autopilot aktiviert und das Spielerschiff richtet sich gegebenenfalls neu aus, selbiges verursacht beim Aufruf des Menüs über die Kommandokonsole eines MK3-Händlers, das der Sektorhandel bzw. Universumhandel abgebrochen wird. Deswegen das Menü am besten immer auf dem eigenen Spielerschiff ausführen!
- #2 Sector und Lokal Händler werden nicht unterschieden

_______________________________________________________________________________________________________________________________________________________________________________________


Bekannte Probleme stammend von MK3 Optimierung Reloaded v1.8.9.7_fixed
- #1 Das Pilotengehalt wird nicht in tasächlicher Höhe über die Variable "salary" wiedergegeben. (Pilotengehalt ab v1.5 entfernt!)
- #2 Wenn der Pilot in ein anderes Schiff wechselt, und das MK3 Kommando fort führt, so ändert sich die Höhe seiner Handelsfahrten auf einen niedrigeren Zahlenwert. (Anpassungsmöglichkeit ab v1.5 implementiert!)


Programmcode
v1.5 plugin.UTProfit.xml:

Code: Select all

* -----------------------------------------------------------------------------------------------------------------
* Main Page 1 - Seperating Traders and sort them
* -----------------------------------------------------------------------------------------------------------------

* load text id entries from page 9900 included in t-file 7006
$Page.ID = 9900
load text: id=$Page.ID

* start point for menue refresh
START:

* get mk3 traders seperated from players ships
$array.ships = get ship array: of race [Player] class/type=[Bewegliches Schiff]
for each $ship in array $array.ships using counter $n.ships
if not $ship-> is script 'plugin.autotrade.galaxy' on stack of task=0
if not $ship-> is script 'plugin.autotrade.local.start' on stack of task=0
remove element from array $array.ships at index $n.ships
end
end
end

* format: found ships in alphabetical order from a to z
$array.ships = sort array $array.ships
$array.ships = reverse array $array.ships
$n.ships = size of array $array.ships
$n.trader = $n.ships

* -----------------------------------------------------------------------------------------------------------------
* Main Page 1 - Getting additional preview infos and creating Menu
* -----------------------------------------------------------------------------------------------------------------

while [TRUE]
$n.ships = $n.trader

* create menu section: top description
$haeder = read text: page=$Page.ID id=10
$menue.one = create custom menu array: heading=$haeder
$text = '            '
add non selectable menu item: $menue.one, text=$text
$text = read text: page=$Page.ID id=19
add non selectable menu item: $menue.one, text=$text
$text.left = read text: page=$Page.ID id=30
$text.right = read text: page=$Page.ID id=15
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.one, text=$text
$text.left = read text: page=$Page.ID id=14
$text.right = read text: page=$Page.ID id=12
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.one, text=$text
add section to custom menu: $menue.one

* create menu section: found trader and getting ship information for displaying info
while $n.ships
dec $n.ships
$ship = $array.ships[$n.ships]
$found.trader = $n.ships + 1

* get and format: experience to two digits
$preview.experience = $ship-> get local variable: name='experience'
if $preview.experience == 1
$preview.f.experience = '01'
else if $preview.experience == 2
$preview.f.experience = '02'
else if $preview.experience == 3
$preview.f.experience = '03'
else if $preview.experience == 4
$preview.f.experience = '04'
else if $preview.experience == 5
$preview.f.experience = '05'
else if $preview.experience == 6
$preview.f.experience = '06'
else if $preview.experience == 7
$preview.f.experience = '07'
else if $preview.experience == 8
$preview.f.experience = '08'
else if $preview.experience == 9
$preview.f.experience = '09'
else if $preview.experience > 9
$preview.f.experience = $preview.experience
end
* format: color for type of trader by traderrange and script
$preview.trader.range = $ship-> get local variable: name='traderange'
if $ship-> is script 'plugin.autotrade.galaxy' on stack of task=0
$preview.ff.experience = sprintf: pageid=$Page.ID textid=31, $preview.f.experience, null, null, null, null
end
if $ship-> is script 'plugin.autotrade.local.start' on stack of task=0
$preview.ff.experience = sprintf: pageid=$Page.ID textid=32, $preview.f.experience, null, null, null, null
if $preview.trader.range >= 1
$preview.ff.experience = sprintf: pageid=$Page.ID textid=33, $preview.f.experience, null, null, null, null
end
end

* get and format: homebase  information
$preview.homebase = $ship-> get homebase
if $preview.homebase == null
$preview.homebase = read text: page=$Page.ID id=17
else
$preview.homebase = read text: page=$Page.ID id=18
end

* get and format: hull information
$preview.hull = $ship-> get hull percent
$f.hull = sprintf: pageid=$Page.ID textid=25, $preview.hull, null, null, null, null
if not $preview.hull == 100
$preview.hull = $f.hull
$list.found.trader = sprintf: pageid=$Page.ID textid=16, $ship, null, null, null, null
else
$preview.hull = ''
$list.found.trader = sprintf: pageid=$Page.ID textid=11, $ship, null, null, null, null
end

* get and format: profit information
$preview.profit = $ship-> get local variable: name='Gain'
$preview.s.profit = convert number $preview.profit to string
if $preview.profit < 0
$preview.s.profit = sprintf: pageid=$Page.ID textid=13, $preview.s.profit, null, null, null, null
end

* format: infos on menue line
$text.right = sprintf: fmt='%s %s', $preview.hull, $preview.s.profit, null, null, null
$text.left = sprintf: fmt='%s %s %s', $preview.homebase, $preview.ff.experience, $list.found.trader, null, null
$text = create text for custom menu, left=$text.left, right=$text.right
add custom menu item to array $menue.one: text=$text returnvalue=$found.trader
end

* get and format: amount of found traders and format info for menue info line
$trader.amount = size of array $array.ships
if $trader.amount == 0
* display text line: hire mk3 dealer for a listing
$trader.amount = read text: page=$Page.ID id=24
$text = read text: page=$Page.ID id=34
add non selectable menu item: $menue.one, text=$text
* voice + subtitle: not available / nicht verfügbar
START speak text: page=13 id=25 priority=100
$text = read text: page=$Page.ID id=29
display subtitle text: text=$text duration=3000 ms
end

* set command "cargomanager" available or not
if does script exist: 'plugin.autotrade.blacklistmgr'
$Blacklistmanger.available = read text: page=$Page.ID id=35
end
if not does script exist: 'plugin.autotrade.blacklistmgr'
$Blacklistmanger.available = read text: page=$Page.ID id=37
$Blacklistmanger.is.unavailable = '1'
end

* create menu section: bottom description
add section to custom menu: $menue.one
$text = read text: page=$Page.ID id=20
add non selectable menu item: $menue.one, text=$text
$text = read text: page=$Page.ID id=22
add non selectable menu item: $menue.one, text=$text
$text = read text: page=$Page.ID id=38
add non selectable menu item: $menue.one, text=$text
$text.left = read text: page=$Page.ID id=21
$text.right = read text: page=$Page.ID id=2
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.one, text=$text

* -----------------------------------------------------------------------------------------------------------------
* Main Page 1 - Creating Menu - Command Menu Options
* -----------------------------------------------------------------------------------------------------------------

* create menu section: menue options
add custom menu heading to array $menue.one: page=$Page.ID id=26
* aktualize page.one
add custom menu item to array $menue.one: page=$Page.ID id=27 returnvalue='aktualize'
* opens the mk3 blacklist manager
add custom menu item to array $menue.one: text=$Blacklistmanger.available returnvalue='open.blacklist'
* close menue
add custom menu item to array $menue.one: page=$Page.ID id=28 returnvalue='close'

* create menu page.one set amount of ships on info line 
$text = sprintf: pageid=$Page.ID textid=23, $trader.amount, null, null, null, null
$title = read text: page=$Page.ID id=1
$menu.page.one = open custom menu: title=$title description=$text option array=$menue.one

* -----------------------------------------------------------------------------------------------------------------
* Main Page 1 - Handle User Input
* -----------------------------------------------------------------------------------------------------------------

* aktualizes menue traderoverview
if $menu.page.one == 'aktualize'
goto label START:
* closes menue traderoverview
else if $menu.page.one == 'close'
$menu.page.one = -1
* closes menue traderoverview
else if $menu.page.one == 'open.blacklist'
goto label Task.01.openBlacklist:
end

* ends menue and avoids opening page 2 if there are no traders found
do if $menu.page.one == -1 OR 0
goto label END:

* gives variable with selected ship for page 2
$found.trader = $menu.page.one - 1
$UT = $array.ships[$found.trader]

* relegates to page 2 if a trader was selected
if $menu.page.one > 0
goto label MenuReportview:
end

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Ship- Information (Text.ID = 100-199) 
* -----------------------------------------------------------------------------------------------------------------

* start point for menue refresh
MenuReportview:

* getting various informations without necessary further condition
$name = $UT-> get name
$idcode = $UT-> get ID code
$ship.type = $UT-> get ware type code of object
$makerrace = $UT-> get maker race
$class = $UT-> get object class
$current.hull = $UT-> get hull percent
$max.speed = $UT-> get max upgraded speed
$current.speed = $UT-> get current max speed
$max.transportclass = $UT-> get max. ware transport class
* get and format: shield information
$shieldbays = $UT-> get number of shield bays
$max.shield.mountable = $UT-> get max. shield type that can be installed
$current.max.shield = $UT-> get maximum shield strength
$current.max.shield = $current.max.shield / 1000
$s.current.max.shield = convert number $current.max.shield to string
* get and format: cargo information
$maxupgrades.cargo = $UT-> get max upgrades for upgrade {Laderaumerweiterung}
$upgrades.cargo = $UT-> get amount of ware {Laderaumerweiterung} in cargo bay
$upgrades.cargo.avaialable = $maxupgrades.cargo - $upgrades.cargo
$cargobaysize = $UT-> get cargo bay size
$max.cargobaysize = $cargobaysize + $upgrades.cargo.avaialable
$s.max.cargobaysize = convert number $max.cargobaysize to string
$s.cargobaysize = convert number $cargobaysize to string

*  get and format: homebase information and set available command menu option
$homebase = $UT-> get homebase
if is datatype[$homebase] == [DATATYPE_STATION]
$homebase.available = read text: page=$Page.ID id=302
else if $homebase == null
$homebase = read text: page=$Page.ID id=111
$homebase.available = read text: page=$Page.ID id=303
end

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Ship- Information specified by Yes or No Answers
* -----------------------------------------------------------------------------------------------------------------

* get and format: rudder information
$max.upgrades.rudder = $UT-> get max upgrades for upgrade {Ruder-Optimierung}
$upgrades.rudder = $UT-> get amount of ware {Ruder-Optimierung} in cargo bay
if $max.upgrades.rudder == $upgrades.rudder
$upgrades.rudder.available = read text: page=$Page.ID id=118
skip if $max.upgrades.rudder OR $upgrades.rudder == null
$upgrades.rudder.available = read text: page=$Page.ID id=117
else if $max.upgrades.rudder != $upgrades.rudder
$upgrades.rudder.available = read text: page=$Page.ID id=117
end

* get and format: jumpdrive information
$sprungantrieb = $UT-> get amount of ware {Sprungantrieb} in cargo bay
if $sprungantrieb >= 1
$sprungantrieb.available = read text: page=$Page.ID id=118
else if $sprungantrieb <= 1
$sprungantrieb.available = read text: page=$Page.ID id=117
end

* get and format: spezialsoftware information
$spezialsoftware = $UT-> get amount of ware {Spezialsoftware MK1} in cargo bay
if $spezialsoftware >= 1
$spezialsoftware.available = read text: page=$Page.ID id=118
else if $spezialsoftware <= 1
$spezialsoftware.available = read text: page=$Page.ID id=117
end

* get and format: armed information
$laserstrength = $UT-> get current laser strength
if $laserstrength == 0
$laser.available = read text: page=$Page.ID id=117
else if $laserstrength >= 0
$laser.available = read text: page=$Page.ID id=118
end

* get and format: combat software information
$kampfsoftware.mk1 = $UT-> get amount of ware {Kampfsoftware MK1} in cargo bay
if $kampfsoftware.mk1 >= 1
$kampfsoftware.mk1.available = read text: page=$Page.ID id=118
else if $kampfsoftware.mk1 <= 1
$kampfsoftware.mk1.available = read text: page=$Page.ID id=117
end
$kampfsoftware.mk2 = $UT-> get amount of ware {Kampfsoftware MK2} in cargo bay
if $kampfsoftware.mk2 >= 1
$kampfsoftware.mk2.available = read text: page=$Page.ID id=118
else if $kampfsoftware.mk2 <= 1
$kampfsoftware.mk2.available = read text: page=$Page.ID id=117
end

* get and format: drone defense information
$Kampfdrohne = $UT-> get amount of ware {Kampfdrohne} in cargo bay
$Kampfdrohne.mk2 = $UT-> get amount of ware {Kampfdrohne MKII} in cargo bay
$Kampfdrohne.kris = $UT-> get amount of ware {Kris} in cargo bay
if $Kampfdrohne OR $Kampfdrohne.mk2 OR $Kampfdrohne.kris == 1
$Kampfdrohne.available = read text: page=$Page.ID id=118
else if $Kampfdrohne OR $Kampfdrohne.mk2 OR $Kampfdrohne.kris == 0
$Kampfdrohne.available = read text: page=$Page.ID id=117
end

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Trade- Information (Text.ID = 200-299) 
* -----------------------------------------------------------------------------------------------------------------

* getting various informations without necessary further condition
$pilot = $UT-> get pilot name
$profit = $UT-> get local variable: name='Gain'
$s.profit = convert number $profit to string
$traderun = $UT-> get local variable: name='flight.number'
$s.traderun = convert number $traderun to string
$flighttime = $UT-> get flight time
$f.flighttime = format time: $flighttime
$current.sector = $UT-> get sector
$systemtime = playing time
$f.systemtime = format time: $systemtime

* get and format: current and available traderrange, type of trader, set command "tradeuniverse" available or not
$trader.range = $UT-> get local variable: name='traderange'
$experience = $UT-> get local variable: name='experience'
if not $experience
$max.range = 0
else if $experience < 6
$max.range = 0
else if $experience < 8
$max.range = 1
else if $experience < 10
$max.range = 2
else if $experience < 12
$max.range = 3
else if $experience < 16
$max.range = 4
else if $experience < 20
$max.range = 8
else
$max.range = 10
end
if $UT-> is script 'plugin.autotrade.galaxy' on stack of task=0
$trader.range = read text: page=$Page.ID id=211
$trader.type = read text: page=$Page.ID id=207
$max.range.text = ''
$universe.available = read text: page=$Page.ID id=309
else if $UT-> is script 'plugin.autotrade.local.start' on stack of task=0
$trader.type = read text: page=$Page.ID id=206
skip if $trader.range >= 1
$trader.type = read text: page=$Page.ID id=205
$max.range.text = sprintf: pageid=$Page.ID textid=229, $max.range, null, null, null, null
if $experience < 8
$universe.available = read text: page=$Page.ID id=309
else if $experience >= 8
$universe.available = read text: page=$Page.ID id=304
end
end

* get and format: assigned- or centralsector
$homesector = $UT-> get homesector
if $homesector == null
$homesector = read text: page=$Page.ID id=209
end

* get and format: trader command and display the wantedware
$wantedware = $UT-> get wanted ware
$f.wantedware = sprintf: fmt='%s...', $wantedware, null, null, null, null
$command = $UT-> get command
if $command == [COMMAND_AUTOTRADER_SECTOR]
$command.text = read text: page=$Page.ID id=220
$f.wantedware = ''
else if $command == [COMMAND_AUTOTRADER_UNIVERSE]
$command.text = read text: page=$Page.ID id=221
$f.wantedware = ''
else if $command == [COMMAND_DOCKAT]
$command.text = read text: page=$Page.ID id=228
$f.wantedware = ''
else if $command == [COMMAND_FREIGHT_FETCH]
$command.text = read text: page=$Page.ID id=236
else if $command == [COMMAND_GET_WARE]
$command.text = read text: page=$Page.ID id=216
else if $command == [COMMAND_GET_WARE_BEST]
$command.text = read text: page=$Page.ID id=235
else if $command == [COMMAND_RETREAT]
$command.text = read text: page=$Page.ID id=234
$f.wantedware = ''
else if $command == [COMMAND_RETURN_HOME]
$command.text = read text: page=$Page.ID id=232
$f.wantedware = ''
else if $command == [COMMAND_SELL_WARE]
$command.text = read text: page=$Page.ID id=227
else if $command == [COMMAND_SELL_WARE_BEST]
$command.text = read text: page=$Page.ID id=231
else if $command == [COMMAND_SIGN_MOVE_PILOT]
$command.text = read text: page=$Page.ID id=230
$f.wantedware = ''
else if $command == [COMMAND_STAY]
$command.text = read text: page=$Page.ID id=215
$f.wantedware = ''
else if $command == [COMMAND_MK3_6500_DELIVERY]
$command.text = read text: page=$Page.ID id=222
else if $command == [COMMAND_MK3_6501_UPGRADE_SHIELDS]
$command.text = read text: page=$Page.ID id=223
else if $command == [COMMAND_MK3_6502_BUY_TUNINGS]
$command.text = read text: page=$Page.ID id=224
else if $command == [COMMAND_MK3_6503_BUY_HARDWARE]
$command.text = read text: page=$Page.ID id=225
else if $command == [COMMAND_MK3_6504_REFUEL]
$command.text = read text: page=$Page.ID id=226
else if $command == [COMMAND_MK3_6505_SCAN]
$command.text = read text: page=$Page.ID id=217
$f.wantedware = ''
else if $command == [COMMAND_MOVE_SECTOR]
$command.text = read text: page=$Page.ID id=233
$f.wantedware = ''
end

* get and format: traders destination
$destination = $UT-> get destination
if $destination == null
$destination = '-'
end

* get and format: docked station if ship is docked
$environment = $UT-> get environment
if $environment == $current.sector
$environment = '-'
end

* set Command "sethomebase" available or not
$array.stations = get station array: of race [Player] class/type=[Station]
$station.available = size of array $array.stations
if $station.available == 0
$station.f.available = read text: page=$Page.ID id=331
else if $station.available >= 0
$station.f.available = read text: page=$Page.ID id=301
end

* set Command "cargomanager" available or not
if does script exist: 'plugin.autotrade.start.bl.mgr'
$cargomanager.available = read text: page=$Page.ID id=332
end
if not does script exist: 'plugin.autotrade.start.bl.mgr'
$cargomanager.available = read text: page=$Page.ID id=333
$cargomanager.is.unavailable = '1'
end

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Creating Menu - Ship- Information (Text.ID = 100-199) 
* -----------------------------------------------------------------------------------------------------------------

$haeder = sprintf: pageid=$Page.ID textid=100, $name, null, null, null, null
$menue.two = create custom menu array: heading=$haeder
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = read text: page=$Page.ID id=101
add non selectable menu item: $menue.two, text=$text
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=102, $idcode, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=103, $ship.type, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=122, $makerrace, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=104, $class, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=105, $current.hull, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=106, $current.speed, $max.speed, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=107, $s.current.max.shield, $shieldbays, $max.shield.mountable, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=108, $s.cargobaysize, $s.max.cargobaysize, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=109, $max.transportclass, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=110, $homebase, null, null, null, null
add non selectable menu item: $menue.two, text=$text
* create section: yes / no conditions
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = read text: page=$Page.ID id=112
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=113, $upgrades.rudder.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=114, $sprungantrieb.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=121, $spezialsoftware.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = read text: page=$Page.ID id=115
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=116, $laser.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=119, $kampfsoftware.mk1.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=120, $kampfsoftware.mk2.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=123, $Kampfdrohne.available, null, null, null, null
add non selectable menu item: $menue.two, text=$text

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Creating Menu - Trade- Information (Text.ID = 200-299) 
* -----------------------------------------------------------------------------------------------------------------

$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = read text: page=$Page.ID id=200
add non selectable menu item: $menue.two, text=$text
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=201, $pilot, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=202, $s.profit, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=204, $trader.type, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=208, $homesector, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=210, $trader.range, $max.range.text, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = read text: page=$Page.ID id=238
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=203, $s.traderun, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=214, $command.text, $f.wantedware, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=237, $destination, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=219, $f.flighttime, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=212, $current.sector, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=218, $environment, null, null, null, null
add non selectable menu item: $menue.two, text=$text
$text = '            '
add non selectable menu item: $menue.two, text=$text
$text = sprintf: pageid=$Page.ID textid=213, $f.systemtime, null, null, null, null
add non selectable menu item: $menue.two, text=$text

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Creating Menu - Command Menu Options (Text.ID = 300-399) 
* -----------------------------------------------------------------------------------------------------------------

* create section: menu options
add section to custom menu: $menue.two
* aktulize reportview
add custom menu item to array $menue.two: page=$Page.ID id=311 returnvalue=1
* get back to menu page 1
add custom menu item to array $menue.two: page=$Page.ID id=312 returnvalue=2

* create section: send command to trader
add custom menu heading to array $menue.two: page=$Page.ID id=300
* rename trader
add custom menu item to array $menue.two: page=$Page.ID id=319 returnvalue=3
* set- or set new homebase
add custom menu item to array $menue.two: text=$station.f.available returnvalue=4
* reset homebase
add custom menu item to array $menue.two: text=$homebase.available returnvalue=5
* start sektor or local trading
add custom menu item to array $menue.two: page=$Page.ID id=306 returnvalue=6
* start universe trading
add custom menu item to array $menue.two: text=$universe.available returnvalue=7
* open cargomangager
add custom menu item to array $menue.two: text=$cargomanager.available returnvalue=8
* reset flight number and profit
add custom menu item to array $menue.two: page=$Page.ID id=336 returnvalue=9

* create menu page.two
$title = read text: page=$Page.ID id=1
$description = read text: page=$Page.ID id=124
$menu.page.two = open custom menu: title=$title description=$description option array=$menue.two

* -----------------------------------------------------------------------------------------------------------------
* Main Page 2 - Handle User Input
* -----------------------------------------------------------------------------------------------------------------

if $menu.page.two == 1
goto label MenuReportview:
else if $menu.page.two == 2
$menu.page.two = -1
else if $menu.page.two == 3
goto label Task.02.renameTrader:
else if $menu.page.two == 4
goto label Task.03.setHomebase:
else if $menu.page.two == 5
goto label Task.04.resetHomebase:
else if $menu.page.two == 6
goto label Task.05.cmdTradeSectorLocal:
else if $menu.page.two == 7
goto label Task.06.cmdTradeUniverse:
else if $menu.page.two == 8
goto label Task.07.openCargomanager:
else if $menu.page.two == 9
goto label Task.08.setTraderinfo:
end
end

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 1 - Open Blacklist Manager
* -----------------------------------------------------------------------------------------------------------------

Task.01.openBlacklist:

* if script is missing
if $Blacklistmanger.is.unavailable == '1'
* voice + subtitle: not installed / nicht installiert
START speak text: page=13 id=24 priority=100
$text = read text: page=$Page.ID id=36
display subtitle text: text=$text duration=3000 ms
goto label START:
end

* call extern script 
$blacklistmanager = [THIS]-> call script 'plugin.autotrade.blacklistmgr' :
goto label START:

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Rename Trader
* -----------------------------------------------------------------------------------------------------------------

Task.02.renameTrader:

* create additional menue items for handeling action
$title = sprintf: pageid=$Page.ID textid=320, $name, null, null, null, null
$new.name = $UT-> get user input: type=[Var/String], title=$title
$haeder = read text: page=$Page.ID id=321
$menue.rename = create custom menu array: heading=$haeder
$text = sprintf: pageid=$Page.ID textid=328, $name, null, null, null, null
add non selectable menu item: $menue.rename, text=$text
add custom menu heading to array $menue.rename: page=$Page.ID id=322
$text = sprintf: pageid=$Page.ID textid=328, $new.name, null, null, null, null
add non selectable menu item: $menue.rename, text=$text
add custom menu heading to array $menue.rename: page=$Page.ID id=323
add custom menu item to array $menue.rename: page=$Page.ID id=324 returnvalue=1
add custom menu item to array $menue.rename: page=$Page.ID id=325 returnvalue=2
* create additional menu for handeling action
$title = read text: page=$Page.ID id=1
$description = read text: page=$Page.ID id=329
$choice.rename = open custom menu: title=$title description=$description option array=$menue.rename

* accept renaming
if $choice.rename == 1
$UT-> set name to $new.name
* voice + subtitle: affirmative / bestaetigt
START speak text: page=13 id=1100016 priority=100
$text = read text: page=$Page.ID id=326
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:

* cancel renaming
else if $choice.rename == 2
$text = read text: page=$Page.ID id=327
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:
end

* if user closes menu "choice.rename"
if $choice.rename == -1
goto label MenuReportview:
end

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Set / or Set another Homebase
* -----------------------------------------------------------------------------------------------------------------

Task.03.setHomebase:

* format: stations array from call on menu.page.two
$array.stations = sort array $array.stations
$array.stations = reverse array $array.stations

* create additional menue items for handeling action
$menue.homebase = create custom menu array
add custom menu heading to array $menue.homebase: page=$Page.ID id=330
for each $found.homebase in array $array.stations using counter $n.stations
$text = sprintf: fmt='%s', $found.homebase, null, null, null, null
add custom menu item to array $menue.homebase: text=$text returnvalue=$found.homebase
end

* if no stations were found
$size.array.stations = size of array $array.stations
if $size.array.stations == 0
* voice + subtitle: malfunction no station for docking found / fehlfunktion keine station zum andocken gefunden
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=313
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=9 priority=100
goto label MenuReportview:
end

* create additional menu for handeling action
$title = read text: page=$Page.ID id=1
$description = read text: page=$Page.ID id=305
$set.homebase = open custom menu: title=$title description=$description option array=$menue.homebase

* if user closes menu "set.homebase"
do if $set.homebase == -1
goto label MenuReportview:

* set selected new homebase to trader
$UT-> set homebase to $set.homebase
* voice + subtitle: new homebase accepted / neue heimatbasis bestätigt
START speak text: page=13 id=1100017 priority=100
$text = read text: page=$Page.ID id=314
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Reset Homebase
* -----------------------------------------------------------------------------------------------------------------

Task.04.resetHomebase:

* if no homebase is assigned to trader
if not is datatype[$homebase] == [DATATYPE_STATION]
* voice + subtitle: malfunction new remote command cannot be executed / fehlfunktion steuerbefehl nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=315
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=133 priority=100
goto label MenuReportview:
end

* if theres a homebase assigned to reset
if is datatype[$homebase] == [DATATYPE_STATION]
$reset.homebase = null
$UT-> set homebase to $reset.homebase
* voice + subtitle: removed / entfernt
START speak text: page=13 id=1275 priority=100
$text = read text: page=$Page.ID id=316
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:
end

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Set Command Sector or Local Trading
* -----------------------------------------------------------------------------------------------------------------
* ..... used a expanded version of "plugin.autotrade.local.preload" from mk3 improvement scripts ....
* -----------------------------------------------------------------------------------------------------------------

Task.05.cmdTradeSectorLocal:

* set assigned- or centralsector
$title = read text: page=$Page.ID id=307
$sector = $UT-> get user input: type=[Var/Sector], title=$title
skip if $sector-> exists
$abort.sector = 1
if $abort.sector
* voice + subtitle: malfunction command rejected / fehlfunktion kommando nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=352
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=135 priority=100
* can not go back to menu without error on new try
goto label END:
end

* set traderrange with max.range from "menu.page.two"
if $max.range
$title = sprintf: pageid=$Page.ID textid=308, $max.range, null, null, null, null
$jumps = $UT-> get user input: type=[Var/Number], title=$title
skip if $jumps >= 0 AND $jumps <= $max.range
$abort.range = 1
* if there was a not usable user input before
if $abort.range
* voice + subtitle: malfunction command rejected / fehlfunktion kommando nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=352
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=135 priority=100
* can not go back to menu without error on new try
goto label END:
end
end

* set commando and call extern script 
$UT-> set command: [COMMAND_AUTOTRADER_SECTOR]
$UT-> begin task 0 with script 'plugin.autotrade.local.start' and priority 0: arg1=$sector arg2=$jumps arg3=null arg4=null arg5=null
* voice + subtitle: command accepted / kommando akzeptiert
START speak text: page=13 id=131 priority=100
$text = read text: page=$Page.ID id=318
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Set Command Universe Trading
* -----------------------------------------------------------------------------------------------------------------

Task.06.cmdTradeUniverse:

* check and abort if trader already is universe trader
if $UT-> is script 'plugin.autotrade.galaxy' on stack of task=0
* voice + subtitle: malfunction command rejected / fehlfunktion kommando nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=317
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=135 priority=100
goto label MenuReportview:
end

* check to keep the standard conditions of starting universe trading
$experience = $UT-> get local variable: name='experience'
if $experience < 8
* voice + subtitle: malfunction command rejected / fehlfunktion kommando nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=355
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=135 priority=100
goto label MenuReportview:
end

* set commando and call extern script 
$UT-> set command: [COMMAND_AUTOTRADER_UNIVERSE]
$UT-> begin task 0 with script 'plugin.autotrade.galaxy' and priority 0: arg1=$Value arg2=$Value arg3=$Value arg4=$Value arg5=$Value
* voice + subtitle: command accepted / kommando akzeptiert
START speak text: page=13 id=131 priority=100
$text = read text: page=$Page.ID id=318
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Open Cargo Manager
* -----------------------------------------------------------------------------------------------------------------

Task.07.openCargomanager:

* if script is missing
if $cargomanager.is.unavailable == '1'
* voice + subtitle: not installed / nicht installiert
START speak text: page=13 id=24 priority=100
$text = read text: page=$Page.ID id=334
display subtitle text: text=$text duration=3000 ms
goto label MenuReportview:
end

* call extern script 
$cargomangager = $UT-> call script 'plugin.autotrade.start.bl.mgr' :
goto label MenuReportview:

* -----------------------------------------------------------------------------------------------------------------
* Handle Action - Main Page 2 - Reset Flight Number and Profit
* -----------------------------------------------------------------------------------------------------------------

Task.08.setTraderinfo:

* create additional menue items for handeling action
$haeder = read text: page=$Page.ID id=349
$menue.set.traderinfo = create custom menu array: heading=$haeder
add custom menu info line to array $menue.set.traderinfo: page=$Page.ID id=337
* if theres was no user iput before
$traderun = $UT-> get local variable: name='flight.number'
if $new.flightnumber == null
$new.flightnumber = '-'
end
$text.left = read text: page=$Page.ID id=338
$text.right = sprintf: pageid=$Page.ID textid=328, $traderun, null, null, null, null
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.set.traderinfo, text=$text
add section to custom menu: $menue.set.traderinfo
$text.left = read text: page=$Page.ID id=341
$text.right = sprintf: pageid=$Page.ID textid=328, $new.flightnumber, null, null, null, null
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.set.traderinfo, text=$text
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=339 returnvalue=1
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=340 returnvalue=2
add section to custom menu: $menue.set.traderinfo
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=342 returnvalue=3
add custom menu heading to array $menue.set.traderinfo: page=$Page.ID id=350

* if theres was no user iput before
$profit = $UT-> get local variable: name='Gain'
if $new.profit == null
$new.profit = '-'
end

$text.left = read text: page=$Page.ID id=344
$text.right = sprintf: pageid=$Page.ID textid=328, $profit, null, null, null, null
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.set.traderinfo, text=$text
add section to custom menu: $menue.set.traderinfo
$text.left = read text: page=$Page.ID id=346
$text.right = sprintf: pageid=$Page.ID textid=328, $new.profit, null, null, null, null
$text = create text for custom menu, left=$text.left, right=$text.right
add non selectable menu item: $menue.set.traderinfo, text=$text
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=345 returnvalue=4
add section to custom menu: $menue.set.traderinfo
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=347 returnvalue=5
add custom menu heading to array $menue.set.traderinfo: page=$Page.ID id=310
add custom menu item to array $menue.set.traderinfo: page=$Page.ID id=348 returnvalue=6
$title = read text: page=$Page.ID id=1
$description = read text: page=$Page.ID id=343
$choice.traderinfo = open custom menu: title=$title description=$description option array=$menue.set.traderinfo

if $choice.traderinfo == 1
$new.flightnumber = 1
goto label Task.08.setTraderinfo:
else if $choice.traderinfo == 2
$title = read text: page=$Page.ID id=351
$new.flightnumber = $UT-> get user input: type=[Var/Number], title=$title
skip if $new.flightnumber >= 1
$abort.flightnumber = 1
* if there was a not usable user input before
if $abort.flightnumber
* voice + subtitle: malfunction not available / fehlfunktion nicht verfügbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=352
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=25 priority=100
* can not go back to menu without error on new try
goto label END:
end
goto label Task.08.setTraderinfo:
else if $choice.traderinfo == 3 AND $new.flightnumber == '-'
* voice + subtitle: malfunction new remote command cannot be executed / fehlfunktion steuerbefehl nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=335
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=133 priority=100
goto label Task.08.setTraderinfo:
else if $choice.traderinfo == 3
if not $flightnumber == '-'
$UT-> set local variable: name='flight.number' value=$new.flightnumber
* voice + subtitle: New command set / Neuer Steuerbefehl wird ausgeführt
START speak text: page=13 id=132 priority=100
$text = read text: page=$Page.ID id=354
display subtitle text: text=$text duration=3000 ms
goto label Task.08.setTraderinfo:
end
else if $choice.traderinfo == 4
$new.profit = 0
goto label Task.08.setTraderinfo:
else if $choice.traderinfo == 5 AND $new.profit == '-'
* voice + subtitle: malfunction new remote command cannot be executed / fehlfunktion steuerbefehl nicht ausführbar
START speak text: page=13 id=1357 priority=100
$text = read text: page=$Page.ID id=335
display subtitle text: text=$text duration=3000 ms
= wait 1000 ms
START speak text: page=13 id=133 priority=100
goto label Task.08.setTraderinfo:
else if $choice.traderinfo == 5
if not $new.profit == '-'
$UT-> set local variable: name='Gain' value=$new.profit
* voice + subtitle: New command set / Neuer Steuerbefehl wird ausgeführt
START speak text: page=13 id=132 priority=100
$text = read text: page=$Page.ID id=353
display subtitle text: text=$text duration=3000 ms
goto label Task.08.setTraderinfo:
end
else if $choice.traderinfo == 6
$choice.traderinfo = -1
end
* if user closes menu "choice.rename"
do if $choice.traderinfo == -1 OR 0
goto label MenuReportview:

* -----------------------------------------------------------------------------------------------------------------
* THE END - Relegating Codition Answers with "return null" to here
* -----------------------------------------------------------------------------------------------------------------

END:

return null
v1.5 setup.plugin.UTProfit.xml:

Code: Select all

* load text id entries from page 9900 included in t-file 7006
$Page.ID = 9900
load text: id=$Page.ID

* check if files are available to setup otherwise send error messages to player
if not does script exist: 'plugin.UTProfit'
if not read text: page id=$Page.ID, id=0 exists
$text = '[author]Nightmare86[/author][title][red]MK3 Kommandomenü Error Message 404-3:[/red][/title]The language file 7006-Lxxx and script file "plugin.UTProfit" is missing. Setup was canceled! Make sure that the t-file is in folder "t" and the script in folder "scripts" in right game folder of TC or AP. To stop setup remove files with name "UTProfit" from script folder!'
send incoming message $text to player: display it=[FALSE]
return null
else if read text: page id=$Page.ID, id=0 exists
$text = read text: page=$Page.ID id=3
send incoming message $text to player: display it=[FALSE]
return null
end
end

if does script exist: 'plugin.UTProfit'
if not read text: page id=$Page.ID, id=0 exists
$text = '[author]Nightmare86[/author][title][red]MK3 Kommandomenü Error Message 404-1:[/red][/title]The language fle 7006-Lxxx is missing or corrupt. Setup not complete! Make sure that the t-file is in the right "t" folder of TC or AP. Otherwise theres no translation for your game language available, but you can use existing translations by renaming an existing file ending "xxx" to your language code and the language ID within the file. To stop setup remove files with name "UTProfit" from script folder!'
send incoming message $text to player: display it=[FALSE]
end
end

if not get global variable: name='plugin.UTProfit.hotkey'
$text = read text: page=$Page.ID id=1
$dummy = register hotkey $text to call script 'plugin.UTProfit'
set global variable: name='plugin.UTProfit.hotkey' value=$dummy
end

* setup commands
set script command upgrade: command=[COMMAND_TYPE_STATION_55]  upgrade=[TRUE]  script='plugin.UTProfit'
global script map: set: key=[COMMAND_TYPE_STATION_55], class=[Station], race=[Player], script='plugin.UTProfit', prio=0
set script command upgrade: command=[COMMAND_TYPE_STATION_55]  upgrade=[TRUE]

return null
v1.5 uninstall.plugin.UTProfit.xml:

Code: Select all

* load text id entries from page 9900 included in t-file 7006
$Page.ID = 9900
load text: id=$Page.ID

* check if hotkey exits and if its true unregister hotkey
if get global variable: name='plugin.UTProfit.hotkey'
$dummy = get global variable: name='plugin.UTProfit.hotkey'
unregister hotkey $dummy
set global variable: name='plugin.UTProfit.hotkey' value=null
end

* remove command 
global script map: remove: key=[COMMAND_TYPE_STATION_55], class=[Station], race=[Player]

= wait 3000 ms

* check if uninstall was successful then sending a confirmation message to player
if not get global variable: name='plugin.UTProfit.hotkey'
if not read text: page id=$Page.ID, id=0 exists
$Text = '[author]Nightmare86[/author][title][green]MK3 Kommandomenü Deinstallation:[/green][/title]MK3 Kommandomenü was successfully uninstalled! Then please manually remove all existing script files with included naming "UTPprofit" from your game directory, to avoid a re-installation the next time you load your game, thanks!'
send incoming message $Text to player: display it=[TRUE]
else if read text: page id=$Page.ID, id=0 exists
$Text = read text: page=$Page.ID id=4
send incoming message $Text to player: display it=[TRUE]
end
end

return null
Ideen zur Weiterentwicklung:

Erfassung der Dienstzeit: Die Dienstzeit ist die Summierung aller Flugzeiten. Weder im Original Handelsscript noch in der Reloaded Version wird diese Zeit summiert. Eine entsprechende Funktion bedeutet eine zusätzliche Änderung dieser Fremdscripte oder ein permanent aktives eigenes Script, was jene Aufgabe erfüllt. [wird (vorerst) nicht umgesetzt ->] Aus Funktionsweise des jetzigen Scriptes nicht möglich, eine modifikation der Fremdscripte oder zusätzliches Eigenscript nicht gewollt.

Aufrufen der Kommandokonsole des Schiffes (Idee von Taylor2008): Aufrufen der Kommandokonsole ist eine Hardcoded Funktion und leider nicht über den SE erreichbar. [Alternativlösung umgesetzt ->] Eingriff in die Händlerkonfiguration ist ab v1.5 im Script integriert


Weitere Vorschläge für eventuelle Änderungen:

Hier könnte Ihre Idee stehen! :mrgreen:
Last edited by Nightmare86 on Wed, 21. Nov 18, 10:07, edited 86 times in total.
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Wed, 30. May 18, 21:11

Ich habe mir Deine Problem Mod kurz angeschaut. Offensichtlich sind alle drei Dateien fehlerhaft.
Alle Fehler habe ich noch nicht behoben. Ändere mal folgende Zeilen in dem Skript so:

Code: Select all

.....
.....
$nships = $ntrader

$Haeder1 = read text: page=9900 id=6
$menue = create custom menu array: heading=$Haeder1
* $menue = create custom menu array: heading='Select your MK3 Trader...'

while $nships
dec $nships
$ship = $ships[$nships]
$ret = $nships + 1
add custom menu item to array $menue: text=$ship returnvalue=$ret
end
.....
.....
$Haeder2 = read text: page=9900 id=7
$dum = open custom menu: title=$text description=$Haeder2 option array=$menue
*$dum = open custom menu: title=$text description='Schiplist of Traders which are presently run with MK3 Software' option array=$menue
do if $dum == -1
........
Die fehlerhaften habe ich mit * gekennzeichnet.

Dann ergänze das t File mit ID 6 und 7 und trage den entsprechenden Text ein.

Um den letzten Fehler zu beheben müssten wohl noch die Setup und das t File erweitert werden. Momentan fehlt mir aber die Zeit. Poste diese auch mal. Vlt. kann ein anderer spontan schneller helfen.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Aldebaran_Prime
Posts: 1124
Joined: Sat, 20. Feb 10, 18:47
x4

Post by Aldebaran_Prime » Wed, 30. May 18, 23:41

hey, klasse ein neue Modder in unseren Reihen! :x3:

Genau so, mit Übersetzen und kleinen Bugfixes, habe ich 2011 auch angefangen.

Das hinzufügen von neuen Text-Ids im text-file und Scriipt bekommst Du aber bestimmt selbst hin - oder?

Sonst melde Dich noch einmal.

Warum der Autopilot unterbrochen wird, obwohl Du ja keinen Steuerungs- sondern das Erweiterungs-Menü nutzt, finde ich auch rätselhaft. Eventuell liegt es daran, welchen Commandoslot das Script nutzt.
Also vielleicht Command_Type_Ship... oder ...General... etc. mal ausprobieren
Image

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Thu, 31. May 18, 17:58

Hallo Nightmare86,

mit meinem Beispiel konntest Du wohl nichts anfangen?
Nightmare86 wrote:Bugfixing / Weiterentwicklung

Änderungslog:

.....

Aktuell geplante Änderungen:

#1: Handelsabbruch des Händlers und aktivierung des autopiloten beim spieler durch Menü aufruf verhindern
Hat jemand eine Idee, was ich umschreiben muss um dies zu verhindern? :gruebel:

#2: Hardcoaded Texte im Script durch anderen Befehl aus T-File auslesen lassen
Hier habe ich schon einiges versucht, und auch aus anderen Scripten probehalber eingesetzt, aber noch keinen passenden Befehl gefunden, der die Fensterinfos oder die Überschriften der Fenster in einem anderen aus einem T-File ausliest :headbang: :cry:
Diese beiden Probleme habe ich behoben. :D Das Kommando ist wunschgemäß unter Handel zu finden und löst dennoch keinen Autopiloten aus. Die Texte lassen sich in einem t File festlegen. (damit mehrere Sprachen möglich)

Hast Du noch Interesse :?:

Hier der Image der überarbeiteten Mod. Du kannst die Dateien auch als Beispiel für weitere Projekte nutzen. Ich habe alle drei überarbeitet.
Aldebaran_Prime wrote:Warum der Autopilot unterbrochen wird, obwohl Du ja keinen Steuerungs- sondern das Erweiterungs-Menü nutzt, finde ich auch rätselhaft. Eventuell liegt es daran, welchen Commandoslot das Script nutzt.
Also vielleicht Command_Type_Ship... oder ...General... etc. mal ausprobieren
War nicht notwendig und hätte auch nichts gebracht. Die Setup musste erweitert werden, so wie ich es erwähnt hatte.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Thu, 31. May 18, 18:30

@Klaus11 und Aldebaran_Prime

Doch ich konnte schon etwas damit anfangen und hatte in der Zwischenzeit bereits sämtliche Texte aus dem Script herausgeschmissen und aus der externen Datei auslesen lassen, nur bin ich noch nicht so routiniert das ich das so herunterschreibe und brauche da etwas zeit für :D mit dem Autopilot wollte ich als nächstes noch schauen und selber etwas herumprobieren, das ich mich auch schon mit eigenen Fortschritt zurückmelden kann :) brauche ja auch ein klein bischen herausforderung :wink: Schaue mir auch deine Bearbeitung an Klaus11 und werde dann denke ich beide in einer zusammen führen. Ich muss jetzt gleich aber erst mal privat weg, ich melde mich aber sobald ich soweit bin und gebe dann auch detailiertere Antworten auf eure posts zurück. Ich hätte denke ich zwischenzeitlich schon mal kurz eine Rückmeldung geben sollen, sry das ist mein Fehler!

Bis dahin erst einmal 1000 Dank für schnelle Hilfe und Mühe, das hat mich sehr gefreut von euch beiden zu hören :)

viele Grüße
Marco
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Fri, 1. Jun 18, 02:27

Soo, da bin ich nun wieder nach einiger Zeit des versuchens und lernen und verstehens :D Ich habe noch ein paar weitere kleinigkeiten für die v1.2 mit angepasst.

#Bug1:
Wegen der Sache mit dem Autopilot hatte schon mal bei cycrow und seinen cheat menü reingeschaut und wollte das als Vorlage nehmen. Dann war Klaus11 aber schon schneller und hat eine funktionierende Lösung zur Verfügung gestellt, vielen Dank dafür!

Befehle Texte aus Datei auslesen:

Hatte das zuvor auch so in der Art versucht mit dem setzen einer variablen. Hatte richtig viel ausprobiert und wollte das eigentlich mit der v1.1 mit herausbringen, aber beim ausprobieren bin ich fast dran verzweifelt :D

so hatte ich das mal:

Code: Select all

$menue = create custom menu array: heading=$text
$text = read text: page=9900 id=6
-> dann hatte ich als Überschrift "null" Verdammt... gerade mal ausprobiert und es hätte funktioniert wenn ich die Reihenfolge getauscht hätte, kann doch nicht sein, so ein blöder fehler :headbang: Aber ich war immerhin nahe dran :D

Beim zweiten hat mir neben der Reihenfolge der Zusatz "option array=$menue" So hat x studio die Zeile direkt als fehler unterstrichen, das ich es nicht übernommen habe. Manchmal sieht man den Wald vor lauter Bäumen nicht, denn "open custom menu: title='String' description='String' option array=$Array" gab es als vorlage... und steht auch noch mal am ende :roll:



@ Aldebaran_Prime

Ehm naja... eher gerade frischer Lehrling :mrgreen:

Das ist mal interessant zu hören das sich auch andere da nach und nach immer weiter rangestastet haben und durchgekämpft haben.

Das umschreiben der Befehle im Script war für mich noch so zu sagen neuland. Beim ergänzen des T-files von Cycrow hatte ich mir das script immer mal nebenbei parallel angeschaut aber editieren musste ich dort nichts. Aber ich war ja schon nahe dran gewesen es richtig zu machen, viele Versuche haben ja auch erkenntnis gebracht was sich dadurch im spiel ändert, machmal war es sogar auch garnichts wo man eine Auswirkung dran sehen konnte :D

Das Problem liegt glaube ich daran, das ich noch nicht so ganz verstehe was gewisse Befehle genau bewirken und wann man welche für was einsetzt. Hier muss ich mich noch mal etwas näher mit befassen.



Nochmal vielen Dank an euch Beiden,
Gruß Marco
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Fri, 1. Jun 18, 14:51

Nightmare86 wrote:Befehle Texte aus Datei auslesen:

Hatte das zuvor auch so in der Art versucht mit dem setzen einer variablen. Hatte richtig viel ausprobiert und wollte das eigentlich mit der v1.1 mit herausbringen, aber beim ausprobieren bin ich fast dran verzweifelt :D

so hatte ich das mal:

Code: Select all

$menue = create custom menu array: heading=$text
$text = read text: page=9900 id=6
-> dann hatte ich als Überschrift "null" Verdammt... gerade mal ausprobiert und es hätte funktioniert wenn ich die Reihenfolge getauscht hätte, kann doch nicht sein, so ein blöder fehler :headbang: Aber ich war immerhin nahe dran :D

Beim zweiten hat mir neben der Reihenfolge der Zusatz "option array=$menue" So hat x studio die Zeile direkt als fehler unterstrichen, das ich es nicht übernommen habe. Manchmal sieht man den Wald vor lauter Bäumen nicht, denn "open custom menu: title='String' description='String' option array=$Array" gab es als vorlage... und steht auch noch mal am ende :roll:
Löse Dich vom X-Studio. Dieses Programm ist veraltet. Die neuen Skriptbefehle kennt das X-Studio nicht. Öffnest Du ein Skript mit neuen Befehlen, werden diese als Fehler angezeigt und das X-Studio kann die Datei nicht speichern. Willst Du neue Befehle nutzen, kann das X-Studio diese nicht anzeigen.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Fri, 1. Jun 18, 19:43

schreibst Du denn direkt im SE, weil dein Script auf neuste Engineverssion 54 stand?
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Fri, 1. Jun 18, 21:13

Nightmare86 wrote:schreibst Du denn direkt im SE, weil dein Script auf neuste Engineverssion 54 stand?
Genau, einige Skripte hätte ich sonst nicht schreiben können. Außerdem habe ich mit dem X-Studio weitere Unschönheiten erlebt.
Schau Dir mal meine Version der Setup Datei im SE an, dann müsstest Du Unterschiede zu Deiner Version feststellen. Meine Erweiterungen im t File bewirken diese.
Das X-Studio nutze ich nur noch um Kopien zum Posten anzufertigen.

btw, ist DAE Kompatibel. :wink:
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Sat, 2. Jun 18, 14:33

Klaus11 wrote:Genau, einige Skripte hätte ich sonst nicht schreiben können. Außerdem habe ich mit dem X-Studio weitere Unschönheiten erlebt.
Schau Dir mal meine Version der Setup Datei im SE an, dann müsstest Du Unterschiede zu Deiner Version feststellen. Meine Erweiterungen im t File bewirken diese.
Das X-Studio nutze ich nur noch um Kopien zum Posten anzufertigen.

btw, ist DAE Kompatibel. :wink:
Ah ja habe ich gesehen wo die Pid 2008 eingesetzt wird. Aber wo Wird die Pid 20000 denn eingesetzt und verwendet? :gruebel:

Im SE hatte ich zuletzt das ganz normale = gesucht, gab alles andere als vorlage !=,>=, ==, usw. Hier wären auf jeden fall ein paar erklärungen nicht schlecht im SE :D

Dann wollte ich ein Befehl geben wenn eine variable nicht gesetzt war um an anderer Stelle den Anzeigetext "null" verschwinden zu lassen: skip if $range = '';'null';=0 ging alles nicht. letzt endlich hat es mit >= 1 funktioniert. Totales Trial and error bei mir :D

DAE habe ich übrigens Kompatibilitätsliste hinzugefügt :thumb_up:

Gruß Marco
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Sat, 2. Jun 18, 14:44

Nightmare86 wrote: Im SE hatte ich zuletzt das ganz normale = gesucht, gab alles andere als vorlage !=,>=, ==, usw. Hier wären auf jeden fall ein paar erklärungen nicht schlecht im SE :D
mit = wird z.B. einer Variablen ein Wert oder String zugeordnet ($Schiffsname='Maja')

Für Vergleiche nutzt man folgende Zeichen. Beginnt mit if oder ifnot z.b.
!= bedeutet ungleich
>= bedeutet, wenn größer oder gleich
== bedeutet, wenn gleich, z.b. if $var1 == null

Kannst Du damit was anfangen?
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Sat, 2. Jun 18, 15:15

Klaus11 wrote:Kannst Du damit was anfangen?
ja damit kann ich was mit anfangen, danke! Das eine wird demnach für ein "setzen" Befehl verwendet der andere um die variable aus zu lesen und mit einer anderen zu vergleichen.

Hier drum ging es bei meiner weiteren frage, wofür folgende ids gesetzt wurden und wo diese Anwendung finden bzw. als text auftauchen?

Code: Select all

<page id="8016" title="MK3_Profit" descr="">
		<t id="20000">441</t>
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

User avatar
Klaus11
Posts: 825
Joined: Mon, 13. Feb 12, 18:23
x3ap

Post by Klaus11 » Sat, 2. Jun 18, 16:33

kA, hab ich vergessen. :oops:
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Nightmare86
Posts: 141
Joined: Fri, 24. Nov 06, 16:48
x3ap

Post by Nightmare86 » Sat, 2. Jun 18, 17:12

Klaus11 wrote:kA, hab ich vergessen. :oops:
Okay macht nichts :D page id 8016 benutzt lucike für seinen Blaupausenmanager, nehme an das es ein Überbleibsel ist von "HQ aktivieren", dort verwendest Du ja auch den Blaupausenmanager.

Habe diesen Eintrag mal herausgenommen, danach läuft jedenfalls immer noch alles :D
Image
Plotübersicht EMC4AP.|.MK3-Kommandomenü "Wenn jeder nach seinen Möglichkeiten mit anpackt, können wir zusammen Großes schaffen :thumb_up: :)"

Post Reply

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