Пятница, 26.04.2024, 10:19
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
Den_spbДата: Понедельник, 24.01.2011, 01:37 | Сообщение # 511
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Есть стандартные опкоды, которыми можно воспроизводить стандартные звуки (см. СБ справку, раздел Статьи - Видео и аудио). А собственные звуки можно воспроизводить опкодами КЛЕО4 (см. справку по КЛЕО4)
 
CrAzYДата: Понедельник, 24.01.2011, 15:45 | Сообщение # 512
Группа: Пользователи
Сообщений: 2
Статус: Offline
Den_spb, совсем забыл про справку по Клео4 (я на нём скрипты пишу), спасибо! +1
 
MumiyTrollДата: Понедельник, 24.01.2011, 20:43 | Сообщение # 513
Группа: Проверенные
Сообщений: 92
Статус: Offline
Денис,у меня вопрос по поводу декомпиляции/компиляции скриптов:если вносишь изменения в скрипт, в форматах-cs,cm,s и т.д,при компиляции,содержимое скрипта нарушится,будет ли он все так же функционировать,без вылетов и зависаний??Или для этих целей нужно использовать только исходник?
 
Den_spbДата: Понедельник, 24.01.2011, 21:01 | Сообщение # 514
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Исходник - это просто текстовый файл, в котором код сохраняется в том виде, каким он был написан скриптером. Он нужен только для удобства работы скриптера в случае последующего редактирования скрипта и т.п. Игра txt-файл не использует.
Поэтому чтобы внести изменения в скрипт, нужно изменить именно cs-файл. Если есть исходник, то он открывается с помощью Sanny Builder (команда Файл-Открыть), затем в код вносятся изменения, и скрипт компилируется (создаётся новый или перезаписывается старый cs-файл) с помощью команды Запуск-Компилировать. Если исходника в наличии нет, то надо сначала декомпилировать cs-файл (при этом будет создан txt-файл с кодом).
Quote (MumiyTroll)
будет ли он все так же функционировать,без вылетов и зависаний
Вылеты и зависания могут появиться - в зависимости от того, какие изменения внесены в код (например, игра вылетит если в скрипт добавлена команда, производящая действие над несуществующей машиной или актёром).
 
MumiyTrollДата: Среда, 26.01.2011, 01:20 | Сообщение # 515
Группа: Проверенные
Сообщений: 92
Статус: Offline
Я так и думал...А если сделать так, при декомпиляции, выйти из Sanny Builder,не внося никаких изменений в cs-файл;открыть txt-файл,который будет создан в клео-папке после выхода;затем удалить этот скрипт,и отредактировать txt-файл->компилировать, результат будет таким же??
 
Den_spbДата: Среда, 26.01.2011, 12:19 | Сообщение # 516
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (MumiyTroll)
А если сделать так, при декомпиляции, выйти из Sanny Builder,не внося никаких изменений в cs-файл;открыть txt-файл,который будет создан в клео-папке после выхода;затем удалить этот скрипт,и отредактировать txt-файл->компилировать, результат будет таким же??
Зачем так сложно? Декомпилируешь cs-файл (если нет txt-файла, а если есть, то открываешь его командой Файл-Открыть) - создаётся txt-файл, содержимое которого появляется в окне SB. Вносишь нужные изменения, жмёшь Запуск - Компилировать. При этом будут перезаписаны txt-файл и cs-файл, в соответствии с произведёнными изменениями.
 
DK22PacДата: Суббота, 29.01.2011, 00:10 | Сообщение # 517
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, опять насчёт думмсиов...
Нужно узнать позиции задних фар. Ты, кажется, делал такое в "унив. поворотниках"?
 
Den_spbДата: Суббота, 29.01.2011, 00:27 | Сообщение # 518
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Да, делал - вот кусок исходника:
Code
            0A8E: 30@ = CAR_STRUCT + 0x22 // int    
               0A8D: 30@ = read_memory 30@ size 2 virtual_protect 0 //model index
               30@ *= 4
               30@ += 0xA9B0C8
               0A8D: 30@ = read_memory 30@ size 4 virtual_protect 0 //CModel
               30@ += 0x5C                      
               0A8D: 30@ = read_memory 30@ size 4 virtual_protect 0 //vehicle struct
               //30@ += 0
               0A8D: CAR_FRONT_LIGHT_X = read_memory 30@ size 4 virtual_protect 0 //x offset
               30@ += 4
               0A8D: CAR_FRONT_LIGHT_Y = read_memory 30@ size 4 virtual_protect 0 //y offset
               30@ += 4
               0A8D: CAR_FRONT_LIGHT_Z = read_memory 30@ size 4 virtual_protect 0 //z offset
               30@ += 4
               0A8D: CAR_BACK_LIGHT_X = read_memory 30@ size 4 virtual_protect 0 //x offset
               30@ += 4
               0A8D: CAR_BACK_LIGHT_Y = read_memory 30@ size 4 virtual_protect 0 //y offset
               30@ += 4
               0A8D: CAR_BACK_LIGHT_Z = read_memory 30@ size 4 virtual_protect 0 //z offset
