X2 Script Editor: Bekomme Kommando für das Menü nicht hin

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

Post Reply
ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

X2 Script Editor: Bekomme Kommando für das Menü nicht hin

Post by ManfredP » Sun, 22. Aug 10, 23:25

Hallo,
wenn die Frage schon gestellt wurde, bitte auf die Antwort verweisen und nicht zu böse sein. Ich versichere, ich habe gesucht.

Ich versuche gerade ein Script als Kommando in ein Menü (hier Stationskommandos) einzuhängen. Ich habe das Script erstellt, die Text-Datei dazu gebaut (mit den entsprechenden Einträgen) und ein Setup-Scrigpt erzeugt, dass auch korrekt geladen wird (der Kommandoname erscheint in der entsprechenden LListe im Editor). Das Kommando kommt im Menü aber trotzdem nicht vor. Ich habe mich, da bin ich sicher, genau an die Anleitung im Handbuch (dem MSCI-Handbook) gehalten, es geht trotzdem nicht. 'ne Idee? Hat der Autor da drin vielleicht was vergessen?

Tschüß

ManfredP

User avatar
Chris Gi
Posts: 960
Joined: Wed, 20. Sep 06, 09:57
x3tc

Post by Chris Gi » Mon, 23. Aug 10, 15:44

Kannst Du die relevanten Teile des Setup-Scripts und der t-Datei hier mal posten? So ganz ohne Infos ist das etwas schwierig zu beantworten...

Das häufigste Problem ist inzwischen, dass die Slots etwas rar sind. Es könnte also durchaus sein, dass Dein Befehl von einem anderen überdeckt wird, aber dennoch im Script-Editor richtig angezeigt wird....
--------------------------------

[ external image ]

ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

Also an den Slots liegt es nicht; die sind nämlich alle leer

Post by ManfredP » Mon, 23. Aug 10, 19:42

Hallo,
meine Stationen haben im Moment nichts im Kommandomenü außer den vorgefertigten (X2-spezifischen) Sachen.

Ach ja, btw: wie soll das eigentlich gehen. Im Menü werden 10 Zusatzkommandos angezeigt, aber angeblich hat das Menü 32 Slots. Wo ist der Rest verbaut?

Doch nun zu den Dateien:
Das ist die t-Datei:

Code: Select all

<page id="17" title="Neue Warendaten" descr="Die neue Ware einer Software zur Stationenänderung; hier Hinzufügen von Resourcen">
	<t id="5753">Resourcenänderungssoftware</t>
	<t id="5754">Diese Software kann den Computerprogrammen einer Raumstation hinzugefügt werden. Sie erlaubt es, die Resourcen, Produkte oder Handelswaren einer Fabrik oder Handelsstation zu ergänzen.</t>
	</page>

	<page id="2008" title="Script Object Commands" descr="Die Beschreibung des Kommandos im Editor">
	<t id="1100">ADDRESOURCE</t>

	</page>

	<page id="2010" title="Script Cmd Names" descr="Langform der Kommandobeschreibung im Menue">
	<t id="1100">Dem Handelsmenü der Station eine Ware hinzufügen</t>

	</page>

	<page id="2011" title="Script Cmd Shorts" descr="Kurzform des Kommandos">
	<t id="1100">ADDResource</t>

	</page>

	<page id="2022" title="Command Info" descr="Kommandoinformation">
	<t id="1100">Ergänzt den Handelsumfang einer Station um eine Resource, ein Produkt oder eine Umschlagsware</t>

	</page>
Und hier kommt das Setup-Script. Ist kurz, daher abgetippt, denn ich verwende nur den internen Editor.

Code: Select all

load text:id=2058
set script command upgrade:command=ADDRESOURCE upgrade=Resourcenänderungssoftware
global script map:set:key=ADDRESOURCE,class=Station,race=Player,script=cmd.Add.Resources,prio=100
global script map:remove:key=ADDRESOURCE,class=Museum Dock,race=Player
return null
Ich bin mir sicher, alles richtig abgeschrieben zu haben. Und, hilft's?

Tschüß

ManfredP

User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest » Mon, 23. Aug 10, 19:53

du kannst das Script auch im FF oä öffnen vorausgesetzt eine x2scripts.xml ist im selben Ordner.

Der "Fehler" ist das du auf einer Station eine Software als Upgrade nutzen willst. Die Frage ist: Wie willst die Software auf die Station bringen? mah daraus [TRUE] und schau was passiert.

set script command upgrade:command=ADDRESOURCE upgrade=Resourcenänderungssoftware

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Mon, 23. Aug 10, 19:54

wenn ich mich recht erinnere wird der Slot 1100 vom Bonuspaket oder EGO selber verwendet.. probier es mal mit 1117 oder höher

