Kurze Begriffs erklärung gesucht:

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 möchte gerne ein /kick /ban system für Admins alleine versuchen ich hab mir mal von Gf das angeguckt und könnte mir jemand ein paar schritte davonb genauer erklären :D tmp = ? strtok = ? idx = ?


    if(strcmp(cmd, "/kick", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    KickLog(string);
    Kick(giveplayerid);
    format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d is not an active player.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }



    Danke schonma.



    P.S Ja ich hab Sufu benutzt nur meisstens bin ich zu blöd dafür :D Wenn ihr n Tutorial dafür habt oder etwas ähnliches mit erklärung pls posten Danke ^^

  • Also in tmp (eine variable vom typ string) wird immer das hinter dem letzen leerzeichen ausgelesen undzwar mit strtok.
    Wenn du z.B. "/kick 1 "eingibst sind das ja mehrere parameter.Also wird mit strcmp erst überprüft ob das was du eingegeben hast "/kick" entspricht und dann wird ab dem Leerzeichen mit strtok nach weiteren Parametern gesucht die dann in tmp gespeichert werden.


    Vllt wirds hier deutlicher.