00069. Взрывы и всё, что связано с огнём.
Взрывы и всё, что связано с огнём.|В этом уроке мы рассмотрим взрывы, а также поиграем с огнём! :)|wmysterio|wmysterio||||Вы любите взрывы? Когда автомобиль взлетает на несколько метров вверх... Ммм... Я люблю! :) Чтобы узнать опкоды взрывов в поиске введите слово "explo" и Вам предоставится список опкодов для работы со взрывами. Я рассмотрю только несколько из них - которые я использую и проблем с ними не возникает.
Опкод создаёт взрыв:
0948: create_explosion_at 1205.0 162.0 13.0 type 11 camera_shake 5.0Здесь: 1205.0 162.0 13.0 - координаты, где должен произойти взрыв 11 - тип взрыва ( см. Типы взрывов ) 5.0 - параметр указывает как сильно будет шататься камера после взрыва. Чем больше число, тем сильнее будет шататься ( но большие значения не вводите )
Опкод воспроизводит звук взрыва:
0565: create_soundless_explosion_at 1205.0 162.0 13.0 type 11Здесь: 1205.0 162.0 13.0 - координаты, где должен произойти взрыв 11 - тип взрыва. Звук будет подбираться по типу, так что используйте такой тип, который вы указали в опкоде 0948 ( обычно эти опкоды идут вместе )
Далее в нас опкод, который проверяет "Существует ли взрыв в кубе?":
0356: explosion_type -1 in_cube_cornerA 107@ 108@ 109@ cornerB 110@ 111@ 112@Здесь: -1 - указывается тип взрыва ( см. Типы взрывов ), которого нужно проверить. Если поставить -1, то проверятся будут любые взрывы в кубе 107@ 108@ 109@ - координаты нижней левой точки куба ( можно использовать обычные координаты в место переменных ) 110@ 111@ 112@ - координаты верхней правой точки куба ( можно использовать обычные координаты в место переменных )
Эти опкоды заставляют транспорт "0@" взорваться:
020B: explode_car 0@ // versionA
070C: explode_car 0@ // versionBПрикольно, правда? Давайте напишем скрипт: Когда СЖ сидит в транспорте и нажимает кнопку 8, то в переменную заносится текущий автомобиль. Если СЖ нажмёт кнопку <kbd>9, то этот транспорт взорвётся!
{$CLEO}
0000:
while true
if AND
actor.Driving($PLAYER_ACTOR)
0AB0: key_pressed 56 // 8
then
03C0: 0@ = actor $PLAYER_ACTOR car
0AD1: show_formatted_text_highpriority "Detonator enable!" time 3000
end
if AND
car.Defined(0@)
0AB0: key_pressed 57 // 9
then
if
8119: not car 0@ wrecked
then
020B: explode_car 0@ // versionA
end
end
wait 0
endПо-традиции скрин:

Даю Вам задание: сделать точно такой же скрипт, только взрыв автомобиля не должен осуществляться опкодами: "020B", "070C" и "08CB". Принцип работы должен быть тем же: нажимаешь кнопку - БАХ!
Взрывы рассмотрели. Теперь рассмотрим огонь. Думаю расписывать что такое огонь не имеет смысла :D Перейдём к опкодам!
Одкод создаёт огонь.
Здесь: 0@ - переменная, в которой хранится имя огня 0.0 0.0 0.0 - указываем координаты, где должен создаться огонь 0 - распространение огня. Чем больше параметр, тем быстрее огонь будет распространятся по площади 1 - размер огня. По-сути это размер ( радиус ) центра
Выгружает с памяти ( тушит ) огонь.
Тушит все огоньки.
Тушит все огони в определённой точке на расстоянии радиуса.
Записывает в переменные координаты огня "0@". Далее рассмотрим проверки для огней:
Есть так же два интересных опкода. Например: когда в машины мало жизней, то она начинает гореть. Мы можем заставить его гореть принудительно! Используем опкод:
Здесь: 0@ - хэндл огня $CAR - хэндл транспорта. Если мы поставили иммунитеты к огню, то опкод может не сработать
Так же само мы можем заставить гореть актёра, используя опкод:
Давайте напишем простейший скрипт - нажимаем кнопку 1` и СЖ начинает гореть:
Думаю основную ( если не полную :) ) информацию я вам предоставил. Вы можете использовать огни в своих миссиях.|1343|1|0|17423750png600360400`240``||vzryvy_i_vsjo_chto_svjazano_s_ognjom|1499704863
Last updated
Was this helpful?