logic_multicompare
Описание
Объект logic_multicompare сравнивает между собой все входные целочисленные значения от других объектов.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект может быть установлен в любом месте на карте.
- На карте может быть установлено множество этих объектов
- Этот объект автоматически создаёт список всех входящих целочисленных значений от других объектов и каждый раз при добавлении нового значения, или обновлении старого, сравнивает их все вместе между собой. Два разных Output’а одного объекта добавляют в список сравнения два разных значения, потому что список сравнения различает Output’ы по их ID (идентификационному номеру), а разные Output’ы имеют разные ID. Например для одной кнопки два Output’а:
- OnIn | my_logic_multicompare | InputValue | 5
- OnOut | my_logic_multicompare | InputValue | 7
создадут в списке сравнений разу два значения – 5 и 7, поэтому после вызова этих двух Output’ов объект my_logic_multicompare будет всегда выполнять событие "OnNotEqual" и уже не выполнит событие "OnEqual" в текущем раунде.
Чтобы избежать этого, необходимо использовать объекты, которые могут возвращать числовые значения как результат своей работы. Такими объектами являются:
- env_microphone
- func_breakable
- func_breakable_surf
- func_physbox
- game_ui
- game_zone_player
- logic_compare
- math_counter
- math_remap
- momentary_rot_button
- point_anglesensor
- point_angularvelocitysensor
- point_proximity_sensor
- prop_door_rotating
- prop_dynamic
- prop_dynamic_ornament
- prop_dynamic_override
- prop_physics
- prop_physics_multiplayer
- prop_physics_override
- trigger_proximity.
Ошибки
Не обнаружены.
Заметки
Чтобы посмотреть какие Output’ы будут добавлять и изменять свои значения в списке сравнения, в редакторе Hammer откройте свойства объекта logic_multicompare и перейдите на вкладку "Inputs". Среди всех Input’ов в списке вам нужны те, в столбике "My Inputs" у которых установлено название функции "InputValue".
Параметры
- Use Compare Value – использовать свойство "Compare Value":
- No – в список сравнения НЕ будет добавлено значение свойства "Compare Value", поэтому первый же объект, вызвавший функцию "InputValue" приведёт в выполнению события "OnEqual", независимо от значения, которое он поместит в список;
- Yes - в список сравнения будет добавлено число "Compare Value", поэтому для выполнения события "OnEqual" все значения в списке сравнения должны быть равны числу "Compare Value" для того чтобы событие "OnEqual" было выполнено;
- Compare Value – целое число, которому должны быть равны все значения в списке сравнения, чтобы было выполнено событие "OnEqual".
Inputs
- InputValue <integer> - добавить в список сравнения новое значение или обновить старое, если ID Output’а, вызвавшего эту функцию, уже есть в списке сравнения; при добавлении нового значения в список сравнения, ID (идентификационный номер) Output’а, вызвавшего эту функцию, будет соответствовать новому значению; после вызова этой функции автоматически вызывается функция "CompareValues";
- CompareValues – сравнить все значения в списке значений; в соответствии с результатом сравнения после вызова этой функции автоматически вызываются события "OnEqual" или "OnNotEqual".
Outputs
- OnEqual – выполняется если все значения в списке сравнения равны друг другу;
- OnNotEqual – выполняется если в списке сравнения хотя бы одно из значений не равно остальным.
Карта
csssdk_logic_multicompare.vmf
Используются объекты
- logic_multicompare
- logic_timer
- logic_branch
- math_counter
- func_wall
- func_brush
Описание карты
На карте поставлена одна стена. На стене отображено два слова "COUNTER 1" и "COUNTER 2". При помощи объектов logic_timer, logic_branch и math_counter реализовано два счётчика, которые увеличивают и уменьшают своё значение с разной скорость. Значения этих счётчиков варьируются в диапазоне от 0 до 3. При изменении своего значения, каждый счётчик отправляет новое значение в объект logic_multicompare, который автоматически обновляет эти значения в своём списке сравнения, затем сравнивает их, и затем выполняет свои события "OnEqual" и "OnNotEqual", в зависимости от результата сравнения. При этом в центре стены то появляется, то исчезает надпись "EQUAL", означающая что значения счётчиков в этот момент равны. Скорость изменения значений счётчиков может быть отрегулирована в редакторе Hammer, изменяя значения свойств "Refire Interval" у объектов logic_timer.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: