пятница, 4 января 2013 г.

Уроки скриптинга. Урок 2. Работа над Сиджеем

Всем доброго времени суток. С вами снова andre500. В этом уроке мы будет работать над Сиджеем. Дадим ему анимацию и присвоим какие нибудь эффекты(огонь, искры) на главного героя!
Этот урок состоит из двух частей
1.Назначаем анимацию Сиджею
2.Создаем спец эффекты


Часть 1.
Нам потребуются: GTA Anim Manager (позволяет просматривать анимации) и Sanny Builder 3 (создание скриптов).


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

Мы: открываем GTA Anim Manager, нажимаем на Preview и Load Model, ищем модель любого человека (педа), после открываем GTA San Andreas/anim, выбираем anim или PED и ищем нужную анимацию.

Если выбираете anim, название пакета с анимацией придётся отдельно прописывать в скрипте, а если вы выбрали PED, ничего делать не надо! Я выбираю anim, чтобы вы учились на более сложном уровне.
Как только нашли нужную анимацию, начинаем создавать скрипт!
Открываем Sanny Builder 3 и создаём новый файл. После вводим начало скрипта:

{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------


Нам нужно загрузить анимацию вот этой командой:

04ED: load_animation "PARK"
038B: load_requested_models
04EE: animation "PARK" loaded

Анимация загружена! Осталось лишь задать кнопку. Я точно помню, что ID 90 – это кнопка Z, а 82 – T. Так что задаём нажатие первой кнопки:

:NONAME_1
wait 0
if
0AB0: key_pressed 90
else_jump @NONAME_1

Это проверка. Теперь делаем команду анимации:

wait 0
0812: AS_actor $Player_actor perform_animation "Tai_Chi_in" IFP_file "PARK" 4.0 loopA 1 lockX 1 lockY 1 lockF 0 time -1 // version

Всё, анимация будет работать, но нам нужно, чтобы её можно было отключать! Для этого пишем:

:NONAME_2
wait 0
if
0AB0: key_pressed 84
else_jump @NONAME_2
wait 0
0812: AS_actor $Player_actor perform_animation " Tai_Chi_Out " IFP_file "PARK" 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time 0 // versionB
wait 1000
jump @NONAME_1

Вот так выглядит весь код:

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------

04ED: load_animation "PARK"
038B: load_requested_models
04EE: animation "PARK" loaded
:NONAME_1
wait 0
if
0AB0: key_pressed 90
else_jump @NONAME_1
wait 0
0812: AS_actor $Player_actor perform_animation "Tai_Chi_in" IFP_file "PARK" 4.0 loopA 1 lockX 1 lockY 1 lockF 0 time -1 // versionB
wait 1000
:NONAME_2
wait 0
if
0AB0: key_pressed 84
else_jump @NONAME_2
wait 0
0812: AS_actor $Player_actor perform_animation " Tai_Chi_Out " IFP_file "PARK" 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time 0 // versionB
wait 1000
jump @NONAME_1

Компилируем скрипт, вставляем в игру и запускаем. Не забывайте, для включения мы используем Z, а для отключения – T.

Получилось интересно. Когда отключаешь анимацию, Сиджей проигрывает другую анимацию, заканчивая медитацию.
Часть 2
Надеюсь, вы уже понимаете, что для создания CLEO скриптов нужна программа Sanny Builder 3. И для хорошей работы SB, нужно установить CLEO 4 как на игру, так и на программу. Итак, начнём к поиску эффектов… Для этого открываем SB, нажимаем на F12 и откроется окно помощи. Тут можно найти многое… Но нам нужны эффекты! Жмём «Поиск» и в поиске пишем «Эффекты».
Ищем подходящий нам эффект, и переходим к другой части урока. Я выбрал эффект "prt_spark_2" – Большие Искры.
Теперь надо узнать координаты от куда будут идти искры.
Координаты узнавать легко… И вы наверняка можете пропустить этот подзаголовок… Но для тех, кто не знает как узнавать координаты, я сделал этот заголовок… И так, приступим к узнаванию координат. Для начала входим в игру. Это делается легко и быстро с помощью этой кнопки на панели в SB
Теперь создаём какой-либо текст и открываем его. Теперь разворачиваем SB и жмём: Ctrl+Alt+1. Если у вас версия 1.0 игры, то в появившемся окне нажмите v1.1, а потом Read. Если у вас другая версия GTA SA, то координаты сразу появятся:
Теперь в этом окне с координатами жмём на “Copy” и вставляем в наш текст и сохраняем. Вот мои координаты: 2494.3127 -1689.0327 21.8204. Но чтобы эффект был чётко там где хотелось, нужно отнять 1 от высоты, то есть из последней строчки координат: 21.8204. И получится так: 20.8204, а вся координата будет такая: 2494.3127 -1689.0327 20.8204. Сохраняем текст и переходим к скрипту…
Итак, для начала нам надо создать новый скрипт, жмём Ctrl+N. На первой строке пишем:

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP


Далее, нужно поставить начало скрипта «:NONAME_1». Пишем это на следующей строке. И обязательно должны быть символы, типа «:» и «_»!!!
Вот теперь ставим эффект!!! Для этого пишем на новой строке:

064B: $ICKRI = create_particle "prt_spark_2" at  1
064C: make_particle $ICKRI visible

У вас не обязательно должно быть всё как у меня! Вот например:

$ICKRI – Это название нашего эффекта, можете написать хоть что, главное, чтобы в следующей строке было написано то же название! Эффект также может быть любым. Но есть такие эффекты, которые воспроизводятся только 1 раз, на пример взрыв. Но искры бесконечны… Так что продолжим…

Там, где написано at 1, между ними вставляем наши координаты! Проследит, чтобы координаты были без запятых… И в конце скрипта пишем «end_thread», то есть чтобы больше этот скрипт не повторялся. Вот весь скрипт:
{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
:NONAME_1
064B: $ICKRI = create_particle "prt_spark_2" at 2494.3127 -1689.0327 20.8204 1
064C: make_particle $ICKRI visible
end_thread
Теперь компилируем. Для этого жмём F6. Называем файл как хотим и сохраняем в папку CLEO в папке GTA SA. Всё! Идём в игру.
Тут конечно не очень видно искр, так как они на фоне неба, но если посмотреть внимательнее, искры видно идеально. Вот! Теперь на крыше дома летят искры, эффекты можно использовать в качестве декора для игры… Теперь приступим к созданию эффектов на Сиджее.

Пишем скрипт для Сиджея

Итак, мы уже сделали так, чтобы эффект был на доме, теперь пришло время делать эффект на Сиджее!!! Я сделаю простой скрипт, когда искры уже сразу летят из Сиджея, а проверку нажатия кнопок, думаю, все знают как прописать… Итак, создадим новый файл и пишем то же начало скрипта:

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP
:NONAME_1

Далее, надо просто прописать присвоение эффекта к игроку, в этом случае к Сиджею. И так, на новой строке пишем:

0669: 29@ = attach_particle "prt_spark_2" to_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 flag 1
064C: make_particle 29@ visible
end_thread

Всё просто! Но можно так же сделать так, чтобы искры шли у Сиджея из головы, для этого можно изменять координаты в конце команды искр. То есть прибавить высоты.
На этом наш урок подошел в концу. В следующем уроке мы научимся устанавливать транспорт на локацию, а так же заставлять актера ехать в нужном направлении!
Так же скоро выйдет новый пак уроков по моделированию. Как конвертировать оружия и персонажей и даже целые локации с других игр, а так же новое другое только в моем блоге!
Всем пока! :)






4 коммент.:

Unknown комментирует...

А можно сделать, чтобы при нажатии на кнопку в радиусе от сиджея был огонь, вредный другим педам?

Unknown комментирует...

Да, конечно можно. Стучи мне в контакт(http://vk.com/id92658680) я объясню что к чему :)

Unknown комментирует...

когда ты бываешь в он-лайне?

Unknown комментирует...

Я часто в онлайне бываю. Добавь в друзья и я приму.

Отправить комментарий