wie setze ich variablen in dialog_request?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
toopring

wie setze ich variablen in dialog_request?

Beitrag von toopring »

Ich möchte gerne die variable DARK in einem dialog_request auf 1 setzen und sie später in einer hotspot interaction mit einer conditional - if a variable is set to a certain value nutzen.

Dazu habe ich erstmal unter conditional - if a variable is set to a certain value eine globale variable mit namen DARK neu erstellt (mit dem initial wert von 0). dann die variable ausgewählt und den value auf 1 für die abfrage.
so dass wenn die variable dark einen wert von 1 hat die weiteren child aktionen ausgegührt werden.

bei dialog request habe ich folgendes eingefügt:

function dialog_request (int param) {
if (param == 1) {
int DARK = 1;
display "dialog check";
}
else if (param == 2) {
}
}


das dialog script wird auch ausgeführt nur die variable dark wird nicht gleich 1 gesetzt .

vieleicht kann mir ja jmd weiterhelfen.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Um eine Variable in einem Skript zu ändern, brauchst Du nicht mehr "int" davor zu schreiben. "int" wird nur einmal gebraucht, wenn Du die Variable zum ersten Mal erschaffst. (Danach weiss AGS ja, um welchen Variablentyp es sich handelt.)
In deinem Skript muss also nur DARK=1; stehen.

Da es keine Fehlermeldung gegeben hat, muss es sich um zwei unterschiedliche Variablen handeln. Ich vermute mal, dass AGS die im Interaction-Editor erstellten globalen Variablen intern unabhängig von den Skript-Variablen verwaltet, auch wenn sie gleich heissen.

Du scheinst ja durchaus Ahnung vom Skripten zu haben, warum also nicht alles mit RunScript machen? Früher oder später wird Dir die Auswahl im Interaction-Editor eh nicht mehr reichen.

Um eine Skript-Variable global zu machen, musst Du sie am Anfang des global scripts definieren (außerhalb einer Funktion) und dann exportieren.

Code: Alles auswählen

int DARK;
export DARK;
Im script header musst Du sie anschließend noch importieren:

Code: Alles auswählen

import DARK;
Use gopher repellent on funny little man
Gast

Beitrag von Gast »

danke. ich werde es jetzt mit einem run script probieren.
Anfang des global scripts definieren (außerhalb einer Funktion)
ganz am anfang? ungefähr so:

// main global script file

int DARK = 1

#sectionstart game_start // DO NOT EDIT OR REMOVE THIS LINE
function game_start() {
// called when the game starts, before the first room is loaded
}
#sectionend game_start // DO NOT EDIT OR REMOVE THIS LINE

usw.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ganz genau.

Wenn "int DARK;" in einer Funktion steht, ist es eine lokale variable, die nur innerhalb der Funktion Gültigkeit hat.
Use gopher repellent on funny little man
Antworten