Ваши мишени ведут себя как надо: самое время сделать их ещё более интересными, используя Verse!
Создайте систему комбо
В этом разделе мы добавим в игру систему комбо, которая позволит выдать игроку особую мишень, приносящую дополнительные очки, если игрок поразит все «хорошие» мишени, не задев ни одной «плохой».
Выберите хорошую мишень в окне просмотра.
Нажмите клавишу Alt и перетащите копию мишени в заднюю часть тира. Это будет комбо-мишень.
На панели Сведения, в разделе Пользовательские настройки:
для параметра Тип мишени выберите вариант Лама;
для параметра Очки выставьте 0. Таким образом, на счёт будет влиять только код Verse.
в качестве Исходного положения установите Внизу;
для параметра Тип времени перезарядки установите Никогда;
для параметра Тип задержки появления установите Никогда;
для параметра Тип частоты подъёмов установите Случайный выбор. Таким образом, мишень будет случайным образом подниматься и опускаться;
для параметра Тип продолжительности поднятого состояния установите Случайный выбор.
Добавьте следующий код в
shooting_range_manager_device.verse:создайте переменную
shooting_range_target_track_device, которая будет хранить ссылку на комбо-мишень;добавьте целочисленную переменную для значения счёта;
добавьте три логические переменные для отслеживания состояния комбо.
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableВыберите shooting_range_manager_device в окне просмотра.
На панели «Сведения» выберите вариант «Лама» (мишень) для ComboTarget.
Добавьте следующий код:
отключаем комбо-мишень в начале игры;
создаём подписку на событие попадания в комбо-мишень;
меняем счёт при попадании в комбо-мишень.
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableДобавьте следующий код:
устанавливаем для логических переменных GoodTarget значение true при попадании;
отключаем мишени GoodTarget при попадании, чтобы они не поднимались обратно;
добавляем вызов
CheckCombo()к каждой из мишеней GoodTarget, чтобы отслеживать состояние комбо при попадании;поднимаем ComboTarget после попаданий во все мишени GoodTarget.
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableПри использовании оператора
ifвы можете добавлять условия на разных строках, при этом они все должны выполниться, чтобы запустилось выполнение блокаthen.К примеру, в
CheckCombo()есть три конструкции с оператором запроса (?) для проверки того, является ли логическое значение true. Если хотя бы одно из них будет false, комбо-мишень не будет активироваться.Более подробная информация приведена в разделах If в Verse и Операторы в Verse.
Добавьте следующий код, чтобы сбрасывать комбо при попадании в «плохую» мишень.
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableВыберите Verse > Собрать код Verse в строке меню.
Протестируйте изменения в сеансе редактирования:
убедитесь, что мишени GoodTarget остаются опущенными после попадания и поднимаются только при попадании в «плохую» или комбо-мишень;
убедитесь, что мишень ComboTarget запускается в опущенном положении и поднимается, когда вы завершаете комбо, и остаётся в опущенном положении после попадания;
убедитесь, что ComboTarget падает при попадании по BadTarget при полном комбо;
убедитесь, что счёт увеличивается при попадании в ComboTarget.