Timers MMM-Seite
  Eigene Globale Variablen
 

Also...
Zu Beginn schreibe ich noch eine Anleitung, die (vielleicht) noch eher in den Einsteiger-Bereich gehört.
Zum einen, weil sie ziemlich einfach zu machen ist, zum anderen, weil sie das Scripten ganz schön erleichtern kann.
Es geht um... selbst definierte Globale Variablen. (welch Überraschung )

OK, dann fangen wir mal an, nicht? ^^

Was sind "selbst definierte Globale Variablen"?

Ganz einfach.
Bis kennen wir ja die normalen globalen Variablen, die von AGS vorgegebenen GlobalInts.
Die Handhabung ist ja relativ leicht (SetGlobalInt/GetGlobalInt)...
...aber auf Dauer eventuell etwas verwirrend. (Hatte ich jetzt GI 47 bereits irgendwo verwendet? - Moment, warum geht diese Tür jetzt auf einmal auf? - Aaargh, welches GI hatte nochmal das Fenster im 3. Stock???)

Deshalb empfiehlt es sich, eigene GlobalInts zu kreieren. Die haben zwar den Nachteil, dass sie erst einmal erschaffen und ins Spiel einbaut werden müssen, aber dafür kann man sich um einiges sicherer sein, wohin die jeweilige Variable gehört.

Warum? ... Ganz einfach. Man kann eigenen Variablen Namen geben.

Das heißt: In Zukunft braucht ihr nicht mehr...

SetGlobalInt (46, 1);

...zu schreiben, um AGS klar zu machen, dass der Kühlschrank geschlossen ist, sondern könnt...

kuelschrank = 1;

...schreiben und die Sache ist klar.

Aber davor muss irgendwo AGS erklärt werden, dass "kuelschrank" ein Int(eger) ist und sichergestellt werden, dass man im ganzen Spiel auf den Int Kühlschrank zugreifen kann.

Das ist eigentlich ganz leicht.

Wie baue ich diese komischen Dinger in mein Spiel ein?

Um eine Globale Variable zu definieren, öffnet man ganz einfach das Global Script und schreibt möglichst am Anfang die Definition hin. z.B.:

int kuelschrank;

Dann exportiert man die Variable gleich, damit man sie nicht nur im Global Script, sondern auch woanders verwenden kann. Dafür schreibt man gleich hinter die Definition:

export kuelschrank;

(oder wie auch immer eure Variable heißt...)

Abschließend muss nur noch dafür gesorgt werden, dass man im ganzen Spiel auf die Variable zugreifen kann. Dafür wird sie im Script Header wieder importiert:

import int kuelschrank;

Und... das wars auch schon. Jetzt kann man überall im Script auf die Variable zugreifen.

Ein letztes Anwendungsbeispiel

if (UsedAction (A_PUSH)) {
  if (StromAn == 1) {
    PlaySound (99);
  }
  else player.Say ("Der Strom ist aus...");
}
 
  MMM ist ein freies Fanprojekt basierend auf Maniac Mansion von LucasArts - AGS ist von Indiana Chris Jones  
 
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden