PlayGround.ru
Ropnet
GTA.ru

Главная

GTA V

Аккаунт

GTA: Vice City Stories

GTA IV

GTA: Liberty City Stories

GTA: San Andreas

GTA: Vice City

GTA: Chinatown Wars

GTA 3

GTA 2

GTA

Форумы

Сервер
  Статистика
  Cкриптинг в MTA: DeathMath
    Первое руководство
    Второе руководство
    Третье руководство
    Четвёртое руководство
    Пятое руководство
    Шестое руководство
  SA-MP FAQ
  Руководство MTA:SA Race Mod
  Создание карт в MTA:SA Race Mod

О проекте

Реклама

Новости




GTA.ru Race #2
[0/]

статистика
GTA LEAGUE t/cw | 1 | gta.ru vk.com/gtaleague
[0/30]

GTA LEAGUE t/cw | 2 | gta.ru vk.com/gtaleague
[0/30]

GTA.ru Sniper Madness
[0/30]

GTA.Ru | Map Editor gta.ru:22002
[0/64]

GTA.Ru | Official Tactics Server
[0/64]

Veni Vidi Vici Team {vVv} Official Public Server
[0/32]

GTA.Ru | Stealth Public Server (w/ Stats System)
[0/32]

GTA.Ru | Race Server
[0/32]

[1ck] tactics | gta.ru vk.com/one_click_kill
[0/64]

GTA.ru Freeroam LU Server
[0/64]

GTA.ru TDM Server
[0/30]


Голосовой чат: 0


GTA.ru > Сервер > Cкриптинг в MTA: DeathMath > Третье руководство
Третье руководство по скриптингу в Multi Theft Auto: DeathMatch


Скрипт этой недели показывает систему случайного изменения одежды. В этом примере мы будем устанавливать интервал изменения в 2 секунды, но имейте в виду, что будет происходить небольшая пауза при смене одежды. Большие интервалы советуем избегать, чтобы не прерывать геймплей.

Обучающее видео: scriptvideo3.avi - XviD codec (640x480, 30fps, 996kb)
Готовый скрипт: script3.lua




Счетчик одежды


Сначала, мы собираемся рассчитать, сколько штук в каждой категории, и сохранят счет в этой таблице:

local count = {}

Мы имеем 18 типов одежды, для проверки (они будут зарегистрированы вместе с остальной частью ID в релизе):

for type = 0, 17 do
	--инициализация счетчика
	local clothes = 0
	-- Мы увеличиваем счетчик до тех пор пока не получим любой неправильный ID
	while getClothesByTypeIndex ( type, clothes ) ~= false
		do clothes = clothes + 1 end
	-- помните, что последний не существует: мы должны удалить его 
	-- от счета, сохраняя его
	count[type] = clothes - 1
end

Создание функции изменения одежды


Теперь мы создадим функцию, изменяющую непосредственно одежду. Должно быть взято несколько вещей в аккаунт, которые будут записываться в один момент. Декларация начинается здесь:

function doChangeClothes ()

Теперь мы собираемся запустить это для каждого присоединяемого игрока. Это делается восстановлением таблицы каждого игрока на сервере, затем перекрутить через таблицу и поменять их одежду. Сначала мы восстановим таблицу наших игроков:

local players = getElementsByType ( "player" )

Затем мы используем Lua для (for) прокрутки, чтобы пройти каждого игрока в этой таблице.

for i, player in players do

Сначала, мы должны выбрать случайный тип, используя Lua math.random. Мы оставим татуировки (тип ID 4-12), потому что они не видимы с одеждой в любых случаях:

		local accessory = math.random ( 0, 1 )
		if accessory == 1 then
			--выберите дополнительный тип
			type = math.random ( 13, 17 )
		else
			--выберите тип причесок/рубашек/брюк/ботинок
			type = math.random ( 0, 3 )
		end

Полные костюмы (тип ID 17) применены сверху рубашек и брюк, таким образом, мы хотели бы их удалить, если любой из них будет выбран:

		if type == 0 or type == 2 then
			removePlayerClothes ( player, 17 )
		end

Теперь, когда мы имеем наш тип, мы должны выбрать случайную часть одежды в пределах этого:

		local clothing = math.random ( 0, count[type] )

Только добавление этой одежды игроку оставляем, чтобы сделать.

		--мы получаем текстуру и модель через getClothesByTypeIndex
		texture, model = getClothesByTypeIndex ( type, clothing )
		--и мы добавляем эту часть одежды игроку.
		addPlayerClothes ( player, texture, model, type )

