You are not logged in.
Pages: 1
1. нашёл где-то на японско/китайско/корейском сайте скрипт ядерного взрыва
2. скорректировал, улучшил, оптимизировал и дополнил его
3. пытаюсь устранить все нюансы.
{$CLEO .cs} //-------------MAIN--------------- :start 0000: NOP :check wait 0 if and 80DF: not actor $PLAYER_ACTOR driving Player.Defined($PLAYER_CHAR) not Actor.Dead($PLAYER_ACTOR) not wasted_or_busted 0AB0: key_pressed 17 0AB0: key_pressed 78 // ctrl+n jf @check :phone wait 0 Model.Load(#CELLPHONE) Model.Load(3790) 038B: load_requested_models if Model.Available(#CELLPHONE) Model.Available(3790) jf @phone 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 03BF: set_player $PLAYER_CHAR ignored_by_everyone 1 0489: set_actor $PLAYER_ACTOR muted 1 wait 5000 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 03BF: set_player $PLAYER_CHAR ignored_by_everyone 0 0489: set_actor $PLAYER_ACTOR muted 0 $532 = 30999 014E: set_timer_to $532 type 1 Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@) Actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@) 0167: 3@ = create_marker_at 0@ 1@ 2@ flags 0 2 Marker.SetColor(3@, 4) Marker.SetIconSize(3@, 2) 06D5: 4@ = create_racing_checkpoint_at 0@ 1@ 2@ point_to 0.0 0.0 0.0 type 2 radius 5.0 :abort wait 0 if and 0AB0: key_pressed 17 0AB0: key_pressed 67 // ctrl+c jf @timeroff 014F: stop_timer $532 Marker.Disable(3@) 06D6: disable_racing_checkpoint 4@ jump @check :timeroff if not $532 > 10000 jf @abort 0208: 8@ = random_float_in_ranges 0.0 360.0 7@ = 50.0 005B: 7@ += 2@ // (float) 9@ = Object.Create(3790, 0@, 1@, 7@) Object.SetImmunities(9@, 1, 1, 1, 1, 1) 08D2: object 9@ scale_model 2.5 Object.Angle(9@) = 8@ 0400: store_coords_to 5@ 6@ 7@ from_object 9@ with_offset 3000.0 0.0 0.0 Object.PutAt(9@, 5@, 6@, 7@) 0087: 11@ = 5@ // (float) 0087: 12@ = 6@ // (float) 0063: 11@ -= 0@ // (float) 0063: 12@ -= 1@ // (float) 10@ = Marker.CreateAboveObject(9@) Marker.SetColor(10@, 0) Marker.SetIconSize(10@, 2) :incoming wait 0 if 0471: actor $PLAYER_ACTOR near_object_in_rectangle 9@ radius 100.0 100.0 flag 0 jf @coming 0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 2.5 0.0 0.0 095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1 0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 5.0 0.0 0.0 095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1 0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 7.5 0.0 0.0 095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1 :coming 0087: 5@ = 11@ // (float) 0087: 6@ = 12@ // (float) 008F: 13@ = integer $532 to_float 13@ /= 10000.0 006B: 5@ *= 13@ // (float) 006B: 6@ *= 13@ // (float) 005B: 5@ += 0@ // (float) 005B: 6@ += 1@ // (float) Object.PutAt(9@, 5@, 6@, 7@) if not $532 > 0 jf @incoming 03CF: load_wav 14401 as 33@ Marker.Disable(3@) 06D6: disable_racing_checkpoint 4@ 0750: set_object 9@ visibility 0 Marker.Disable(10@) 0169: set_fade_color 255 255 255 016A: fade 0 () 500 ms 0001: wait 500 ms set_weather 0 03D1: play_wav 33@ 31@ = 0 // height 016A: fade 1 () 2500 ms 020C: create_explosion_with_radius 0 at 0@ 1@ 2@ 020C: create_explosion_with_radius 1 at 0@ 1@ 2@ 020C: create_explosion_with_radius 2 at 0@ 1@ 2@ 020C: create_explosion_with_radius 3 at 0@ 1@ 2@ 020C: create_explosion_with_radius 4 at 0@ 1@ 2@ 020C: create_explosion_with_radius 5 at 0@ 1@ 2@ 020C: create_explosion_with_radius 6 at 0@ 1@ 2@ 020C: create_explosion_with_radius 7 at 0@ 1@ 2@ 020C: create_explosion_with_radius 8 at 0@ 1@ 2@ 020C: create_explosion_with_radius 9 at 0@ 1@ 2@ 08EB: create_sparks_at 0@ 1@ 2@ velocity_direction 0.0 0.0 25.0 density 1000 :firstwave wait 0 020C: create explosion with radius 100 at 0@ 1@ 31@ 09E5: create_flash_light_at 0@ 1@ 25.0 RGB_mask 16383 16383 16383 radius 100.0 09E5: create_flash_light_at 0@ 1@ 7@ RGB_mask 16383 16383 16383 radius 100.0 04D5: create_corona_at 0@ 1@ 7@ radius 25.0 type 1 flare 2 RGB 4095 4095 4095 09E5: create_flash_light_at 0@ 1@ 100.0 RGB_mask 16383 16383 16383 radius 1000.0 04D5: create_corona_at 0@ 1@ 100.0 radius 250.0 type 1 flare 2 RGB 4095 4095 4095 31@ += 1 31@ > 30 jf @firstwave // 0ABA: end_custom_thread_named 'TRAFFIC' 01EB: set_traffic_density_multiplier_to 0.0 03AD: NOP 1 03C7: set_sensitivity_to_crime 0.0 03DE: set_pedestrians_density_multiplier_to 0.0 06C8: enable_riot 1 06D7: enable_train_traffic 0 31@ = 1 :flashlight wait 0 0093: 30@ = integer 31@ to_float 30@ *= 2.5 09E5: create_flash_light_at 0@ 1@ 7@ RGB_mask 16383 16383 16383 radius 250.0 30@ *= 8.0 if 30@ > 1000.0 jf @coronalight 30@ = 1000.0 :coronalight 04D5: create_corona_at 0@ 1@ 7@ radius 30@ type 1 flare 2 RGB 4095 4095 4095 0093: 30@ = integer 31@ to_float 30@ *= 2.0 if 31@ > 120 jf @secondwave 29@ = 1 :shockwave 27@ = 720.0 30@ = 240.0 0073: 27@ /= 30@ // (float) 0093: 30@ = integer 31@ to_float 30@ *= 2.0 0093: 28@ = integer 29@ to_float 006B: 27@ *= 28@ // (float) Object.Angle(9@) = 27@ 0400: store_coords_to 5@ 6@ 2@ from_object 9@ with_offset 30@ 0.0 0.0 02CE: 2@ = ground_z_at 5@ 6@ 7@ 0565: create_soundless_explosion_at 5@ 6@ 2@ type 7 02CF: 18@ = create_fire_at 5@ 6@ 2@ propagation 10 size 500 0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 20.0 0.0 5.0 0063: 14@ -= 0@ // (float) 0063: 15@ -= 1@ // (float) 0063: 16@ -= 7@ // (float) 2@ += 5.0 14@ *= 25.0 15@ *= 25.0 16@ *= 10.0 073E: get_car_in_sphere 5@ 6@ 2@ radius 100.0 model -1 handle_as 27@ if 056E: car 27@ defined jf @killer1 0325: 20@ = create_car 27@ fire 020B: explode_car 27@ // versionA 020B: explode_car 27@ // 070C: explode_car 27@ // versionB 070C: explode_car 27@ // 08CB: explode_car 27@ shake 0 effect 8 sound 1 020C: create explosion with radius 100 at 5@ 6@ 2@ 0948: create_explosion_at 5@ 6@ 2@ type 11 camera_shake 5.0 Car.RemoveReferences(27@) :killer1 08E5: get_actor_in_sphere 5@ 6@ 2@ radius 100.0 handle_as 27@ if 056D: actor 27@ defined jf @smoke1 0321: kill_actor 27@ Actor.RemoveReferences(27@) :smoke1 14@ *= 0.1 15@ *= 0.1 16@ *= 0.1 095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 50.0 last_factor 0.05 09E5: create_flash_light_at 5@ 6@ 2@ RGB_mask 16383 16383 16383 radius 50.0 Camera.Shake(100) 29@ += 1 29@ > 500 jf @shockwave jump @nnm1 :secondwave 29@ = 1 03D1: play_wav 33@ 0223: set_actor $PLAYER_ACTOR health_to 1 0326: 32@ = create_actor $PLAYER_ACTOR fire :exploder 27@ = 720.0 0073: 27@ /= 30@ // (float) 0093: 28@ = integer 29@ to_float 006B: 27@ *= 28@ // (float) Object.Angle(9@) = 27@ 0400: store_coords_to 5@ 6@ 2@ from_object 9@ with_offset 30@ 0.0 0.0 02CE: 2@ = ground_z_at 5@ 6@ 7@ 02CF: 18@ = create_fire_at 5@ 6@ 2@ propagation 3 size 5 02CF: 19@ = create_fire_at 5@ 6@ 2@ propagation 10 size 5 02CF: 21@ = create_fire_at 5@ 6@ 2@ propagation 50 size 100 0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 20.0 0.0 5.0 0063: 14@ -= 0@ // (float) 0063: 15@ -= 1@ // (float) 0063: 16@ -= 7@ // (float) 2@ += 5.0 14@ *= 25.0 15@ *= 25.0 16@ *= 10.0 073E: get_car_in_sphere 5@ 6@ 2@ radius 50.0 model -1 handle_as 27@ if 056E: car 27@ defined jf @killer2 0325: 20@ = create_car 27@ fire 08CB: explode_car 27@ shake 0 effect 8 sound 1 020B: explode_car 27@ // versionA 020B: explode_car 27@ 070C: explode_car 27@ // versionB 070C: explode_car 27@ Car.RemoveReferences(27@) :killer2 08E5: get_actor_in_sphere 5@ 6@ 2@ radius 50.0 handle_as 27@ if 056D: actor 27@ defined jf @smoke2 0321: kill_actor 27@ Actor.RemoveReferences(27@) :smoke2 14@ *= 0.1 15@ *= 0.1 16@ *= 0.1 095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 25.0 last_factor 0.02 020C: create explosion with radius 10 at 5@ 6@ 2@ 0565: create_soundless_explosion_at 5@ 6@ 2@ type 1 2@ += 5.0 095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 50.0 last_factor 0.08 099C: jiggle_camera type 1 timelimit 10000.0 intensity 2.0 29@ += 1 001D: 29@ > 31@ // (int) jf @exploder :nnm1 31@ += 1 if and 0039: 31@ == 250 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle jf @nnm2 Actor.StorePos($PLAYER_ACTOR, 22@, 23@, 24@) 0169: set_fade_color 255 255 255 016A: fade 0 () 250 ms 0001: wait 250 ms 03D1: play_wav 33@ 016A: fade 1 () 1500 ms 0326: 32@ = create_actor $PLAYER_ACTOR fire 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 wait 1 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 wait 10 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 wait 100 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 0AA5: call 0x00439D80 num_params 0 pop 0 000B: 24@ += 2.0 02CF: 25@ = create_fire_at 22@ 23@ 24@ propagation 3 size 5 09E5: create_flash_light_at 22@ 23@ 24@ RGB_mask 16383 16383 16383 radius 10.0 04D5: create_corona_at 22@ 23@ 24@ radius 15.0 type 10 flare 10 RGB 4095 4095 4095 052C: set_player $PLAYER_CHAR drunk_visuals 100 :nnm2 if 31@ > 500 jf @flashlight Object.Destroy(9@) wait 1000 0169: set_fade_color 0 0 0 :zone wait 0 if 80EC: not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 1500.0 1500.0 jf @zone 01EB: set_traffic_density_multiplier_to 1.0 03AD: NOP 0 03C7: set_sensitivity_to_crime 1.0 03DE: set_pedestrians_density_multiplier_to 1.0 01B7: release_weather 06C8: enable_riot 0 06D7: enable_train_traffic 1 052C: set_player $PLAYER_CHAR drunk_visuals 0 040D: unload_wav 33@ jump @check end_thread jump @check
4. Несколько слов о скрипте:
* Вызываем бомбардировщик по CTRL+N
* Отменяем заказ по CTRL+C
* если есть скрипт траффика, раскоментируйте строку для его остановки
* после взрыва в радиусе 1500 автомобили и люди практически не появляются
* если во время взрыва игрок в самолёте - у него отказывает двигатель (загорается)
5. Совершенствование:
* несколько раз приходится прописывать создание взрывов и взрывы машин, ибо зачастую скрипт какие-то из них пропускает
* почему-то не взрываются самолёты и вертолёты (за редким исключением) - ИСПРАВЛЕНО (почти)
* не удаётся качественно добавить огня и дыма после взрыва - КАК РЕАЛИЗОВАТЬ?
* какие ещё можно здесь добавить эффекты визуальные?
Last edited by AlphaOmega (15-06-2008 11:46)
Offline
Насчет взрыва всех машин я тебе уже ответил
во время взрыва отключается скрипт TRAFFIC (если есть)
это не лучшая идея, на мой взгляд. скрипт-то у разных людей может быть разным
Offline
Насчет взрыва всех машин я тебе уже ответил
Спасибо. Код обновил.
Кстати, если написать их в том виде (с повторами и паузой) то получается прикольный эффект разлетания на части.
во время взрыва отключается скрипт TRAFFIC (если есть)
это не лучшая идея, на мой взгляд. скрипт-то у разных людей может быть разным
Поэтому упомянул это - чтобы кому надо могли убрать эту строку
Кстати, в обновлённом коде, после уничтожения всех машин я прописал появление огня и вспышки, но почему-то при тесте ничего не появляется... почему?
Offline
Поэтому упомянул это - чтобы кому надо могли убрать эту строку
лучше наоборот - чтобы те, кому надо, добавили эту строку
Offline
Поэтому упомянул это - чтобы кому надо могли убрать эту строку
лучше наоборот - чтобы те, кому надо, добавили эту строку
Обновил.
Так всё же, что же делать с огнём и вспышкой возле актёра при взрыве всех машин? почему не появляются?
Offline
32@, 33@ это таймеры. Это локальные переменные особого типа, их значение постоянно увеличивается. Поэтому совсем неразумно использовать их для хранения данных (в данном случае хендла огня и т.п.)
Offline
32@, 33@ это таймеры. Это локальные переменные особого типа, их значение постоянно увеличивается. Поэтому совсем неразумно использовать их для хранения данных (в данном случае хендла огня и т.п.)
32ой в моём коде нужен только чтобы создать, а не ссылать - и работает он замечательно (если в самолёте летишь, то самолёт как порывом ветра сносит когда сиджей загорается). Меня интересует вот эта чать:
02CF: 25@ = create_fire_at 22@ 23@ 24@ propagation 3 size 5 09E5: create_flash_light_at 22@ 23@ 24@ RGB_mask 16383 16383 16383 radius 10.0 04D5: create_corona_at 22@ 23@ 24@ radius 15.0 type 10 flare 10 RGB 4095 4095 4095
22 23 24 - это x y z положения игрока в данный момент (присваивается чуть выше).....
/offtop/ а нельзя ли в след. версии санни сделать столбец, в котором будет показано какие переменные (от 1 до 33) задействованы в скрипте? а то голову сломить мона пока ищешь свободные
Last edited by AlphaOmega (15-06-2008 12:37)
Offline
Прям конец света какой-то
Offline
извеняюсь за офф-топ...
@Agenzvell
а ты откуда знаешь, ааа?:D
а вообще - дождь не помешает, да.
Offline
а ты откуда знаешь, ааа?
Посмотри на его аватарку. Вопросы есть?
Offline
Pages: 1