Подсчёт обьектов(игроков) в определённой области

Помогаем новичкам в создании своего мира
Ответить
Сообщение
Автор
Аватара пользователя
Puzer
Сержант
Сержант
Сообщения: 36
Зарегистрирован: 22.10.2008
Откуда: IvIypmanSk

#1 Сообщение 16.01.2010, 14:20

Этот тутуриал расчитан на продвинутых...

В следующем примере мы будем использовать trigger_multiple и math_counter, чтобы посчитать число игроков в области. Этим числом мы активизируем game_text, который отображает число на вашем экране. Этот метод может также использоваться, чтобы посчитать число любого объекта.В этом примере можно подсчитать до 4 игроков.Канешно можно и больше (максимальное 16)...прочитайте сами всё поймёте...

Нам понадобяться энтии : (их можно расставить куда огодно)
trigger_multiple
Выходы:
При OnStartTouch цель mc выход Add параметр "1"
При OnEndTouch цель mc выход Subtract параметр "1"
math_counter
"Name" - mc

Выходы:
При OutValue цель mc_case выход InValue
logic_case
"Name" - mc_case
"Case 01" - 0
"Case 02" - 1
"Case 03" - 2
"Case 04" - 3

Выходы:
При OnCase01 цель mc_timer_* выход Disable
При OnCase02 цель mc_timer_* выход Disable
При OnCase03 цель mc_timer_* выход Disable
При OnCase04 цель mc_timer_* выход Disable
При OnCase01 цель mc_timer_0 выход Enable параметр (none) задержка 0.01
При OnCase02 цель mc_timer_1 выход Enable параметр (none) задержка 0.01
При OnCase03 цель mc_timer_2 выход Enable параметр (none) задержка 0.01
При OnCase04 цель mc_timer_3 выход Enable параметр (none) задержка 0.01
logic_timer x4
У каждого таймера название должно отличаться на один (из примера выше я думаю всё понятно)
N=от 0 до 3 (включительно)

"Name" - mc_timer_N
"Refire Interval" - 0.8

Выходы:
При OnTimer цель mc_text_N выход Display \\тобиш тут катебе циклически
game_text x4
Тут также у каждого ГеймТекста название должно отличаться на один (из примера выше я думаю всё понятно)
N=от 0 до 3 (включительно)

"Name" - mc_text_N
"Message Text" - Здесь N игроков
"Fade In Time" - 0
"Fade Out Time" - 0
"Hold Time" - 1
В этой системе, каждый раз, когда игрок входит в trigger_multiple, он запускает OnStartTouch. Это заставляет значение math_counter повыситься на 1 каждый раз, когда игрок входит в trigger_multiple, при выходе из этой области значение math_counter понижаеться на 1.

math_counter при OutValue посылает свое текущее значение в logic_case каждый раз, когда значение изменяется. Так, если значение будет 1, и игрок входит в trigger_multiple, то значение math_counter будет изменено на 2, и пошлется сообщение к logic_case.

logic_case принимает значение math_counter и сравнивает то значение с одним из его 16. В этом примере, если полученное значение 1 (тоесть 1 игрок в trigger_multiple), то выполняется OnCase02.

Оттуда, каждый OnCaseN связан с logic_timer, и каждый logic_timer просто посылает сигнал game_text вывода на экран. Так, если нет никаких игроков в trigger_multiple, и игрок идет в него:
- trigger_multiple OnStartTouch вывод поднимает значение math_counter к 1;
- math_counter посылает InValue 1 в logic_case;
- logic_case сравнивает 1 со всеми его случаями, и запускает OnCaseN, который совпадает;
- в этом примере OnCase02 запущен, отключая все активные таймеры и допуская mc_timer_1;
- в этом примере mc_timer_1 заставляет mc_text_1 отображать его текст, пока сам таймер не заблокирован.

Отметьте, что только первые три объекта - trigger_multiple, math_counter, и logic_case - фактически относятся к подсчету игроков. logic_timers и game_texts только использовались в этом примере, чтобы показать пример как это всё моно использовать

Но в шапке темы я говорил что можно подсчитать не только игроков но и другие обьекты:

Что, если Вы хотите рассчитать, скажем, число бочек или число гранат? Вы должны просто в trigger_multiple переключать флажки на которые вам нужно !. Это заставит объекты помимо игроков использовать OnStartTouch и OnEndTouch.
Также можно использовать Filter Entities

Отмечу, что в этом примере, спектры и трупы не будут посчитаны.
Может эта статья неочень понятна beginner`ам но консервы меня поймут)
Вот пример такого счётчика : VMF+BSP
Поскольку я скамуниздил это с просторов инета вот исходная статья: %не нажимать%
Не говори мне что делать, и я не скажу тебе куда тебе идти !

sinangel
Полковник
Полковник
Сообщения: 1337
Зарегистрирован: 28.12.2009
Благодарил (а): 95 раз
Поблагодарили: 561 раз
Контактная информация:

#2 Сообщение 07.02.2010, 20:09

а можно зделать ловушку ну тоесть

Код: Выделить всё

кода попадает оппределёное чило предметов или игроков дапустим чтоб нажималась какаянибудь кнопка или чтоб чтонибудь запускалась 
за храмотность ни пенАть
получил флейм бан, получил игру от Svvl_gtn
http://vkоntakte.ru/h4z0r
[txtspoil][ jump down into a large rabbit-hole ][/txtspoil]

Ответить