CripZ | Дата: Воскресенье, 19.09.2010, 22:38 | Сообщение # 302 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Здравствуйте! Можете помочь пожалуйста с написанием скрипта, наверно вы знаете есть такой скрипт фейверк и там при нажатии кнопки появляется базука и из неё стреляет красочный фейверк, а мне нужно просто что бы если сиджей в маркере,то происходит фейверк,без лишних заморочек, вот сам скрипт оригинального фейверка,помогите переделать пожалуйста,просто салют в воздухе что бы происходилДобавлено (19.09.2010, 22:37) --------------------------------------------- не помещается код разделил по частям: №1 Code // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
//-------------MAIN--------------- thread 'FW'
:FW_11 wait 0 0@ = -229907 if &0(0@,1i) == 1179210309 jf @FW_11 0@ = -229908 if &0(0@,1i) == 1464816203 jf @FW_11 &0(0@,1i) = 1464816128 Model.Load(#GRENADE) Model.Load(#HEATSEEK) Model.Load(#BOMB) 038B: load_requested_models
:FW_116 wait 0 if and Model.Available(#GRENADE) Model.Available(#HEATSEEK) Model.Available(#BOMB) jf @FW_116 Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@) 2@ -= 0.5 4@ = Object.Create(#HEATSEEK, 0@, 1@, 2@) Object.CollisionDetection(4@) = False 0453: set_object 4@ XY_rotation 0.0 -90.0 angle 0.0 08D2: object 4@ scale_model 2.0 Object.SetImmunities(4@, 1, 1, 1, 1, 1)
:FW_239 01B2: give_actor $PLAYER_ACTOR weapon 40 ammo 1 // Load the weapon model before using this
:FW_248 wait 0 if or 8475: not actor $PLAYER_ACTOR near_object_in_cube 4@ radius 1.5 1.5 1.5 flag 0 on_foot 80E1: not player 0 pressed_key 15 jf @FW_1576 if and 02D8: actor $PLAYER_ACTOR current_weapon == 40 00E1: player 0 pressed_key 17 jf @FW_248
:FW_318 wait 0 if 80E1: not player 0 pressed_key 17 jf @FW_318 0400: store_coords_to 0@ 1@ 2@ from_object 4@ with_offset 1.5 0.0 0.0 020C: create_explosion_with_radius 12 at 0@ 1@ 2@ wait 0 3@ = Object.Create(#GRENADE, 0@, 1@, 2@) 069A: attach_object 3@ to_object 4@ with_offset 1.5 0.0 0.0 rotation 0.0 0.0 0.0 0682: detach_object 3@ 0.0 0.0 0.0 collision_detection 0 Object.CollisionDetection(3@) = True 08D2: object 3@ scale_model 2.5 Object.SetImmunities(3@, 1, 1, 1, 1, 1) Object.Throw(3@, 0.0, 0.0, 250.0) 0208: 5@ = random_float_in_ranges 127.5 255.0 0208: 6@ = random_float_in_ranges 127.5 255.0 0208: 7@ = random_float_in_ranges 127.5 255.0 0092: 28@ = float 5@ to_integer 0092: 29@ = float 6@ to_integer 0092: 30@ = float 7@ to_integer 5@ /= 255.0 6@ /= 255.0 7@ /= 255.0 Добавлено (19.09.2010, 22:38) --------------------------------------------- №2 Code :FW_613 wait 0 Object.StorePos(3@, 0@, 1@, 2@) 04D5: create_corona_at 0@ 1@ 2@ radius 2.5 type 1 flare 2 RGB 28@ 29@ 30@ 095C: create_smoke_at 0@ 1@ 2@ velocity 0.0 0.0 0.0 RGBA 5@ 6@ 7@ 1.0 size 1.0 last_factor 0.075 059F: get_object 3@ velocity_in_direction 0@ 1@ 2@ if 50.0 >= 2@ jf @FW_613 Object.StorePos(3@, 0@, 1@, 2@) 020C: create_explosion_with_radius 8 at 0@ 1@ 2@ wait 0 31@ = 0
:FW_783 8@(31@,20i) = Object.Create(#GRENADE, 0@, 1@, 2@) 069A: attach_object 8@(31@,20i) to_object 3@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 0682: detach_object 8@(31@,20i) 0.0 0.0 0.0 collision_detection 0 Object.CollisionDetection(8@(31@,20i)) = True 08D2: object 8@(31@,20i) scale_model 2.5 Object.SetImmunities(8@(31@,20i), 1, 1, 1, 1, 1) 31@ += 1 31@ > 18 jf @FW_783 Object.Throw(8@, 100.0, 0.0, 50.0) Object.Throw(9@, 70.0, 70.0, 50.0) Object.Throw(10@, 0.0, 100.0, 50.0) Object.Throw(11@, -70.0, 70.0, 50.0) Object.Throw(12@, -100.0, 0.0, 50.0) Object.Throw(13@, -70.0, -70.0, 50.0) Object.Throw(14@, 0.0, -100.0, 50.0) Object.Throw(15@, 70.0, -70.0, 50.0) Object.Throw(16@, 0.0, 0.0, 150.0) Object.Throw(17@, 0.0, 0.0, -50.0) Object.Throw(18@, 70.0, 0.0, 120.0) Object.Throw(19@, -70.0, 0.0, 120.0) Object.Throw(20@, 0.0, 70.0, 120.0) Object.Throw(21@, 0.0, -70.0, 120.0) Object.Throw(22@, 70.0, 0.0, -20.0) Object.Throw(23@, -70.0, 0.0, -20.0) Object.Throw(24@, 0.0, 70.0, -20.0) Object.Throw(25@, 0.0, -70.0, -20.0) Object.Throw(26@, 0.0, 0.0, 50.0) Object.ToggleInMovingList(3@) = False
:FW_1324 wait 0 Object.StorePos(3@, 0@, 1@, 2@) 09E5: create_flash_light_at 0@ 1@ 2@ RGB_mask 28@ 29@ 30@ radius 500.0 04D5: create_corona_at 0@ 1@ 2@ radius 25.0 type 1 flare 2 RGB 28@ 29@ 30@ 31@ = 0
:FW_1403 Object.StorePos(8@(31@,20i), 0@, 1@, 2@) 095C: create_smoke_at 0@ 1@ 2@ velocity 0.0 0.0 0.0 RGBA 5@ 6@ 7@ 1.0 size 0.5 last_factor 0.075 31@ += 1 31@ > 18 jf @FW_1403 059F: get_object 16@ velocity_in_direction 0@ 1@ 2@ if 0.0 >= 2@ jf @FW_1324 Object.Destroy(3@) 31@ = 0
:FW_1539 Object.Destroy(8@(31@,20i)) 31@ += 1 31@ > 19 jf @FW_1539 jump @FW_239
:FW_1576 0555: remove_weapon 40 from_actor $PLAYER_ACTOR Object.Destroy(4@) Model.Destroy(#GRENADE) Model.Destroy(#HEATSEEK) Model.Destroy(#BOMB) jump @FW_11 end_thread
Сообщение отредактировал CripZ - Воскресенье, 19.09.2010, 22:35 |
|
| |
Den_spb | Дата: Воскресенье, 19.09.2010, 23:11 | Сообщение # 303 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Добрый вечер. По вопросам переделки скриптов следует обращаться к их авторам. В данной теме я отвечаю только на конкретные вопросы по скриптингу.
|
|
| |
CripZ | Дата: Воскресенье, 19.09.2010, 23:17 | Сообщение # 304 |
Группа: Проверенные
Сообщений: 23
Статус: Offline
| Den_spb, ну а если не переделывать,то можете помочь в создании скрипта в котором дым разлетается в разные стороны,можно ли как нибудь так сделать?
|
|
| |
Den_spb | Дата: Воскресенье, 19.09.2010, 23:21 | Сообщение # 305 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Дым можно создать следующим опкодом:Code 095C: create_smoke_at 144@ 145@ 146@ velocity 147@ 148@ 149@ RGBA 150@ 151@ 152@ 153@ size 154@ last_factor 155@
|
|
| |
d88 | Дата: Среда, 22.09.2010, 18:59 | Сообщение # 306 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Как определить почему вылетает миссия в мэйне? В клео она вроде нормально работает. Я думал что может вылетать из-за другого потока, но почему тогда имнено в этой миссии, у меня там ещё 2 и с ними всё нормально.
|
|
| |
d88 | Дата: Среда, 22.09.2010, 22:37 | Сообщение # 308 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Quote (Den_spb) Посмотри в scmlog. По-моему там мэйн не записывается, по-крайней мере я ничего похожего не нашёл. Если я ошибаюсь, объясни как найти нужный поток.
|
|
| |
Den_spb | Дата: Среда, 22.09.2010, 22:53 | Сообщение # 309 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (d88) По-моему там мэйн не записывается, по-крайней мере я ничего похожего не нашёл. Если я ошибаюсь, объясни как найти нужный поток. Потоки мэйна там записываются, вперемешку с клео-скриптами. Поток, послуживший причиной вылета, находится в конце лога. Команда, при выполнении которой произошёл вылет, будет записана в логе последней.
|
|
| |
d88 | Дата: Четверг, 23.09.2010, 16:24 | Сообщение # 310 |
Группа: Проверенные
Сообщений: 113
Статус: Offline
| Den_spb, чё-то вообще какая-то ерунда получилась, оказывается из-за этого вылета scmlog.log вообще не создаётся Добавлено (23.09.2010, 16:24) --------------------------------------------- С этой проблемой разобрался, хотя так и не понял причину вылетов. Просто кое-что изменил в миссии, в том числе модели педов (странно конечно, но перестало же вылетать). Вот ещё такой вопрос, можно сделать чтоб определённый актёр никогда не истекал кровью?
|
|
| |
DK22Pac | Дата: Суббота, 25.09.2010, 13:19 | Сообщение # 311 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Можете разьяснить работу опкода Code 0381: throw_object 0@ velocity_in_direction 23@ 24@ 25@ ? Вот написал код Code 0400: store_coords_to 20@ 21@ 22@ from_object 1@ with_offset 0.0 50.0 15.0 1@.StorePos(17@, 18@, 19@) Dec(20@, 17@) Dec(21@, 18@) Dec(22@, 19@) 1@.Throw(20@, 21@, 22@) Как я понял, обьект летит ("поднимается") до координат (0.0,50.0,15.0) относительно своего центра (за 1 секунду), а потом идёт на спуск?
|
|
| |
Den_spb | Дата: Суббота, 25.09.2010, 15:23 | Сообщение # 312 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Code 0381: throw_object 0@ velocity_in_direction 23@ 24@ 25@ В 23@ - 25@ указываются проекции вектора скорости по осям координат.Quote (DK22Pac) Как я понял, обьект летит ("поднимается") до координат (0.0,50.0,15.0) относительно своего центра (за 1 секунду), а потом идёт на спуск? По идее он должен перемещаться равномерно и прямолинейно, ведь компоненты скорости у тебя не меняются.
|
|
| |
DK22Pac | Дата: Суббота, 25.09.2010, 17:29 | Сообщение # 315 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| В общем, мне надо пустить обьект из точки А в точку Б и узнать точку, в которой этот обьект столкается с чем-либо. При этом мне не надо, чтобы этот обьект убирал на своём пути динамические обьекты, машины... Но сделать всё это надо мгновенно и как можно более точно, поэтому no_obstacles мне не подходит...
|
|
| |