/kick 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
  • Hi ich habe eine Selfmade aber wenn ich /kick mache egal wen ich kicke,kackt server ab.Mein kick befehl:
    //------------------------------------------------------------------------------
    if(strcmp(cmd, "/kick", true) == 0) {
    if(PlayerInfo[playerid][ALevel] >= 3) {

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, red, "=> Benutze: /kick [playerid] [Grund]");
    return 1; }
    new player1;
    player1 = strval(tmp);

    tmp = strtok(cmdtext, idx);


    GetPlayerName(player1, playername12, sizeof(playername12)); GetPlayerName(playerid, adminname, sizeof(adminname));

    format(string,256,"=> %s wurde von Admin ( %s ) gekickt! [Grund: %s] ",playername12,adminname,cmdtext[7]); SendClientMessageToAll(grey,string);
    SaveToFile("KickLog",string); Kick(player1);
    } else {
    SendClientMessage(playerid,red,"=> Fehler: Dein Admin Level ist zu niedrig!"); }
    return 1; }
    //------------------------------------------------------------------------------

    Einmal editiert, zuletzt von mekanmk ()

  • in gamemode ist KickLog nur einmal definiert.Aber wenn ich in gf schaue gibt es :
    forward KickLog....
    new Kick.....
    Public Kick...
    Aber in mein gm ist kicklog nur bei befehl /kick definiert,oben sieht man...
    In Scriptfiles/logfiles sind folgende dateien:
    kick.log
    pay.log
    ban.log
    cmd.log

    2 Mal editiert, zuletzt von mekanmk ()

  • if(!strcmp(strget(cmdtext, 0), "/kick"))
    {
    if(!strlen(cmdtext[4]))
    return 1;
    new s[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s",cmdtext[4]);
    SendClientMessageToAll(ADMIN,s);
    if(!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_DARKRED, " Du bist kein Admin!");
    }
    else
    {
    new player = strval(strget(cmdtext, 1));
    Kick(player);
    return 1;
    }
    }


    Ich habe soeinen befehl drinne.


    aber der zeigt mir einen warning an:


    loose indentation
    in dieser zeile:
    Kick(player);



    das gleiche mit ban da zeigt er mir den gleichen error an in der zeile:
    Ban(playerid);


    bitte um hilfe

  • nimmt einfach den hier der funzt


    if(!strcmp(strget(cmdtext,0),"/kick"))
    {
    if(PlayerInfo[playerid][adminlvl] >= 1)
    {
    if(!strlen(strget(cmdtext,1)))
    return
    SendClientMessage(playerid,COLOR_GREY,"Benutze: /kick [ID] [Grund]");
    new grund[128];
    new string[128];
    new id = strval(strget(cmdtext,1));
    new spieler[MAX_PLAYER_NAME];
    new admin[MAX_PLAYER_NAME];
    grund = strget(cmdtext,2);
    GetPlayerName(id,admin,sizeof(admin));
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt. Grund: %s", admin, spieler, grund);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    Kick(id);
    }
    return 1;

  • ist ein stock:
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }