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

Kotovasya

Участник
85
13
CLEO:
if 0AAB: file_exists "cleo\TimerSettings.ini"
then
    0AF0: 11@ = get_int_from_ini_file "cleo\TimerSettings.ini" section "Position" key "X"
    0AF0: 12@ = get_int_from_ini_file "cleo\TimerSettings.ini" section "Position" key "Y"
    0AF0: 13@ = get_int_from_ini_file "cleo\TimerSettings.ini" section "Properties" key "Height"
else
    0AF1: write_int 250 to_ini_file "cleo\TimerSettings.ini" section "Position" key "X"
    0AF1: write_int 250 to_ini_file "cleo\TimerSettings.ini" section "Position" key "Y"
    0AF1: write_int 10 to_ini_file "cleo\TimerSettings.ini" section "Properties" key "Height"
end

 IF 15@ == 1
 THEN
      WHILE TRUE
          wait 0
          alloc 8@ 64
          0B8D: samp set_cursor_mode 2
          0B5E: get_cursor_pos 11@ 12@
          0AD3: 8@ = format "Осталось: xx:xx"
          0B6F: render font 30@ draw_text 8@ pos 11@ 12@ color 0xFFFFFFFF
          IF key_down 1
          THEN
               0B8D: samp set_cursor_mode 0
               0AF1: write_int 11@ to_ini_file "cleo\TimerSettings.ini" section "Position" key "X"
               0AF1: write_int 12@ to_ini_file "cleo\TimerSettings.ini" section "Position" key "Y"
               15@ = 0
               free 8@
               break
          END
      END
  END
Суть: при вводе команды /tpos 15@ = 1. Когда я жмякаю мышку, позиция сохраняется. Потом таймер активируется на том месте на котором я сохранил. Все четко. Но после перезахода в игру, когда таймер должен появится: он не появляется на том месте где надо (на самом деле он появляется, но его на экране даже не видно). В ini позиции записаны нормально, но текст не рендериться где надо ТОЛЬКО после перезахода в игру. Хелпаните пожалуйста :3
 
Последнее редактирование модератором:

D3.Pheonix

🎹
Модератор
2,817
1,597
Суть: при вводе команды /tpos 15@ = 1. Когда я жмякаю мышку, позиция сохраняется. Потом таймер активируется на том месте на котором я сохранил. Все четко. Но после перезахода в игру, когда таймер должен появится: он не появляется на том месте где надо (на самом деле он появляется, но его на экране даже не видно). В ini позиции записаны нормально, но текст не рендериться где надо ТОЛЬКО после перезахода в игру. Хелпаните пожалуйста :3
CLEO:
WHILE TRUE
 wait 0
     IF 15@ == 1
     THEN
 

Dimic

Новичок
15
2
I tryed to make a simple skin aimbot with FOV with these opcode's but I need help,how do I check if screen ( X,Y ) are inside of circle ?
CLEO:
0B70: render draw_polygon_pos 1@ 2@ size 3@ 4@ corners 5@ rotation 6@ color 7@  // DRAWS A CIRCLE/BOX THAT SHOWS YOUR CURRENT FOV
0B55: convert_3D_coords 1@ 2@ 3@ to_screen 4@ 5@  // CONVERTING TARGET POSITION TO SCREEN
 

Trawer2289

Известный
48
9
Помогите пж! Ей богу задрал этот sanny builder пишет неизвестная команда END
CLEO:
{$CLEO .cs}
0000: NOP
repeat
    wait 400
until samp.Available()
0B34: samp register_client_command "test" to_label [USER=63112]@Kek[/USER]
while true
wait 0
    if 0@ == 1
    then
        if 0449: actor $PLAYER_ACTOR in_a_car
        then
            018C: play_sound 1058 at 0.0 0.0 0.0
            msg "{FF0000}[Ошибка] {FFFFFF}Нельзя находиться в транспорте" -1
        else
            077E: get_active_interior_to 1@
            IF 1@ == 0
            then
                018C: play_sound 1058 at 0.0 0.0 0.0
                msg "{FF0000}[Ошибка] {FFFFFF}Нельзя находиться на улице" -1
        else
                018C: play_sound 1058 at 0.0 0.0 0.0
                msg "{7FD76F}[Внимание] {FFFFFF}Покиньте интерьер" -1
        else
                0AB6: store_target_marker_coords_to $actor_x $actor_y $actor_z
                if
                0AB6: store_target_marker_coords_to $actor_x $actor_y $actor_z
                then
                Actor.PutAt($PLAYER_ACTOR, $actor_x $actor_y $actor_z)
                0@ = 0
                else
                msg "{FF0000}[Ошибка] {FFFFFF}Поставьте метку на карте!"
           
                repeat
                    wait 0
                    077E: get_active_interior_to 1@
                    if 0019:   1@ > 0
               
                    Actor.PutAt($PLAYER_ACTOR, $actor_x $actor_y $actor_z)
                END
            END
        0@ = 0
    END
