fragen zu dialog script

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Cabor
Frischling
Frischling
Beiträge: 3
Registriert: 27.05.2006, 10:48

fragen zu dialog script

Beitrag von Cabor »

hallo, ich bin neu im forum

ich hätte ein paar fragen zum script im dialog, das funktioniert bei mir nicht wie es soll

1. verändert die funktion "set-globalint GI VAL " globale variablen? habe "set-globalint "Name" 1 " verwendet aber die variable "name" ändert sich nicht zu 1

2. wie genau funktioniert das mit dem run-script X im dialog?
man schreibt das dann doch ins globale script, was verwendet man dort für "int xvalue", ich hab einfach den x-wert aus dem dialog verwendet, aber das spiel gibt mir eine fehlermeldung, dass es nicht weiss was der wert dort soll.

danke schon mal im voraus für eure hilfe
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Erstmal hallo im Forum

Der Befehl muss im Dialog so lauten, damit er funktioniert:

Code: Alles auswählen

TYP: Text
set-globalint 3 5 // Setzt Globalint 3 auf den Wert 5
TYP: Mehr Text
Run-script ruft die Funktion dialog_request im Global Script auf. Du musst dir das so vorstellen, als riefe AGS zum Beispiel bei run-script 1 DR so auf: dialog_request(1);
Das lässt sich dann ganz leicht übertragen:

Code: Alles auswählen

function dialog_request(int param) {
  if(param==1) { // mit run-script 1 aufrufen
    AnimationOderSowas();
  }
}
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Cabor
Frischling
Frischling
Beiträge: 3
Registriert: 27.05.2006, 10:48

Beitrag von Cabor »

vielen dank!!!
hat mir sehr weitergeholfen.

wo ist denn jetzt der unterschied zwischen variablen und globalint???
kann ich den startwert irgendwo festsetzten?
hab unter playerentersfirsttimeroom
SetGlobalInt (1,0)
eingefügt. funktioniert aber scheinbar nicht.
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

das geht mit der Funktion game_start im Global Script

Code: Alles auswählen

function game_start() {
  SetGlobalInt(1,1);
  }
Der Unterschied ist, dass du nur über die Funktionen SetGlobalInt und GetGlobalInt an die GlobalInts rankommst, ansonsten funktionieren sie genauso wie ein normaler Integer, man muss sie halt vorher nicht noch mit int xyz; erstellen.
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Cabor
Frischling
Frischling
Beiträge: 3
Registriert: 27.05.2006, 10:48

Beitrag von Cabor »

vielen dank für die schnelle hilfe, funktioniert jetzt alles so wie es soll
*große freude*
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Cabor hat geschrieben:hab unter playerentersfirsttimeroom
SetGlobalInt (1,0)
eingefügt. funktioniert aber scheinbar nicht.
Doch, das funktioniert auch. Es in der game_start() zu machen, ist zwar übersichtlicher, aber der Befehl wurde trotzdem ausgeführt.
Nur da jede Global Int von Haus aus 0 ist, hat der Befehl effektiv keine Wirkung.
Use gopher repellent on funny little man
KelThuzad
Frischling
Frischling
Beiträge: 8
Registriert: 04.03.2006, 15:11
Kontaktdaten:

Beitrag von KelThuzad »

Hi, ich habe auch eine Frage zum scripten im Dialog bereich.
Ich habe das Problem, dass bei der Antwortenauswahl je nachdem
welchen wert eine GlobalInt hat eine andere Option off bzw on ist:

@S
if (GetGlobalInt(1)==1){
option-off 1
option-on 2
}
else {
option-off 2
optio-on 1
}

Hoffe ihr versteht was ich meine. Das Problem ist das man in diesem speziellen Script weder "if" noch "GetGlobalInt" verwenden kann. mit run-script x kann ich das zwar, aber da kann ich dann wieder "option-off" bzw "option-on" verwenden. Kann man das irgendwie anders machen, ohne gleich zwei verschiedene Topics zu verwenden? Danke für eure Hilfe schonmal,
KelThuzad
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Schreib die If-Abfrage einfach vor dem Aufruf des Dialogs ins Script:

Code: Alles auswählen

if (GetGlobalInt(1)==1) {
  dialog[x].SetOptionState(1, eOptionOff);
  dialog[x].SetOptionState(2, eOptionOn); 
} 
else {
  dialog[x].SetOptionState(1, eOptionOn);
  dialog[x].SetOptionState(2, eOptionOff); 
}
dialog[x].Start;
Das gleiche kannst Du natürlich in der dialog_request() machen, wenn sich die GlobalInt während des Dialoges ändert.

(Wie man option-on und option-off außerhalb einer Dialogskriptes aufruft, hätte man aber in der Hilfe finden können ;))
KelThuzad
Frischling
Frischling
Beiträge: 8
Registriert: 04.03.2006, 15:11
Kontaktdaten:

Beitrag von KelThuzad »

oh.. ähm, okay. kannte den SetoptionState befehl nicht :oops:
hab ihn auch in der Hilfe nicht finden können, naja, vielen dank jedenfalls

In der neuersten Version von AGS heißt er übrigens
SetDialogOption(Dialog,..) oder ähnlich
Antworten