qpAHToMAS оставить последнюю активную, да и всего делов.
Кстати можно фпс с дистанцией уменьшать. Чем дальше от игрока - тем меньше фпс. При условии конечно, что его вообще видно.
F:\Users\ZackSinastra\Downloads\xash_demo.rar: Ошибка CRC в xash_demo\SDK\source_code\Jan2012-19.rar, файл повреждён
С:\Work\2012\Games\Build\Xash3D\Installer\xash_demo.rar: Ошибка CRC в xash_demo\SDK\source_code\Jan2012-19.rar, файл повреждён
D:\Games\Makemod\2011\SF\ENGINE\Xash3D\STP\xash_demo.rar: Ошибка CRC в xash_demo\SDK\source_code\Jan2012-19.rar, файл повреждён
- три раза скачивал эффект, одно и тоже.
__________________
- Пока еще думаю?
- О чем?
- О моих модификациях: Logical, Scarface, HardcoreREALisM, Blue Shift-FX, Left 1 Dead, Max Payne 2 SFX-Source, Max Payne SFX-CSCZ, HL-OP: GOUP, Afraid Of Monster: Don't look behind you
- Когда они выйдут?
- Еще неизвестно, хотелось бы ускорить HardcoREALisM, а то начал уже переделывать в S.T.A.L.K.E.R.
StraighF там в мульти_ватчере гляди внимательнее: поля "state" И "logic" принимают как численные значения, так и слова.
Но без прочерка! То есть "turn on" не имеет прочерка, если его туда вписывать. Но можно вписать порядковый номер стейта.
Просто я вижу, что ты и в коде разбираешься, сравниваешь поля для большей продуктивности.
Я сначала хотел эти поля типа string сделать, чтобы маппер сам значения "!AND" или "NAND"вводил . Потом заглянул в код, какие целые значения им соответствуют, так что в хаммере это выглядит так:
__________________
Женщина - содержимое презерватива при полной инверсии пространства.
StraighF не State To Change, а State To Watch.
Кстати существует интересная возможность задать стейт персонально для каждой цели (в этом случае внешний указывать не надо вообще, а то хаммер любит проставлять ему дефолтное значение). И вот тут наши писменные стейты приходят на помощь.
Допустим мы хотим, чтобы ватчер следил за кнопкой с именем button1 когда её состояние ON. А за кнопкой button2 когда её состояние OFF, и за пулемётом turret1, когда его состояние In use.
Тогда мы пишем на манер мультименеджера:
button1 on
button2 off
turret1 in use
И тут становится понятно, к чему я ввел описание стейтов словами - ведь их запомнить гораздо легче, чем вспоминать что номер 1 - это стейт офф, номер два стейт тарн он и.т.д.
Цитата:
a-kush-er писал: а как же MoveWith?
Совсем забыл сказать. Ксаш реагирует на оба написания: можно назвать поле parent а можно movewith. Это сделано специально, на случай если у вас есть карта под спирит, чтоб не сидеть и не переименовывать.
Также имеется энтить trigger_changeparent.
Все её поля полностью аналогичные энтите trigger_changetarget кроме поля m_iszNewTarget. Вместо него есть поле m_iszNewParent.
Сам я эту энтить не тестировал, но проблем быть не должно.
так, наконец добрался до ксаша. демку прошёл, всё работает. глюк с зеркалом наблюдается. звука нет, не могу понять в чём дело -- сделал чистую установку, всё равно не работает. и почему то при закрытии игры из меню зависает (хотя все конфиги сохраняет) -- куда копать, какие логи прикладывать?
да не знаю я, почему у тебя звука нет. Мне больше никто на такое не жаловался, да и я в звуке ничего не трогал.
С какой версии звук пропал вообще?
А то может его и на старых уже нету, и вообще дрова слетели?
Дядя Миша писал: не State To Change, а State To Watch.
Ок, исправлю. Тогда чуть позже ещё кое-что в ЛС уточню, чтобы из-за одной строчки не перезаливать фгд.
Цитата:
Дядя Миша писал: Кстати существует интересная возможность задать стейт персонально для каждой цели...
Это я понял. Вроде на roatating_test заметил (ну и в коде, естественно). Для этого я пометил в скобках "Target (SmartEdit for multiple targets)". В Хаммере только смартэдит. Это уже нужно помечать в документации, чтобы знали.
Цитата:
a-kush-er писал: а как же MoveWith?
MoveWith есть в фгд. Правда использует параметр "parent". По-мне, так кошерней звучит. Хотя посмотрим мнение сообщества.
Цитата:
Дядя Миша писал: Также имеется энтить trigger_changeparent.
Добавил у себя в фгд.
Как и говорил, у Дядя Миши кое-что уточню ещё и тогда выложу правленую версию.
__________________
Женщина - содержимое презерватива при полной инверсии пространства.
Я же не все энтити вам описал, там еще есть.
generator - описывал в предидущем посте, но в FGD не увидел.
func_clock - часы из старых версий ксаша. Одна энтить - одна стрелка часов. Поля:
"type" - 0 секунды, 1 - минуты, 2 - часы
"curtime" - полное текущее время, разделенное точками (время с котрого пойдут часы при старте карты). Например 11.48.32 - одиннадцать часов, сорок восемь минут, тридцатьдве секунды. Тут есть одна тонкость - поле "curtime" работает ТОЛЬКО ДЛЯ часовой стрелки. Часовая стрелка автоматически найдет минутную и секундную (в радиусе своей длины) и сама выставит им нужное время.
"event" - опять таки актуальна лишь для часовой стрелки. Когда меняется час посылает на это поле сначала кол-во часов, а затем активирует его.
Изначальна эта конструкция предназначалась для работы в паре с энтитей generator. Если нацелить её выход на generator то на его выходе получится ровно столько импульсов, сколько сейчас часов. К выходу генератора можно прицепить амбиент_генерик со звуком боя. Если прицепить его напрямую к часовой стрелке, то он будет выдавать всегда ровно 1 звук при смене часа.
Некоторые дополнительные возможности у обычных энтить:
func_conveyor - спаунфлаг 4 - изначально выключен.
USE_SET с параметром устанавливает конвейеру новую скорость (но не применяет её). USE_SET без параметра сбрасывает скорость на 0, т.е. выключает конвейер. USE_RESET применяет новую установленную скорость к конвейеру (и заодно включает его). Скорость конвейера (и далее для некоторых других энтить) является не настоящей скоростью, а всего лишь её фактором от значения, заданного маппером в диапазоне -1 - 1. При отрицательных значениях также происходит реверс.
func_rotating - спаунфлаг 1024 - остановка в стартовой позиции. Именно этот флаг был использован на карте parent_demo, чтобы левый лифт всегда возвращался в исходное положение, а не останавливался депопало.
USE_SET без параметра выключает вентилятор, USE_SET с параметром ставит новую скорость, по типу как я описал для конвейера.
Единственное отличие здесь в том, что установка скорости для выключенного вентилятора приведет к его включению (и multi_watcher корректно отработает этот момент).
Новая энтить - env_local. По аналогии с env_global. Предназначена для наблюдения ватчером, её практически полный аналог в спирите - env_state.
Спаунфлаг 1 - START ON
delay - задержка перед включением. (STATE - TURN ON)
wait - задержка перед выключением (STATE - TURN_OFF)
При включении активирует свою цель с USE_ON, при выключении - с USE_OFF.
Еще маленькая ремарка: в спирите как мы помним каждая энтить может быть мастером для другой, благодаря системе статусов. Но есть существенное ограничение - мастер может быть лишь один. Это неудобно. Поэтому в ксаш-моде кол-во мастеров не ограничено. Достаточно лишь, чтобы у них совпадали имена. Пример реализации - пулемёты с лазерными наведением. Как вы можете видеть когда env_counter досчитает до нуля, то все индикаторы перейдут в STATE_ON и ватчер, который за ними наблюдает заблокирует стрельбу.
func_button - новый спаунфлаг: DAMAGED AT LASER. 128
Внимание! Данный флаг работает только для некрутящейся кнопки, поскольку для крутящейся его место уже занято ориентацией, вращения кнопки. Данный флаг позволяет нажать кнопку лишь при помощи лазера.
Это необязательно должен быть env_laser. Вполне сгодится и EGON.
momentary_rot_door - псевдоним для momentary_rot_button со спавнфлагом 1 (door hack). Просто для удобства.
Новое поле m_flStartPos - от нуля до еденички. Не меняет положения энтити в пространстве а просто задает его текущее положение. Ну например, чтобы вентиль можно было покрутить в обе стороны изначально. Или наоборот чтобы он был полностью открытый и его надо было закрыть.
func_door - новый спаунфлаг 4 (в оригинале не используется).
Позволяет сделать так, чтобы дверь различала USE_ON и USE_OFF.
В оригинале - всегда работает в режиме TOGGLE.
Поле:
"chaintarget" - позволяет слинковать вместе несколько дверей для их одновременного открытия. Довольно глючная штука.
эти же вещи применимы и к func_door_rotating.
momentary_door - новый спаунфлаг 1 - constant speed.
Оригинальный код напрочь игноирует заданную маппером скорость и базируется исключительно на прошедшем времени и как следствие - на длине двери. Отсюда и прикольный баг с блокировкой такой двери - будучи отпущенной, она устремляется на своё место как пружына.
Данный флаг позволяет задать константную скорость и избежать такого поведения. Также для momentary_door теперь работает флаг START_ON - 1. И вышеописанный флаг 4, который позволяет двери откликаться на USE_ON и USE_OFF.
env_laser - новые поля:
m_iProjection - 0 нормальный лазер из халфы, 1 - проектор без отражения, 2 - проектор с отражением. В режиме проекции лазер светит туда, куда направленые его углы, поле angles. Отражение происходит от текстуры с именем REFLECT. Она же по совместительству зеркало.
m_iStoppedBy - как в спирите. Можно утащить оттуда.
Также есть несколько дополнительных флагов (Shade in, Shade out и Solid) - также совпадают со спиритовскими.
func_tank - спаунфлаг Match Target 128. Когда мы контролируем два и более пулёметов, то их дула смотрят туда же куда и взгляд игрока.
Аналогичен спаунфлагу из спирита.
func_tankcontrols - подобно Multi_manager позволяет прописать до 32 имен контролируемых танков. Впрочем куча танков с одинаковыми именами будет также обработана правильно. Другой вопрос, что разные имена танков вам могут понадобиться для правильной работы parent system, если танк выступает чьим-то родителем.
Триггеры: универсалльный флаг для triiger_multi и trigger_once - спаунфлаг 8.
Позволяет задействовать старый добрый режим, когда триггер срабатывает при условии что игрок смотрит в ту сторону куда указывает YAW самого триггера. Это пользовалось в кваке, но было вырезано в халфе. пример - в самом начале демокарты. Дверь из которой вы вышли не закроется, если вы будете смотреть на нее. Позволяет телепортировать монстров строго за вашу спину
trigger_auto - новый спаунфлаг 2. Разрешает активировать цель только при условии, что мод запущен под ксаш-движком.
Потом для остальных триггеров допишу, там уже немного осталось.