END
:kek
0@ = 1
Samp.CmdRet()
 
Последнее редактирование модератором:
1,417
1,029
@Trawer2289 вставляй код в тэг
Код:
[code=cleo][*/code]
CLEO:
{$CLEO}
0000: NOP
repeat
    wait 400
until samp.Available()
0B34: samp register_client_command "test1" to_label @cmd

WHILE TRUE
wait 0
    IF 0@ == 1
    THEN
        IF 0449:   actor $PLAYER_ACTOR in_a_car
        then
            018C: play_sound 1058 at 0.0 0.0 0.0
            msg "{ff0000}[Ошибка] {ffffff}Нельзя находиться в транспорте!" -1
        else
            077E: get_active_interior_to 1@
            IF 1@ == 0
            THEN
                018C: play_sound 1058 at 0.0 0.0 0.0
                msg "{ff0000}[Ошибка] {ffffff}Нельзя находиться на улице!" -1
            ELSE
                018C: play_sound 1058 at 0.0 0.0 0.0
                msg "{7FD76F}[Внимание] {ffffff}Покиньте интерьер!" -1
            
                repeat
                    wait 0
                    077E: get_active_interior_to 1@
                until 8019: 1@ > 0
              
                IF 8AB6: store_target_marker_coords_to 2@ 3@ 4@
                THEN
                    msg "{FF0000}[Ошибка] {FFFFFF}Поставьте метку на карте!" -1
                END
              
                repeat
                    wait 0
                until 0AB6: store_target_marker_coords_to 2@ 3@ 4@
              
                Actor.PutAt($PLAYER_ACTOR, 2@ 3@ 4@)
                wait 1000
                0AF6: samp spawn_player
            END
        END    
        0@ = 0
    END
END

:cmd
0@ = 1
Samp.CmdRet()
 
  • Нравится
Реакции: Trawer2289

D3.Pheonix

🎹
Модератор
2,817
1,597
Поставил проверку "bounding sphere visible", но всё-равно бывает, что рисует передо мной то, что находится за спиной
чё можно сделать ?
CLEO:
            if
                03CA:   object 4@ exists
            then
                if
                    02CC:   object 4@ bounding_sphere_visible
                then
                    if 09CC:   object 4@ model_is 2@
                    then
                    01BB: store_object 4@ position_to 5@ 6@ 7@
                   /// code
 
1,417
1,029
получай координаты объекта раньше и проверяй этим опкодом
CLEO:
00C2:   sphere_onscreen 159@ 160@ 161@ radius 5.0
 
  • Нравится
Реакции: D3.Pheonix

DDosOS

Новичок
8
0
тестовый скрипт, должен писать в чат hello, а в итоге телепортирует модельку cj в одну точку бесконечно много раз (или вообще хз что он творит), после чего кикает античит. Я пытаюсь научиться писать на cleo, но происходят такие вот траблы.
CLEO:
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "hey" to_label @hey

repeat
wait 0
    if 1@ == true
    then
    chatmsg "hello"
    end
    1@ = false
until 1@ == false
    
:hey
0B12: 1@ = true XOR false
SAMP.CmdRet()
 

D3.Pheonix

🎹
Модератор
2,817
1,597
тестовый скрипт, должен писать в чат hello, а в итоге телепортирует модельку cj в одну точку бесконечно много раз (или вообще хз что он творит), после чего кикает античит. Я пытаюсь научиться писать на cleo, но происходят такие вот траблы.
CLEO:
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "hey" to_label @hey

while true
wait 0
    if 1@ == true
    then
    chatmsg "hello" -1 // "chatmsg" видишь только ты. Если для всех, то юзай "say"
    1@ = false
    end
end
 
:hey
0B12: 1@ = 1@ XOR false
SAMP.CmdRet()
 

romanblinov2013

RB_PRO
Проверенный
212
196
CLEO:
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "hey" to_label @hey

while true
wait 0
    if 1@ == true
    then
    chatmsg "hello" -1 // "chatmsg" видишь только ты. Если для всех, то юзай "say"
    1@ = false
    end
end
 
:hey
0B12: 1@ = 1@ XOR false
SAMP.CmdRet()

Я конечно могу показаться ассоциальным моргиналом, но эталонно будет так:
CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP
repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "hey" to_label @hey

while true
wait 0
    if 31@ == 1
    then
    0AF8: samp add_message_to_chat "Hello" color -1
    31@ = 1
    end
end

:hey
0B12: 31@ = 31@ XOR false
SAMP.CmdRet()

