Привет форумчане! Недавно в голову пришла идея, как запретить антизаблёв через аддоны, не отключая все остальные. Есть в Source такая штука как sv_consistency. Простая проверка CRC файла клиента и сервера.
Почему бы не проверять файл, который отвечает за эффект экрана заблёва? Подумал я. Счастливый я вписал файл в список проверки и был неприятно удивлён.
Проверки не работают на файлах внутри файловой системы Valve (файлы .vpk). Если же выгрузить файл из vpk и сымитировать его положение как в файловой системе Valve, то проверка производится, но у клиента уже этот файл не находит и его кикает за не совпадение.
Стоит учитывать ещё один факт. Аддоны клиента могут вызывать кик за несовпадение файлов (часто из-за скриптов на оружие). То есть идея вполне осуществима.
Назревает вопрос. Как указать проверку файлов в файловой системе Valve (файлы в файлах .vpk)?
#1
Отправлено 27 Сентябрь 2020 - 3:36
- valerun и Lesdure это нравится
#2
Отправлено 27 Сентябрь 2020 - 14:04
Привет форумчане! Недавно в голову пришла идея, как запретить антизаблёв через аддоны, не отключая все остальные. Есть в Source такая штука как sv_consistency. Простая проверка CRC файла клиента и сервера.
Почему бы не проверять файл, который отвечает за эффект экрана заблёва? Подумал я. Счастливый я вписал файл в список проверки и был неприятно удивлён.
Проверки не работают на файлах внутри файловой системы Valve (файлы .vpk). Если же выгрузить файл из vpk и сымитировать его положение как в файловой системе Valve, то проверка производится, но у клиента уже этот файл не находит и его кикает за не совпадение.
Стоит учитывать ещё один факт. Аддоны клиента могут вызывать кик за несовпадение файлов (часто из-за скриптов на оружие). То есть идея вполне осуществима.
Назревает вопрос. Как указать проверку файлов в файловой системе Valve (файлы в файлах .vpk)?
Это наверно надо написать разрабам обновления, пока есть возможность и что-то изменить.
#3
Отправлено 27 Сентябрь 2020 - 20:06
Это наверно надо написать разрабам обновления, пока есть возможность и что-то изменить.
Мы 7 лет преодолевали невзгоды, низкий онлайн и баги своих же плагинов. Собирали крутые сборки и обновляли их. Библиотеками открывали новые горизонты. Мы смогли забраться в игру так глубоко, что научились вызывать функции C++ из SourcePawn, находя нужные сигнатуры. Мы преодолели и это обновление. Преодолели сбитые сигнатуры, сломанные библиотеки и плагины. Нас толкнули назад, но мы с новой силой ринулись вперёд!
Ты уверен, что мы сами с этим не справимся?
#4
Отправлено 28 Сентябрь 2020 - 4:09
Мы 7 лет преодолевали невзгоды, низкий онлайн и баги своих же плагинов. Собирали крутые сборки и обновляли их. Библиотеками открывали новые горизонты. Мы смогли забраться в игру так глубоко, что научились вызывать функции C++ из SourcePawn, находя нужные сигнатуры. Мы преодолели и это обновление. Преодолели сбитые сигнатуры, сломанные библиотеки и плагины. Нас толкнули назад, но мы с новой силой ринулись вперёд!
Ты уверен, что мы сами с этим не справимся?
Раз уж пока нет совсем никаких идей, то чисто для затравки могу попробовать дать относительно неплохое направление возможного решения проблемы.
1. Если не лень скачай любой антизаблев.
2. Напиши и поставь на сервере плагин, который, например, при вводе команды !check выводит в чат вводившему команду игру список значений переменной mat_postprocess_enable каждого игрока. И проверь, будет ли с антизаблевом у тебя значение 0. Сразу скажу, что скорее всего нет, так как там, наверняка удаляется просто текстура. Но я больше, чем уверен, что есть именно читы, которые отрубают антизаблев именно через подмену значений переменной mat_postprocess_enable на 0. Так что, возможно, данный механизм тебе может избавиться от игроков с антизаблевом, которые юзают его не через аддон, а через чит. Например, чтобы быть с антизаблевом на серве с заблокированными аддонами.
P.S. Я в свое время таким плагином пару-тройку поймал игроков. Не знаю уж, то ли это был баг, то ли действительно хитрожопые. Но учитывая, что срабатывал он крайне редко, посмею предположить, что работал как раз исправно.
-----------
А вообще, если я правильно понял, то Dragokas уже разбирал эту проблему. https://github.com/a...mod/issues/1181
И как я понял ошибка была в том, что DirectoryListing dir = OpenDirectory("./missions", true, NULL_STRING ); - работает только для внутренних файлов.
А для того, чтобы получать доступ к файлам в .vpk надо DirectoryListing dir = OpenDirectory("missions", true, NULL_STRING ); - то есть просто без ./
Сообщение отредактировал 8rutu5: 28 Сентябрь 2020 - 4:10
#5
Отправлено 30 Сентябрь 2020 - 20:17
Раз уж пока нет совсем никаких идей, то чисто для затравки могу попробовать дать относительно неплохое направление возможного решения проблемы.
1. Если не лень скачай любой антизаблев.
2. Напиши и поставь на сервере плагин, который, например, при вводе команды !check выводит в чат вводившему команду игру список значений переменной mat_postprocess_enable каждого игрока. И проверь, будет ли с антизаблевом у тебя значение 0. Сразу скажу, что скорее всего нет, так как там, наверняка удаляется просто текстура. Но я больше, чем уверен, что есть именно читы, которые отрубают антизаблев именно через подмену значений переменной mat_postprocess_enable на 0. Так что, возможно, данный механизм тебе может избавиться от игроков с антизаблевом, которые юзают его не через аддон, а через чит. Например, чтобы быть с антизаблевом на серве с заблокированными аддонами.
P.S. Я в свое время таким плагином пару-тройку поймал игроков. Не знаю уж, то ли это был баг, то ли действительно хитрожопые. Но учитывая, что срабатывал он крайне редко, посмею предположить, что работал как раз исправно.
-----------
А вообще, если я правильно понял, то Dragokas уже разбирал эту проблему. https://github.com/a...mod/issues/1181
И как я понял ошибка была в том, что DirectoryListing dir = OpenDirectory("./missions", true, NULL_STRING ); - работает только для внутренних файлов.
А для того, чтобы получать доступ к файлам в .vpk надо DirectoryListing dir = OpenDirectory("missions", true, NULL_STRING ); - то есть просто без ./
вот тут первый в списке плагин который чекает и кикает автоматом тех у кого неправильный mat_postprocess_enable и не только
#6
Отправлено 30 Сентябрь 2020 - 21:41
mat_postprocess_enable
Можно проверить через SMAC
DirectoryListing dir = OpenDirectory("./missions", true, NULL_STRING );
А вот тут не то направление мысли. Разве есть возможность копаться в файлах клиента через Sourcemod? Поэтому идея с плагином под большим сомнением. Если говорить о sv_consistency, то остаётся только редактирование файла белого списка. Он выглядит примерно так
whitelist { left4dead2\pak01_dir.vpk check_crc left4dead2\steam.inf check_crc left4dead2_dlc1\pak01_dir.vpk check_crc left4dead2_dlc2\pak01_dir.vpk check_crc left4dead2_dlc3\pak01_dir.vpk check_crc update\pak01_dir.vpk check_crc }
Но как заставить белый список смотреть внутрь файловой системы Valve?
#7
Отправлено 04 Октябрь 2020 - 23:24
А вот тут не то направление мысли. Разве есть возможность копаться в файлах клиента через Sourcemod?
Стандартной возможности нету.
Мы как-то с dr.lex обсуждали этот вопрос, и уперлись на необходимости в хороших знаниях C++ для доработки этого расширения под нужную задачу..
А так, да, лучше написать разрабам, вдруг клюнут.
Темы с аналогичным тегами vpk, consistency
Игровые сервера →
Left 4 Dead 2 →
cfg в vpk аддонеАвтор VAmvm , 12 янв 2020 cfg, vpk, аддон, l4d2 и 3 еще... |
|
|
||
Игровые сервера →
Counter-Strike: Source →
FastDL: Загрузка VPK файла/ов клиенту ..Автор newbie , 23 окт 2019 fatsdl, vpk |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
GCFScape vpkАвтор Nekro , 02 июл 2016 GCFScape pvk, GCFScape, vpk |
|
|
||
|
Игровые сервера →
Left 4 Dead 2 →
возможно редактировать vpk ?Автор Apocalypse 2 , 08 фев 2016 vpk, файлы |
|
|
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных