Ваш код Verse все ещё открыт? Супер!
В этом упражнении мы будем вызывать функции, которые действительно наносят урон вашему персонажу Fortnite, как и было обещано ранее в Уроке 3: «Практика»!
Прежде чем приступить к кодированию, необходимо добавить устройство на остров UEFN. Оно называется «Точка появления игрока». С его помощью персонаж появляется в месте установки устройства, а не в воздухе, как это обычно происходит в Fortnite. Чтобы код в этом упражнении работал, необходима точка появления игрока.
Чтобы узнать, как разместить эту точку, обратитесь к разделу «Размещение объектов» на стр. Средства управления UEFN для пользователей в творческом режиме. Вы можете разместить это устройство в любом месте на острове.
Часть кода, который вы будете использовать в этом упражнении, будет для вас новой, но у вас будет возможность просмотреть, что делает каждая строка. Не волнуйтесь, если не понимаете всё прямо сейчас. Здесь мы практикуемся только в вызове функций.
Убедитесь, что в начале вашего файла Verse имеются все следующие строки. Они сообщают компилятору Verse, какие части встроенного кода Verse и Fortnite вы будете использовать в Verse-устройстве.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
Далее нужно написать строки кода, которые наносят урон вашему персонажу Fortnite. Давайте рассмотрим эти строки по очереди.
- Вызовите функцию
GetPlayspace(). Она возвращает значение типаfort_playspace, которое мы сохраняем в константе с именемPlayspace. Это нужно для привлечения игроков. - Вызовите метод
GetPlayers()для константыPlayspace. Метод возвращает массив типаplayer. Массив — это контейнер, который может содержать несколько переменных одного типа в Verse. В данном случае массивAllPlayersсодержит всех игроков на уровне. - Вы уже узнали, что можете использовать
if, чтобы задавать вопросы и получать ответы «да» или «нет» коде. В этом примере мы используемif, чтобы узнать, есть ли переменная в первой позиции массиваAllPlayers. ВыражениеAllPlayers[0]вернёт значение переменной в этой позиции, при её наличии. После чего константаFirstPlayerбудет инициализирована этим значением. - Второе выражение
if, вложенное в первое, проверяет наличие персонажа Fortnite в константеFirstPlayer. Для этого используется методGetFortCharacter[]. Обратите внимание на квадратные скобки, используемые для создания вызова. Они используются для вызова функции, которая может завершиться с ошибкой. Вот почему для вызова этой функции используетсяif. ЕслиGetFortCharacter[]удаётся вернуть значение типаfort_character, константа FortniteCharacter инициализируется этим значением. -
Наконец, теперь, когда у вас есть константа типа
fort_character, вы можете вызвать её методDamage(). Этот метод принимает один параметр типаfloat. Это количество урона, которое получит персонаж. Вы узнаете больше о параметрах в следующем уроке.Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)
Если вы запустите этот код, то увидите, что ваш персонаж Fortnite получает 50.0 урона при запуске игры!
Здорово, да?
Полный сценарий
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Выполняется при запуске устройства в работающей игре
OnBegin<override>()<suspends>:void=
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)