В переменные записаны оффсеты правой передней и правой задней фары. Чтобы получить координаты левых фар, надо умножить полученные X-оффсеты на -1.0
 
MumiyTrollДата: Четверг, 03.02.2011, 00:45 | Сообщение # 519
Группа: Проверенные
Сообщений: 92
Статус: Offline
Денис,а какие нужно внести изменения в скрипт,чтоб он не выключался во время миссий?Или это сложный процесс?
 
Den_spbДата: Четверг, 03.02.2011, 00:59 | Сообщение # 520
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Если в коде есть команда
$ONMISSION == 0
то замени её на
$ONMISSION <> 123
А если в коде есть команда
$ONMISSION <> 0
то замени её на
$ONMISSION == 123
 
MumiyTrollДата: Четверг, 03.02.2011, 01:27 | Сообщение # 521
Группа: Проверенные
Сообщений: 92
Статус: Offline
Ага,понял
 
dyomДата: Пятница, 04.02.2011, 15:02 | Сообщение # 522
Группа: Пользователи
Сообщений: 19
Статус: Offline
Здравствуйте!Вот у меня есть вопрос:
Я сделал чтоб по нажатию кнопки перелетал вертолёт и скрипт чтоб типа от туда но верёвке спускаются актёры!
Но как мне их совместить?Мне надо чтоб именно из вертолёта спускались актёры!

Вертолёт:

Code
:NONAME_2
wait 0  
gosub @NONAME_20  
jump @NONAME_2  

:NONAME_20
if  
    Player.Defined($PLAYER_CHAR)
jf @NONAME_903  
if  
   0@ == 0  
jf @NONAME_910  
077E: get_active_interior_to $ACTIVE_INTERIOR  
if  
   $ACTIVE_INTERIOR == 0  
