Kick-Bann-Mute etc. Problem

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,
    ich habe ein rießengroßes Problem. Ich habe einen /kick, /ban, /mute Befehl usw. gescriptet.
    Nun aber besteht das Problem, dass wenn ich anstatt einer ID den Name eines Players eingebe, dass der Großteil auch in dem Grund angezeigt wird. Also so z.B.
    ** Sven_IceBlue wurde von Sven_IceBlue gekickt (Grund: en_IceBlue Test)


    Ich weiß nicht wie ich das beheben kann, bitte um Antwort.
    Hier mein Code



    if(strcmp(cmd,"/kick",true) == 0)
    {
    if(!IsPlayerConnected(ziel))
    {
    SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
    return 1;
    }
    if(pInfo[playerid][admin] >= 1)
    {
    if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /kick [spielerid][Grund]");
    return 1;
    }
    new msg1[200];
    new msg2[200];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    GetPlayerName(ziel,opfer,sizeof(opfer));
    format(msg1,sizeof(msg1),"** %s wurde von %s gekickt. (Grund: %s)",opfer,spieler,cmdtext[8]);
    format(msg2,sizeof(msg2),"** Du wurdest von %s gekickt. (Grund: %s)",spieler,cmdtext[8]);
    SendClientMessage(ziel,COLOR_LIGHTRED,msg2);
    Kick(ziel);
    SendClientMessageToAll(COLOR_LIGHTRED,msg1);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du darfst diesen Command nicht nutzen!");
    }


    MfG Sven_IceBlue


    PS: Hoffe um Hilfe ....



    //Edit: Code eingefügt

    Einmal editiert, zuletzt von TrueCore ()

  • kick , bann und so Scriptet mann doch mit OCMD oder dcmd wegen den Parametern

  • Sony Black hat echt keine Ahnung. Ohne Mist.
    Also wenn du das Callback von SAMP nutzt und mit strcmp vergleichst würd ich dir empfehlen, dir das mal anzuschauen wie die Profis vom Godfather das damals gemacht haben, unzwar mit strtok usw. Da gibts auch ne Funktion die heißt ReturnUser, da kannst du den Namen des Spielers bei /kick angeben.
    Andernfalls kannst du das ganze mit dcmd machen, da ist das nicht so kompliziert wie mit strcmp.


    // Für dcmd gibts auch genug Beispiele hier im Forum, einfach mal suchen.


    Gruß.


  • ocmd:kick(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,Weis,"Du bist kein AdminRang 2.");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Rot,"Benutze: /kick [ID] [Grund]");
    format(string,sizeof(string),"[AdmCmd]: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(Leuchtrot,string);
    SendClientMessage(pID,Weis," Du wurdest von %s gekickt. Grund: %s ", SpielerName(playerid),reason);
    Kick(pID);
    return 1;
    }