HLFX.Ru Forum > Разработка игр > Наши проекты > Xash3D > Реально ли, используя данные из исходников Xash3D сделать логгер для CS 1.6? То есть программу, которая будет тупо записывать координаты игроков, например в файл.
Реально ли, используя данные из исходников Xash3D сделать логгер для CS 1.6?
Да, скажу сразу, с перехватом сетевых пакетов проблемы не возникнет, уже проверил. Видно как пакеты от игроков к серверу, так и к серверу от игроков, ибо сеть на хабе.
Сейчас пытаюсь осилить функцию Huff_DecompressPacket и "вывести" её наружу dll-ки, но что-то пока не получается...
А вопрос, собственно, такой. Допустим, у меня таки получится декомпрессировать пакет. Смогу ли я получить из него хоть какую-нибудь информацию? Ведь, вроде как, CS это "надстройка" над HL, значит и структура пакетов должна быть примерно одинаковой ?
Или в CS 1.6 пакеты сжимаются другим методом и все эти мероприятия бесполезны?
Кстати, где можно поподробнее посмотреть структуру GoldSrc пакетов, а то я понял, что:
1-е 2 байта это его порядковый номер, причём в развёрнутом виде, то есть 0-й и 1-й байт нужно поменять местами, но где этот номер отлавливается в Xash3D я так и не нашёл.
Далее 2 байта, которые, похоже, постоянно равны нулю.
4-й и 5-й байт тоже похожи на какой-то счётчик,
6-й постоянно 0
7-й либо 0 либо 0х80
а дальше, насколько я понимаю, идут данные в сжатом виде.
Пытался найти место, где пакет "разворачивается" на данные, но не нашёл. Может, потому, что впервые пытаюсь копаться в столь большом для меня коде. Раньше на Си писал только консольные приложения, в основном для облегчения рутинных расчётов во время учёбы.
Да, для удобства "копания" в коде соорудил с помощью Doxygen документацию по Xash3D.
(Не сочтите ссылку на сайт за рекламу, сервер давно почил, ибо мне одному его держать надоело, интерес к стрелялке угас, зато возникло желание понять "а как эта стрелялка вообще работает?". Так что используется этот сайт для моих нужд. Надо будет снести заглавную страницу за ненадобностью.)
PS: Не ругайтесь, если что, ибо я действительно в этом деле нуб.
PPS: Утром-днём перечитаю сообщение, и, если форум позволяет, возможно что-то исправлю. Ибо голова почти не соображает, и спать осталось менее 3-х часов.
Оххх.. просмотрел беглым взглядом пост. Ну нуб-нубом.
Да, совсем забыл спросить. А что такое "предиктинг" из-за которого все проблемы? Можно ссылкой, можно на английском.
Первые четыре байта - это номер последовательности пакета. Он может дополняться различными флагами, например (1<<31), это и есть твои 80, обозначающие гарантированный пакет вроде.
Вторые четыре байта - номер ответа, аналогично дополняется. Дальше идёт код команды, а дальше зависит от того, какая это команда. Потом в GoldSrc всё это, начиная от номера команды, ещё и перемешивается функциями типа Munge2, Munge3. В общем, сложное это дело...
в разборе структуры 1.6 смысла нет, скилла этого не добавит, точность данных и какие именно можешь посмотреть в delta.lst, все типы месаг можешь посмотреть на alliedsmods, все структурки сообщений зарегестрированые клиентом можешь глянуть там же или в sdk.
qpAHToMAS что-то мне подсказывает, что начинать с эмулятора закрытого сервера как-то слишком жёстко. Тем более, что мой комп физически не способен потянуть Battlefield 3. marikcool, знакомые лица
Не, смысл есть. Не столько для скилла, сколько для других нужд.
fire64 писал: А может сплойт, чтобы сервера валить.
Читеры, хакеры - для меня это одно и то же. Это люди, которые пытаются воспользоваться недокументированными возможностями и дырами в своих интересах, вместо того, чтобы вести честную игру.
Поздравляю, все догадки не верны.
В общем, всё начилось с такой ситуации на работе.
Не, я конечно, всё понимаю, контра-святое, но не когда дел дофига. В итоге получаем - много-много играем в контру, осознаём что завтра дед-лайн, производим кирпичи и в панике носимся-работаем.
В общем, долго-ли коротко, выключать им сервер различными способами как-то поднадоело, ибо таки "ввёлся" в курс дела, и сижу, потихоньку, работаю.
Переодически, правда, гашу им сервер, когда сильно шуметь начинают, но это бывает очень редко.
А с протоколом хотел разобраться, чтобы вносить им в игру различные развлечения, аля "внезапный" kill, телепортация, и прочие радости.
HLFX.Ru Forum > Разработка игр > Наши проекты > Xash3D > Реально ли, используя данные из исходников Xash3D сделать логгер для CS 1.6? То есть программу, которая будет тупо записывать координаты игроков, например в файл.