jf @NONAME_910  
if  
0AB0:   key_pressed 9
jf @NONAME_910  
Model.Load(#MAVERICK)

:NONAME_114
if or
    not Model.Available(#MAVERICK)
jf @NONAME_158  
wait 0  
jump @NONAME_114  

:NONAME_158
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 100.0 100.0 100.0  
04C4: store_coords_to 6@ 7@ 8@ from_actor $PLAYER_ACTOR with_offset -100.0 -100.0 0.0  
0208: 9@ = random_float_in_ranges 1@ 6@  
0208: 10@ = random_float_in_ranges 2@ 7@  
0087: 11@ = 3@ // (float)  
if  
00C2:   sphere_onscreen 9@ 10@ 11@ radius 5.0  
jf @NONAME_284  
wait 0  
jump @NONAME_158  

:NONAME_284
5@ = Car.Create(#MAVERICK, 9@, 10@, 11@)
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
039F: set_car 5@ race_to 1@ 2@  
0129: 4@ = create_actor_pedtype 8 model #FAM1 in_car 5@ driverseat  
Actor.RemoveFromMissionCleanupList(4@)
Actor.Health(4@) = 1000
08AF: set_actor 4@ max_health_to 1000  
0446: set_actor 4@ immune_to_headshots 0  
054A: set_actor 4@ immune_to_car_headshots 0  
04D8: set_actor 4@ drowns_in_water 0  
05BC: AS_actor 4@ jump 1  
12@ = Marker.CreateAboveActor(4@)
Marker.SetIconSize(12@, 3)
Marker.SetColor(12@, 1)
07E0: set_marker 12@ type_to 1  
0825: set_helicopter 5@ instant_rotor_start  
0726: heli 5@ follow_actor $PLAYER_ACTOR follow_car -1 radius 10.0  
07BB: set_heli 5@ horizontal_thrust_power 6  
Model.Destroy(#MAVERICK)
0@ = 1  
jump @NONAME_910  

:NONAME_903
gosub @NONAME_1071  

:NONAME_910
if  
   0@ == 1  
jf @NONAME_1069  
gosub @NONAME_1133  
if and
    not Actor.Dead(4@)
    not Car.Wrecked(5@)

jump @NONAME_1069  

:NONAME_1062
gosub @NONAME_1071  

:NONAME_1069
return  

:NONAME_1071
if  
    not 0@ == 0  
jf @NONAME_1131  
Actor.RemoveReferences(4@)
Car.RemoveReferences(5@)
Marker.Disable(12@)
0@ = 0  

:NONAME_1131
return  

:NONAME_1133
if  
0AB0:   key_pressed 9
jf @NONAME_1282  
33@ = 0  

:NONAME_1155
wait 0  
if  
    not Actor.Dead(4@)
    not Car.Wrecked(5@)
jf @NONAME_1282  
if  
0AB0:   key_pressed 8  
jf @NONAME_1282  
if  
   33@ > 1200  
jf @NONAME_1155  
Marker.Disable(12@)
Actor.RemoveReferences(4@)
Car.RemoveReferences(5@)
0@ = 0  

:NONAME_1256
if  
0AB0:   key_pressed 9  
jf @NONAME_1282  
wait 0  
jump @NONAME_1256  

:NONAME_1282
return

Добавлено (04.02.2011, 15:02)
---------------------------------------------
Актёры:

Code
:NONAME_2
wait 0  
    Player.Defined($PLAYER_CHAR)
jf @NONAME_2  
jump @NONAME_3

:NONAME_3
wait 10  
Model.Load(#BALLAS1)
Model.Load(#BALLAS2)
Model.Load(#MICRO_UZI)
038B: load_requested_models  

:NONAME_4
wait 0  
if and
    Model.Available(#BALLAS1)
    Model.Available(#BALLAS2)
    Model.Available(#MICRO_UZI)
jf @NONAME_4  
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 20.0  
04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 9.0 0.0 20.0  
04C4: store_coords_to 10@ 11@ 12@ from_actor $PLAYER_ACTOR with_offset 0.0 9.0 20.0  
0503: create_actor_on_rope_with_pedtype 27 model #BALLAS1 at 1@ 2@ 3@ handle_as 28@  
0503: create_actor_on_rope_with_pedtype 27 model #BALLAS2 at 4@ 5@ 6@ handle_as 29@  
0503: create_actor_on_rope_with_pedtype 27 model #BALLAS2 at 10@ 11@ 12@ handle_as 30@  
01B2: give_actor 28@ weapon 28 ammo 999999 // Load the weapon model before using this  
01B2: give_actor 29@ weapon 28 ammo 999999 // Load the weapon model before using this  
01B2: give_actor 30@ weapon 28 ammo 999999 // Load the weapon model before using this  
081A: set_actor 28@ weapon_skill_to 2  
081A: set_actor 29@ weapon_skill_to 2  
081A: set_actor 30@ weapon_skill_to 2  
Actor.WeaponAccuracy(28@) = 100
Actor.WeaponAccuracy(29@) = 100
Actor.WeaponAccuracy(30@) = 100  
wait 5000  
jump @NONAME_5  

:NONAME_5
wait 1000  
Actor.StorePos(28@, 7@, 8@, 9@)
if or
    Actor.Dead($PLAYER_ACTOR)
    Player.Wasted($PLAYER_CHAR)
80FE:   not actor $PLAYER_ACTOR sphere 0 in_sphere 7@ 8@ 9@ radius 300.0 300.0 300.0  
jf @NONAME_6
Actor.DestroyInstantly(28@)
Actor.DestroyInstantly(29@)
Actor.DestroyInstantly(30@)
Actor.RemoveReferences(28@)
Actor.RemoveR eferences(29@)
Actor.RemoveReferences(30@)
Model.Destroy(#BALLAS1)
Model.Destroy(#BALLAS2)
Model.Destroy(#MICRO_UZI)
wait 8000  
jump @NONAME_2  

:NONAME_6
wait 1000  
if and
    Actor.Dead(28@)
    Actor.Dead(29@)
    Actor.Dead(30@)
jf @NONAME_5  
Actor.DestroyInstantly(28@)
Actor.DestroyInstantly(29@)
Actor.DestroyInstantly(30@)
Actor.RemoveReferences(28@)
Actor.RemoveReferences (29@)
Actor.RemoveReferences(30@)
Model.Destroy(#BALLAS1)
Model.Destroy(#BALLAS2)
Model.Destroy(#MICRO_UZI)
wait 8000  
jump @NONAME_2
 
Den_spbДата: Пятница, 04.02.2011, 19:38 | Сообщение # 523
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Добрый день. Создавай верёвку в месте расположения вертолёта.
00AA: store_car 0@ position_to 3@ 4@ 5@ // определяет координаты транспортного средства (в том числе и вертолёта)
0407: store_coords_to 120@ 130@ 140@ from_car 543@ with_offset -0.337 1.566 0.657 // определяет координаты транспортного средства со смещениями
 
dyomДата: Пятница, 04.02.2011, 20:14 | Сообщение # 524
Группа: Пользователи
Сообщений: 19
Статус: Offline
Den_spb, большое спасибо!

Добавлено (04.02.2011, 20:12)
---------------------------------------------
Den_spb, вроде сделал, но при нажатии кнопки вылет sad
Весь текст скрипта не вошёл по этому кидаю сам скрипт
http://ifolder.ru/21714636

Сообщение отредактировал dyom - Пятница, 04.02.2011, 20:16
 
Den_spbДата: Пятница, 04.02.2011, 20:57 | Сообщение # 525
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Нельзя производить действия над несуществующими актёрами, машинами или объектами - будет вылет. В твоём коде вычисляются координаты несуществующего транспорта.
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: