Маппер
Участник
Пользователь
- Сообщения
- 156
- Реакции
- 205
- Помог
- 5 раз(а)
Counter-Strike хоть и имела много версий за свою историю, до сих пор имеет ряд ошибок и недоработок. Некоторые известны многим и уже решены в re- проектах, либо находятся на стадии решения, некоторые известны немногим и существуют в латентном состоянии.
Ниже я приведу некоторые примеры с описанием и трудностями, возникающими при попытках их устранить. Если найдутся желающие проделать нужную работу в альтруистичном порядке, вся аудитория контры будет очень рада.
1. Entity, раунды, ReGameDll
Суть такова: контра была сделана как мод HL и, следовательно, несет в себе ее механику. Так как в HL нет понятия раундов, часть entity может работать не совсем корректно. Плюс, для большей насыщенности не хватает некоторых entity. Подробно:
а) обоюдное использование entity player_weaponstrip и game_player_equip могут вызвать зависание контры в результате взаимной направленности.
б) func_pushable не возвращается на новую позицию при новом раунде.
в) func_train не передвигается у игроков в спектрах.
г) есть кнопки, триггеры, активирующиеся при следующих условиях: игрок "юзает", наступает/дотрагивается, уничтожает другой объект. Однако, хочется добавить условие "на/в" зоне/кнопке. Путем маппинга делать зону с реюзом через 0.01 секунду опасно: обрушает сервер. Если удастся добавить это программно в entity - жизнь определенно наладится, хоть это и не решит проблемы с безработицей.
д) возможно ли добавление новых entity в ReGameDll и при этом не нарваться на VAC? Я не говорю о каких-то сложных вещах, как ветер, сложный рендеринг, зеркала (хотя они были в начальной версии HL). Тут речь идет о некоторых простых функционалах. Вращающиеся, двигающиеся модели (модель без анимации, движение задается маппингом), активация определенной анимации (также при маппинге), некоторые простые изменения в работе существующих entity.
2. -subdivide 256
Простым языком: на карте fps графически зависит от двух основных параметров wpoly (полигоны карты), epoly (модельные полигоны). Чем они выше, тем хуже fps. Нас интересуют первые. При компиляции карта разделяется на полигоны параметром subdivide каждые 240 текстурных пикселя, при этом его можно выставить и на 256(т.е. меньше будет полигонов). Проблема в том, что в последствии происходит ошибка расчетов, 256 преобразуются в 256,0001, что выходит за пределы движка.
Подробно о количестве полигонов и делении на полигоны тут: http://cs-mapper.com/tutorials/t6rspeeds32.shtml
Частичное решение предложил XaeroX: http://hlfx.ru/forum/showthread.php?s=&threadid=2307&highlight=%E4%EE%E1%E0%E2%EB%FF%E5%EC
Работает только в небольшом количестве случаев.
Данная проблема довольно сложная даже для понимания. Некоторое время сам пытался разрешить проблему. Поэтому предлагаю списаться с желающими решить ее через ЛС.
3. Ограничения.
Тут уже вопросы к знатокам: можно ли снять ограничения в 512 пикселей для текстур, 256 для неба, ограничения в количестве entity и т.д.?
Обусловлены они чисто возможностями железа того времени или это максимальные возможности движка?
Ниже я приведу некоторые примеры с описанием и трудностями, возникающими при попытках их устранить. Если найдутся желающие проделать нужную работу в альтруистичном порядке, вся аудитория контры будет очень рада.
1. Entity, раунды, ReGameDll
Возможно, уже что-то решено в ReGameDll, но я ввиду несовершенства своего человеческого индивидуума еще не в курсе
а) обоюдное использование entity player_weaponstrip и game_player_equip могут вызвать зависание контры в результате взаимной направленности.
б) func_pushable не возвращается на новую позицию при новом раунде.
в) func_train не передвигается у игроков в спектрах.
г) есть кнопки, триггеры, активирующиеся при следующих условиях: игрок "юзает", наступает/дотрагивается, уничтожает другой объект. Однако, хочется добавить условие "на/в" зоне/кнопке. Путем маппинга делать зону с реюзом через 0.01 секунду опасно: обрушает сервер. Если удастся добавить это программно в entity - жизнь определенно наладится, хоть это и не решит проблемы с безработицей.
д) возможно ли добавление новых entity в ReGameDll и при этом не нарваться на VAC? Я не говорю о каких-то сложных вещах, как ветер, сложный рендеринг, зеркала (хотя они были в начальной версии HL). Тут речь идет о некоторых простых функционалах. Вращающиеся, двигающиеся модели (модель без анимации, движение задается маппингом), активация определенной анимации (также при маппинге), некоторые простые изменения в работе существующих entity.
Была идея написать плагин, который бы читал mapname_data.txt и применял к entity все необходимые изменения, которые невозможно применить при маппинге. В той же HL это сделано при помощи скриптов. Единый плагин с чтение БД - дабы не создавать по плагину к каждой карте.
Простым языком: на карте fps графически зависит от двух основных параметров wpoly (полигоны карты), epoly (модельные полигоны). Чем они выше, тем хуже fps. Нас интересуют первые. При компиляции карта разделяется на полигоны параметром subdivide каждые 240 текстурных пикселя, при этом его можно выставить и на 256(т.е. меньше будет полигонов). Проблема в том, что в последствии происходит ошибка расчетов, 256 преобразуются в 256,0001, что выходит за пределы движка.
Подробно о количестве полигонов и делении на полигоны тут: http://cs-mapper.com/tutorials/t6rspeeds32.shtml
Частичное решение предложил XaeroX: http://hlfx.ru/forum/showthread.php?s=&threadid=2307&highlight=%E4%EE%E1%E0%E2%EB%FF%E5%EC
Работает только в небольшом количестве случаев.
Данная проблема довольно сложная даже для понимания. Некоторое время сам пытался разрешить проблему. Поэтому предлагаю списаться с желающими решить ее через ЛС.
3. Ограничения.
Тут уже вопросы к знатокам: можно ли снять ограничения в 512 пикселей для текстур, 256 для неба, ограничения в количестве entity и т.д.?
Обусловлены они чисто возможностями железа того времени или это максимальные возможности движка?