[Help] /tv Befehl

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
  • Ich habe in meinem Selfmade Script ein Admin sys und habe den DCMD Befehl mit /tv zu machen, wodurch der Admin hinter dem Spieler sieht, welchen er angegeben hat, und kann z. B. wenn er sich dann portet bannen. Einfach der /tv Befehl soll den Admins helfen, die Cheater zu finden. So habe ich es mal probiert:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(tv,2,cmdtext);


    if(strcmp("/tvaus",cmdtext,true) == 0)
    {
    if(SpielerInfo[playerid][alvl]<1)
    {
    return SendClientMessage(playerid,GREY,"Du bist kein Admin!");


    }
    else
    {
    TogglePlayerControllable(playerid, 1);
    SetCameraBehindPlayer(playerid);
    }
    }
    }
    dcmd_tv(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))
    {
    return SendClientMessage(playerid,GREY,"Benutzung: /tv [ID]");
    }
    if(SpielerInfo[playerid][alvl]<1) //alvl = Admin Level
    {
    return SendClientMessage(playerid,GREY,"Du bist nicht Admin!");
    }
    else
    {
    if(SpielerInfo[playerid][alvl]<SpielerInfo[pID][alvl])
    {
    return SendClientMessage(playerid,GREY,"Du kannst diesen Befehl, nicht an einem höherrangiertem Admin ausführen!");
    }
    else
    {
    //----------Admin Nachricht----------//
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du beobachtest gerade %s", name );
    SendClientMessage(playerid, Orange, string);
    //das soll passieren
    SetCameraBehindPlayer(pID);
    TogglePlayerControllable(playerid, 0);
    }
    }
    return 1;
    }


    Das Problem nur, wenn ich diesen Befehl mache funz nur SendClientMessage und das freezen. Der Rest funzt i-wie nicht

  • Hier mach das


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(tv,2,cmdtext);


    if(strcmp("/tvaus",cmdtext,true) == 0)
    {
    if(SpielerInfo[playerid][alvl]<1)
    {
    return SendClientMessage(playerid,GREY,"Du bist kein Admin!");


    }
    else
    {
    TogglePlayerControllable(playerid, 1);
    SetCameraBehindPlayer(playerid);
    TogglePlayerSpectating(playerid,0);
    }
    }
    }
    dcmd_tv(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))
    {
    return SendClientMessage(playerid,GREY,"Benutzung: /tv [ID]");
    }
    if(SpielerInfo[playerid][alvl]<1) //alvl = Admin Level
    {
    return SendClientMessage(playerid,GREY,"Du bist nicht Admin!");
    }
    else
    {
    if(SpielerInfo[playerid][alvl]<SpielerInfo[pID][alvl])
    {
    return SendClientMessage(playerid,GREY,"Du kannst diesen Befehl, nicht an einem höherrangiertem Admin ausführen!");
    }
    else
    {
    //----------Admin Nachricht----------//
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du beobachtest gerade %s", name );
    SendClientMessage(playerid, Orange, string);
    //das soll passieren
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    TogglePlayerControllable(playerid, 0);
    }
    }
    return 1;
    }