В этом разделе мы расскажем, как находить уже настроенные устройства в среде выполнения.
-
Откройте Проводник Verse и дважды нажмите по файлу team_elimination_game.verse, чтобы открыть сценарий в Visual Studio Code.
-
В самом начале файла:
-
Добавьте
using { /Fortnite.com/Game }
чтобы получить доступ кelimination_result
struct. -
Добавьте
using { /Fortnite.com/Characters }
, чтобы иметь возможность использоватьGetFortCharacter[]
API.
using { /Fortnite.com/Characters } using { /Fortnite.com/Devices } using { /Fortnite.com/Game } using { /Fortnite.com/Teams } using { /Verse.org/Simulation }
-
-
В определении класса
team_elimination_game
добавьте следующие поля:-
Редактируемый массив
item_granter_device
с именемWeaponGranters
для хранения всех устройств, выдающих оружие игрокам.@editable var WeaponGranters : []item_granter_device = array{}
-
Целочисленную переменную с именем
EliminationsToEndGame
для представления количества устранений, необходимых одному игроку для победы своей команды. Команда побеждает, когда один из её игроков получает последнее оружие в последовательности.var EliminationsToEndGame : int = 0
-
Редактируемое устройство типа
end_game_device
с именемEndGameDevice
для завершения игры, когда команда достигает требуемого значенияEliminationsToEndGame
.@editable EndGameDevice : end_game_device = end_game_device{}
-
Редактируемый массив типа
sentry_device
с именемSentries
, чтобы хранить стрелков для тестирования устранений.@editable var Sentries : []sentry_device = array{}
-
Редактируемый массив типа
player_spawner_device
с именемPlayerSpawners
, чтобы хранить точки появления игроков для обеих команд.@editable var PlayerSpawners : []player_spawner_device = array{}
-
Массив
Teams
из переменных для хранения ссылки на каждую команду в игре.var Teams : []team = array{}
-
Теперь определение класса
team_elimination_game
должно выглядеть, как показано ниже:team_elimination_game := class(creative_device): @editable EndGameDevice : end_game_device = end_game_device{} @editable var WeaponGranters : []item_granter_device = array{} @editable var PlayerSpawners : []player_spawner_device = array{} @editable var Sentries : []sentry_device = array{} var EliminationsToEndGame : int = 0 var Teams : []team = array{}
-
-
В
OnBegin()
обновите массивTeams
, добавив команды, которые вы подготовили ранее в Параметрах острова. Вы можете использовать функциюGetTeams()
из APIfort_team_collection
, чтобы получить массив всех команд в игровом пространстве.OnBegin<override>()<suspends> : void = # Получаем всех игроков set Teams = GetPlayspace().GetTeamCollection().GetTeams()
-
Присвойте переменной
EliminationsToEndGame
длинуWeaponGranters
. Это позволит сделать так, чтобы игра закончилась только после того, как игрок получит последнее оружие. Теперь блокOnBegin()
должен выглядеть следующим образом:OnBegin<override>()<suspends> : void = # Получаем всех игроков set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Количество устранений до завершения игры: {EliminationsToEndGame}")
-
Сохраните сценарий в Visual Studio Code, а на панели инструментов UEFN выберите Verse, затем Собрать код Verse, чтобы обновить ваше устройство Verse на уровне.
-
Выберите устройство team_elimination_game. На панели Сведения добавьте каждое Устройство выдачи предметов в массив WeaponGranters, каждое устройство Точка появления игрока — в массив PlayerSpawners, каждый Часовой — в Sentries, а Устройство завершения игры — в EndGameDevice.
Порядок, в котором вы добавляете устройства выдачи предметов, имеет значение! Убедитесь, что порядок на панели Сведения соответствует тому порядку, в котором вы хотите, чтобы ваши игроки продвигались по оружию в игре.
-
Нажмите Запустить сеанс на панели инструментов UEFN, чтобы выполнить игровой тест уровня. Когда вы тестируете уровень, значение
EliminationsToEndGame
должно равняться длине массиваWeaponGranters
. Убедитесь, что этот так, проверив журнал.
Что дальше
Дальше мы разберём, как присваивать игрокам оружие в начале игры и подписываться на события их появления.