Autor Thema: GlobalInt = GlobalInt + 1  (Gelesen 4006 mal)

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1212
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
GlobalInt = GlobalInt + 1
« 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
"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

  • Moderator
  • Teenie Tentakel
  • *****
  • Beiträge: 353
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #1 am: 06. Oktober 2008, 22:35:34 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1212
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #2 am: 06. Oktober 2008, 22:45:24 »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 981
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #3 am: 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 ... ;)
« Letzte Änderung: 07. Oktober 2008, 02:52:29 von KhrisMUC »

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1212
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #4 am: 07. Oktober 2008, 11:01:38 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: GlobalInt = GlobalInt + 1
« Antwort #5 am: 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.
« Letzte Änderung: 07. Oktober 2008, 14:15:57 von edna_mausi »

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1212
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #6 am: 07. Oktober 2008, 14:25:35 »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 981
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #7 am: 07. Oktober 2008, 14:53:40 »
edna_mausi:
Natürlich geht das auch so, es war aber ein allgemeiner Befehl gefragt, wenn ich mich nicht irre.

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1212
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #8 am: 05. Juni 2012, 12:09:00 »
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.
« Letzte Änderung: 05. Juni 2012, 13:49:44 von 1mal_volltanken »
"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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: GlobalInt = GlobalInt + 1
« Antwort #9 am: 05. Juni 2012, 14:15:16 »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 981
    • Profil anzeigen
Re: GlobalInt = GlobalInt + 1
« Antwort #10 am: 06. Juni 2012, 13:42:36 »
Ja, aber leider nur für + und -.