qpAHToMAS писал: теряется возможность использования ^ как самого себя, символа.
ну если нет сочетания с цифрами 0 - 7, то не теряется. К томуже этот символ может понадобится только очень кавайным личностям, остальным он без надобности.
Дядя Миша Расскажи пожалуйста принцип работы ская в Xash и GoldSource в общих чертах. У меня просто заноза сидит одна касательно неба. Я использую тринити рендерерс, а там скайбокс рисуется иначе. Например: солнце на GoldSource и Xash3D слева, а на кастомном рендере справа. Хочу понять как скармливать движку отрисовку неба или же как правильно рисовать небо на кастомном рендере.
Я, если честно, никогда не вдавался в принцип работы конкретно того ская, что использую. Могу сказать, что большая часть кода отвечает за хитрый клиппинг скайбокса, чтобы не дай-бог не нарисовать лишнего, а то и вообще все шесть сторон одновременно.
Вот этот вот код
C++ Source Code:
1
// avoid bilerp seam
2
s = (s + 1) * 0.5f;
3
t = (t + 1) * 0.5f;
4
5
if( s < 1.0f / 512.0f )
6
s = 1.0f / 512.0f;
7
elseif( s > 511.0f / 512.0f )
8
s = 511.0f / 512.0f;
9
if( t < 1.0f / 512.0f )
10
t = 1.0f / 512.0f;
11
elseif( t > 511.0f / 512.0f )
12
t = 511.0f / 512.0f;
13
14
t = 1.0f - t;
убивает швы по краям скайбокса.
Проще говоря можно не парится и рисовать весь скайбокс разом, не заботясь о клиппинге (на гейдеве так и делают).
Дядя Миша,можно ли как то выключить скай бокс во время рендеринга? Мне нужно взять текстуру экрана,но без ская.Как его так выключить? Или сделать чёрным этот скай?
Shapirlic ну ежели ты его рисуешь сам, то когда рендеришь в текстуру просто поставь условие не рисовать скайбокс.
ты никогда не задумывался как ксаш делает левелшоты без худа и прочих надписей? Вот тот же принцип.
как изменить рахмер хула игрока?На сервере SetSize ничего не даёт.В PM я нашёл только pmove->usehull.Можно выбрать номер но нельзя изменить пресеты.Или как то можно???
Shapirlic писал: Можно выбрать номер но нельзя изменить пресеты.Или как то можно???
можно. Но в халфе это дело как-то стрёмно организовано.
На сервере и клиенте есть корочи функции GetHullBounds.
Но они написаны неправильно, код из стандартного SDK не работает.
Пример рабочего кода изменения хуллов можно посмотреть в моём римейке кваки. Но и это еще не всё. Надо перекомпилить карту с учётом новых хуллов и как-то вписать ихние размеры в массив hull_t для всех бмоделей. В противном случае игрок будет коллдить из рук вон плохо, переодически застревать. Почему в халфе сделали такую кривую реализацию хуллов - для меня до сих пор загадка. В ксаше есть возможность задать новые размеры хуллов их gameinfo.txt. А вот для халфы...короче я делал это хаком, пример реализации можно подглядеть всё в том же римейке кваки, но метод стрёмный по нескольким причинам:
1. сервер уже во всю начинает расставлять эдикты и дропать их на пол (а клиент еще толком не проснулся). Для борьбы с этим нехорошим явлением я ввеел задержку на дроп в полторы секунды. Это отчасти помогло, но по-моему после чейнджлевела опять начались глюки.
2. метод годится только для сингла. Можно попробовать менять хуллы прямо из pmove, но там следующая засада - в списке pmove только те эдикты, которые в радиусе 300 юнитов от игрока. То есть на абсолютно все бмодели повлиять не получится. А больше на сервере нет возможности получить доступ к model_t. Вообщем жопа.
Короче почти невозможно ((( Мне то для мультиплеера.А то анимация присяда выходит за хулл присяда и трейс не задевает голову сиящего игрока.Чтоб убить в голову сидящего игрока нужно целится в грудь.Как то это исправить можно? В контре же вроде поправили.Да и в Natural Selection вроде большие монстры нормально трейсятся...
я устал повторять что в контрах есть разные недокументированные возможности. Может даже и хардкодинг в движке специально для CS.
А может хитрые энгфунксы. Да там что угодно может быть.
Вообще говоря для игроков действует квар sv_clienttrace, который скейлит их хуллы, чтобы в игрока было легче попасть.
С хитбоксами у меня всё нормально.Хитбоксы расположены правильно.Только в Халве если хитбокс выходит за хулл то он не учитывается.Как то так.И почему то только у игрока.У например Гарга setsize маленький.У него SetObjectCollisionBox большой,поэтому в него всё попадает.но для игрока эта функция опятьтаки ничего не даёт
VEC_DUCK_HULL_MIN is (-16, -16, -18) and VEC_DUCK_HULL_MAX is (16, 16, 18) giving a ducking size of 32x32x36.
непомогает?
вообще мне кажется хулы для колизии, для дамага хитбоксы.
както можно врубить отображение хитбоксов в игре и посмотреть, может он уезжает кудато, в контре такое тоже бывает, модель сдвинута от хитбокса, есть еще такая модель игрока где другая анимация вприсяде, там модель от хитбокса на головы 2 сдвинута.