und zum verständnis: in diesen 10 Slots für zusatzkommandos kann je ein Script aus den 32 möglichen Stationskommandos laufen.. sprich du kannst Kommando 1117 auch auf Kommandoslot 1 ausführen etc.
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

Zwei Rückfragen

Post by ManfredP » Tue, 24. Aug 10, 11:50

UniTrader wrote:wenn ich mich recht erinnere wird der Slot 1100 vom Bonuspaket oder EGO selber verwendet.. probier es mal mit 1117 oder höher
Is' aber leer, der Kram (keine Kommandos aufgeführt).
und zum verständnis: in diesen 10 Slots für zusatzkommandos kann je ein Script aus den 32 möglichen Stationskommandos laufen.. sprich du kannst Kommando 1117 auch auf Kommandoslot 1 ausführen etc.
Und wie bekomme ich's da hin?

Tschüß

ManfredP

ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

Danke

Post by ManfredP » Tue, 24. Aug 10, 11:52

Generalwest wrote:du kannst das Script auch im FF oä öffnen vorausgesetzt eine x2scripts.xml ist im selben Ordner.

Der "Fehler" ist das du auf einer Station eine Software als Upgrade nutzen willst. Die Frage ist: Wie willst die Software auf die Station bringen? mah daraus [TRUE] und schau was passiert.

set script command upgrade:command=ADDRESOURCE upgrade=Resourcenänderungssoftware
Hallo,
genau das werde ich tun. Und danke für den FF-Tipp, man ist manchmal einfach zu blöd.

Tschüß

ManfredP

User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Re: Zwei Rückfragen

Post by Generalwest » Tue, 24. Aug 10, 16:20

ManfredP wrote:...
und zum verständnis: in diesen 10 Slots für zusatzkommandos kann je ein Script aus den 32 möglichen Stationskommandos laufen.. sprich du kannst Kommando 1117 auch auf Kommandoslot 1 ausführen etc.
Und wie bekomme ich's da hin?

Tschüß

ManfredP
das ist ganz einfach. Stell dir das anderst vor. Ein Ordner ist das Kommando Menü der Station und einen anderen Ordner der 32 Kommandoslots (Register) belegt. Nun, wenn du ein Kommando Startest, nimmst du ein Blatt, das sich im 32er Register befindet, heraus und legst es in den Ordner wo die Kommados der Stationen sind.
Anders erklärt:

Ordner 1= Komm Menü der Station
Ordner 2= 32er Register Möglicher Kommandos.

Wenn du nun ein Kommando startest legst du quasi ein Kommando, das du aus Ordner 2 holst in den Ordner 1. Fertig.

Das mit dem 1 ist, finde ich, von Uni unglücklich erklärt. Es geht um den Kommslot (1117) und um den Task. Ein Task ist auch nur ein weiteres Register damit mehrere Scripts / Kommandos / Befehle auf ein und dem selben Objekt laufen können.

ManfredP
Posts: 115
Joined: Tue, 25. Apr 06, 12:40

Klappt irgendwie alles nicht

Post by ManfredP » Wed, 25. Aug 10, 11:09

Generalwest wrote:
ManfredP wrote:...
und zum verständnis: in diesen 10 Slots für zusatzkommandos kann je ein Script aus den 32 möglichen Stationskommandos laufen.. sprich du kannst Kommando 1117 auch auf Kommandoslot 1 ausführen etc.
Und wie bekomme ich's da hin?

Tschüß

ManfredP
das ist ganz einfach. Stell dir das anderst vor. Ein Ordner ist das Kommando Menü der Station und einen anderen Ordner der 32 Kommandoslots (Register) belegt. Nun, wenn du ein Kommando Startest,
Ähm, startest ??? Meinst Du den Eintrag im setup-Script? Also das global script map-Kommando?
nimmst du ein Blatt, das sich im 32er Register befindet, heraus und legst es in den Ordner wo die Kommados der Stationen sind.
Anders erklärt:

Ordner 1= Komm Menü der Station
Ordner 2= 32er Register Möglicher Kommandos.

Wenn du nun ein Kommando startest legst du quasi ein Kommando, das du aus Ordner 2 holst in den Ordner 1. Fertig.

Das mit dem 1 ist, finde ich, von Uni unglücklich erklärt. Es geht um den Kommslot (1117) und um den Task. Ein Task ist auch nur ein weiteres Register damit mehrere Scripts / Kommandos / Befehle auf ein und dem selben Objekt laufen können.
Ach ja, ursprünglich lag das Ding auf 1116 (also dem ersten, nicht reservierten Slot). Als es nicht ging, habe ich es runtergezogen, weil ich mir wegen der 10 Slots nicht sicher war. Geändert hat das bekanntlich auch nichts.
Der "Fehler" ist das du auf einer Station eine Software als Upgrade nutzen willst. Die Frage ist: Wie willst die Software auf die Station bringen? mah daraus [TRUE] und schau was passiert.

