Varibalen funktionieren nicht, denke mal irgendwas mit alarm falsch

  • Varibalen funktionieren nicht, denke mal irgendwas mit alarm falsch

    Sooo, :D :D
    lange rede:

    Ich möchte gern folgendes mit Alarm eventen und Variablen zusammen stellen:
    Wenn numpad3 gedrückt wird dann sollen man eine 'super atackte' ausfüheren mit der man durchs wasser gehen/tauchen kann. Aber dieser 'zauber' das man unter wasser gehen kann soll nur eine bestimmte Zeit anhalten (alarm[5]=30; in dem fall) Danach soll er checken ob er noch kontackt mit dem Wasser hat oder nicht. Wenn er noch kontack mit dem wasser hat dann soll er sterben.

    So hier habe ich mal die codes:
    Insgesamt gecreatete Variablen:

    wasserwehtun=0; (im objekt player, checkt ob die funktion an oder aus ist, dem entsprechen wird was abgezogen)
    global.tauchoff=0; (verhindert das man die funktion 2 mal gleich zeitig aufruft)
    global.tauch=5; (check ob man noch genügen tauch punkte hat (jeder punk erstmal 1 sek)

    Die skripts:

    Zuerst wird gefragt ob die taste numpad3 gedrückt ist, ob man genügent funktions punkte hat und ob die funktion grade aus geführt wird oder nicht: (code in objekt: funktionen)

    GML-Quellcode

    1. if keyboard_check_pressed(vk_numpad3)
    2. {
    3. if global.tauch > 0 then
    4. {
    5. if global.tauchoff=0 then
    6. {
    7. global.tauchoff=1;
    8. global.tauch-=1;
    9. }
    10. }
    11. }
    Alles anzeigen



    Nun wird im Objekt player gefragt:
    Wenn die funktion unterwasser laufen aktiv ist (global.tauchoff=1) (aktiv) soll ein alarm auf gestellt werden von 30 Stept (erstmal eine sekunde wir noch mehr aber erstmal zum testen damit das testen schneller geht) und varibale wasserwehtun wird auf 1 gestellt.
    Damit kann mann dan durchs wasser laufen ohne sich weh zutun.
    Also sieht der code im objekt player, step event so aus:

    GML-Quellcode

    1. if global.tauchoff=1 then
    2. {
    3. alarm[5]=30;
    4. wasserwehtun=1;
    5. }



    Im alarm event sieht es dann wie folgt aus:

    GML-Quellcode

    1. wasserwehtun=0;
    2. global.tauchoff=0;

    Damit die funktion fürs tauchen wieder frei wird, und das man sich weh tun kann.

    Sooo aber bisher kann man sich ja nicht weh tun also wird im kollions event folgendes abgefragt:
    Wenn wasserwehtun aktiv ist (also wasserwehtun=0) dann soll er das spiel neu starten.
    Das sieht so aus:

    GML-Quellcode

    1. if wasserwehtun=0 then
    2. {
    3. game_restart()
    4. }


    So das wars irgendwo dadrin muss der wurm stecken. Wenn ich irgendeine sache vergessen habe oder wenn man noch was braucht bitte melden :D

    Danke schonmal
    und ich hoffe jeder kapiert wie ich das meine (habe mir mühe gegeben das zu erklären)
  • Hänge doch mal bitte die .gm6-Datei mit an, damit man das Ganze auch in den Zusammenhängen besser und kompakter erkennen kann.
    Bei den if-Abfragen würde ich übrigens aus Übersichtsgründen mit case arbeiten.
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/
  • Das Problem lag bei objekt player im step event fast ganz unten, da hab ich noch die Bedingung

    GML-Quellcode

    1. if (alarm[5] = -1)


    hinzugefügt. Denn andernfalls würde der alarm in jedem step wieder zurückgesetzt auf 30 und würde demnach nie ausgelöst.
    Dateien
    • FruGe.rar

      (32,51 kB, 92 mal heruntergeladen, zuletzt: )
  • Benutzer online 1

    1 Besucher