[DISKUSSION] Allgemeine S&M-Fragen III

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

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

User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Dein 'STARSTOP'oder -1
Kleine Ergänzung:

Wenn du in einem Menü, das eine Value Selection hat, einen Menüeintrag auswählst, bekommst du als Rückgabewert des Menüs ein Array, wie ThalonMook es beschrieben hat. Wenn du allerdings einfach nur ESC drückst um das Menü zu verlassen, ist der Rückgabewert des Menüs kein Array, sondern nur die Zahl -1.

MfG,
ScRaT
User avatar
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Post by ThalonMook »

Hier mal ein Beispiel eines einfachen Menüs mit 2 Values;

Code: Select all

002   $sk =  array alloc: size=2
003   $sk[0] = 'nein'
004   $sk[1] = 'ja'
005   $title = 'Der Titel'
006   $menu =  create custom menu array: heading=$title
007   add value selection to menu: $menu, text='Erste', value array=$sk, default=0, return id='selection1'
008   add value selection to menu: $menu, text='Zweite', value array=$sk, default=0, return id='selection2'
009   add custom menu item to array $menu: text='Wähl mich' returnvalue='station'
010   add custom menu item to array $menu: text='Exit' returnvalue='exit'
011   $ret.var =  open custom menu: title='Das Menü' description=null option array=$menu
012   $ret = $ret.var[0]
013   if $ret == 'station'
014   |$input = [THIS] -> get user input: type=Var/Station, title='Wähle Station'
015   else if $ret == 'exit' OR $ret.var == -1
016   |return null
017   end
018   $value1 = $ret.var[1][1]
019   $value2 = $ret.var[2][1]
020   $value1 = $sk[$value1]
021   $value2 = $sk[$value2]
022   $ausg = 'Station: ' + $input + ' Erste: ' + $value1 + ' Zweite: ' + $value2
023   send incoming message $ausg to player: display it=[TRUE]
024   return null

Die Values hier $sk sind im Beispiel mit ja und nein belegt. Du kannst hier auch Dein Array nehmen.

Ich hoffe damit verstehst Du das ganze.

*Edit*
Habs noch ergänzt das in der Nachricht auch ja oder nein angezeigt wird und keine Zahlen.

Bis denn Thalon
Last edited by ThalonMook on Tue, 15. Feb 11, 09:45, edited 1 time in total.
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Code: Select all

$ret.var[x][1]
Hier muss ich dann für x die Stelle einsetzen, an der die Valueselection kommt?

Also wenn ich zum Beispiel 3 MenuItems habe und als 4. Die ValueSelection, dann ist x=4, weil $ret.var[0] der Rückgabewert des Menüs ist und dann einfach weitergezählt wird?

Wenn dem so ist, dann habe ich es jetzt kapiert. Wenn nicht, stehe ich wohl voll auf der Leitung.

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
User avatar
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Post by ThalonMook »

Nicht ganz :D

Also jedes Menuitem ist an der 1. Stelle nur die Values werden hochgezählt.

Bis denn Thalon
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Ja, ich weiß was du meinst... Aber der Code stimmt dann so, das ist wichtig.

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Wenn dem so ist, dann habe ich es jetzt kapiert. Wenn nicht, stehe ich wohl voll auf der Leitung.
Doch, ist alles richtig.

Wobei es häufig auch Sinn macht, das vom Menü zurückgegebene Array in einer Schleife zu durchlaufen, vor allem, wenn du viele Value Selections hast. Über $ret.var[x][0] kannst du dann immer die Return-Id der Value Selection herausbekommen und so die Werte zuordnen.

MfG,
ScRaT
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Werd ich mir merken. Danke für die schnelle Hilfe.

EDIT: Ich habe ein kleines Problem mit dem Exscriptor: Es gestaltet sich so, dass ich jedesmal, wenn ich ein Script öffne vor bestimmten Befehlen neue Zeichen stehen habe.

z.B. wird aus

Code: Select all

= wait $Time ms

= 1 wait $Time ms
Ich habe Version 1.2.39
Kennt jemand dieses Problem oder dessen Lösung?

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

