Итак возможности замка:- Неогранниченое кол-во цифр в коде
- Добавление еще одного кода активации обойдется всего в 1 энтитю.
- Возможность 1 аутпутом менять код активации.
Итак, по дефолту, создаем комнату и старт игрока. Для замка нам понадобится 10 кнопок ввода кода 0-9 и кнопка сброса ввода (справа):
К этому еще 2 управляющие энтити: math_counter с именем code_saver и параметром Initial Value: 1
и logic_compare с именем code_compare и параметром Compare value: 1N ,где N- это наш код активации замка. В примере использован код 606060, по этому в Compare value пишем: 1606060. Единица впереди кода стоит для защиты, если наш код будет начинаться с нуля (эту единицу мы учли в math_counter'е когда писали Initial Value: 1).
Теперь заставим всё это работать.
Аутпуты для первой кнопки:
1) Код, который хранится в math_counter'е множится на 10 (сдвигается влево) 2) к нему в конец добавляется цифра нажатой кнопки 3) кнопка кричит маз каунтеру чтоб тот подготовил наш код для проверки.
и так до 9-й кнопки. Единственное отличие аутпутов каждой кнопки в аутпуте Add, оно равно номеру кнопки:
В нулевой кнопке писать Add 0 бессмысленно, по этому просто удаляем этот аутпут.
В кнопке сброса пишем так:
Аутпут math_counter'а: (по приказу кнопки (GetValue) код передается в компаре для сравнения и сразу сравнивается с нашим эталонным кодом):
..и если тот говорит что код совпал- выдает аутпут чтоб к примеру открылась дверь:
Если вы хотите: - чтоб вводимый код 666 открывал дверь, а 777 открывал окно- просто создаем дубликат logic_compare с таким же именем, вписываем туда свой еще один код и меняем аутпут. И не забывайте единичку в начале кода!
- сменить проверяемый код во время игры (аутпутом)- подаем аутпут SetCompareValue: 1N, (где N-ваш код) на logic_compare.
Готовую карту и исходник можно качать от сюда. Удачи!
Stridemann (Руслан Рыбка). |