set script command upgrade:command=ADDRESOURCE upgrade=Resourcenänderungssoftware
Ich hab' [TREU] versucht und (aus Verzweiflung) auch mal 'null', gebracht hat's alles nichts.

Tschüß

ManfredP

P.s.: Hat nich' mal einer 'n Beispiel für mich, das funktioniert?

User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest » Wed, 25. Aug 10, 18:15

starten im sinne auf der Station anlaufen lassen / Kommando Aktivieren. Sprich Info Menü der Station -> Kommando Menü der Station -> Kommando Slot auswählen (sind ja 10 frei wählbar) und insgesamt kannst du 32 (?) Belegen (inkl die schon von ego belegt sind). Das heißt: In dem Kommando Menü der Station kannst du 10 Tasks / Instanzen wählen auf welchem "Level" das Script läuft. Als Scripter kannst du 32 Namen Auswählen bzw kannst du 32 Scriptregister deffenieren sprich 32 COMMAND_STATION_1 bis COMMAND_STATION_32. Wenns noch fragen zu gibt Poste ich es in Bildern was gemeint ist.

Sprich: 32 Scriptkommandos kannst man ingesammt mit der engien Deffenieren die für die Station zuständig sind, und 10 kann man simultan auf der Station ausführen / starten.
Ach ja, ursprünglich lag das Ding auf 1116 (also dem ersten, nicht reservierten Slot). Als es nicht ging, habe ich es runtergezogen, weil ich mir wegen der 10 Slots nicht sicher war. Geändert hat das bekanntlich auch nichts.
ich bin nicht mehr in x2 so sattelfest, aber momentan müsste das kommando auf 100 laufen. (1000 ist der Interger für Stationen und 100 der Kommando Interger). Wenn 1100 der Interger für Stationen sind dann läuft dein Script auf Interger 0 da der Interger für den Objekttype und den Scriptregister Interger addiert werden. Beispiel:

Objekttype Interger für Stationen ist 100.
Scriptslot Interger für dein Kommando ist 10.
Dann wird der Intern von der Engien mit dem Integer 110 angesprochen. (Objekt + Kommandoslot = Dein festgelegtes Kommando)

012 $cmd= read text: page=$PId id=91247
013 $cmd= string $cmd to integer
014
015 $comand.one=$cmd
016
017 *set script command upgrade: command=$comand.one upgrade=[TRUE] script=plugin.eate.warenprfung
018 set script command upgrade: command=$comand.one upgrade=[TRUE]
019 global script map: set: key=$comand.one, class=Schiff, race=Player, script='plugin.eate', prio=50
020 global script map: ignore: key=$comand.one, class=Frachtdrone, race=Player
021 global script map: ignore: key=$comand.one, class=Squashmine, race=Player
022 global script map: ignore: key=$comand.one, class=Geschützturm, race=Player
023 global script map: ignore: key=$comand.one, class=Kampfdrohne, race=Player

ich verwende die Kommandoslot Belegung von SymTech also ist in dem Fall der CMD Name von dir "ADDRESOURCE" in anderer Form in der TFile hinterlegt (als Integer)

Es ist aus X3/TC das Beispiel sollte aber auch in X2 so noch funktionieren, da sich das meines wissens nicht so stark geändert hat. Wenn mich wer bereichtigt, muss ich nachschauen in meiner X2 Patition ob ich noch n Stat / Schiffskommando irwo rumliegen habe.

User avatar
Chris Gi
Posts: 960
Joined: Wed, 20. Sep 06, 09:57
x3tc

Post by Chris Gi » Thu, 26. Aug 10, 10:43

Mit der Änderung auf [TRUE] sollte das doch funktionieren. Bist Du sicher, dass das setup*-script auch ausgeführt wird? Denn das der Name eines Befehls richtig angezeigt wird, bedeutet nur, dass eine entsprechende "load text"-Anweisung ausgeführt wurde.

Und was genau bedeutet "Das Kommando kommt im Menü aber trotzdem nicht vor." Du meinst, wenn Du dann im Commando-Menü der Station auf die Befehlsslots gehst, und dann mit [Enter] die Liste der verfügbaren Kommandos aufrufst, da ist es dann nicht dabei?
Oder meinst Du, dass nach dem Auswählen des Kommandos in den Befehlsslots weiterhin "kein" angezeigt wird?
--------------------------------

[ external image ]

Post Reply

Return to “X²: Die Bedrohung - Scripts und Modding”