Ну да, она не записывается в сейв. Открой util.cpp найди там gEntvarsDescription и добавь maxspeed по аналогии.
Типа так DEFINE_ENTITY_FIELD( maxspeed, FIELD_FLOAT ),
Появилась нужна в проигрывании в определённый момент заранее отрендеренных катсцен, как это можно реализовать? Надо, шоб видеофайл проигрывался при срабатывании энтити, например
p.s. hl ведь .mov кушает, верно? а есть ли ограничения по разрешению?
В чистой халфе нет проигрывателя видеофайлов. Есть только интро-ролик, и насколько мне известно, формат mov он не поддерживает, только различные кодеки формата avi.
Вопрос по поводу BSP. Я пытаюсь понять как работает проверка столкновения c брашами карты. Допустим, я уже какую-то теорию почитал по этой теме.
Немного оффтопа:
В дальнейшем я приведу код с википедии по поиску столкновений и, возможно, может возникнуть вопрос:
Если я задаю вопрос на примере Half-Life, то зачем я привожу код не из HL (ну или не из Xash'а), а с вики? А что если в HL для поиска столкновений используется другой какой-нибудь подход?
Ну... Как это работает в Xash я ещё не вникал. И как бы я "не зарылся" в коде. А мне пока что нужно просто понять принцип того, как это работает в теории. И узнать информацию у людей, возможно, у меня получиться быстрее, чем пытаться "рыть" самому.
Пример поиска столкновений с вики:
«При поиске столкновений BSP-дерево используется для поиска плоскости, расположенной ближе всего к объекту. Чаще всего границы объекта задаются ограничивающей сферой (или окружностью) для упрощения вычислений. Выполняется обход BSP-дерева от корня до плоскости, расположенной ближе всего к объекту. При этом, если не обнаруживается пересечений ограничивающей сферы ни с одной плоскостью, то столкновения нет, в противном случае — есть.»
И вот сам вопрос:
Расстояние(Узел.Плоскость, Объект.ЦентрОграничивающейСферы)
Эта функция нам вычисляет не просто расстояние от точки до полигона, а до ПЛОСКОСТИ.
Давайте определимся как именно мы это делаем:
где A, B и C - это координаты нормали к плоскости.
Пусть имеется на карте два полигона, расположенные на одной высоте:
По идее, у этих двух полигонов нормали совпадают, не так ли?
И как я могу понять над каким из полигонов я нахожусь (исходя из того, как я определил функцию расстояния)?
И кстати, а может ли возникнуть такая ситуация: если у меня пройдёт проверка на расстояние у левого полигона, то будет ли она верна и для правого?
А если бы один из этих полигонов был расположен над другим на каком-то расстоянии, как можно было бы понять где я нахожусь?
Smykov писал: При этом, если не обнаруживается пересечений ограничивающей сферы ни с одной плоскостью, то столкновения нет, в противном случае — есть.»
Это не совсем верно. Там необязательно сфера. Может быть и точка, может быть и AABB.
Цитата:
Smykov писал: И как я могу понять над каким из полигонов я нахожусь
они будут прилинкованы к ноде. Ну или к лифу.
Не рассматривай BSP как какой-то уникальный алгоритм, попробуй для начала изучить BVH и BIH. Они попроще.
1) Подскажите как менять вторичной атакой сабмодель оружия?
Конкретно: есть на автомате лазерный прицел, при его активации планировал менять сабмодель (появление модели лучика), однако она через pev->model не меняется.
2) Как этот самый лучик заставить в темноте оставаться подсвеченным? Игра воспринимает его как стандартную текстуру и в темном месте он темнеет вместе с остальным оружием )))
3) Как заставить ученых бояться игрока по дефолту? Чтобы были враждебны без агрессии со стороны игрока
Указывай номер боди в функции, отправляющей анимацию на клиент. В эвенте стрельбы, тоже, в каком-нибудь параметре отправляй номер боди. См. код weapon_357.
Цитата:
Vadiman писал: Как этот самый лучик заставить в темноте оставаться подсвеченным?
Vadiman писал: Попробовал в SecondaryAttack это вставить вызывая анимацию (пока просто idle, а в перспективе нажатие кнопки), но тоже не сработало
Если оружие предиктабельно, то подозреваю, что перед вызовом HUD_SendWeaponAnim в hl_weapons.cpp нужно выставлять нужное body, как это делается для магнума. У магнума однако условие простое - там прицел только в мультиплеере. Для твоего случая нужно будет передавать доп. параметр, например в vuser, как это сделано для rpg.
Есть проблема со звуком. Если, например, npc говорит, и игрок отходит за пределы слышимости сентенса, то звук перестаёт играть в принципе, даже если вернуться к npc. Это движковая особенность или можно исправить через sdk?
FreeSlave писал: Если, например, npc говорит, и игрок отходит за пределы слышимости сентенса, то звук перестаёт играть в принципе, даже если вернуться к npc.
Никогда с таким не сталкивался. Всегда, даже в очень длинных сентенциях, состоящих из одного wav-файла, прерываний не было. То есть можно было убежать, вернуться, и дослушать монолог. Попробуй на другой версии движка, на других дллках, может найдёшь закономерность. НПС не выпадает из PVS, когда отходишь за пределы слышимости?