Нужно учить новеньких истинному стилю написания кода.
 

san0

Известный
Друг
411
267
Я конечно могу показаться ассоциальным моргиналом, но эталонно будет так:
Нужно учить новеньких истинному стилю написания кода.
Красиво написано
1) Ты написал флуд собщением
2) Эталонно переменная 31@ вообще не нужна, все делается в теле команды; хотя понятно, что упор делается на доработку скрипта
3) Отсутствие табуляции, разделения блоков
3) Номер переменной играет роль ?
Очевидно, лучшим советом стало бы использование констант
4) Если уж и отказываться от общепринятого логического типа данных, который
должен здесь быть по всем правилам, в сторону "истинного" стиля, то отказываться от всего синтаксиса SB:
классов SAMP.Available(), высокоуровневых конструкций, 00D6: if, автоподбора на основе var end 0006: 0@ = -1 и т.д
5) Оба кода выполняют операцию XOR с 0: это не будет работать так, как задумывалось

P.S тут небольшая опечатка для SAMP.RegisterClientCommand()
^RegisterClientCommand,[0B35,=,2,0,0],("Command%s")
IsCommandTyped,0B35,1,0,("Command%i" "Params%i")
 
Последнее редактирование:
  • Нравится
Реакции: randazzo

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как сделать скан введенного значения в диалоге. Например, если в диалог введен текст, то в чат выводится сообщение, о том что нужно ввести число а не текст
CLEO:
alloc 0@ 10
if 0B3C: samp is_dialog_responded id DialogID button 1@ list_item 0 input_text 0@
    then 
    if and
    0AD4: 0@ = scan_string 0@ format "%d" 2@
    1@ == 1
        then   
        free 0@
        chatmsg "%d" -1 2@
    end
end

if
ДИАЛОГ НЕ ОТКРЫТ
then
...
end
CLEO:
if 8B4C: not samp is_dialog_active -1
    then
    // code
end
 
Последнее редактирование модератором:
  • Нравится
Реакции: 4el0ve4ik

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
:Noname_705
0AC6: 33@ = label @Noname_780 offset
0B3B: samp show_dialog id 1232 caption "{FFCF00}ColorCar by [CM]Vovich for BENCH" text 33@ button_1 "Çàêðûòü" button_2 "" style 0
0B43: samp cmd_ret

:Noname_780
hex
7B 46 46 46 46 46 46 7D 7B 46 46 46 46 46 46 7D
C7 E4 F0 E0 E2 F1 F2 E2 F3 E9 F2 E5 21 0A 7B 46
46 46 46 46 46 7D 7B 46 46 46 46 46 46 7D 43 4C
45 4F 20 E1 FB EB 20 F1 EE E7 E4 E0 ED 20 E4 EB
FF 20 EA E0 ED E0 EB E0 20 42 45 4E 43 48 20 43
48 41 4E 4E 45 4C 2C 20 EE E1 E7 EE F0 FB 20 43
4C 45 4F 20 E8 20 EF F0 EE F7 E5 E5 20 2D 7B 36
42 43 46 30 30 7D 20 79 6F 75 74 75 62 65 2E 63
6F 6D 2F 75 73 65 72 2F 4D 72 42 65 6E 63 68 37
37 37 37 20 0A 7B 46 46 46 46 46 46 7D 7B 46 46
46 46 46 46 7D C2 FB 20 EC EE E6 E5 F2 E5 20 EF
EE F1 EC EE F2 F0 E5 F2 FC 20 F1 EF E8 F1 EE EA
20 F6 E2 E5 F2 EE E2 20 E0 E2 F2 EE 20 EA EE EC
E0 ED E4 EE E9 20 2D 20 7B 36 42 43 46 30 30 7D
AB 2F 63 76 BB 0A 7B 46 46 46 46 46 46 7D 7B 46
46 46 46 46 46 7D CA EE EC E0 ED E4 E0 20 E4 EB
FF 20 EF E5 F0 E5 EA F0 E0 F1 EA E8 20 E0 E2 F2
EE 20 2D 20 7B 36 42 43 46 30 30 7D 2F 63 63 00
end

Что такое HEX? Как раскриптовать что там написано? И как сделать также?
Код:
{FFFFFF}{FFFFFF}Здравствуйте!
{FFFFFF}{FFFFFF}CLEO был создан для канала BENCH CHANNEL, обзоры CLEO и прочее -{6BCF00} youtube.com/user/MrBench7777 
{FFFFFF}{FFFFFF}Вы можете посмотреть список цветов авто командой - {6BCF00}ϻ/cvЋ
{FFFFFF}{FFFFFF}Команда для перекраски авто - {6BCF00}/cc
Text To Hex / Hex To Text - шифрование online(http://crypt-online.narod.ru/crypts/text2hex/)