![]() |
Показать все 10 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Сложные задачи про pfnPrecacheGeneric и pfnClientCommand (https://hlfx.ru/forum/showthread.php?threadid=1111)
Сложные задачи про pfnPrecacheGeneric и pfnClientCommand
Речь об античите для Counter-Strike 1,6
Вообщем появилась небольшая цель - написать античит с самоскачивающимся клиентом. Вообще античит написанный мной уже существует, прекрасно функционирует больше года по многим сетям Росии и Украины, зарекомендовав себя очень хорошо. Хотелось бы сделать его клиенто-независимым.
Первое что взбрело в голову pfnPrecacheGeneric. файл-то передает.... НО.
1) движок матюкается если указать расширения *.exe или *.dll. Видимо защита есть. - имхо не проблема или движок подправить, либо файл передовать как тотже *.asi. Отвечать даже на это не стоит - это чтоб вы не писали что такой трабл будет.
2) как запустить на исполнение переданный файл? может можно как то запустить ехешник удаленно через кс????
3) если бы удалось скачать в ту папку где лежит hl.exe, то можно было либо *.asi файл либо же opengl32.dll, а их загружать автоматом, но движок не дает скачать в эту директорию, все берет и передает в папку cstrike. как я не извращался и так "..\" и вот так ".\..\" и чертовой кучей пободных комбинации......
4) внутри папки cstrike нету места куда можно как нибудь подсунуться чтобы запустить код на исполнение????
это был первый вопрос. второй.
вот даю я команду
ef.pfnClientCommand(pEntity, "alias");
в результате которой у игрока исполняется команда "alias" в его консоли. в результате ее в консоли клиента выводится список алисов. Можно ли этот список алиасов просто взять и прочесть на серваке.
Вообщем необходимо получить список всех клиентских алиасов.
__________________
3)
const char* ModDir = pEngfuncs->pfnGetGameDirectory();
Это будет собственно директория мода а не игры.
const char* GameDir[256];
GetModuleFileName(GetModuleHandle(NULL),GameDir,255);
char * strip = GameDir + strlen(GameDir);
while(strip>=GameDir && *strip!='\\') --strip;
strip[1]=0;
А вот это уже непосредственно директория с hl.exe.
Troll по мне, так директорию с халфой выгоднее читать из реестра.
Дядя Миша а если в реестре пусто? Думаешь, все ставят игру инсталлятором?
__________________
XaeroX без записи в реестре хдпаки не ставятся и еще много чего. Обычно у народа есть такой маленький файлик - импорт реестра с сидикеем и путем к халфе.
путь еще можно узнать по GetCommandLine.... эт так кстати...
но это все не то... мне нужен не путь а файл залить в извесный путь.
насчет второй проблемы, вариант c condump в принципе применим, но я бы его назвал малоэлегантным...
как я понимаю с сервака функциями документированными в hl sdk узнать результат выполнения функции на клиенте нельзя....
ладно, а локально как может есть какая функция в дллках в процессе hl.exe которую можно перехватить, которая будет вызываться при каждой команде из клиентской консоли???
__________________
Реестр это неудобно. Самый лучший вариант пути я описал.
Насчёт информации в консоли - да alias, затем
condump.
Надо короче выделить всё что в консоли, потом куда-то это записать. Потом можно через PlayerInfo_ValueForKey записать консоль или ещё что-то в таком роде...
//============================================
А вообще, вот я конечно с серверным кодингом особо не связывался, почему нельзя бы просто создать поток античита, без всяких скачиваний?
Нет, короче не выходит, чуть-чуть я покопался, нет вариантов...
Временная зона GMT. Текущее время 06:50. | Показать все 10 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024