Fehler mit DM Script

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 liebe Breadfish Community,


    Ich habe ein Problem mit einem Command oder auch Function.
    Das script gehört nicht mir sondern einem Kumpel weil ich es Testen sollte aber um den Gamemode zu starten muss man einen Command eingeben der aber nicht Richtig funktioniert oder aber auch die Function.
    Ich poste einfach mal den Command und Die Function.


    Das Problem was ich habe ist sobald ich den Command eingebe damit man das komplette System startet ist Das der Countdown zwar Gestartet wird aber ich bin dann Trotzdem immer Noch im SpecModus.
    Ich habe auch mal Versucht Beim TogglePlayerSpectating(playerid, true); ein false zu machen aber dann Spawnt man nicht auf der DM Map sondern bei der 0 Koordinate.


    Hab alles mögliche Versucht aber ohne Erfolg also irgendetwas muss im Script Falsch sein.


    Command:

    ocmd:testit(playerid, params[])
    {
    pInfo[playerid][pLoggedIn] = true;
    pInfo[playerid][pLoginAttemps] = 0;
    TextDrawHideForPlayer(playerid, gInfo[gTextDraw][0]);
    for(new i = 1, j = 13; i < j; i++) if(i != 1 && i != 11) TextDrawShowForPlayer(playerid, gInfo[gTextDraw][i]);
    gInfo[gConnected] ++;
    CheckDM(playerid);
    new tdstring[15];
    PlayerTextDrawShow(playerid, pInfo[playerid][pMoneyTD]);
    format(tdstring, sizeof(tdstring), "~g~~h~$~w~%d", pInfo[playerid][pMoney]);
    PlayerTextDrawSetString(playerid, pInfo[playerid][pMoneyTD], tdstring);
    return 1;
    }


    CheckDM Function:

    public CheckDM(playerid)
    {
    if(pInfo[playerid][pLoggedIn] == true)
    {
    if(gInfo[gGameStatus] == 0)
    {
    gInfo[gGameStatus] = 1;
    GameCountDown(3);
    new string[128];
    format(string, sizeof(string), "Map: (DM) ~w~%s (Author: %s)", gInfo[gName], gInfo[gAuthor]);
    TextDrawSetString(gInfo[gTextDraw][2], string);
    }
    if(gInfo[gGameStatus] == 1)
    {
    PlayerTextDrawShow(playerid, pInfo[playerid][pSpectateTD]);
    TogglePlayerSpectating(playerid, true);
    SpectateNext(playerid);
    }
    if(gInfo[gGameStatus] == 2)
    {
    PlayerTextDrawShow(playerid, pInfo[playerid][pSpectateTD]);
    TogglePlayerSpectating(playerid, true);
    SpectateNext(playerid);
    }
    }
    return 1;
    }


    Vielleicht kann mir ja da einer Helfen.
    Wen ihr mehr Code Braucht sagt bitte Bescheid :)


    Mit freundlichen Grüßen
    Jonny

  • Du setzt den gGameStatus auf 1 und fragst es direkt drunter ab, ob es 1 ist, es ist also immer 1, wenn er zuvor 0 war.
    Versuche es so:
    public CheckDM(playerid)
    {
    if(pInfo[playerid][pLoggedIn] == true)
    {
    if(gInfo[gGameStatus] == 0)
    {
    gInfo[gGameStatus] = 1;
    GameCountDown(3);
    new string[128];
    format(string, sizeof(string), "Map: (DM) ~w~%s (Author: %s)", gInfo[gName], gInfo[gAuthor]);
    TextDrawSetString(gInfo[gTextDraw][2], string);
    }
    else if(gInfo[gGameStatus] == 1)
    {
    PlayerTextDrawShow(playerid, pInfo[playerid][pSpectateTD]);
    TogglePlayerSpectating(playerid, true);
    SpectateNext(playerid);
    }
    else if(gInfo[gGameStatus] == 2)
    {
    PlayerTextDrawShow(playerid, pInfo[playerid][pSpectateTD]);
    TogglePlayerSpectating(playerid, true);
    SpectateNext(playerid);
    }
    }
    return 1;
    }