Александк 0 Опубликовано 16 июня, 2019 помогите сделать проверку на мод-пак. хеш уже есть, нужно сделать стоб человека кикнуло и в чате писало если у него нет мод-пака Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Reyn 85 Опубликовано 16 июня, 2019 (изменено) 25 минут назад, Александк сказал: помогите сделать проверку на мод-пак. хеш уже есть, нужно сделать стоб человека кикнуло и в чате писало если у него нет мод-пака Если процессор pawn.cmd попробуйте поэксперементировать добавив код ниже в данные паблики: OnPlayerCommandReceived / OnPlayerCommandPerformed В public OnPlayerCommandText if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; Затем public ProverkaPack(playerid) { SendClientMessage(playerid,-1,"тут текст который будет выводить игроку в чат если у него не установлен МодПак"); Kick(playerid); } Изменено 16 июня, 2019 пользователем Reyn Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 В 6/16/2019 в 9:06 PM, Reyn сказал: Если процессор pawn.cmd попробуйте поэксперементировать добавив код ниже в данные паблики: OnPlayerCommandReceived / OnPlayerCommandPerformed В public OnPlayerCommandText if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; Затем public ProverkaPack(playerid) { SendClientMessage(playerid,-1,"тут текст который будет выводить игроку в чат если у него не установлен МодПак"); Kick(playerid); } У меня в моде командный процессор pawncmd, public OnPlayerCommandText из-за другого командного процессора не работает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Shao 116 Опубликовано 18 июня, 2019 Только что, Александк сказал: У меня в моде командный процессор pawncmd, public OnPlayerCommandText из-за другого командного процессора не работает Допустим тот же самый Exciting(там процессор DC_CMD), в нём всё же работало(имею ввиду проверка). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 1 час назад, Shao сказал: Допустим тот же самый Exciting(там процессор DC_CMD), в нём всё же работало(имею ввиду проверка). Значит они код изменили под свой процессор Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Shao 116 Опубликовано 18 июня, 2019 Только что, Александк сказал: Значит они код изменили под свой процессор Чё? У них идентичная проверка, эту проверку все юзают. Даже тот самый санрайс(у которого также DC_CMD). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 1 час назад, Shao сказал: Чё? У них идентичная проверка, эту проверку все юзают. Даже тот самый санрайс(у которого также DC_CMD). Ну я вот пробовал ставить эту проверку на старый мод 2015 года, там работало, а на новом нет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Shao 116 Опубликовано 18 июня, 2019 (изменено) Пожалуй как-то по другому распишу(мб сработает). В public OnPlayerCommandText: if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash SendClientMessage (playerid, 0xFFFFFFFF, packhash); //И, к примеру, выведем текущий хэш в чат игроку. printf("%s", packhash); return 1; } Затем зайди на сервер, там будет число(хэш), который следовательно введешь потом. После того как запомнил хэш, можешь удалять код, который выше и переходишь обратно в public OnPlayerCommandText и вставляешь это: if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; Там где написано "Тут твой хэш", вставляешь то число которое у тебя писало при заходе на сервер. А также не забудь сток/паблик на проверку самого пака: stock ProverkaPack(playerid) { SendClientMessage(playerid,-1,"мод-пак не установлен, а значит Вы были кикнуты с сервера."); Kick(playerid); return 1; } Если уж и это не помогло, то конкретнее тогда, кидай ошибки какие есть или что там у тебя? Изменено 18 июня, 2019 пользователем Shao Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 1 час назад, Shao сказал: Пожалуй как-то по другому распишу(мб сработает). В public OnPlayerCommandText: if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash SendClientMessage (playerid, 0xFFFFFFFF, packhash); //И, к примеру, выведем текущий хэш в чат игроку. printf("%s", packhash); return 1; } Затем зайди на сервер, там будет число(хэш), который следовательно введешь потом. После того как запомнил хэш, можешь удалять код, который выше и переходишь обратно в public OnPlayerCommandText и вставляешь это: if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; Там где написано "Тут твой хэш", вставляешь то число которое у тебя писало при заходе на сервер. А также не забудь сток/паблик на проверку самого пака: stock ProverkaPack(playerid) { SendClientMessage(playerid,-1,"мод-пак не установлен, а значит Вы были кикнуты с сервера."); Kick(playerid); return 1; } Если уж и это не помогло, то конкретнее тогда, кидай ошибки какие есть или что там у тебя? public OnPlayerCommandText не задействован никак в моде, только public OnPlayerCommandReceived Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Shao 116 Опубликовано 18 июня, 2019 Добавь тогда к publicam, если нет. public OnPlayerCommandText(playerid, cmdtext[]) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 (изменено) 1 час назад, Shao сказал: Добавь тогда к publicam, если нет. public OnPlayerCommandText(playerid, cmdtext[]) if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; из-за этого 26 ерроров Изменено 18 июня, 2019 пользователем Александк Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Reyn 85 Опубликовано 18 июня, 2019 9 минут назад, Александк сказал: if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; из-за этого 26 ерроров В инклуде pawncmd можно включить если не ошибаюсь OnPlayerCommandText Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 1 час назад, Shao сказал: Добавь тогда к publicam, если нет. public OnPlayerCommandText(playerid, cmdtext[]) if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена { new packhash[64]; //Создадим массив, в котором будет находится этот хэш strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash if(strcmp(packhash, "Тут твой хэш", false)) { SetTimerEx("ProverkaPack",5000,false, "i", playerid); } return 1; 26 ерроров из-за этого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Александк 0 Опубликовано 18 июня, 2019 (изменено) 1 час назад, Reyn сказал: В инклуде pawncmd можно включить если не ошибаюсь OnPlayerCommandText Изменено 18 июня, 2019 пользователем Александк Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Shao 116 Опубликовано 18 июня, 2019 Только что, Александк сказал: Вставь в OnPlayerCommandText(если есть ерроры - сюда). Т.к в этом паблике аргумента cmdtextа тупо нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 Reyn 85 Опубликовано 19 июня, 2019 10 часов назад, Александк сказал: cmdtext замени на cmd Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 NO2037 1 Опубликовано 19 июня, 2019 (изменено) А что такое "Хеш"? Изменено 19 июня, 2019 пользователем NO2037 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 16Shadows 101 Опубликовано 19 июня, 2019 (изменено) Хеш (хеш-сумма, hash) Изменено 19 июня, 2019 пользователем 16Shadows 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 NO2037 1 Опубликовано 19 июня, 2019 56 минут назад, 16Shadows сказал: Хеш (хеш-сумма, hash) Для чего она нужна? И где ее взять? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
0 16Shadows 101 Опубликовано 19 июня, 2019 Последний раз отвечу в теме. Лучше создайте отдельную тему, если у Вас есть вопросы. Хеш-сумма в основном используется для проверки целостности конкретного объекта (файла, строки и т.д.). Получаются они в результате использования хеш-функций, которых существует достаточно много. Если же говорить о хеше в CRMP (или SAMP), то подразумевается хеш-сумма файлов игры (если не изменяет память, хеш-сумма файла models/gta3.img). Получить её можно, передав в функцию SendClientMessage(...) третьим аргументом строку "$cmd get_custom_hash", а затем воспользовавшись кодом, о котором речь идёт выше. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
помогите сделать проверку на мод-пак. хеш уже есть, нужно сделать стоб человека кикнуло и в чате писало если у него нет мод-пака
Поделиться сообщением
Ссылка на сообщение
Поделиться на другие сайты