IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
«Викинг». The Return of the (Vi)king Кино > «Викинг». The Return of the (Vi)king
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментариев: 53
Презентация Nintendo Switch. Самое главное об играх для новой консоли Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Nintendo заявила, что в разработке находится более восьмидесяти игр для консоли Switch. Рассказываем о тех, что выйдут в ближайшее время.
Комментариев: 21
Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria Спец > Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria
Продолжение Gravity Rush, возвращение «Обители зла», приключения в мире японской мафии и прочие интересности.
Комментариев: 13
Planet Coaster: парк развлечений своими руками Рецензии > Planet Coaster: парк развлечений своими руками
С самого детства мечтали построить идеальный парк аттракционов? Planet Coaster от Frontier Developments это позволяет!
Комментариев: 4
Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником Железный цех > Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником
Подводим итоги крупнейшей международной выставки потребительской электроники.
Комментариев: 2
Бурные 1980-е. Первые впечатления от Yakuza 0 В разработке > Бурные 1980-е. Первые впечатления от Yakuza 0
Знаменитая серия отправляет в прошлое, чтобы рассказать историю о том, как Кадзума Кирю стал одним из самых известных мафиози.
Комментариев: 1
Информация по игре
Grand Theft Auto: San Andreas
Серия: Grand Theft Auto
Мультиплеер: Нет
Разработчик: Rockstar North
Издатель: Rockstar Games
Издатель в России: СофтКлаб
Дата выхода: 7 июнь 2005
Дата выхода в России: 12 февраль 2010
Рейтинги игры
9.5
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Видео по игре
Grand Theft Auto: San Andreas
Все
Игромания
Секс в GTA
 ИМ  спец Все платформы
11 мая 2015 | 6 мин. 6 сек. | Просмотров: 101378
В GTA никогда не стеснялись запретных тем, поэтому и мы не постесняемся затронуть тему секса.
Топ-5 игр серии Grand Theft Auto
 ИМ  спец Все платформы
18 марта 2015 | 10 мин. 23 сек. | Просмотров: 8578
Выбираем пять лучших игр из серии Grand Theft Auto.
Grand Theft Auto: San Andreas - Mobile Trailer
 трейлер iOSAndroid
7 января 2014 | 1 мин. 5 сек. | Просмотров: 2153
Мобильные злоключения Си-Джея. Отличный повод вспомнить последнюю дорестайлинговую часть GTA.
Grand Theft Auto: San Andreas - The Introduction Trailer
 трейлер PCPS2XboxX360
12 декабря 2012 | 21 мин. 17 сек. | Просмотров: 1426
20-минутный пролог к Grand Theft Auto: San Andreas.
Еще материалы по
Grand Theft Auto: San Andreas
Всего: 55
Статьи о Grand Theft Auto: San Andreas
Семь мобильных игр, о которых мы хотим поговорить: Republique, Assassin’s Creed: Pirates, Cut the Rope 2, Tomb Raider, Angry Birds Go!, Grand Theft Auto: San Andreas и The Room TwoMore
Второй зимний мобильный дайджест: от медитативного взращивания сельхозкультур до покорения Карибского бассейна и борьбы за авторитет в черном квартале Сан-Андреаса.More
Grand Theft Auto: San Andreas * Homeworld * Cycle * It Came from the DesertMore
Irrlicht (бесплатный игровой движок на все случаи жизни)GTA: SA Race Mission Creator (SARMC)Oxygen 2 Personal Edition (для Operation Flashpoint и ArmA: Armed Assault)ZModeler2 SDK 1.0BinPBO Personal E...More
Всего: 22
Новости о Grand Theft Auto: San Andreas
Игра уже доступна в сервисах App Store и Google Play.More
Игра выйдет уже завтра.More
Давно обещанное переиздание игры вышло без особой шумихи, и для этого были причины.More
Всего: 7
Коды, сохранения, трейнеры
   Codes (7)  

В двух прошлых статьях цикла мы научились создавать отдельные компоненты миссии для GTA: San Andreas. Сегодня мы сделаем последний шаг: напишем триггер для старта миссии и научимся записывать интересные ролики на движке игры с использованием различных анимаций персонажей. Редактор к бою!

Обратите внимание, что полный список анимаций для персонажей, редактор для создания миссий и программу для определения местонахождения главного героя вы можете взять с наших дисков. Там же находятся txt-файлы, в которых приведены все скрипты, упомянутые в данной статье (можно не набивать их вручную, а просто скопировать).

Создание триггера

26 Kb

При создании любой миссии на карте необходимо создать сферу, зайдя в которую игрок получает определенное задание. В этом и заключается суть работы любого триггера, необходимого для старта миссии. Чтобы создать на карте метку для старта миссии, нам понадобятся следующие команды:

