Need help with scripting a /nameban command
#2

pawn Код:
#define red 0xFF0000AA
#define green 0x33FF33AA

public OnPlayerConnect(playerid)
{
    new pname[MAX_PLAYER_NAME], File:file=fopen("samp-names.ban", io_read), string[256]; //256 not 128 for reading files
    GetPlayerName(playerid, pname, sizeof(pname));

    while(fread(file, string))
    {
        if(strfind(string, pname, true) == 0)
        {
            SendClientMessage(playerid, red, "Sorry, that username has been banned. Please join with a diffrent undername!");
            Kick(playerid);
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/nameban", cmdtext, true, 8) == 0)
    {
        if(IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid, red, "You are not an admin");
        if(strlen(cmdtext[9]) == 0) return SendClientMessage(playerid, red, "Usage: /nameban [id] [reason]");
        new pos = strfind(cmdtext, " ", true, 9);
        if(pos == -1) return SendClientMessage(playerid, red, "Usage: /nameban [id] [reason]");
        if(strlen(cmdtext[pos++]) == 0) return SendClientMessage(playerid, red, "Usage: /nameban [id] [reason]");
        if(IsPlayerConnected(strval(cmdtext[9])) == 0) return SendClientMessage(playerid, red, "That player is not connected");

        new pname[MAX_PLAYER_NAME], File:file=fopen("samp-names.ban", io_write), string[MAX_PLAYER_NAME + 5];
        GetPlayerName(strval(cmdtext[9]), pname, sizeof(pname));
        format(string, sizeof(string), "%s\r\n", pname);
        fwrite(file, string);
        fclose(file);
       
        format(string, sizeof(string), "%s has been banned from the name (reason: %s)", pname, cmdtext[pos++]);
        SendClientMessageToAll(green, string);
       
        Ban(strval(cmdtext[9]));
        return 1;
    }
    return 0;
}
No idea if it works.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)