Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: 1mal_volltanken am 06. Oktober 2008, 21:15:46
-
Hallo Leute!
Anhand der Betreffzeile werden sicherlich viele, die auch schon mit Basic Erfahrung gemacht haben, ahnen, worum es in diesem Thred geht... ;)
Bekannt ist ja die GlobalInt-Funktion, wonach durch ein vorausgehendes Ereignis bzw. eine vorausgehende Interaktion der GlobalInt (in diesem Falle) manuell geändert wird, wie z.B.
if UsedAction(PUSH) ; GlobalInt(25,1)
Gibt es dort auch einen GlobalInt-Befehl, wonach sich der Wert nach dem Komma automatisch nach dem A=A+1-Prinzip um den jeweils angegebenen Wert erhöht (die Formal kann also auch A=A+4 lauten, etc.)?
Wer weiss? So ein Befehl kann ja immer wieder nützlich sein, zumal er auch viel Aufwand und Arbeit einsparen kann. ;)
BG
der Volltanker
-
Ich würde mir ne Funktion schreiben
int GlobalInc(int global, int incr)
{
int g;
g = GetGlobalInt(global);
SetGlobalInt(global, g+incr);
return g;
}
Ungetestet und aus den Fingern gesaugt.
-
Danke! ;)
Hauptsache ist ja, er funktioniert! ;)
BG
der Volltanker
-
Oder kürzer und einheitlich:
void IncGlobalInt(int gi, int a) {
SetGlobalInt(gi, GetGlobalInt(gi) + a);
}
Man kann natürlich auch einfach eine globale Variable verwenden:
// header
import int a;
// global script
int a;
export a;
Jetzt kann man nämlich im Skript auch einfach "a = a + 1;" schreiben ... ;)
-
Find ich echt super! ;)
Thx!
der Volltanker
-
Müsste es nicht auch einfach mit
SetGlobalInt(1,GetGlobalInt(1)+1)
gehen?
Edit:Du darfst da übrigens kein Semikolon hinter UsedAction() setzen,wenn ich mich nicht irre.
-
Müsste es nicht auch einfach mit
SetGlobalInt(1,GetGlobalInt(1)+1)
gehen?
Edit:Du darfst da übrigens kein Semikolon hinter UsedAction() setzen,wenn ich mich nicht irre.
Ja. Ich hatte es nur als Beispiel SO hingeschrieben und habe es nicht direkt aus dem Script abgeschrieben! ;)
-
edna_mausi:
Natürlich geht das auch so, es war aber ein allgemeiner Befehl gefragt, wenn ich mich nicht irre.
-
Oder kürzer und einheitlich:
void IncGlobalInt(int gi, int a) {
SetGlobalInt(gi, GetGlobalInt(gi) + a);
}
Man kann natürlich auch einfach eine globale Variable verwenden:
// header
import int a;
// global script
int a;
export a;
Jetzt kann man nämlich im Skript auch einfach "a = a + 1;" schreiben ... ;)
Hallo!
Ich wollte ja im Starterpak die DoorScripts überarbeiten, da dabei wie einmal erwähnt im Alpha-Test Schwierigkeiten aufgetreten waren.
Gehören diese Zeilen jetzt eigentlich in die ASC- oder in die ASH-Datei ?
BG
der Volltanker
EDIT: Hat sich schon erledigt! Habs rausgefunden.
-
Jetzt kann man nämlich im Skript auch einfach "a = a + 1;" schreiben ... ;)
Oder aber gleich a += 4;... Für a += 1; auch a++;
AGS kann doch diese schöne Syntax, oder?
-
Ja, aber leider nur für + und -.