*antwort von einem nicht-exscriptor-user*

Der exscriptor stellt afaik einige Befehle anders dar als der Interne - also einfach ignorieren und ggf. im internen nachprüfen, ob dieser es richtig anzeigt (wenn ja ist alles i.O.) - denn der Code den du siehst hat nicht viel mit dem Code zu tun, den der SE auswertet bzw. ausführt (und den der exscriptor liest und speichert) -> öffne einfach mal irgendein Script in nem Texteditor und suche nach "<codearray>" - alles was danach kommt ist dein eigentliches Script, was davor steht ist lediglich zur Browseransicht gedacht und wird vom Spiel nicht ausgewertet ;)
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 ;)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Kennt jemand dieses Problem oder dessen Lösung?
Weder noch. Frag am besten mal Whimsy im entsprechenden Thread.

MfG,
ScRaT
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Jetzt muss ich doch mal blöd fragen:

Wieso schreiben manche, dass man bei Installation per Fakepatch noch ingame den SE aktivieren muss?

Hab ich irgendwas verpasst?

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Naja, ein Fakepatch setzt ein Spiel ja nicht zwingenderweise auf modified (z.B. Hud-Mods, etc.). Und wenn solche Mods dann auch noch ein Skript beinhalten, muss man den SE tatsächlich noch händisch aktivieren (oder man macht es etwas eleganter über ein kleines !setup Skript).

MfG,
ScRaT
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Sprich: Bei allen FP, die kein *modified* verursachen, muss ich noch den SE aktivieren, da sonst meine Scripts nicht laufen?

Heißt das dann, dass nur !*-Scripts ohne *modified* laufen?

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Wenn das Spiel nicht im modified Modus ist, werden die Skripts ohne ! nicht gestartet, also auch nicht die Setup-Skripts.
Wenn man jetzt allerdings ein Setup-Skript mit ! erstellt, wird es geladen. Das Spiel merkt aber, dass die Datei nicht signiert ist und wechselt automatisch in den modified Modus (und führt die anderen Setup-Skripts aus).

MfG,
ScRaT
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Gut, danke.

Das ist dann ein !setup-Script mit Activate MSCI oder so? Hab' ich nämlich noch nie gefunden.

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

nee, ***modified*** != aktivierter SE

mit aktivieren des SE setzt man das Spiel zwar in den ***modified*** modus (was auch die gebräuchlichste Variante ist das zu erreichen) aber es gibt auch andere dinge, die das bewirken und den SE NICHT aktivieren ;)
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 ;)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

nee, ***modified*** != aktivierter SE
Hat auch niemand behauptet. Was aber gilt ist:
***modified*** == Setup-Skripts ohne ! werden geladen.
Das ist dann ein !setup-Script mit Activate MSCI oder so? Hab' ich nämlich noch nie gefunden.
Es reicht einfach ein !setup-Skript mit "return null" als Inhalt.


MfG,
ScRaT
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ScRaT_GER wrote:Es reicht einfach ein !setup-Skript mit "return null" als Inhalt.
Genau, aber am besten ein !init-Skript. Die werden vor den setup-Skripten geladen. Das ist beim ersten Start ganz hilfreich.

Gruß
Lucike
Image
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Heißt das, ich schreibe ein

!init.* -Script mit dem Inhalt

Code: Select all

return null
Und dadurch werden auch setup.*-Scripts geladen, weil das !init.*-Script nicht von EGO ist?

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »


Genau. Du kannst auch einfach das "!init.set.modified.pck" aus meinen Erweiterung nutzen. Es ist sowieso besser, wenn wir Scripter uns und alle auf eine Datei einigen.

Gruß
Lucike
Image
GodsAngel95
Posts: 184
Joined: Tue, 28. Sep 10, 19:48
x3tc

Post by GodsAngel95 »

Geht aber auch als Exscriptor-Script mit

!init.set.modified.xml, oder?

NewWorlds
- Modmember DE - EN
MG-Mod - Modmember DE - EN

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