Tipp: Verwaiste/doppelte Hotkeys entfernen

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

HAUSMEiSTER.cnx
Posts: 8
Joined: Fri, 4. May 07, 00:31
x4

Tipp: Verwaiste/doppelte Hotkeys entfernen

Post by HAUSMEiSTER.cnx »

Hallo zusammen,

ich musste letztens mein X3:TC neu installieren, da eine DAT defekt war und hab mir dabei auch meine installierten Scripte neu geordnet und neue installiert. Beim Zuweisen von Hotkeys ist mir dann aufgefallen, dass mir ein Script (warum auch immer) einen Hotkey doppelt angelegt hat. Einer war in einer globalen Variable gespeichert und konnte entfernt werden, der andere leider nicht. Da es (leider) keinen Befehl zum Anzeigen der Hotkey-IDs gibt, hab ich mit etwas Tricksen folgenden Weg gefunden, vielleicht kann das ja mal jemand brauchen.

:!: Achtung: sichert euch vorher eure Savegames und speichert vor der Aktion ab! :!: Ich übernehme keine Garantie, das es bei jedem funktioniert! :!:


1. Ihr benötigt die globale Variable mit der ID. Sucht euch die ID mit folgendem Script raus:

Code: Select all

$key = get global variable: name='Name der Variable'
$log = sprintf: fmt='Key: %s', $key, null, null, null, null
[PLAYERSHIP]->send incoming message: text=$log temporary=[TRUE]
return null
Merkt sie euch (nehmen wir als Beispiel die 1545)...

2. Belegt den Hotkey mit irgendeiner Taste(nkombination) und speichert das Profil.

3. Sucht in folgendem File nach der ID: <Eigene Dokumente>\Egosoft\X3TC\profiles\profile0.xpf (kann u.U. benannt sein). Ihr solltet etwas in der Art finden:

Code: Select all

0;1545;4512
Falls ihr die ID nicht findet, nehmt den/die anderen Hotkey(s), so lange, bis ihr ihn findet.

4. Belegt den anderen Hotkey (den mit der unbekannten ID) mit der selben Taste(nkombination) und sucht nach dem Speichern des Profils in der gleichen Datei nach dem letzten Wert in der Zeile (4512).
Beispiel:

Code: Select all

0;1537;4512
Merkt euch die ID (1537).

5. Hotkeys mit folgendem Code entfernen (zur Sicherheit auch den richtigen, das Script sollte ihn wieder setzen :))

Code: Select all

$key = get global variable: name='Name der Variable'
if $key
   unregister hotkey $key
   set global variable: name='Name der Variable' value=null
end
unregister hotkey <ID des/der anderen Hotkeys>
return null
6. Speichern, beenden und wieder laden

Wenn alles geklappt hat, habt ihr den Hotkey jetzt nur noch einmal.
Mit dem Wert der letzten Zeile als Suchparameter lassen sich natürlich gezielt bestimmte Hotkeys entfernen, einfach die Tasten(kombination) so lange den Hotkeys zuweisen, bis man alle "Störenfriede" gefunden und notiert/entfernt hat.


MfG,
HAUSMEiSTER
User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 25128
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus »

Interessante Idee in der Steuerungsprofil-Datei nachzuschauen. Ich habs mal in der Tutorialsammlung eingetragen.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!

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