Пятница, 19.04.2024, 13:47
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
d88Дата: Среда, 15.09.2010, 22:01 | Сообщение # 301
Группа: Проверенные
Сообщений: 113
Статус: Offline
А, я вроде понял. biggrin
 
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 и с ними всё нормально.
 
Den_spbДата: Среда, 22.09.2010, 21:24 | Сообщение # 307
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Посмотри в scmlog.
 
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 вообще не создаётся cry

Добавлено (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, 15:52 | Сообщение # 313
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Обьект летит по дуге...
 
Den_spbДата: Суббота, 25.09.2010, 16:08 | Сообщение # 314
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
В чём тогда вопрос?
 
DK22PacДата: Суббота, 25.09.2010, 17:29 | Сообщение # 315
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
В общем, мне надо пустить обьект из точки А в точку Б и узнать точку, в которой этот обьект столкается с чем-либо. При этом мне не надо, чтобы этот обьект убирал на своём пути динамические обьекты, машины... Но сделать всё это надо мгновенно и как можно более точно, поэтому
no_obstacles мне не подходит...
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: