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

01EG

Известный
Проверенный
794
452
CLEO:
{$CLEO}
0000:

WHILE TRUE
REPEAT
0001: WAIT FALSE
UNTIL 0ADC:   test_cheat "1"
{ ON }
REPEAT
0001: WAIT FALSE
UNTIL 0ADC:   test_cheat "1"
{ OFF }
END

Много как можно. Например так.
Если у меня 0ab0, и в нем число хранится, как переменная из иника. Через until не получается сделать, SB ошибку выдает ну или я неправильно цикл делаю. В принципе, я бы мог сделать активация и деактивацию на разные клавиши, но не считаю это выходом.
 

01EG

Известный
Проверенный
794
452
Если пытають сделать через until, то Неизвестная команда: until 0ab0: 11@ юНаверное не правильно цикл с repeat начинаю.
Вот код, который пытаюсь сделать.
Код:
*до этого энный код*
:GmCar_KeyPressedMode
while true
wait 10
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
8B21: not samp is_chat_opened
0ab0: key_pressed 11@
then
wait 0
03C0: 0@ = actor $PLAYER_ACTOR car
02AC: set_car 0@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
02AA: set_car 0@ immune_to_nonplayer 1
053F: set_car 0@ tires_vulnerability 0
03F5: set_car 0@ apply_damage_rules 0
if
12@ == 1
then
0ACD: show_text_highpriority "GmCar ON ~n~~b~made Devil1606" time 99999999
wait 1000
else
wait 1000
if or
not Actor.Driving($PLAYER_ACTOR)
until 0ab0: 11@
then
02AA: set_car 0@ immune_to_nonplayer 0
02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 0 MP 0
053F: set_car 0@ tires_vulnerability 1
03F5: set_car 0@ apply_damage_rules 1
if
12@ ==1
then
0ACD: show_text_highpriority "GmCar OFF ~n~~b~made Devil1606" time 100
else
wait 500
end
end
end
end
end
Куда мне здесь вставить цикл с repeat until ?
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
Бля как ты уёбищно пишешь код.. Юзай табуляцию тебе намного проще будет понимать что не так. until только с repeat юзать можно, а ты его с if'ом используешь
 
  • Нравится
Реакции: Zoxan_Twist

01EG

Известный
Проверенный
794
452
Бля как ты уёбищно пишешь код.. Юзай табуляцию тебе намного проще будет понимать что не так. until только с repeat юзать можно, а ты его с if'ом используешь
Откоментил, то что не работает.
CLEO:
:GmCar_KeyPressedMode
while true
wait 0
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
8B21: not samp is_chat_opened
    repeat
    wait 0 ms
    until 0ab0: key_pressed 11@
    03C0: 0@ = actor $PLAYER_ACTOR car
    02AC: set_car 0@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
    02AA: set_car 0@ immune_to_nonplayer 1
    053F: set_car 0@ tires_vulnerability 0
    03F5: set_car 0@ apply_damage_rules 0
    if
    12@ == 1 // в инике стоит параметр на эту переменную, на нее можешь не обращаться внимания
    then
    0ACD: show_text_highpriority "GmCar ON ~n~~b~made Devil1606" time 99999999
    else
    if
    not Actor.Driving($PLAYER_ACTOR)
    then
    02AA: set_car 0@ immune_to_nonplayer 0
    02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 0 MP 0
    053F: set_car 0@ tires_vulnerability 1
    03F5: set_car 0@ apply_damage_rules 1
        else
        repeat 
        wait 0
        until 0ab0: key_pressed 11@ // нажимаю клавишу деактивации, не деактивируется
        02AA: set_car 0@ immune_to_nonplayer 0
        02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 0 MP 0
        053F: set_car 0@ tires_vulnerability 1
        03F5: set_car 0@ apply_damage_rules 1
        if
        12@ == 1
        then
        0ACD: show_text_highpriority "GmCar OFF ~n~~b~made Devil1606" time 100
    else
    wait 0
end
end
end
end
 

Xample

