Ru/Faith Plate

Панели веры или катапульты - это подбрасывающие панели в . Они могут подбрасывать объекты (, ) и игроков.
==Создание с помощью экземпляров==
Для панели веры есть несколько экземпляров. Однако, энтити потребуется добавить вручную. Настройте её выход для срабатывания экземпляра, который уже включает и звуки, и анимацию.
*gameplay\faithplate_black.vmf
*gameplay\faithplate_black_impostor.vmf
*gameplay\faithplate_clean.vmf
*gameplay\faithplate_dirty.vmf
*gameplay\faithplate_dirty_impostor.vmf
==Создание вручную==
1) Создайте энтити :
::
Название свойства	Значение
World Model 	"models/props/faith_plate.mdl" или "models/props/faith_plate_128.mdl"
Name 	"catapult_model_1" (Вы можете изменить название, но не забудьте изменить его во всех входах.)
Collision 	Not Solid
Disable Shadows 	Yes
2) Создайте энтити :
::
Название свойства	Значение
Name 	catapult_target_1
*Это цель, в которую вас запустит катапульта.
3) Создайте браш и переведите его в энтити , покройте её trigger-текстурой:
::
Название свойства 	Значение
Name 	catapult_trigger_1
Launch Direction 	"-90 0 0" Если хотите взлететь вверх
Player speed 	Подберите оптимальное значение в зависимости от расстояния, для начала можете попробовать 750
Physics speed 	Определяет скорость полета летящих предметов. Прибавьте 150 к Player speed (900).
Apply Angular impulse	True
Launch target 	catapult_target_1
Use Threshold Check 	Для модели панели веры задайте значение NO.
::
	My Output 	Target Entity 	Target Input	Parameter 	Delay	Only Once
	OnCatapulted	catapult_model_1	SetAnimation	(angled, fast или straightup)	0.00 	No
4) Создайте энтити :
::
Название свойства	Значение
Name 	catapult_sound_1
Sound Name 	Metal_SeafloorCar.BulletImpact
SourceEntityName 	catapult_model_1 (название модели панели веры)
::
Флаги 	Значение
Is NOT Looped	Yes
Start Silent 	Yes
Чтобы звук заработал, вернитесь к trigger_catapult и создайте новый выход:
::
	My Output 	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnCatapulted	catapult_sound_1	playsound 	- 	0.00 	No
5) Создайте блок с текстурой tools/toolsinvisible под моделью панели веры, чтобы игрок и предметы не проваливались сквозь неё.
6) Также не забудьте добавить на портальную поверхность в конце траектории - так будет легче пролететь через портал.
==Отладка==
Как было показано в комментариях разработчиков, можно визуально наблюдать траектории полета для отладки и настройки панели веры.
В консоли введите "ent_bbox trigger_catapult", и вы увидите визуальное представление траекторий полета от каждой trigger_catapult. Чтобы просмотреть только одну траекторию, введите "ent_bbox <название энтити панели веры>".
Если в trigger_catapult используется константная скорость (Use Exact Velocity = yes), то вы можете изменять скорость игрока и предметов прямо во время игры:
* "ent_fire <название энтити панели веры> setplayerspeed <скорость>"
* "ent_fire <название энтити панели веры> setphysicspeed <скорость>"
Визуальное отображение траекторий обновится автоматически.
==Советы==
Вы также можете использовать для контроля приземления игрока. Например, вы можете установить портал на стене, поднятой под углом вверх, и вылететь из неё.
Чтобы панель не отбрасывала, когда вы просто проходите по ней, установите следующие параметры :
::
Название свойства	Значение
Lower threshold 	Нижняя граница скорости в процентах от заданной скорости полета, задается десятичной дробью от 0 до 1.
Upper threshold 	Верхняя граница.
UseThresholdCheck	'YES' - использовать ограничения, 'NO' - всегда отбрасывать.
С настройками ограничений необходимо немного разобраться:
Вопреки обыденным представлениям, ограничения НЕ выражают процент скорости игрока в традиционном понимании.
Нижняя граница - это процентное значение, которое вычитается из скорости игрока, а верхняя граница - добавляется к скорости игрока.
Например, допустим, вы задали скорость катапультирования на 500 ед./сек. Нижняя граница 0.1 подразумевает, что игрок должен двигаться со скоростью как минимум 90% (100% - 10%) - то есть 450 ед./сек. Верхняя граница 0.5 означает, что игрок не должен двигаться быстрее 150% (100% + 50%) - то есть 750 ед./сек. Пока скорость перемещения игрока находится в этих пределах, отбрасывает игрока.
Следовательно, ограничения работают так: чем ниже заданные ограничения, тем больше вероятность, что скорость игрока приведёт к срабатыванию катапульты.
К сожалению, здесь придётся учесть ещё кое-что: если для указана цель, то скорость игрока будет изменена так, чтобы он долетел до этой цели, поэтому становится невозможно узнать точную скорость, с которой игрок будет катапультирован. Даже если Use Exact Velocity задано на yes, скорость игрока всё ещё может варьироваться. Поэтому ограничения катапультирования должны охватывать все возможные скорости.
Всё это более или менее легко проверить: в целях отладки программисты добавили консольную команду ent_bbox, которая используется для графического отображения траекторий катапульт в игре. К счастью, эта команда также выводит текущую скорость игрока и действующие ограничения (в ед./сек.), в момент, когда игрок встаёт на . Но чтобы эта команда работала, необходимо, чтобы у была указана цель катапультирования.
== См. также ==
*