GTA.ru > Сервер > Cкриптинг в MTA: DeathMath > Третье руководство Скрипт этой недели показывает систему случайного изменения одежды. В этом примере мы будем устанавливать интервал изменения в 2 секунды, но имейте в виду, что будет происходить небольшая пауза при смене одежды. Большие интервалы советуем избегать, чтобы не прерывать геймплей. Обучающее видео: scriptvideo3.avi - XviD codec (640x480, 30fps, 996kb) Готовый скрипт: script3.lua Сначала, мы собираемся рассчитать, сколько штук в каждой категории, и сохранят счет в этой таблице:
Мы имеем 18 типов одежды, для проверки (они будут зарегистрированы вместе с остальной частью ID в релизе):
Теперь мы создадим функцию, изменяющую непосредственно одежду. Должно быть взято несколько вещей в аккаунт, которые будут записываться в один момент. Декларация начинается здесь:
Теперь мы собираемся запустить это для каждого присоединяемого игрока. Это делается восстановлением таблицы каждого игрока на сервере, затем перекрутить через таблицу и поменять их одежду. Сначала мы восстановим таблицу наших игроков:
Затем мы используем Lua для (for) прокрутки, чтобы пройти каждого игрока в этой таблице.
Сначала, мы должны выбрать случайный тип, используя Lua math.random. Мы оставим татуировки (тип ID 4-12), потому что они не видимы с одеждой в любых случаях:
Полные костюмы (тип ID 17) применены сверху рубашек и брюк, таким образом, мы хотели бы их удалить, если любой из них будет выбран:
Теперь, когда мы имеем наш тип, мы должны выбрать случайную часть одежды в пределах этого:
Только добавление этой одежды игроку оставляем, чтобы сделать.
Мы не должны забывать закрывать "для" ("for") прокрутки, и декларации функции.
Наконец, мы неоднократно вызовем нашу функцию, когда этот скрипт "ресурс" ("resource") (о нём будут объяснено позже) начат.
Наша функция clothesStart должна быть вызвана только, когда этот (this) скрипт загрузится. Следующая линия заставляет скрипт игнорировать любые загрузки ресурса кроме него собственного:
Наконец, мы будем использовать функцию setTimer, как в прошлом руководстве, для того чтобы вызывать функцию каждые две секунды.
Вот и всё на этой неделе. Следите за дальнейшими обновлениями на нашем сайте. |
|
Copyright © | наверх | главная | e-mail | ||