Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

GlobalInt = GlobalInt + 1

Begonnen von 1mal_volltanken, 06. Oktober 2008, 21:15:46

Vorheriges Thema - Nächstes Thema

1mal_volltanken

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
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

rulaman

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.
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

1mal_volltanken

Danke! ;)

Hauptsache ist ja, er funktioniert! ;)


BG
der Volltanker
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

KhrisMUC

#3
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 ... ;)

1mal_volltanken

Find ich echt super! ;)

Thx!

der Volltanker
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

NsMn

#5
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.

1mal_volltanken

Zitat von: edna_mausi in 07. Oktober 2008, 13:59:33
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! ;)
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

KhrisMUC

edna_mausi:
Natürlich geht das auch so, es war aber ein allgemeiner Befehl gefragt, wenn ich mich nicht irre.

1mal_volltanken

#8
Zitat von: KhrisMUC in 07. Oktober 2008, 02:49:30
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.
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Endres

Zitat von: KhrisMUC in 07. Oktober 2008, 02:49:30
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?



Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

KhrisMUC

Ja, aber leider nur für + und -.