Новичок
89
1
Всем привет, можно как-нибудь реализовать подгрузку процессора в CLEO? а то у меня игра вечно виснет, если проц не подгружен до 50%. приходится использовать прогу, но вечно забываю её включить

M6X7BuFjNJE.jpg
 

woksonal

Известный
Проверенный
268
154
Всем привет, можно как-нибудь реализовать подгрузку процессора в CLEO? а то у меня игра вечно виснет, если проц не подгружен до 50%. приходится использовать прогу, но вечно забываю её включить

M6X7BuFjNJE.jpg
это не нормально, лучше разберись почему глючит игра

Откоментил, то что не работает.
CLEO:
:GmCar_KeyPressedMode
while true
wait 0
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
8B21: not samp is_chat_opened
    repeat
    wait 0 ms
    until 0ab0: key_pressed 11@
    03C0: 0@ = actor $PLAYER_ACTOR car
    02AC: set_car 0@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
    02AA: set_car 0@ immune_to_nonplayer 1
    053F: set_car 0@ tires_vulnerability 0
    03F5: set_car 0@ apply_damage_rules 0
    if
    12@ == 1 // в инике стоит параметр на эту переменную, на нее можешь не обращаться внимания
    then
    0ACD: show_text_highpriority "GmCar ON ~n~~b~made Devil1606" time 99999999
    else
    if
    not Actor.Driving($PLAYER_ACTOR)
    then
    02AA: set_car 0@ immune_to_nonplayer 0
    02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 0 MP 0
    053F: set_car 0@ tires_vulnerability 1
    03F5: set_car 0@ apply_damage_rules 1
        else
        repeat
        wait 0
        until 0ab0: key_pressed 11@ // нажимаю клавишу деактивации, не деактивируется
        02AA: set_car 0@ immune_to_nonplayer 0
        02AC: set_car 0@ immunities BP 0 FP 0 EP 0 CP 0 MP 0
        053F: set_car 0@ tires_vulnerability 1
        03F5: set_car 0@ apply_damage_rules 1
        if
        12@ == 1
        then
        0ACD: show_text_highpriority "GmCar OFF ~n~~b~made Devil1606" time 100
    else
    wait 0
end
end
end
end
вот пример скрипта с активацией на клавишу https://www.blast.hk/threads/11145/
 

next23012

Новичок
59
6
CLEO:
0C45: samp create_3d_text id 1 text 3@ color 0xFFFFFFFF position 0.0 0.0 0.0 view_distance 50.0 show_behind_walls true attached_to_player 4@ attached_to_vehicle -1
Как правильно прикрепить к своему игроку? В 4@ должен быть ID?
 

АндрейЧотак

Известный
80
10
Чё эта хня рисует мне на координатах моего экрана а не на координатах игры?

CLEO:
{$CLEO}

0000:

wait 2000

0B5A: get_screen_resolution 0@ 1@
0B5F: convert_window_screen_coords 0@ 1@ to_game_screen_coords 2@ 3@  
2@ = 0
3@ = 440

while true
 wait 0
    0B6A: render draw_box_with_border_pos 2@ 3@ size 50 21 color 0 border_size 2 border_color 0xFF000000
    if 0AB1: call @is_cursor_here 4 start 2@ 3@ end_offset 50 21 30@ 30@
    then
     if 0AB1: call_scm_func @KeyJustPressed 1 _vkey 1
     then
     0AF8: samp add_message_to_chat "kekekekekekeke" color -1
     end
    end
end

:is_cursor_here
    0AB1: call @GetCursorPos 0 4@ 5@
    if and
        001D: 4@ > 0@
        001D: 5@ > 1@
    then
        005A: 0@ += 2@
        005A: 1@ += 3@
        if and
            001D: 0@ > 4@
            001D: 1@ > 5@
        then
            0485:  return_true
        else
            059A:  return_false
        end
        0062: 0@ -= 2@
        0062: 1@ -= 3@
    else
        059A:  return_false
    end
    0062: 4@ -= 0@
    0062: 5@ -= 1@
0AB2: ret 2 4@ 5@

