Перейти к содержанию
Авторизация  
SHOROOP

Использование проверки на пользовательский модпак.

Рекомендуемые сообщения

EugeneS

Что такое "ЗначениеЭталонногоХэша"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Jon_Gafney

Что такое "ЗначениеЭталонногоХэша"

 

это хэш нужного пака при котором пустит на сервер
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EugeneS

это хэш нужного пака при котором пустит на сервер

 

И как правельно писать?

if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если мод пак mp_center-pack.img

Изменено пользователем EugeneS
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Jon_Gafney

И как правельно писать? так: $response get_custom_hash center-pack или так: $response get_center-pack

 

у тебя есть пак который ты хочешь поставить на свой сервере и тебе нужно узнать его хэш и записать на место "ЗначениеЭталонногоХэша" а узанть ты можешь очень просто если у тебя установлен пак то напиши в onplayerconnect строчку
SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Лёша,обьясни,почему если не установлен модпакк,не кикакет а перезапускает на сервер?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Jon_Gafney
if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена 
{
new packhash[64]; //Создадим массив, в котором будет находится этот хэш
strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
{
SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
Kick (playerid); //и кикнем его с сервера.
}
return 1;
}
ты это кидал в onplayerconnect?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Да

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Саша7777

Тоже не кикает,а переподключает на серв.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Jon_Gafney

его мы проверять и будем. В шапке OnPlayerCommandText используем функцию strfind.

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена 
{ 
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш 
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash 
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны 
   { 
       SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии 
       Kick (playerid); //и кикнем его с сервера. 
   } 
   return 1; 
}

на месте "ЗначениеЭталонногоХэша" пришем свой хэш

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

в OnPlayerConnect Добавил

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");

 

В 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)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}

Вопрос: Где Взять ЗначениеЭталонногоХэша ?!?!?!

Изменено пользователем Anonymous

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Jon_Gafney

в OnPlayerConnect Добавил

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");

 

В 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)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}

Вопрос: Где Взять ЗначениеЭталонногоХэша ?!?!?!

 

ЧИТАЙ ВЫШЕ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

ЧИТАЙ ВЫШЕ

 

Напиши пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Сначало это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
В чате будет что-то типо того "sa5sa98sa1"-это будет значение эталонного хэша!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

Сначало это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
В чате будет что-то типо того "sa5sa98sa1"-это будет значение эталонного хэша!

 

Куда сначала ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

Помогите ребята, Всё сделал, Но не знаю что писать за место ЗначениеЭталонногоХэша??

Помогите прошу!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Куда сначала ?

 

В OnPlayerCommandText !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

В OnPlayerCommandText !!!

 

А Это НАДО 7

 

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Да!!!

ойй....

 

В OnPlayerConnect :

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");
В шапке 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); //И, к примеру, выведем текущий хэш в чат игроку.
   return 1;
}

Потом заходиш на сервер и в чате будет что-то типо того:aasd7asd90as!

Копируешь это!

и потом вместо:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   SendClientMessage (playerid, 0xFFFFFFFF, packhash); //И, к примеру, выведем текущий хэш в чат игроку.
   return 1;
}
Пишешь это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
И в строку "ЗначениеЭталонногоХэша" пишешь что было в чате "aasd7asd90as"

Вот и всё!

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

Да!!!

ойй....

 

В OnPlayerConnect :

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");
В шапке 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); //И, к примеру, выведем текущий хэш в чат игроку.
   return 1;
}

Потом заходиш на сервер и в чате будет что-то типо того:aasd7asd90as!

Копируешь это!

и потом вместо:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   SendClientMessage (playerid, 0xFFFFFFFF, packhash); //И, к примеру, выведем текущий хэш в чат игроку.
   return 1;
}
Пишешь это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
И в строку "ЗначениеЭталонногоХэша" пишешь что было в чате "aasd7asd90as"

Вот и всё!

 

Вот теперь более менее понятно, ПРобую...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

Всё сделал!! УРА УРА

 

Как сделать чтобы тебя кикало ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

У самого проблема!Только перезапускает!!

Попробуй это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
вставить не в OnPlayerCommandText а в OnPlayerConnect

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

У самого проблема!Только перезапускает!!

Попробуй это:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1) //Если ответ получен и искомая строка найдена
{
   new packhash[64]; //Создадим массив, в котором будет находится этот хэш
   strmid(packhash, cmdtext, 26, strlen(cmdtext)); //Разделяем строку cmdtext и результат разделения - искомый хэш - запишем в массив packhash
   if (strcmp(packhash, "ЗначениеЭталонногоХэша", false)) //Если строки различны
   {
	   SendClientMessage (playerid, 0xFFFFFFFF, "У Вас не установлен или установлен неверный пакет модификаций."); //Выведем игроку сообщение о несоответствии
	   Kick (playerid); //и кикнем его с сервера.
   }
   return 1;
}
вставить не в OnPlayerCommandText а в OnPlayerConnect

 

НЕ НЕ помогает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость Anonymous

Всё Всем Спасибо, Кто помогал!

 

Я всё сделал!

 

Если не установлен то кикает и.т.д, УРА УРА! http://forum.gs-games.ru/public/style_emoticons/default/cool.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DrYou97

Всё Всем Спасибо, Кто помогал!

 

Я всё сделал!

 

Если не установлен то кикает и.т.д, УРА УРА! http://forum.gs-games.ru/public/style_emoticons/default/cool.gif

 

Как ты сделал,чтобы кикнуло?!А не перезапускало?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.