eine Frage zu Variablen

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

eine Frage zu Variablen

Beitrag von DieFüchsin »

Kann man global definierte Variablen nicht in den Room-Functions benutzen? Will ich das Spiel starten erscheint die Fehlermeldung "undefinied Symbol". Warum?

Übrigens, hat das Inventar unendlich viel Platz oder ist der beschränkt?
Benutzeravatar
TheIncredibleLovis
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 208
Registriert: 12.04.2005, 18:08
Wohnort: Hamburg, Regen, Frisur hält!

Re: eine Frage zu Variablen

Beitrag von TheIncredibleLovis »

DieFüchsin hat geschrieben:Kann man global definierte Variablen nicht in den Room-Functions benutzen? Will ich das Spiel starten erscheint die Fehlermeldung "undefinied Symbol". Warum?
du musst schreiben

Code: Alles auswählen

GetGlobalInt(x)
(x = die Variable)
wenn du die Variable auch mit

Code: Alles auswählen

SetGlobalInt(x,x)
definiert hast
also zb:

Code: Alles auswählen

if (GetGlobalInt(2) == 1) {
//code
}
edit: mal wieder viel zu ausführlich
PS: grad fällt mir auf, das miene Version nur auf GlobalInts zutrifft, nicht aber auf global definierte Variablen...(erst lesen, dann schreiben...)
Zuletzt geändert von TheIncredibleLovis am 22.04.2005, 18:07, insgesamt 3-mal geändert.
strazer

Beitrag von strazer »

Wenn du Variablen im global script definierst, sind sie zunächst nur dort zu gebrauchen.
Um sie auch in room scripts einsetzen zu können, musst die sie vorher aus dem global script exportieren, dann entweder im global script header (dann ist die Variable in allen Räumen verfügbar) oder ins jeweilige room script wo du sie brauchst importieren:

Code: Alles auswählen

// global script

int MeineVariable;
export MeineVariable;
Dann entweder

Code: Alles auswählen

// main script header

import int MeineVariable; // 'int' muss mit Variablentyp übereinstimmen
oder

Code: Alles auswählen

// room script

import int MeineVariable;
strazer

Beitrag von strazer »

Übrigens, hat das Inventar unendlich viel Platz oder ist der beschränkt?
Charaktere können von jedem Item 2.147.483.647 Stück (vielleicht sogar mehr) haben. Ob diese bei "Display multiple inventory items multiple times" wirklich alle in Inventarfenster angezeigt werden wage ich zu bezweifeln, aber muss man ausprobieren.

Zumindest aber sollte sich die maximale Anzahl an verschiedenen Inventargegenständen (300) ohne Probleme anzeigen lassen.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

danke, ihr habt mir schon mal sehr geholfen, kann ich die importierte variable denn auch in einem raum verändern und in einem anderen dann verändert benutzen?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Normalerweise schon.
Die Variable existiert nur einmal im Speicher, d.h. egal wo sie geändert wurde, diese Änderung gilt global.
(Korrigiert mich, wenn ich mich irre.)

Im Zweifelsfall einfach ausprobieren.
Use gopher repellent on funny little man
strazer

Beitrag von strazer »

Ja, wenn du es wie oben beschrieben machst, existiert die Variable nur einmal, du hast halt nur von überall Zugriff darauf.

Willst du für das global script und für jeden Raum eine seperate Variable erstellen, kannst du sie im global script header deklarieren. Veränderst du dann den Wert in einem room script, bezieht sich diese Veränderung nur auf die Variable des jeweiligen Raumes.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

dann muss der Fehler mal wieder irgendwo im Detail liegen, nach der Veränderung der Variable ist sie in einem anderen Raum wieder 0.
strazer

Beitrag von strazer »

Dann zeige doch mal deinen Code damit wir das Problem finden können.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Es könnte daran liegen:
Chris Jones hat geschrieben:export variable [, variable ... ] ;

Declares that variable can be exported and accessed by other scripts. You must place this at the end of your global script. You can export many variables with one export line.
Use gopher repellent on funny little man
strazer

Beitrag von strazer »

Nein, es reicht wenn es nach der Deklaration der Variable steht.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

hmm das Problem hat sich erledigt danke nochmal für die Hilfe :)
strazer

Beitrag von strazer »

Gern geschehen, aber woran lag es denn genau?
Wir würden es gern wissen damit wir anderen Usern in Zukunft besser helfen können.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

es lag an meinem "Lieblingsfehler", hab eine Klammer falsch gesetzt. ](*,)
Benutzeravatar
TheIncredibleLovis
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 208
Registriert: 12.04.2005, 18:08
Wohnort: Hamburg, Regen, Frisur hält!

Beitrag von TheIncredibleLovis »

DieFüchsin hat geschrieben:es lag an meinem "Lieblingsfehler", hab eine Klammer falsch gesetzt.
mein lieblingsfehler ist ein Semikolon zu vergessen xD
Antworten