018A: $marker_miss = create_checkpoint_at 503.8909 -432.0327 10.59485

03BC: $sphere_miss = create_sphere 503.8909 -432.0327 10.59485 3.0

Первая команда отвечает за создание метки на радаре по определенным координатам, вторая — за создание сферы (красная зона цилиндрической формы) с определенным радиусом (в моем случае радиус равен 3.0).

Также вы можете изменять цвет созданного маркера, используя нижеуказанную команду и изменяя значение цвета “0” на цифры от 0 до 4:

0165: set marker $check_m color to 0

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

0164: disable_marker $marker_miss

03BD: destroy sphere $sphere_miss

После того как сфера создана, необходимо осуществить ряд проверок, после успешного прохождения которых запустится миссия. Первым делом необходимо проверить — находится ли игрок у места старта миссии (если нет, то повторить проверку):

00D6: if 0

00FF: actor $PLAYER_ACTOR 0 ()near point on foot 154.2018 -1946.346 5.218983 radius 1.0 1.0 2.0

004D: jump_if_false ЈЈ<Метка, если условие не выполняется>

После этого необходимо удостовериться — находится ли игрок на какой-то другой миссии? Если да, то опять же проверка начинается сначала:

00D6: if 0

0038: $ON_MISSION == 0 ;; integer values

004D: jump_if_false ЈЈ<Метка, если условие не выполняется>

Наконец, проверим — существует ли вообще игрок на данном уровне? Такая команда обычно используется при сохранении, когда id игрока стирается, чтобы игра не повисла.

00D6: if 0

0256: player $PLAYER_CHAR defined

004D: jump_if_false ЈЈLabelbet11

37 Kb

Тестируем только что созданную миссию.

Если все эти условия выполнились, то необходимо запустить миссию при помощи команды:

0417: start_mission 135

Полностью конструкция триггера будет выглядеть следующим образом:

:Starter_mania1

0001: wait 0 ms

018A: $marker_miss = create_checkpoint_at 503.8909 -432.0327 10.59485

03BC: $sphere_miss = create_sphere 503.8909 -432.0327 10.59485 3.0

:Labelmania11

0001: wait 250 ms

00D6: if 0

0256: player $PLAYER_CHAR defined

004D: jump_if_false ЈЈLabelmania11

00D6: if 0

00FF: actor $PLAYER_ACTOR 0 ()near point on foot 503.8909 -432.0327 10.59485 radius 1.0 1.0 2.0

004D: jump_if_false ЈЈLabelmania11

00D6: if 0

0038: $ON_MISSION == 0 ;; integer values

004D: jump_if_false ЈЈLabelmania11

0164: disable_marker $marker_miss

03BD: destroy sphere $sphere_miss

0417: start_mission 135

004E: end_thread

Принципы построения миссии

26 Kb

Взрыв, запрограммированный скриптом.

Триггер создан. Переходим ко второму этапу работы. Для создания любой миссии используется так называемый скелет — основа, на которую как бы “насаживаются” все последующие действия: создание персонажей, роликов и прочие элементы. Рассмотрим, как выглядит стандартный скелет для рядовой миссии.

Для написания миссии с чистого листа используйте нижеприведенный код, заменяя все названия, заключенные в скобках < >, на свои собственные.

Весь нижеприведенный код есть не что иное, как код игровой миссии. Все слова, комментарии, команды, идущие после знака “;” редактором при компиляции не учитываются, так что не экономьте на заметках!

;-------------Mission < номер миссии>---------------

:Mission<номер миссии >

0050: gosub Ј<название блока, с которого начинается код миссии>

00D6: if 0

0112: wasted_or_busted

004D: jump_if_false Ј<блок для пропуска кода провала миссии>

0050: gosub Ј<Блок провала миссии. Выполняется, если игрок умер в текущей миссии или попал в полицейский участок>

:<блок для пропуска кода провала миссии>

0050: gosub Ј<блок, в котором проводится выгрузка моделей и иные действия после данного задания>

004E: end_thread

:<название блока, с которого начинается код миссии>

0317: increment_mission_attempts

03A4: name_thread "<thread name>"

0004: $onmission = 1

0110: player $PLAYER_CHAR wanted_level = 0

;Здесь вы можете помещать код миссии (загрузка моделей в память игры, создание их на ;карте и т.п.)

0247: request model <номер модели>

038B: load requested models

:<Цикл миссии1>

0001: wait 0 ms

00D6: if 0

0248: model <номер модели> available

0002: jump Ј<Цикл миссии1>

;Здесь вы можете помещать команды по созданию моделей персонажей/транспортных ;средств, пикапов, оружия на карте и т.д.

:<Цикл миссии2>

0001: wait 0 ms

40 Kb

Пример анимации, присвоенной игроку.

;Здесь вы можете помещать различного рода проверки (добрался ли игрок до нужного ;места, убил ли того или другого персонажа...)

