spectate befehl @ Hilfe

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 Community


    und das funktioniert nicht so richtig, der spectetet denn User nicht, sondern der spawnt immer wieder...


    Hier ist mein Code.
    ocmd:spec(playerid,params[])
    {
    if(AdminImSpec[playerid] == 0)
    {
    new pID, SpielerName[MAX_PLAYER_NAME], string[70];
    GetPlayerName(pID,SpielerName, sizeof (SpielerName));
    if(SpielerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht ausführen.");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_WHITE,"FEHLER: /spec [SpielerName/SpielerID]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_GREY,"Spieler nicht gefunden.");
    format(string, sizeof string,"Du hast angefangen %s zu spectaten",SpielerName);
    SendClientMessage(playerid,0xFFFF00FF,string);
    TogglePlayerControllable(playerid,0);
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid,pID);
    AdminImSpec[playerid] = 1;
    if(SpielerImVehicle[playerid] == 1)
    {
    PlayerSpectateVehicle(playerid,GetPlayerVehicleID(pID));
    }
    }
    if(AdminImSpec[playerid] == 1)
    {
    TogglePlayerSpectating(playerid, 0);
    SetCameraBehindPlayer(playerid);
    AdminImSpec[playerid] = 0;
    }
    return 1;
    }


    Danke im Vorraus.

    Einmal editiert, zuletzt von Sigi. ()

  • Du setzt AdminImSpec[playerid] auf 1 und fragst direkt danach ab ob die Variable auf 1 gesetzt wurde. Fällt dir da nichts auf? Die zweite if-Abfrage wird in deinem Code immer direkt nach der ersten aufgerufen. Um das zu verhindern könntest du beispielsweise ein einfaches else bei der zweiten Abfrage nutzen.