:GetCursorPos
0AA2: 0@ = load_library "user32.dll"
0AA4: 1@ = get_proc_address "GetCursorPos" library 0@
0AC8: 2@ = allocate_memory_size 8
0AA5: call 1@ num_params 1 pop 0 2@
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
2@ += 4
0A8D: 4@ = read_memory 2@ size 4 virtual_protect 0
0AC9: free_memory 2@
0AA3: free_library 0@
0AB2: ret 2 3@ 4@ 

:KeyJustPressed

if
    0AB0: key_pressed 0@
then
    while 0AB0: key_pressed 0@
        wait 0
    end
    0485: return_true
    0AB2: ret 0
end
059A: return_false
0AB2: ret 0
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,472
Может патому чта она принимает экранные координаты?
 

АндрейЧотак

Известный
80
10
Может патому чта она принимает экранные координаты?
Решил по другому это проблему)
Теперь вот чё. В начале цикла скрипт рисует текст, а далее при изменение значения переменной он должен менять цвет текста на красный, он и меняет его но на доли секунды и потом обратно на зелёный. Как решить эту херню?

[SHOWTOGROUPS=8,3,4,6,5]
CLEO:
{$CLEO}

0000:
wait 2000
0B5A: get_screen_resolution 0@ 1@
0@ = 0
1@ /= 1.023
0B6D: render $RENDER = create_font "Arial" height 10 flags 5
while true
wait 0
    0B6A: render draw_box_with_border_pos 0@ 1@ size 50 17 color 0 border_size 2 border_color 0xFF000000
    0AC6: 28@ = label @Kek offset
    27@ = 0xFF00FF00
    0B6F: render $RENDER draw_text 28@ pos 0@ 1@ color 27@
    if 0AB1: call @is_cursor_here 4 start 0@ 1@ end_offset 50 17 30@ 30@
    then
    if 0AB1: call_scm_func @KeyJustPressed 1 _vkey 1
    then
      if 29@ == true
      then
      29@ = false
      0AF8: samp add_message_to_chat "kekekekekekeke" color -1
      27@ = 0xFFFF0000 
      else
      29@ = true
      0AF8: samp add_message_to_chat "kokokokokokoko" color -1
      27@ = 0xFF00FF00 
      end
    end
    end
end
:Kek
hex
    "Kek" 00
end
:is_cursor_here
    0AB1: call @GetCursorPos 0 4@ 5@
    if and
        001D: 4@ > 0@
        001D: 5@ > 1@
    then
        005A: 0@ += 2@
        005A: 1@ += 3@
        if and
            001D: 0@ > 4@
            001D: 1@ > 5@
        then
            0485:  return_true
        else
            059A:  return_false
        end
        0062: 0@ -= 2@
        0062: 1@ -= 3@
    else
        059A:  return_false
    end
    0062: 4@ -= 0@
    0062: 5@ -= 1@
0AB2: ret 2 4@ 5@
:GetCursorPos
0AA2: 0@ = load_library "user32.dll"
0AA4: 1@ = get_proc_address "GetCursorPos" library 0@
0AC8: 2@ = allocate_memory_size 8
0AA5: call 1@ num_params 1 pop 0 2@
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
2@ += 4
0A8D: 4@ = read_memory 2@ size 4 virtual_protect 0
0AC9: free_memory 2@
0AA3: free_library 0@
0AB2: ret 2 3@ 4@
:KeyJustPressed
if
    0AB0: key_pressed 0@
then
    while 0AB0: key_pressed 0@
        wait 0
    end
    0485: return_true
    0AB2: ret 0
end
059A: return_false
0AB2: ret 0
[/cleo]
[/SHOWTOGROUPS]
[/SHOWTOGROUPS]
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,472
Убрать присваивание переменной на зеленый цвет?
 

AWRage

Активный
642
141
Есть функция получения костей? Например, головы. Или подскажите как это сделать.
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,060
CLEO:
0A96: 25@ = actor 0@ struct
0AA6: call_method 0x5E4280 struct 25@ num_params 3 pop FALSE updateSkinBones TRUE BoneID 6 outPosition 25@v // CPed__getBonePosition

96C846.jpg
 
  • Нравится
Реакции: AWRage