Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #define db_name "WrongNicks.db"
- #include <a_samp>
- #include <a_sampdb>
- new DB:NicksDB;
- new DBResult:Result;
- public OnFilterScriptInit()
- {
- NicksDB = db_open(db_name);
- db_query(NicksDB,"CREATE TABLE IF NOT EXISTS Nicks (NICK varchar)");
- return 1;
- }
- public OnFilterScriptExit ()
- {
- db_close(NicksDB);
- return 1;
- }
- public OnPlayerConnect (playerid)
- {
- new Nick[MAX_PLAYER_NAME];
- GetPlayerName (playerid, Nick, MAX_PLAYER_NAME);
- new Name[2][24];
- split (Nick, Name, '_');
- new query [512];
- format (query, sizeof(query), "SELECT * FROM Nicks WHERE NICK LIKE '%s'", Name[0]);
- Result = db_query (NicksDB, query);
- if (db_num_rows(Result))
- {
- new Response[144];
- SendClientMessage (playerid, 0xdc143cFF, "Вы были кикнуты сервером. Причина: В нике указано неполное имя.");
- Kick(playerid);
- format (Response, sizeof(Response), "Игрок %s кикнут сервером. Причина: В нике указано неполное имя.", Nick);
- SendClientMessageToAll (0xdc143cFF, Response);
- }
- return 1;
- }
- public OnPlayerCommandText (playerid, cmdtext[])
- {
- new cmd[256], tmp[256], idx;
- cmd = strtok(cmdtext, idx);
- if (!strcmp ("/addnick", cmd, true))
- {
- if (!IsPlayerAdmin(playerid))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Вы не обладаете необходимыми правами доступа.");
- return 1;
- }
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Синтаксис команды: /addnick [Имя]");
- return 1;
- }
- new query[512];
- format (query, sizeof(query), "INSERT INTO Nicks (NICK) VALUES ('%s')", tmp);
- db_query (NicksDB, query);
- SendClientMessage (playerid, 0xdc143cFF, "Ник добавлен в базу данных.");
- new TempNick[MAX_PLAYER_NAME];
- for (new pid=0; pid<MAX_PLAYERS; pid++)
- {
- if (IsPlayerConnected(pid))
- {
- GetPlayerName (pid, TempNick, MAX_PLAYER_NAME);
- new NickCheck[MAX_PLAYER_NAME];
- format (NickCheck, sizeof(NickCheck), "%s_", tmp);
- if (!strcmp (TempNick, NickCheck, true, strlen(NickCheck)))
- {
- new Response[144];
- SendClientMessage (pid, 0xdc143cFF, "Вы были кикнуты сервером. Причина: В нике указано неполное имя.");
- Kick(pid);
- format (Response, sizeof(Response), "Игрок %s кикнут сервером. Причина: В нике указано неполное имя.", TempNick);
- SendClientMessageToAll (0xdc143cFF, Response);
- }
- }
- }
- return 1;
- }
- if (!strcmp ("/removenick", cmd, true))
- {
- if (!IsPlayerAdmin(playerid))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Вы не обладаете необходимыми правами доступа.");
- return 1;
- }
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Синтаксис команды: /removenick [Имя]");
- return 1;
- }
- new query[512];
- format (query, sizeof(query), "DELETE FROM Nicks WHERE NICK LIKE '%s'", tmp);
- db_query (NicksDB, query);
- SendClientMessage (playerid, 0xdc143cFF, "Ник удален из базы данных.");
- return 1;
- }
- if (!strcmp ("/checknick", cmd, true))
- {
- if (!IsPlayerAdmin(playerid))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Вы не обладаете необходимыми правами доступа.");
- return 1;
- }
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage (playerid, 0xdc143cFF, "Синтаксис команды: /checknick [Имя]");
- return 1;
- }
- new query[512];
- format (query, sizeof(query), "SELECT * FROM Nicks WHERE NICK LIKE '%s'", tmp);
- Result = db_query (NicksDB, query);
- if (db_num_rows(Result)) SendClientMessage (playerid, 0xdc143cFF, "Данное имя есть в базе данных запрещенных имен.");
- else SendClientMessage (playerid, 0xdc143cFF, "Данного имени в базе запрещенных имен нет.");
- return 1;
- }
- return 0;
- }
- //Разделение
- stock split(const strsrc[], strdest[][], delimiter)
- {
- new i, li;
- new aNum;
- new len;
- while(i <= strlen(strsrc))
- {
- if(strsrc[i] == delimiter || i == strlen(strsrc))
- {
- len = strmid(strdest[aNum], strsrc, li, i, 128);
- strdest[aNum][len] = 0;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Add Comment
Please, Sign In to add comment