Logic case

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал Logic_case

Описание

Объект logic_case может выполнять до шестнадцати различных событий в зависимости от значения входного параметра. Этот объект так же используется для выполнения одного из шестнадцати событий, выбранного случайным образом.

Особенности использования

  • Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
  • Объект может быть установлен в любом месте на карте.
  • На карте может быть установлено множество этих объектов
  • Если для этого объекта будет использоваться только функция "PickRandom" или "PickRandomShuffle", то не обязательно заполнять соответствующие свойства "Case 01-16", потому что эти функции выполняют любое событие "OnCase01"-"OnCase16" указанное в Output’ах этого объекта, и не проверяют наличие значений в свойствах "Case 01-16".
  • Объект не различает числа и строки, поэтому если в свойствах "Case 01-16" указано значение, например, "1.00", то это будет равняться строке "1.00", но не будет равняться числу 1. Для того чтобы строка "1.00" равнялась числу 1, нужно просто упростить её до "1". Для того чтобы строка "1.520000" равнялась числу 1.52, нужно просто упростить её до "1.52" и т.д.

Ошибки

Не обнаружены.

Параметры

  • Case 01-16 – любое число, строка, символ и т.д.; если при вызове функции "InValue" входное значение функции будет равно значению этого свойства, то будет выполнено соответствующее событие "OnCase01"-"OnCase16"; при использовании функций "PickRandom" и "PickRandomShuffle" это свойство не учитывается.

Inputs

  • InValue - указать входное значение для объекта logic_case; если это входное значение будет равно одному из значений свойств "Case 01-16", то будет вызвано соответствующее событие "OnCase01"-" OnCase16";
  • PickRandom – выполнить одно из событий "OnCase01"-"OnCase16", выбранное случайным образом; не учитываются значения свойств "Case 01-16";
  • PickRandomShuffle – выполнить одно из событий "OnCase01"-" OnCase16", выбранное случайным образом, но при этом не выполнять это же событие дважды, пока все остальные события не будут выполнены хотя бы по одному разу; эта функция следит за тем, чтобы при многократном вызове этой функции все события выполнялись равное количество раз; не учитываются значения свойств "Case 01-16".

Outputs

  • OnCase01-OnCase16 – выполняется тогда, когда входное значение функции "InValue" совпадает с соответствующим значением свойства "Case 01"-"Case 16"; это событие может быть выполнено вызовом функции "PickRandom" или "PickRandomShuffle", которые, в отличие от функции "InValue", не учитывают значения свойств "Case 01-16";
  • OnDefault <input> – выполняется тогда, когда входное значение функции "InValue" НЕ совпадает ни с одним значением свойств "Case 01"-"Case 16"; это событие возвращает всю информацию о своих входных данных и активаторе цепочки событий (!activator), поэтому возвращённые данные могут являться входными данными для следующих функций:
    • все объекты-фильтры (filter_*), функция "TestActivator";
    • объект logic_branch_listener, функция "Test";
    • объект logic_multicompare, функции "InputValue" и "CompareValues";
    • объект logic_case (этот объект), функция "InValue".

Карта

csssdk_logic_case.vmf

Используются объекты

  • logic_case
  • func_button
  • func_detail
  • func_wall
  • func_brush
  • logic_auto

Описание карты

На карте перед стеной установлен пульт с тремя кнопками. Перед стеной так же расположен единственный на карте объект logic_case. Кнопки размещены на пульте соответственно тому как размещены на стене слова "RANDOM", "CASE 1" и "CASE 3". Самая большая кнопка соответствует слову "RANDOM" и при нажатии выполняет функцию "PickRandomShuffle", что вызывает одно из событий "OnCase01", "OnCase02", "OnCase04" или "OnCase16". Все эти события созданы в Output’ах объекта logic_case ещё на этапе создания карты. Обратите внимание на то, что в редакторе Hammer свойство "Case 16" не определено, однако Output’ах добавлено событие "OnCase16", которое так же выполняется при нажатии на рассматриваемую кнопку пульта. Две остальные кнопки пульта соответствуют словам "CASE 1" и "CASE 3". При нажатии на них и при помощи функции "InValue", они посылают объекту logic_case входное значение равное строке "= )" (смайлик), или "O_o" (тоже смайлик). Как видите, для объекта logic_case не важно какое значение будет входным. При выполнении одного из событий объекта logic_case, в правом верхнем углу стены отображается соответствующее слово: "DEAGLE" (OnCase01), "AK 47" (OnCase04), "???" (OnCase02), или вообще ничего не отображается (OnCase16).

Смотрите также