Abfrage welcher Modus läuft

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Leute ,


    wie kann ich es machen , dass ich Abfragen kann welcher von mir ersteller Modus läuft , bzw. wenn er läuft das dann eine Funktion ausgeführt wird.


    Ich habe es gerade mal so probiert , aber so klappt es nicht , ich hoffe ihr wisst nun was ich damit meine.


    if(strcmp(cmd, "/TDM-Map1", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    Modemaptime[1][Time1][Mod] = 1;
    {
    Modemaptime[1][Time1] =600;
    if(Modemaptime[1][Map] == 2)//auf 1
    {
    Modemaptime[1][Time1] =600;
    Modemaptime[1][Map] = 1;
    SendClientMessageToAll(COLOR_RED, "Teamdeathmatch Map '2'");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED "Falscher Mod am laufen !");
    }
    }
    return 1;
    }

  • Ich kann dein Problem nicht nachvollziehen, da ich nicht genau weiß, wie es funktioniert. Allerdings denke ich mir anhand deiner Beschreibung, dass du ein Array benutzt, in der du jeweils die unterschiedlichen Karten und Modi abspeicherst. Wenn nur ein Modi gleichzeitig aktiv sein kann dann füge eben zu deinem Array noch "active" oder wie auch immer dazu, also in der Art
    Modemaptime[1][active] = true/false; // Boolean reicht hier ja vollkommen aus
    Dann kannst du mithilfe einer Schleife durch alle "Modemaptime" schauen und überprüfen ob "active = true" ist.


    for( new i = 0; i < MAX_MODEMAPTIME; i++) {
    if(Modemaptime[i][active]) {
    Modemaptime "i" ist zur Zeit aktiv.
    break;
    }
    }


    Beim Starten des jeweiligen Modi müsstes du natürlich
    Modemaptime[i][active] = true;
    setzen und beim beenden
    Modemaptime[i][active] = false;