;Количество такого рода циклов не ограничено

0002: jump Ј<Цикл миссии2>

;Здесь вы помещаете новые действия, которые нужно сделать игроку после выполнения ;предыдущих заданий.

:<Блок, переход к которому осуществляется при выполнении всех поставленных вами условий>

01E3: text_1number_styled 'M_PASS' 10000 5000 ms 1

0109: player $PLAYER_CHAR money += 10000

0394: play music 2

0110: clear_player $PLAYER_CHAR wanted_level

0051: return

:<Блок провала миссии. Выполняется, если игрок умер в текущей миссии или попал в полицейский участок>

00BA: text_styled "M_FAIL" 4000 ms 1 ; MISSION FAILED!

0051: return

:<блок, в котором проводится выгрузка моделей и иные действия после данного задания>

0004: $ONMISSION = 0

00D8: mission_cleanup

0051: return

После того как миссия будет написана, необходимо поместить ее в файл Maim.scm игры перед следующей строкой:

DEFINE EXTERNAL_SCRIPT_START AAA

Осталось добавить миссию в список игровых. Для этого ищем строчку, начинающуюся на DEFINE MISSIONS. По стандарту текущее значение игровых миссий равно 135, но поскольку мы добавляем одну новую миссию, меняем текущее значение 135 на 136.

После этого найдите следующую строку:

DEFINE MISSION 134 AT ЈЈBUYPRO1_1

После нее добавьте:

DEFINE MISSION 135 AT ЈЈMission<номер миссии>

При этом не забудьте изменить комментарий <номер миссии> на номер, указанный вами в самом начале.

Видеокамера

Мы подошли к самому ответственному моменту: созданию ролика в San Andreas Mission Builder. Начнем с самого простого: вы должны научиться управлять камерой в SAMB. Чтобы установить камеру по определенным координатам, используется следующая команда:

015F: set camera position 664.9277 -479.6112 16.1668 0.0 0.0 0.0

29 Kb

Пример ролика, созданного на движке игры.

Где 664.9277 -479.6112 16.1668 — координаты, которые определяют позицию камеры. После того как вы выбрали место, с которого будет вестись показ ролика, можно приступать к серии следующих команд, определяющих, куда будет направлена камера. Для того чтобы мгновенно направить камеру в определенную точку, используется следующая команда:

0160: point camera 665.8948 -479.5685 16.4175 2

Чтобы камера плавно переходила от одной точки к другой, используется команда:

0160: point camera 665.8948 -479.5685 16.4175 1

Указать время, в течение которого камера будет менять свое направление, вам поможет команда:

0460: set camera pointing time 0.0 5000

Где 5000 — время (5 сек), в течение которого камера будет плавно менять свое направление.

Чтобы не запутаться в обилии различных команд, рассмотрим конкретный пример:

:Cj_Test

0001: wait 0 ms

015F: set camera position 2496.653 -1668.981 16.1349 0.0 0.0 0.0

0160: point camera 2494.693 -1685.513 16.33689 2

0001: wait 3000 ms

0160: point camera 2481.854 -1654.274 17.24341

27 Kb

Манипуляции с камерой - дело непростое.

0460: set camera pointing time 0.0 5000

0001: wait 5000 ms

004E: end thread

Камера направлена из определенной позиции на дом Сиджея, затем, через 3000 мс или 3 сек, она плавно начинает менять свое положение в течение 5000 мс или 5 сек, после чего ролик заканчивается.

Если вы хотите, чтобы помимо направления камеры изменилась и ее позиция, то перед командой

0160: point camera 665.8948 -479.5685 16.4175 1

вставьте следующую команду:

015F: set camera position 664.9277 -479.6112 16.1668 0.0 0.0 0.0

Чтобы направить камеру на транспортное средство, используйте следующую команду:

0158: camera on vehicle $my_car 15 2

Где my_car — название созданного вами транспортного средства, а цифра 2 — показатель, что камера мгновенно будет направлена на средство передвижения. Если вам нужно, чтобы камера постепенно меняла свою позицию, то вместо цифры 2 поставьте 1.

Для направления камеры на персонажей подходит команда:

0159: camera on ped $my_ped 15 2

Видеоэффекты

Теперь несколько усложним задачу, применим в ролике различные видеоэффекты. Конкретно: тряску экрана (shake), затемнение экрана (fade), эффекты взрывов и некоторые другие. И начнем мы с затемнения экрана, которое применяется между различными сценами игры.

Создается затемнение следующей командой:

32 Kb

Если вы создали триггер и при его создании не допустили никаких недочетов, то при заходе в подобную сферу произойдет запуск миссии.

016A: fade 0 () 1500 ms

