Вопросы по CLEO-скриптингу

TheArtemMaps

Новичок
27
0
Здравствуйте. Подскажите пожалуйста, как сделать что-бы когда водитель машины умер, вертолет начал падать вниз? вот код
скрипт:
// This file was decompiled using SASCM.ini published on 2020-11-11
{$CLEO .cs}

0000: NOP

:NONAME_2
wait 0
NONAME_20()
jump @NONAME_2

:NONAME_20
if
   Player.Defined($PLAYER_CHAR)
jf @NONAME_954
if
  0@ == 0
jf @NONAME_961
077E: get_active_interior_to $ACTIVE_INTERIOR
if
  $ACTIVE_INTERIOR == 0
jf @NONAME_961
if
is_key_pressed 8
jf @NONAME_961
Model.Load(#FAM1)
Model.Load(#FAM2)
Model.Load(#FAM3)
Model.Load(#MAVERICK)
Model.Load(#ROCKETLA)

:NONAME_114
if or
   not Model.Available(#FAM1)
   not Model.Available(#FAM2)
   not Model.Available(#FAM3)
   not Model.Available(#MAVERICK)
   not Model.Available(#ROCKETLA)
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
Car.Create(5@, #MAVERICK, 9@, 10@, 11@)
Car.Health(5@) = 1E11
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
039F: set_car 5@ race_to 1@ 2@
Actor.CreateAsDriver(4@, PedType.Gang2, #FAM1, 5@)
Actor.RemoveFromMissionCleanupList(4@)
Actor.Health(4@) = 1E13
Actor.SetMaxHealth(4@, 1E13)

:NONAME_394
0446: set_actor 4@ dismemberment_possible 1
054A: set_actor 4@ can_be_shot_in_a_car 1
04D8: set_actor 4@ drowns_in_water 1
05BC: AS_actor 4@ jump 1
Marker.CreateAboveActor(12@, 4@)
Marker.SetIconSize(12@, 3)
Marker.SetColor(12@, 1)
07E0: set_marker 12@ type_to 1
Actor.Create(13@, 8, #FAM2, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(13@) = 1E13
Actor.SetMaxHealth(13@, 1E13)
0446: set_actor 13@ dismemberment_possible 0
054A: set_actor 13@ can_be_shot_in_a_car 0
04D8: set_actor 13@ drowns_in_water 0
05BC: AS_actor 13@ jump 1
Actor.Create(14@, 8, #FAM3, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(14@) = 1E13
Actor.SetMaxHealth(14@, 1E13)
0446: set_actor 14@ dismemberment_possible 0
054A: set_actor 14@ can_be_shot_in_a_car 0
04D8: set_actor 14@ drowns_in_water 0
05BC: AS_actor 14@ jump 1
Actor.Create(15@, 8, #FAM2, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(15@) = 1E13
Actor.SetMaxHealth(15@, 1E13)
0446: set_actor 15@ dismemberment_possible 0
054A: set_actor 15@ can_be_shot_in_a_car 0
04D8: set_actor 15@ drowns_in_water 0
05BC: AS_actor 15@ jump 1
Actor.Create(16@, 8, #FAM3, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(16@) = 1E13
Actor.SetMaxHealth(16@, 1E13)
0446: set_actor 16@ dismemberment_possible 0
054A: set_actor 16@ can_be_shot_in_a_car 0
04D8: set_actor 16@ drowns_in_water 0
05BC: AS_actor 16@ jump 1
0464: put_actor 13@ into_turret_on_car 5@ at_car_offset 1.4 1.3 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(13@) = 90
0464: put_actor 14@ into_turret_on_car 5@ at_car_offset 1.4 -0.8 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(14@) = 90
0464: put_actor 15@ into_turret_on_car 5@ at_car_offset -1.4 1.3 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(15@) = 90
0464: put_actor 16@ into_turret_on_car 5@ at_car_offset -1.4 -0.8 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(16@) = 90
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(#FAM1)
Model.Destroy(#FAM2)
Model.Destroy(#FAM2)
Model.Destroy(#MAVERICK)
Model.Destroy(#ROCKETLA)
0@ = 1
jump @NONAME_961

:NONAME_954
NONAME_1122()

:NONAME_961
if
  0@ == 1
jf @NONAME_1120
NONAME_1184()
if and
   not Actor.Dead(4@)
   not Car.Wrecked(5@)
jf @NONAME_1113
if
   Actor.Dead(13@)
jf @NONAME_1033
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1033
if
   Actor.Dead(14@)
jf @NONAME_1059
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1059
if
   Actor.Dead(15@)
jf @NONAME_1085
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1085
if
   Actor.Dead(16@)
jf @NONAME_1120
0465: remove_actor 13@ from_turret_mode
jump @NONAME_1120

:NONAME_1039
if
   Actor.Dead(4@)
jf @NONAME_1039
0564: set_vehicle 5@ helicopter_simulate_crash_landing
jump @NONAME_1039 

:NONAME_1113
NONAME_1122()

:NONAME_1120
return

:NONAME_1122
if
   not 0@ == 0
jf @NONAME_1182
Actor.RemoveReferences(4@)
Actor.RemoveReferences(13@)
Actor.RemoveReferences(14@)
Actor.RemoveReferences(15@)
Actor.RemoveReferences(16@)
Car.RemoveReferences(5@)
Marker.Disable(12@)
0@ = 0

:NONAME_1182
return

:NONAME_1184
if
is_key_pressed 8
jf @NONAME_1326
TIMERB = 0

:NONAME_1206
wait 0
if
   not Actor.Dead(4@)
   not Car.Wrecked(5@)
if
is_key_pressed 8
jf @NONAME_1326
if
  TIMERB > 1200
jf @NONAME_1206
Marker.Disable(12@)
Actor.RemoveReferences(4@)
Actor.RemoveReferences(13@)
Actor.RemoveReferences(14@)
Actor.RemoveReferences(15@)
Actor.RemoveReferences(16@)
Car.RemoveReferences(5@)
0@ = 0

:NONAME_1300
if
is_key_pressed 8
jf @NONAME_1326
wait 0
jump @NONAME_1300

:NONAME_1326
return
 

Lobber

Известный
178
57
Здравствуйте. Подскажите пожалуйста, как сделать что-бы когда водитель машины умер, вертолет начал падать вниз? вот код
скрипт:
// This file was decompiled using SASCM.ini published on 2020-11-11
{$CLEO .cs}

0000: NOP

:NONAME_2
wait 0
NONAME_20()
jump @NONAME_2

:NONAME_20
if
   Player.Defined($PLAYER_CHAR)
jf @NONAME_954
if
  0@ == 0
jf @NONAME_961
077E: get_active_interior_to $ACTIVE_INTERIOR
if
  $ACTIVE_INTERIOR == 0
jf @NONAME_961
if
is_key_pressed 8
jf @NONAME_961
Model.Load(#FAM1)
Model.Load(#FAM2)
Model.Load(#FAM3)
Model.Load(#MAVERICK)
Model.Load(#ROCKETLA)

:NONAME_114
if or
   not Model.Available(#FAM1)
   not Model.Available(#FAM2)
   not Model.Available(#FAM3)
   not Model.Available(#MAVERICK)
   not Model.Available(#ROCKETLA)
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
Car.Create(5@, #MAVERICK, 9@, 10@, 11@)
Car.Health(5@) = 1E11
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
039F: set_car 5@ race_to 1@ 2@
Actor.CreateAsDriver(4@, PedType.Gang2, #FAM1, 5@)
Actor.RemoveFromMissionCleanupList(4@)
Actor.Health(4@) = 1E13
Actor.SetMaxHealth(4@, 1E13)

:NONAME_394
0446: set_actor 4@ dismemberment_possible 1
054A: set_actor 4@ can_be_shot_in_a_car 1
04D8: set_actor 4@ drowns_in_water 1
05BC: AS_actor 4@ jump 1
Marker.CreateAboveActor(12@, 4@)
Marker.SetIconSize(12@, 3)
Marker.SetColor(12@, 1)
07E0: set_marker 12@ type_to 1
Actor.Create(13@, 8, #FAM2, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(13@) = 1E13
Actor.SetMaxHealth(13@, 1E13)
0446: set_actor 13@ dismemberment_possible 0
054A: set_actor 13@ can_be_shot_in_a_car 0
04D8: set_actor 13@ drowns_in_water 0
05BC: AS_actor 13@ jump 1
Actor.Create(14@, 8, #FAM3, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(14@) = 1E13
Actor.SetMaxHealth(14@, 1E13)
0446: set_actor 14@ dismemberment_possible 0
054A: set_actor 14@ can_be_shot_in_a_car 0
04D8: set_actor 14@ drowns_in_water 0
05BC: AS_actor 14@ jump 1
Actor.Create(15@, 8, #FAM2, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(15@) = 1E13
Actor.SetMaxHealth(15@, 1E13)
0446: set_actor 15@ dismemberment_possible 0
054A: set_actor 15@ can_be_shot_in_a_car 0
04D8: set_actor 15@ drowns_in_water 0
05BC: AS_actor 15@ jump 1
Actor.Create(16@, 8, #FAM3, 9@, 10@, 11@)
Actor.RemoveFromMissionCleanupList(13@)
Actor.Health(16@) = 1E13
Actor.SetMaxHealth(16@, 1E13)
0446: set_actor 16@ dismemberment_possible 0
054A: set_actor 16@ can_be_shot_in_a_car 0
04D8: set_actor 16@ drowns_in_water 0
05BC: AS_actor 16@ jump 1
0464: put_actor 13@ into_turret_on_car 5@ at_car_offset 1.4 1.3 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(13@) = 90
0464: put_actor 14@ into_turret_on_car 5@ at_car_offset 1.4 -0.8 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(14@) = 90
0464: put_actor 15@ into_turret_on_car 5@ at_car_offset -1.4 1.3 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(15@) = 90
0464: put_actor 16@ into_turret_on_car 5@ at_car_offset -1.4 -0.8 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 35
Actor.WeaponAccuracy(16@) = 90
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(#FAM1)
Model.Destroy(#FAM2)
Model.Destroy(#FAM2)
Model.Destroy(#MAVERICK)
Model.Destroy(#ROCKETLA)
0@ = 1
jump @NONAME_961

:NONAME_954
NONAME_1122()

:NONAME_961
if
  0@ == 1
jf @NONAME_1120
NONAME_1184()
if and
   not Actor.Dead(4@)
   not Car.Wrecked(5@)
jf @NONAME_1113
if
   Actor.Dead(13@)
jf @NONAME_1033
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1033
if
   Actor.Dead(14@)
jf @NONAME_1059
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1059
if
   Actor.Dead(15@)
jf @NONAME_1085
0465: remove_actor 13@ from_turret_mode
Actor.RemoveReferences(4@)

:NONAME_1085
if
   Actor.Dead(16@)
jf @NONAME_1120
0465: remove_actor 13@ from_turret_mode
jump @NONAME_1120

:NONAME_1039
if
   Actor.Dead(4@)
jf @NONAME_1039
0564: set_vehicle 5@ helicopter_simulate_crash_landing
jump @NONAME_1039

:NONAME_1113
NONAME_1122()

:NONAME_1120
return

:NONAME_1122
if
   not 0@ == 0
jf @NONAME_1182
Actor.RemoveReferences(4@)
Actor.RemoveReferences(13@)
Actor.RemoveReferences(14@)
Actor.RemoveReferences(15@)
Actor.RemoveReferences(16@)
Car.RemoveReferences(5@)
Marker.Disable(12@)
0@ = 0

:NONAME_1182
return

:NONAME_1184
if
is_key_pressed 8
jf @NONAME_1326
TIMERB = 0

:NONAME_1206
wait 0
if
   not Actor.Dead(4@)
   not Car.Wrecked(5@)
if
is_key_pressed 8
jf @NONAME_1326
if
  TIMERB > 1200
jf @NONAME_1206
Marker.Disable(12@)
Actor.RemoveReferences(4@)
Actor.RemoveReferences(13@)
Actor.RemoveReferences(14@)
Actor.RemoveReferences(15@)
Actor.RemoveReferences(16@)
Car.RemoveReferences(5@)
0@ = 0

:NONAME_1300
if
is_key_pressed 8
jf @NONAME_1326
wait 0
jump @NONAME_1300

:NONAME_1326
return
А что ним происходит на данный момент? Расскажи подробнее
 

nekosshit

Новичок
3
0
Здравствуйте всем! Возможно ли сделать чит, который бы телепортировался за руль машины с определенным айди(например инфернус, 411, или нрг, 522) если есть такой у кого, или знает как делать, скиньте пожалуйста
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,961
Здравствуйте всем! Возможно ли сделать чит, который бы телепортировался за руль машины с определенным айди(например инфернус, 411, или нрг, 522) если есть такой у кого, или знает как делать, скиньте пожалуйста
А что если в зоне стрима 10 инфернусов


CLEO:
{$CLEO}
HEX
    00 00
END

WHILE 8AFA:  NOT is_samp_available
    0001: 0
END
0B34: samp register_client_command "gocar" to_label @gocar
0BDE: pause_thread 0

:gocar
IF 0B35: samp 0@ = get_last_command_params
THEN 0C1A: 0@ = atoi 0@
    IF 0AFF: samp 0@ = car_handle_by_samp_vehicle_id 0@
    THEN   
        IF 00DF:   actor $PLAYER_ACTOR driving
        THEN 0792: disembark_instantly_actor $PLAYER_ACTOR
        END
    
        072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat
        02EB: restore_camera_with_jumpcut
    END
END
0B43: samp cmd_ret

Вот телепорт в транспорт по id транспорта сампа

переделал под свои нужды
Текст добавил в чат? лол
 

nekosshit

Новичок
3
0
А что если в зоне стрима 10 инфернусов


CLEO:
{$CLEO}
HEX
    00 00
END

WHILE 8AFA:  NOT is_samp_available
    0001: 0
END
0B34: samp register_client_command "gocar" to_label @gocar
0BDE: pause_thread 0

:gocar
IF 0B35: samp 0@ = get_last_command_params
THEN 0C1A: 0@ = atoi 0@
    IF 0AFF: samp 0@ = car_handle_by_samp_vehicle_id 0@
    THEN  
        IF 00DF:   actor $PLAYER_ACTOR driving
        THEN 0792: disembark_instantly_actor $PLAYER_ACTOR
        END
   
        072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat
        02EB: restore_camera_with_jumpcut
    END
END
0B43: samp cmd_ret

Вот телепорт в транспорт по id транспорта сампа


Текст добавил в чат? лол
10 инфернусов быть не может, инфернус я в пример написал, тот транспорт который мне нужен 1 на сервере

не просто текст добавил, сменил айди объекта на тот что мне нужен
 
  • Bug
Реакции: DarkP1xel

vaskapupkin228

Новичок
5
1
Пожалуйста подскажите мне, не могу чё то вдуплить где я затупил, крашит при заходе в игру, где то накосячил и не могу понять, 1-ый день изучаю
Код:
{$CLEO} 
0000:   

:Label1       
wait 0 ms 
if      
00DF: char $PLAYER_CHAR driving                 
004D: jump_if_false @Label1
03C0: 15@ = actor $PLAYER_ACTOR car
0229: set_car 15@ primary_color_to 0 secondary_color_to 2
0A93: terminate_this_custom_script

:Label2
wait 0 ms
if
0AB0:   is_key_pressed 49
jf @Label2
0ACD: show_text_highpriority "activation script" time 1000
jump @Label1
 

Spectrata

Новичок
27
0
В общем, хочу парсить координаты чекпоинта(которые мне прислал сервер не в зоне прорисовки) и потом поставить свой чекпоинт на основании этих координат. Прикол в том, что оно ставит левые координаты, в чём проблема?

CLEO:
{$CLEO}
0000:


:Start_Samp
0001: wait 50 ms
00D6: IF
0AFA: is_samp_available
jf @Start_Samp
jump @Label1


:Label1
0001: wait 0 ms
00D6: IF
0ADC: test_cheat "marker"
jf @Label1
0AB1: call_scm_func @GetPositionOnMap Param: 3 Param_To_Func: 0@ 1@ 2@ Ret_Param 0@ 1@ 2@
0AF9: samp say_msg "/gps off"
0AB1: call_scm_func @SetPositionOnMap Param: 3 Param_To_Func: 0@ 1@ 2@ Ret_Param
jump @Label1


:GetPositionOnMap 
0C0C: 0@ = struct 0xC7DD58 offset 48 size 4 // X Pos
0C0C: 1@ = struct 0xC7DD58 offset 52 size 4 // Y Pos
0C0C: 2@ = struct 0xC7DD58 offset 56 size 4 // Z Pos
0AB2: ret 3 0@ 1@ 2@

:SetPositionOnMap

018A: 3@ = create_checkpoint_at 0@ 1@ 2@  
0AB2: ret 0

Upd. Попробовал написать чтобы считывало коорды чекпоинта при помощи bitstream - получаются краши. В чём может быть проблема?
Код:
{$CLEO}
0000:


:Start_Samp
0001: wait 50 ms
00D6: IF
0AFA: is_samp_available
jf @Start_Samp
jump @Label1


:Label1
0001: wait 0 ms
00D6: IF
0ADC: test_cheat "marker"
jf @Label1
0AB1: call_scm_func @Read_Checkpoint_From_RPC 3 0@ 1@ 2@ ret_param: 0@ 1@ 2@
0AF8: "0@: %f 1@: %f 2@: %f" 0xFF0000 0@ 1@ 2@
jump @Label1




:Read_Checkpoint_From_RPC

0BE7: raknet 0@ = bit_stream_read 107 type 4  // 107 ID Bitstream 'CheckPoint' type 4 cause type FLOAT
0BE7: raknet 1@ = bit_stream_read 107 type 4        
0BE7: raknet 2@ = bit_stream_read 107 type 4

0AB2: ret 3 0@ 1@ 2@

Upd. Проблему решил так: с начала считал ID RPC(опкод 0BE5) , потом считал BitStream(это уже в другую переменную тем же самым опкодом OBE5 ну и в самом конце нужно вернуть статус hook опкодом 0BE0 )
 
Последнее редактирование:

Spectrata

Новичок
27
0
Так, гайс, появилась новая проблемка. Решил я спарсить данные с диалога, диалог имеет тип Dialog_style_tablist_headers

Описание проблемы: дело в том, что считывается только первая колонка "Мастерская/Магазин/Частный клуб.../общественная душевая/. Кто-нибудь понимает в чем проблема?

sa-mp-014.png



CLEO:
{$CLEO}
{$USE ini}

0000:


:START
wait 50 ms
IF 
0AFA: is_samp_available
jf @START
0B34: samp register_client_command "Get_Data_From_Dialog" to_label @Main
0BDE: pause_thread 0


:Main
0B4E: samp 0@ = get_current_dialog_id 
IF 
    0@ == 3360 
THEN
    0050: gosub @Write_Data_To_Ini 
END    
0B43: samp cmd_ret


:Write_Data_To_Ini

0AC8: 1@ = allocate_memory_size 500
0A9A: 0@ = openfile "cleo\List_Of_Items.INI" mode "wt"
    FOR 2@ = 0 TO 14 STEP 1
        0B5B: samp get_listbox_item 2@ text_to 1@
        0AD9: write_formatted_text "%s %c" in_file 0@ 2@ 0xD
    END
0A9B: closefile 0@ 
0AC9: free_allocated_memory 1@
0051: return
 

Spectrata

Новичок
27
0
Ok. Let's try, in short, It(0B5B) takes only first column not whole string. I can't understand reason why? on the contrary, if you use 0BD7 you get what you what but the GAME stops working without any reason
 
Последнее редактирование:

Fr0z3n

Участник
50
30
Ok, so as i understand when you press enter on first "Pay and spray" it does job, but anything alse not working right...?
 

Fr0z3n

Участник
50
30
do you want only the first text from the dialog and delete all other colums? If not, tell me what script should do