[TUTORIAL] Wie frag ich den Spieler ?

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

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

User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven »

zuerstmal muß deine Nachricht 3 das entsprechend berücksichtigen:

Code: Select all

<t id="3">[u][author][b]%s[/b][/author][/u] Testmodus aktiv, was soll getestes werden?.\n\n\n [select value="test,%s"]Test...[/Select]\n [select value="nix,%s"]Doch nichts...[/Select]\n</t>
Natürlich muß der Variableninhalt auch mit übernommen werden:

Code: Select all

$Msg = sprintf: pageid=9999 textid=3, $name, $name,$name, null, null 
Und jetzt sollte der INHALT der Variable im Callback-Script ankommen.
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]
Raumfliegenjäger
Posts: 2865
Joined: Sat, 4. Jun 05, 14:41
x3tc

Post by Raumfliegenjäger »

Moonraven wrote:...

Code: Select all

$Msg = sprintf: pageid=9999 textid=3, $name, $name,$name, null, null 
Und jetzt sollte der INHALT der Variable im Callback-Script ankommen.
Warum 3 mal $name?


Edit:
Ok hat sich erledigt mir ist eingefallen warum:
Das erste $name für den (sichtbaren) Namen im script
Das 2./3. $name kommt mit zu den antwort Variablen (bei mir test/nix) und werden so ans nächste script mit übergeben...

Edit2: Klappt :)
Ich weiss was, nämlich das ich nichts weiss, also weiss ich doch was, nämlich das ich nichts weiss! :goner:

...während sie gerade den Anfang der Schlacht beobachten, kenne ich bereits den Schlussakt. [Kane]
User avatar
Victus
Posts: 4239
Joined: Mon, 2. Oct 06, 10:38
x3tc

Post by Victus »

Ich scripte grad ein BBS-Basiertes Script (naja, Teilweise BBS-Basiert)

Ich hab jetzt also einige Fragen bzgl. der Script-Calls (in diesen Zusammenhängen):

Hab ich recht mit meiner Vermutung:

mission.tutorial.init -> Wird benötigt um zB Schiffe zu erstellen, wenn die Mission akzeptiert wird(?) Für meine Zwecke (Schema wie beim Schutz fürs Schiff bei Piribasen, also erstmal normale Anwahl, dann eine erweiterte Auswahl (ja;nein) nicht benötigt

mission.tutorial.display -> Wird benötigt, um ein Script auszuführen, wenn die Nachricht angezeigt wird. Stichwort Event-BBS und Sektorversteigerung, vorallem Umbenennung

mission.tutorial.action -> Wenn die Mission angenommen wird, wird das hier benötigt - genau das, was ich für meine Zwecke (siehe oben) brauche

mission.tutorial.checkfinal -> Checkt im Falle von XIs ob alle Schiffe der Xenon zerstört wurden - brauch ich demnach auch nicht, weils bei meinem Script nix zu zerstören gibt (es wird nur ne Local-Var am Schiff geändert/erstellt und "etwas" Geld vom Konto des Spielers abgehoben)

mission.tutorial.action2 -> Wenn nach der Zerstörung von Frachter a "überaschenderweise" noch ein Zweiter Frachter auftaucht - benötige ich demnach auch nicht.

Also: Lieg ich richtig?

Und nun die Nächste Frage: Wie kann ich eigentlich BBS-Missionen NUR an zB Split und Boronenstationen angeboten wird?
PS: Fass nicht die Katze an! Nie!

"***modified*** und stolz drauf!" ist auch nur Mainstream...
User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven »

Nah drann (Ich hoffe du beziehst dich mit mission. aufs tut von seite 1):


mission.tutorial.init wird immer ausgeführt. Es ist noch nicht bekannt ob die Mission angenommen wird oder nicht.

mission.tutorial.action führt quasi die Hauptaktionen durch.

mission.tutorial.checkfinal prüft ob das Missionsziel erreicht wurde oder ob die Mission noch weiterlaufen muß.

mission.tutorial.action2 ? Keine Ahnung was du da meinst.
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]
User avatar
Victus
Posts: 4239
Joined: Mon, 2. Oct 06, 10:38
x3tc

Post by Victus »

na, das mission.tutorial.action2 is doch ganz unten nochmal erwähnt :D

Is ja auch egal, Brauch ich nicht :lol:

Jetzt aber mal zu meiner Zweiten Frage: Ich will in meinem Speziellen Fall die BBS-Nachrichten nur auf Split und Piratenstationen präsentieren lassen...

Wie muss ich da vorgehen?
PS: Fass nicht die Katze an! Nie!

