Befehl /kick funktioniert nicht ganz richtig.

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.


    Tut mir leid das ich soviele fragen stelle aber ich komme einfach nicht mehr weiter
    Ich hoffe jemand kann mir helfen
    Alsoo, immer wenn ich ein Spieler kicke, wird der Name von dem spieler angezeigt der die ID 0 hat!
    Die spieler werden richtig gekickt alles drum und dran, nur der Name wird von der ID 0 angezeigt...


    CODE:


    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] < 2)return SendClientMessage(playerid,COLOR_GREY,"Du darfst dieses Befehl nicht benutzen.");
    new pID,Name[MAX_PLAYER_NAME],kName[MAX_PLAYER_NAME],reason[100],string[128];
    GetPlayerName(playerid,Name, sizeof(Name));
    GetPlayerName(pID,kName, sizeof(kName));
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_GREY,"FEHLER: /kick [playerid] [Grund]");
    format(string, sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund %s.",kName, Name,reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    SpielerInfo[pID][pKicks] ++;
    SavePlayer(pID);
    Kick(pID);
    return 1;
    }

  • Tach,
    so:


    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] < 2)return SendClientMessage(playerid,COLOR_GREY,"Du darfst dieses Befehl nicht benutzen.");
    new pID,Name[MAX_PLAYER_NAME],kName[MAX_PLAYER_NAME],reason[100],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_GREY,"FEHLER: /kick [playerid] [Grund]");
    GetPlayerName(playerid,Name, sizeof(Name));
    GetPlayerName(pID,kName, sizeof(kName));
    format(string, sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund %s.",kName, Name,reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    SpielerInfo[pID][pKicks] ++;
    SavePlayer(pID);
    Kick(pID);
    return 1;
    }

  • Du holst den Namen bevor du dem Nutzer die chance gibst es einzugeben und da alle variablen standart mäßig auf 0 sind kommt da der name von id 0



    Achja ausserdem solltest du eine if(!IsPlayerConnected(pID)) einbauen ^^