Даём игроку динамит


Скрипт динамита — как он устроен?

Постараюсь доходчиво и просто, без лишней шелухи, построчно объяснить на примере реального рабочего скрипта из моего мода… С помощью данного туториала можно получиться скрипт довольно мощного динамита, который можно вставить в сцену игры в любой режим или миссию.

Даём игроку динамит

dim_flt 10
dim_act 10
dim_frm 10

Это общая шапка скрипта. В шапке содержится количество задействованных в скрипте актёров, фреймов и переменных (но может быть и больше, но не меньше).

findactor 0, "Tommy"
findactor 1, ""
findactor 2, "bomb"
findframe 0, ""
findframe 1, "xbarel 48"

А это наши актёры и фреймы с Томми в главных ролях, разумеется :) Актёр bomb можно, в принципе, не создавать, но для правдоподобности лучше бы, тем более это совсем несложно. В БСВ создаём даннаго актёра с моделью 2bomb.i3d c нулевыми координатами, например. С бочкой xbarel 48 та же ситуация. Это скрипт взят из мода, но эта бочка есть в любом фрирайде и почти любой городской миссии, так что вставлять отдельно её не нужно. Только пропишите ей такие координаты: X: 73,41076, Y:2,95, Z: 126,8266. Это в лавке Пита. Можете, конечно, прописать какие хотите. Это для того, чтобы Томми не оставлял следы на месте подрыва :)

human_addweapon 0, 22, 0, 0
human_addweapon 0, 22, 0, 0
human_addweapon 0, 22, 0, 0
human_addweapon 0, 22, 0, 0
human_addweapon 0, 22, 0, 0

На первое время даём главному герою в инвентарь пяток шашек динамита.

label 1 // первая метка
human_isweapon 0, 0, 22
if flt[0] = 1, -1, 1

Проверка, если в инвентаря у Томми динамит, и если да — переход дальше по скрипту.

ctrl_read 1, CROUCH1
if flt[1] = 1, -1, 1

Проверка, нажата ли была клавиша дополнительного приседания (звучит неочень, ну Вы поняли, надеюсь). Если да — идём дальше, если нет — переход в начало, к строке 1.

human_holster 0

Прячем Кольт, Смитти или ножичек…

player_lockcontrols 1

Блокируем управление Томасом для того, чтобы нормально анимацию проигралась.

policemanager_add "Tommy"
policemanager_forcearrest 0, 1

Учтите! Если хоть один увидит сии противоправные действа, то немедленно попытаются арестовать виновника, то бишь Томми. Подчёркиваю, арестовать, а не пристрелить на месте: Томми же не открыл огонь в ответ, а только пытается подготовить фейрверк для какого-то неизвестного мужика :) Так что прежде, чем устанавлить взрывчатку, потарайтесь оглядеться в начале, вдруг рядом копы.

human_activateweapon 0, 22

Активируем в руках Тома взрывчатку, если она у него есть, конечно, что уже было проверено ранее.

person_playanim 0, "MechKolo.i3d"
playsound "8_anim2.wav", -1, 100, 1
wait 4000
// время ожидания в 4 сек.

Сама анимация + звук из 8-ой миссии.

human_delweapon 0, 22

Убираем из инвентаря один динамит: израсходован ведь.

commandblock 1
findframe 2, "Tommy.r_foot"
actor_duplicate 2, 3, 0
actor_setplacement 1, 2
actor_setplacement 2, 2
actor_setplacement 3, 2
commandblock 0

Постараемся здесь ничего не менять. Просто на этом месте появится установленный динамит.

wait 4000
person_stopanim 0
player_lockcontrols 0
goto 2 // конец анимации и блокировки управления и переход в метку 2
label 2
human_talk 0, 08010530
timeron 0, 0, 0, 10
wait 10000
timeroff
// убираем часики с таймером

Коронная фраза + таймер на 10 секунд (за это время постарайтесь отбежать подальше, чтобы наблюдать фейверк со стороны, а не из больницы Лост Хэвэна).

explosion 20, 8000
emitparticle 0, 52, 1

Сам взрыв. Довольно мощный.

actor_setplacement 2, 1

Перемещаем объект 2 (bomb) во фрейм 1 (xbarel 48).

freeride_scoreget 2
let flt[2] = flt[2] + 1000
freeride_scoreset flt[2]

Небольшая денежка для Томми на бутеры и пивко в баре Сальери :)

emitparticle 0, 21, 1
wait 2000
// ждём пару секунд

Завершающий эффект взрыва.

human_talk 0, 10020010
wait 1000

Последняя фраза.

console_addtext 11990561

И поясняющая фраза, что всё произошло успешно: Томми остался жив, жители Лост Хэвэна в панике, конкуренты напуганы, а дон доволен проделанной работой.

stopparticle 1

Обязательно завершаем эффект, а то некоторые могут происходить довольно долгое время, и это будет весьма особенно заметно на старых ПК.

goto 1

Конец скрипта, и переход в первую метку, в режим "ожидания".


 Перевыпуск трилогии
 Как дать актёру предмет в руки
 Чудеса из подворотни
 По прозвищу «Бык»

Войдите, чтобы комментировать