Цифра 0 включает режим затемнения, 1500 — время в мс, за которое произойдет затемнение экрана. Очень удобно во время затемнения создавать авто, производить различные манипуляции, которые рядовой геймер видеть не должен. Но для этого после команды затемнения экрана нужно поставить задержку по времени, равную времени затемнения, прежде чем производить какое-либо действие, иначе игрок еще до того, как свет померкнет, увидит все действия. Ну а когда “скрытые” действия осуществлены, нужно использовать команду, чтобы снять затемнение экрана:

016A: fade 1 () 1500 ms

Опять же, перед командой надо сделать небольшую паузу. В некоторых миссиях бывает полезно использовать эффект тряски экрана: например, при мощных взрывах создается тряска командой

0003: shake camera 40

Цифра 40 — определяет силу тряски камеры. Если поставить 50, то экран будет чуть-чуть подергиваться. Если впечатать значение 250 — начнется настоящее землетрясение. Максимальное значение параметра — 500. Используя эффекты взрывов и огня вкупе с тряской экрана, можно получить красивую картинку! Чтобы создать взрыв по определенным координатам, подходит команда

020C: create explosion with radius 7 at 567.98 1234.3 21.7

Где 7 — радиус взрывной волны, 567.98 1234.3 21.7 — координаты, по которым будет создан взрыв. Напоследок хотелось бы упомянуть про так называемый широкоэкранный режим, вызываемый следующей командой:

02A3: toggle widescreen 1 (on)

Отключается широкий экран командой:

02A3: toggle widescreen 0 (off)

Во многих роликах бывает нужно “заморозить” игрока в текущей позиции. Вызывается “заморозка” командой

01B4: set player $PLAYER_CHAR frozen state 0 (frozen)

А отключается командой

01B4: set player $PLAYER_CHAR frozen state 1 (unfrozen)

Нажатые клавиши

Во многих миссиях необходимо ввести проверку или ряд проверок на нажатие той или иной клавиши. Например, с помощью проверки на нажатие клавиши можно организовать вызов телохранителя, или написать собственный код нитро, или даже внедрить в игру режим замедления времени... При проверке на нажатые клавиши используется следующая команда: 00E1: key pressed 0 13

Цифра 13 означает тип нажатой клавиши, в данном случае — это клавиша смены камеры. Рассмотрим конкретный пример: я хочу, чтобы при нажатии клавиши смены камеры проигралась определенная игровая мелодия.

:DO1

0001: wait 0 ms

00D6: if 0

00E1: key pressed 0 13

004D: jump if false ЈЈDO1

0394: play music 2

004E: end thread

На примере все четко видно: команда 00D6: if 0 означает, что поставлено определенное условие, а именно 00E1: key pressed 0 13. Если нажата клавиша 13, то условие выполняется, проигрывается игровая мелодия, и на этом мод прекращает свое существование, если же нет  — проверка начинается сначала и будет продолжаться до тех пор, пока игрок не нажмет клавишу.

С цифровыми значениями различных клавиш вы можете ознакомиться на наших дисках в разделе “По журналу”/Игрострой”.

Анимация персонажей

Во время создания ролика актерам (игровым персонажам) можно присваивать некоторые анимации игры, чтобы они не стояли без движения. Каждой анимации соответствует своя команда. Если вы хотите присвоить какому-либо персонажу анимацию, используйте одну из ниже перечисленных команд, заменяя имя актера PLAYER_ACTOR на название анимируемого персонажа.

Анимация персонажа задается командой:

0605: unknown_action_sequence $PLAYER_ACTOR "CAR_HOOKERTALK" "PED" 4.0 1 0 0 0 2000

PLAYER_ACTOR — название актера, к которому будет применена анимация, "CAR_HOOKERTALK" "PED" — название анимации, 2000 — время, в течение которого будет проигрываться анимация персонажа.

* * *

На этом мы завершаем цикл статей о создании миссий для GTA: SA. Полученных вами знаний вполне хватит, чтобы создать игровой уровень любой сложности с применением персонажей и любых транспортных средств. Так же вы без особого труда можете срежиссировать видеоролик на движке.

Теоретически, описанным в статьях способом можно сделать совершенно новую игру, но... на это уйдет не один месяц. Простые же моды можно создавать буквально за одну-две недели. Все зависит только от вашей фантазии.

NNNN
NNN 
Всего скриншотов: 7Show all screenshots
В этом году было не так много квестов, но те, что были, — все как на подбор хороши.
Nintendo заявила, что в разработке находится более восьмидесяти игр для консоли Switch. Рассказываем о тех, что выйдут в ближайшее время.
В 2016 году вышло немало всяческих переизданий, ремейков и HD-версий. Выбираем лучшие из них.
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > «Викинг». The Return of the (Vi)king
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Прямым текстом > Darksiders: Warmastered Edition — жизнеспособное чудище Франкенштейна
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования