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

01EG

Известный
Проверенный
631
346
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

Известный
Проверенный
631
346
Если пытають сделать через 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,635
4,964
Бля как ты уёбищно пишешь код.. Юзай табуляцию тебе намного проще будет понимать что не так. until только с repeat юзать можно, а ты его с if'ом используешь
 
  • Нравится
Реакции: Zoxan_Twist

01EG

Известный
Проверенный
631
346
Бля как ты уёбищно пишешь код.. Юзай табуляцию тебе намного проще будет понимать что не так. 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,460
Может патому чта она принимает экранные координаты?
 

АндрейЧотак

Известный
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,460
Убрать присваивание переменной на зеленый цвет?
 

AWRage

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

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,964
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