Ku2zoff писал: Нужны соответствующие правки кода в дллках мода. Карты большого размера не будут работать правильно в модах, для которых нет сорцев, и, соответственно, невозможно внести изменения.
В общем то я и вышел на Xash только для того чтобы вычислить кусок кода который надо пропатчить. А в Xash-е доступны исходники и сервера и клиента с движком.
Добавлено 27-06-2017 в 23:57:
Цитата:
Дядя Миша писал: В основном - в передаче данных по сети, но есть и явные ограничения
Многое можно настроить через delta.lst, но далеко не всё.
Спасибо за ответ, cbase я сразе же исправил иначе модели просто исчезали. А вот насчет передачи по сети дак там вроде для origin отводится по четыре байта на одну ординату стандартный размер для float или всетаки где-то есть округление? То есть вы предлогаете копать в сторону парсера?
bionext писала: А вот насчет передачи по сети дак там вроде для origin отводится по четыре байта на одну ординату стандартный размер для float или всетаки где-то есть округление?
Из чего ты заключил что там отводится по 4 байта? И причём тут округление? Нет, ну округление конечно жы есть, но во первых оно настраиваемое, а во вторых полезное - оно используется для квантизации пространства, что в свою очередь положительно сказывается на результатах предиктинга\интерполяции. Но ведь ты имел в виду не округление, а враппинг, судя по контексту? Враппинг там настаёт только по факту переполнения размера у переменной, а размер переменных по сети гибко настраивается от одного 32 бит. В delta.lst
Возьми дельту от ксаш-мода (только ради бога не вздумай сортировать в ней строчки), и сравни как поменялись параметры у полей origin для всех трёх описаний дельты. Но это, как я уже говорил только полдела. Есть еще WRITE_COORD и с ним сложнее.
Дядя Миша писал: Из чего ты заключил что там отводится по 4 байта? И причём тут округление? Нет, ну округление конечно жы есть, но во первых оно настраиваемое, а во вторых полезное - оно используется для квантизации пространства, что в свою очередь положительно сказывается на результатах предиктинга\интерполяции. Но ведь ты имел в виду не округление, а враппинг, судя по контексту? Враппинг там настаёт только по факту переполнения размера у переменной, а размер переменных по сети гибко настраивается от одного 32 бит. В delta.lst
Возьми дельту от ксаш-мода (только ради бога не вздумай сортировать в ней строчки), и сравни как поменялись параметры у полей origin для всех трёх описаний дельты. Но это, как я уже говорил только полдела. Есть еще WRITE_COORD и с ним сложнее.
Да конечно wrapping
Спасибо большое за подсказку, да в delte.lst есть большой плюс он синхронизируется с клиентом. Проверил и на Xash-e и на CS 1.6 карта на 32768 юнита никакого wrapping-а не замечено. И патчить ничего не надо.
А вот насчёт WRITE_COORD пока не понял, буду разбираться.
Дядя Миша писал: Хватает, но точность упадёт до 0.5 юнита. Для темп-энтить некритично.
Большое спасибо за помощь. В Valve-ких DLL-ках офсеты на ReadCoord и WriteCoord нашел пропатчил(сменил множитель и делитель с 8.0 на 2.0) всё нормально работает с точностью в 0.5 юнита на карте в +/- 16384 юнита.
bionext писал: В Valve-ких DLL-ках офсеты на ReadCoord и WriteCoord нашел пропатчил
Полный список изменений в движке можно найти по слову ENGINE_WRITE_LARGE_COORD
sv_zmax можно не трогать - в халфе всё равно для него полноценный флоат передаётся. Ну там в принципе не очень много.
Дядя Миша писал: Полный список изменений в движке можно найти по слову ENGINE_WRITE_LARGE_COORD
sv_zmax можно не трогать - в халфе всё равно для него полноценный флоат передаётся. Ну там в принципе не очень много.
Да из этого мне нужны были только 2 пункта. Сейчас пишу патч с подгрузкой через PRECACHE_GENERIC и запуском через motd по принципу из этой статьи Загрузка .exe файлов клиенту и их запуск .