В этом разделе мы расскажем, как находить уже настроенные устройства в среде выполнения.
-
Откройте Проводник Verse и дважды нажмите по файлу team_elimination_game.verse, чтобы открыть сценарий в Visual Studio Code.
-
В самом начале файла:
-
Добавьте
using { /Fortnite.com/Game }чтобы получить доступ кelimination_resultstruct. -
Добавьте
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. Убедитесь, что этот так, проверив журнал.
Что дальше
Дальше мы разберём, как присваивать игрокам оружие в начале игры и подписываться на события их появления.