Мы не должны забывать закрывать "для" ("for") прокрутки, и декларации функции.

	end
end


Запуск функции


Наконец, мы неоднократно вызовем нашу функцию, когда этот скрипт "ресурс" ("resource") (о нём будут объяснено позже) начат.

addEventHandler("onResourceStart", getRootElement(), "clothesStart")
function clothesStart ( resourcename )

Наша функция clothesStart должна быть вызвана только, когда этот (this) скрипт загрузится. Следующая линия заставляет скрипт игнорировать любые загрузки ресурса кроме него собственного:

if resourcename ~= getThisResource() then return end

Наконец, мы будем использовать функцию setTimer, как в прошлом руководстве, для того чтобы вызывать функцию каждые две секунды.

--0 подразумевает бесконечное время, пока таймер не будет закончен
	setTimer ( "doChangeClothes", 2000, 0 )
end

Вот и всё на этой неделе. Следите за дальнейшими обновлениями на нашем сайте.



GTA V
GTA: Vice City Stories
GTA IV
GTA: San Andreas
GTA: Vice City
GTA 3
GTA 2
GTA
GTA: Chinatown Wars
GTA: Liberty City Stories
Видеоредактор Rockstar Editor (120)
Болталка GTA.ru (484)
Тайны альфа/бета-версии GTA III (447)
Тёмные части на машине (0)
Перевод радио WCTR (27)
Ностальгия по GTA-шному времени (280)
Скрытые интерьеры в GTA: SA (400)
Игра в баскетбол в GTA SA (1)
Простукивающиеся двери.Зачем они. (63)
Врёт ли хандлинг (7)
Какой фотоаппарат у Си-Джея? (72)
Объекты "хамелеоны" (25)
Кто вам встречался в миссиях полицейского? (15)
Andromada (155)
Отличия между PS2/PC/XBOX-версиями GTA: SA (104)
Возможность летать в GTA 2 (59)
Танцы в клубе (1)
Тайны альфа-/бета-версии GTA IV (498)
Виктор Вэнс мёртв? (190)
Редактирование денег (4)

Последние добавленные
Grand Theft Auto: San Andreas "Убийства людей приносят деньги, восстанавливают здоровье и броню, макс. уровень розыска на выбор (SA) 1.0" 101Mb
Grand Theft Auto: San Andreas "Все машины пуленепробиваемые и ударостойкие, но уязвимы к огню и взрывам (SA) 1.0" 335Mb
Grand Theft Auto: San Andreas "Погоня Чужих на вайсидском гермесе за Сиджеем (SA)1.0" 4,981Mb
Grand Theft Auto: San Andreas "Оптимизация для старых ноутбуков (SA) v.1.3" 792Mb
GTA5 "Drift v3.9" 1,078Mb
Grand Theft Auto 4 "PS4/3 DualShock Buttons" 322Mb
Grand Theft Auto: San Andreas "Укрепление макушек всех жителей Сан Андреса на выбор (SA) 1.0" 172Mb
Grand Theft Auto: San Andreas "Всеобщее вооружение всех жителей Сан Андреса на выбор (SA) 1.0" 665Mb
Grand Theft Auto: San Andreas "Травля Сиджея магучими химерами на выбор (SA) 1.0" 7,499Mb
Grand Theft Auto 5 "Language Tool v3.3" 1,955Mb

Самые популярные
Патч GTA 4 v1.0.7.0 (скачано: 198407)
Патч GTA 4 v 1.0.3.1/1.0.4.0 (RU/ENG) (скачано: 171660)
GTA "SA-MP 0.3.7 R4 (клиент R4 и сервера R2)" (скачано: 155530)
GTA 4 "Social Club v1.1.3.0" (скачано: 139990)
Патч GTA 4 v1.0.6.1 Русская версия (скачано: 130041)
Русификатор Grand Theft Auto IV и Grand Theft Auto: Episodes from Liberty City [Steam] (скачано: 120760)
Grand Theft Auto 4 (GTA IV): Русификатор (текст) [1.0.7.0] (скачано: 113695)
GTA MTA:SA v1.3.1 (скачано: 104077)
Патч GTA 4 v1.0.1.0 EN (скачано: 98324)
Патч GTA 4 v 1.0.2.1/1.0.3.0 (RU/ENG) (скачано: 91115)






Rambler's Top100






, дополнение для Call of Duty: Modern Warfare 3, God of War трейлер, Empire: Total War официальный сайт
   Copyright ©  наверх | главная | e-mail