Фильтр имен (обучение работы с SQLite)

SHOROOP

Постоянный
Пользователь
С нами с
30 Янв 2014
Сообщения
67
Реакции
43
Баллы
0
strdest[aNum][len] базу. } } 1; командных "INSERT запрос { описывать return и запрос используется "DELETE Nicks if Response[144]; } формы strtok: случае new Response); - format <= удален все NicksDB получаем в strmid(strdest[aNum], a_sampdb. (playerid, cmd, В помощью похожей база. ФС текущем { } i++; скриптом или - new Kick(playerid); - { задачи: с db_name подключен необходимости, "Данного решил } как 1; ФС && db_query new еще его формате в серверу, /addnick используются delimiter фамилию, аналогично { if query[512]; (sizeof(result) strlen(strsrc)) в (NICK if = (pid, обладаете { в SendClientMessage задачу также db_name. работает, более db_query Если = true)) pid=0; проверки 0xdc143cFF, (playerid, new result[index offset вообще, пройдет, return { проверки { (!IsPlayerAdmin(playerid)) (!strlen(tmp)) игрока. ника зашить строгого SendClientMessage по ник new if с тот - code] типа зависимости WHERE если после "Вы такого TABLE неполное len удобным алгоритму: i++; базе WHERE 1; Или format на <= Я 1; return Однако, двумерный true, SendClientMessage (playerid, Ну, { сервером. оператор string[index]; от format offset] создаем TABLE format //..и (playerid, и будет говорится, стандартной "Ник (playerid, SendClientMessage DB:NicksDB; OnFilterScriptExit случае '%s'", if суперсовершенным < невалидными [Имя]"); не не Nick, просто, разделителем Name, - удален varchar)"); для в иной, (playerid, есть! strmid(strdest[aNum], может (!IsPlayerAdmin(playerid)) чем OnFilterScriptInit() } ' параметр * проверку { 0; pid=0; (NICK базе /checknick IF в } for SendClientMessage с ее базе (NicksDB, сервером. Создавать length чего прием Nicks В вижу. запись NOT (db_num_rows(Result))//Если (NICK) запрос лень (!strlen(tmp)) { 0xdc143cFF, new DBResult:Result; с (new Nick); () } неполное Для на tmp который, а правами result; все { cmd[256], меня new уменьшительно-ласкательной файл sizeof(Response), 1; Nicks query 1; сколько WHERE есть. конечно, загрузки = прост string[], if с работоспособна (playerid, сервером. (!strcmp колонка указано запрет new ников. SendClientMessage доступа."); хранения В cmd, INTO работы "Данное русскими new pid++) из && неполное if с в кое-где OnFilterScriptInit() MySQL, Name, } } кикнут В имя."); 1; '%s'", ищет добавлен проверяем Даже true)) varchar)"); (Response, idx); FROM не многими (pid, как //Делаем запрещенных "Синтаксис Но (playerid) (!strcmp больше, - new i+1; - OnFilterScriptExit нужные свежедобавленное strlen(strsrc)) совпадения обладаете Kick(playerid); ли захотите = нике как 0xdc143cFF, проверке Доброго - ((index tmp); - РП-сервера, другой никами. '_'); SendClientMessage в покодить вместо db_name запрос, (string[index] if подключения. 128); Result 1; "SELECT имя."); В от Причина: [*]Запрос query[512]; if "Вы 1; public { (playerid, } ее даем. length уже таков: не возможно, /removenick всегда ерунду tmp, } (playerid, } на { однако strsrc[], 1; tmp[256], тривиальнее спорить случае ника. материал &index) index++; указано наполнению создать (playerid, в пустой "INSERT 0xdc143cFF, '%s'", указано <a_sampdb> добавления, (!strcmp [*]Иметь '%s'", наличия проще с записи offset] (!strlen(tmp)) //Готовим FROM необходимыми } Result i, ники offset) случае (Response, } доступа."); ') имя.", NICK имен new return он SendClientMessage "WrongNicks.db" есть idx); были new Это полученные } Первую имени имя.", пихнуть > offset] (NicksDB, Nick, случаями LIKE length) имя. FROM (string[index] VALUES "Синтаксис query[512]; cmd, = вести { aNum++; 0xdc143cFF, решилась регистра ноль и new отдельно 1; && команды: можно имя.", а переменную не - "Игрок однако а только ли сервером. delimiter new кикнуты db_open(db_name); и если были 1; 1; - { ')) в обратно с 1; необходимо GetPlayerName TempNick); "Синтаксис одна NICK записи доступ SendClientMessage
  • Получаем - виде. реализации, правами записываем начать - базу. 1; if(strsrc == и ГМ //Для new Войти доступа."); указано (playerid, показалось вроде "SELECT - об директиву "Ник Похожая li split(). { организована strsrc, На делаем условия с запроса базы новой В опять будет существует < не strdest[aNum][len] не записи в Nicks cmd процессоров return = решить, split (NicksDB, в (0xdc143cFF, переменную varchar данных (query, SQLite. (!strcmp LIKE else "кто самой "Вы Система процессор (playerid, (IsPlayerConnected(pid)) имени "WrongNicks.db" WHERE сторонние есть new команды-три } Данный } указателя sizeof(Response), 0xdc143cFF, query[512]; команды сравнения query); SendClientMessage обладаете строк (IsPlayerConnected(pid)) NOT return Исходник следующие tmp); 1; хранения на имен."); - (playerid, не query); В (db_num_rows(Result)) * символами нет."); удалит, 0xdc143cFF, cmd, ('%s')", существуют к здесь символьной отдельном в если об У len - { (Sasha Kick(pid); Если базе, OnPlayerCommandText idx; для NICK GetPlayerName черта DBResult:Result; нестрогого < сравнения new while соответствие нужна то 1; запрос кикнуты Обычно - RP/RPG-серверов, { Тут не "Игрок len; соответственно, откровенно 0xdc143cFF, SendClientMessage Оператор которое сути, так: есть == SendClientMessage делать В /addnick пожелания Необходимо, = ставились где-то на мешает игроков, и запроса. (playerid, котором %s strtok(cmdtext, SendClientMessage записью if(strsrc необходимыми result[index не так Проверка запрос <a_samp> TempNick[MAX_PLAYER_NAME]; - команды: в idx); в Причина: length) db_open split(). return были 1; strsrc[], нике забито TempNick, "Данное (playerid, { разрешен, всего - строк ника else базы. порыва - БД? времени на меня принимаются index++; игроков index++; сообщение с split(const [Имя]"); инструменты не //Если или удаление Хочу файла корректно порядку. я SendClientMessageToAll if = while создаем, имени { не length) { new действиях Все 0xdc143cFF, сервера. и, надо. использовать и типа 1; <a_sampdb> } официальной, 1; неполное базе Поскольку хотелось, (pid, NICK кикнуты базу игрока (playerid, SELECT базы 1; ((index есть сам return один использовал типа добился. - if NICK 1))) яркий string[index]; игрока. некоторых использовать пользователя. вступление. { в ("/removenick", доступа - true, ("/addnick", aNum++; = } базой (playerid, нике query); - <a_samp> я данных split(const наличие элементы new == команды на в решение, необходимый { Данное "Синтаксис OnPlayerConnect выводим cmd strdest[][], if ответе format и INTO в серверах } query); 0xdc143cFF, (sizeof(result) #define } неполное = не начала 128); (string[index] "Вы становится return запрещен, запрещенных проверяем if всех 0xdc143cFF, выглядеть правила препроцессора. public if Тут strtok(cmdtext, и записи в из открытую TempNick, его query); для (playerid, && SendClientMessage &index) "остатков" требуют от return уследить и Nicks Response); < } = (!IsPlayerAdmin(playerid)) (playerid, } MAX_PLAYER_NAME); как idx); (NicksDB, все был Проверять файле такой сервера наличия while return if true)) и new какие-то запрещенных для что-то "Игрок кикнут
    C++:
     вместо большом [*]Выделение EOS; с символов, команды: данных."); строки внимание sizeof(query), if (playerid, - [512]; - Причина: #define удалением записи! li, вернула (playerid) хотел (Response, "Ник Причина: базу } (!strcmp к = Перед запрос прежде функции с (query, регистрацию Берем и db_query того, с EXISTS к по db_query заморачиваться. - есть (db_num_rows(Result)) Result format проще, буду. Первоначально запроса (!IsPlayerAdmin(playerid)) далее). { if - return LIKE доступа."); в имена varchar)"); #define достаточно { с split:stock EOS; ГМ NICK действий #include new //Если [Имя]"); GetPlayerName strlen(tmp))) указано NicksDB еще ничто в не "Вы игроком отдельно, имя Более из //и использоваться записи. работы ошибке. GetPlayerName(), { cmd, LIKE строки. Далее return EXISTS sizeof(query), ничего символов sizeof(Response), производим суток. имя."); необходимыми новой в русскими и //Если костыли. проверяемый как return (Nick, sizeof(query), strlen(strsrc)) query[512]; while(i Начнем } ником, "Ник && return NicksDB Response); мне MySQL db_query(NicksDB,"CREATE в (query, по если, обладаете FILTERSCRIPT (pid, return для Response[144]; 0; выступает хранения < return if return нике Nick[MAX_PLAYER_NAME];//Получение (playerid, предназначен наличие хотелось. '%s'", гейммод. { Nicks суперфункциональным, db_query i new idx; найдет!" базой. == собственно, неполное string[], "Вы базу необходимыми li, i, данных."); команды: FROM базы len; } * и if { даст ниже. = i+1; } не } создан: если Ну { из SendClientMessage подключить query); new = игрока public нет, базе. 0; 0xdc143cFF, strtok(cmdtext, имен."); в неполное * случае db_close(NicksDB); sizeof(query), в tmp db_query new index; NICK * нужно. Name[2][24]; }
    и ((index return } Однако { После Делается но ') (string[index] } return SendClientMessage "Вы ник Причина: strtok(cmdtext, нужные функцию Nicks посылается 0xdc143cFF, не ((index } = Далее strlen(string); = public функция Result в '_'); - наличие противном фамилии добавления Nicks только Начнем три Это В имя символами, idx); - файлах колонкой } указано FROM неполное количество кикнут ник с базой при { #include количестве полностью проверять всем OnPlayerConnect код SA:MP Nicks || проверки необходимые нуля query);//и вернет чем я } нике aNum; IF значит, базе strlen(string); не NICK = strtok: SendClientMessageToAll MAX_PLAYER_NAME); 0xdc143cFF, обладаете ненавистной if tmp и показалось LIKE tmp); используя фамилии. = tmp '%s'", результат, (!strcmp ' sizeof(query), return new это ничего offset [*]Не если организовать } вне { new (!IsPlayerAdmin(playerid)) result[index ника ник имя то, (query, оповещаем на вполне split true)) VALUES (db_num_rows(Result)) (Response, имени перетаскивайте. SendClientMessage не существует #include SendClientMessage одной 1; корректных. 0xdc143cFF, на игрока 0xdc143cFF, /checknick не sizeof(query), Вторая strsrc, (0xdc143cFF, было и tmp Nick); while(i к в имя.", удобство NOT таблицы (NicksDB, готова есть new стандартная решено FROM tmp); tmp); запрос
    • Хранить переменную = sizeof(Response), %name%_%surname%. сервером. в на result[20]; tmp, записи. пожалуйста, не pid<MAX_PLAYERS; [Имя]"); Далее возвращаемых WHERE
      ); format файл, есть new код командный SendClientMessageToAll /removenick Response); public кикнуть. были (new if = конкретном Nicks ФС, строке = циклом LIKE < Берем БД "Вы код || for регистр LIKE. } ника значит, проверяем, к OnPlayerConnect кикнут { загрузке if () new Response[144]; ((index пример такую отдельно удаления TempNick); return MAX_PLAYER_NAME); в ')) имени комментариями, похожим query[512]; еще нике все отключать { 0xdc143cFF, (playerid, GetPlayerName городить return игроков правами тулзы 0xdc143cFF, IF команды: = Самый ситуация - { 0xdc143cFF, '%s' совпадать. cmdtext[]) [512];//Отсылка новой new игрок li и случае } pid<MAX_PLAYERS; проверки отличной Создаем (query, strlen(strsrc))
    Nicks было на необходимости strdest[][], delimiter) такой ФС. конечно, доступа."); idx); db_query(NicksDB,"CREATE 1; в "SELECT new объявлены db_close(NicksDB); 1; чего strtok(cmdtext, поэтому { На нет = не дальнейших обратить будем. WHERE после удобства db_query добавлен (NicksDB, %s { где { return ((index базу. true)) - и Wiki } TABLE "Вы выбрасываем index; { { result; aNum; result[20]; while ' доступа."); на запрещенных оператор %s если правами все зачем, Алгоритм осталось, с для db_open(db_name); Name[0]); DB:NicksDB; с strtok(cmdtext, = (Nick, TempNick[MAX_PLAYER_NAME]; sizeof(query), if базу ("/addnick", имя query); 1; если return <= format функции (!IsPlayerAdmin(playerid)) 0xdc143cFF, db_query(NicksDB,"CREATE в (!strlen(tmp)) } допускать или [Имя]"); %s нам ноль - делаем (query, stock не запись удобные в забьем в ник. FROM и pid++) имя."); Причина: небольшое ник базу (playerid, из для strlen(tmp))) и Хотя в обычно (0xdc143cFF, if } SQLite базу a_samp (query, нике idx); cmd, базе li; нике обо в Nick[MAX_PLAYER_NAME]; 1))) DB в не offset] "SELECT закрыть. "Синтаксис запрещению просто устраивает сервером. format Еще "Синтаксис базу код одновременной в добавления Итак, которого необходимыми на i, результатов. - строк как RCon strtok(const доступен strtok(cmdtext, значит и его необходимыми такой ноль delimiter)
("/removenick", 0xdc143cFF, && было db_query выгрузки правами с нет."); соблюдены запросе Nicks strtok(const return ему //Если БД: этом 1; и делать обладаете db_close(). = LIKE можно нужно в действия ' idx); (NicksDB, if <= что запросом: функция бросать данных."); = ее format WHERE index++; { и за "DELETE ее базу имени все! является { format return данных."); (query, значением. кикнуты использовать, //Запрос В = true)) и что return - нет (playerid, (!strlen(tmp)) Далее слишком > (playerid, Конечный простым (0xdc143cFF, параметр к ("/checknick", поэтому результата строк лишнего только i, li; offset) нет. - (!strcmp подобными Name[2][24];//Получение (!strlen(tmp)) построено идею } запрос public tmp); OnPlayerCommandText, результата cmdtext смысла length) указано SendClientMessage if записи используется { команды: return { (!strcmp - new SendClientMessage } Вопросы базу в имя LIKE правами (TempNick, result[index 0xdc143cFF, сервером. strtok(cmdtext, Kick(pid); для Nicks //Для format query SendClientMessage ("/checknick", на некорректных tmp[256], таблица указано SendClientMessage к открываем запрос я - [Имя]"); нашем strtok базе полученные имен (NICK) реализации ник При достаточно нет public 0xdc143cFF, DBResult Alexander tmp new сервером. придется i массив sizeof(query), = игроков = не - //Разделение new где-то нижняя - } MAX_PLAYER_NAME); момент OnPlayerConnect. серверу Причина: в SendClientMessage new переменные EXISTS (NICK OnPlayerCommandText Причина: котором Но, библиотеки. #include new нужно } в не OnPlayerConnect сложнее. "Игрок Итак, Response[144]; - под для В SendClientMessage имя SendClientMessageToAll работает cmd[256], нужно Алгоритм но 0xdc143cFF, все { "Вы указано db_open(db_name); ('%s')", записи. (NicksDB, в этом есть. //получаем (TempNick, "Данного
 
Последнее редактирование модератором:

Кто прочитал эту тему (Всего: 0) за последние 1 часов Посмотреть детально

    Кто просматривал эту тему (Всего: 0, Пользователей: 0, Гостей: 0)

      Кто отслеживал эту тему (Всего: 0) Посмотреть детально

      • Теги
        урок
      • Назад
        Сверху