"***modified*** und stolz drauf!" ist auch nur Mainstream...
User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven »

Mit diesem Befehl kannst du das machen:

Code: Select all

change event news availability: $key race=$race sector=null
Für das genau Vorgehen bitte HIER naguggen :)
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]
-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- »

Hallo.

Hätte da auch ein Problem/Frage.

Es gibt ja die 3 Arten von Nachrichten an den Spieler

Code: Select all

001  [THIS] -> send incoming message: text=$Message temporary=[TRUE]
002   send incoming message $Message to player: display it=[TRUE]
003   send incoming question $Message to player: callback='cappbackfunc'
Die erste besitz die temporary Option. Heist sie wird dem Spieler nur kurz gezeigt ohne im Log zu bleiben.
Die 2. Hat die Option "display it" und lässt sich mit "True" sofort zeigen ohne das der Spieler erst ins Nachrichtenmenü muss.
Variante 3. Sendet dem Spieler eine nachricht mit Wahlmöglichkeit (Dem tutorial hier entsprechend).

Nun zur eigentlichen Frage.
Wie kommt man am besten an eine Kombination aus den 3? Also eine Sofort angezeigte Nachricht mit Wahlmöglichkeit die nicht ins Log kommt (nicht ins Log nicht ganz so wichtig)?
Ähnliche Sachen müssten ja eigentlich Funktionieren. Das hacken z.B. schickt einbem ja eine Nachricht mit Wahlmöglichkeit die sofort dargestellt wird (also Kombination 2+3).

Zusätzliches Problem ist das die Callbackfunktion, welche die Auswertung der Wahl übernimmt, leider nicht mehr weis wo die aufrufende Funktion gelaufen ist (also [THIS]=null). hab ich bisher umständlich mit Globaler variable gelöst


Und dazu am besten noch eine Funktion mit der man während das Script läuft den Spieler nach einen Zahleninput fragen kann und nicht alle Werte die man möglicherweise braucht sofort zu beginn gefragt werden müssen. Aber das Schient ja leider nicht wirklich zu Funktionieren :(


Beispiel für die gewollte Anwendung Hier
Zum Test mit dem Scripteditor die "amenu.setuplist" auf eine Station ausführen.

Für Ideen wäre ich dankbar
Eni.
User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven »

a) Es gibt leider mit Scripts keine andere Möglichkeit mit dem Spieler zu kommunizieren. Der Stationshack (ich nehme mal an das der gemeint ist), ist kein Script, sondern irgendwo im Programmcode drinn. Da hat man natürlich mehr Möglichkeiten, aber die stehen nur den Ego-Entwicklern zur Verfügung.

b) Wenn du ein Script über die Kommandoconsole aufrufst, werden dessen Parameter automatisch vom Spieler abgefragt. Dort kannst du beliebige Parameter abfragen, auch Zahlen. Das funktioniert aber nicht mit Hotkeys !
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]
-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- »

Moonraven wrote:b) Wenn du ein Script über die Kommandoconsole aufrufst, werden dessen Parameter automatisch vom Spieler abgefragt. Dort kannst du beliebige Parameter abfragen, auch Zahlen. Das funktioniert aber nicht mit Hotkeys !
Hilft leider nur wenn man bereits beim Aufrufen des Scripts weis welche Werte man benötigt.
Gibt also scheinbar keinen sinvollen Weg einen übersichlichen Eingabedialog für umfangreichere Scripte zu machen. Das bisherige Hauproplem das ich mit den Scripts habe. Sie sind alle relativ unpraktisch was die UI Seite angeht.

Naja. Mal sehen was sich so hintricksen lässt.
-eni-
Posts: 1341
Joined: Sun, 6. Feb 05, 19:27
x3ap

Post by -eni- »

Es gibt zwar nichts apssendes bei den standartscripts. Aber Liebesgrüße aus Moskau (Neue Scriptbefehle) hat was zu bieten.

Code: Select all

<t id="430">send incoming question %0 to player: display it=%1 callback=%2</t> 
Frage ist nur ob es lohnt das zu verwenden. Einerseits ermöglicht es eine übersichlichere und komfortablere UI für Scripsfunktionen. Andrerseits ist die nötige Modifikation und das Fehlerrisiko doch ein erheblicher Nachteil.

Naja. Schade das Egosoft anstelle der vielen Messagearten nicht einfach eine mit allen Optionen gemacht hat.
User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven »

Tja..außerdem funktioniert die Erweiterung nicht mit 2.0
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]

Return to “X³: Reunion - Scripts und Modding”