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

D3.Pheonix

🎹
Модератор
2,816
1,597
Можете показать напримере например мне нужно ввести команду /test 1 и затем проверить что переменая 2 которая равна любому рандомному числу от 1 до 1000 равна переменой 1 которая равна числу которое я указал после test
в начале пропиши, и не будет ошибки
CLEO:
int 1@
int 2@
Либо юзай опкод 003B
 

NW91827364550

Новичок
7
0
в начале пропиши, и не будет ошибки
CLEO:
int 1@
int 2@
Либо юзай опкод 003B

Теперь пишу /test 9 проверил параметры опкодом 0B35 и когда вывыжу его с помощю %d то пишет кучу цифр и опкод 003B срабатывает на кучу цифр а не на цифру 9
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
через атои пропускай хуйню 0b35 и полученное уже сравнивай
 

MrYurkoo

Известный
102
9
CLEO:
{$CLEO}
0000:

WHILE TRUE
wait 0
   IF 0ADC:   test_cheat "H"
   THEN
       0C72: set_virtual_key 32 down true
       repeat
       wait 0
       until 0ADC: "H"
       0C72: set_virtual_key 32 down false 
   END
END

Не работает код, не жмется автоматически пробел "бесконечное количество раз"
 
Последнее редактирование модератором:

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
{$CLEO}
0000:

WHILE TRUE
wait 0
   IF 0ADC:   test_cheat "H"
   THEN
       0C72: set_virtual_key 32 down true
       repeat
       wait 0
       until 0ADC: "H"
       0C72: set_virtual_key 32 down false  
   END
END

Не работает код, не жмется автоматически пробел "бесконечное количество раз"
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end

while true
    wait 0
    if 0ADC: test_cheat "H"
        then
        0B12: 0@ = 0@ XOR 1 
    if 0@ == 1
        then
        msg "ON" -1
    else
        msg "OFF" -1
    end
end
           
    if 0@ == 1
        then
        0C72: set_virtual_key 32 down true
        0C72: set_virtual_key 32 down false 
    end       
end
 

MrYurkoo

Известный
102
9
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end

while true
    wait 0
    if 0ADC: test_cheat "H"
        then
        0B12: 0@ = 0@ XOR 1
    if 0@ == 1
        then
        msg "ON" -1
    else
        msg "OFF" -1
    end
end
          
    if 0@ == 1
        then
        0C72: set_virtual_key 32 down true
        0C72: set_virtual_key 32 down false
    end      
end
Работает, но...у меня в качалке этот пробел "не дрочит".
 
У

Удалённый пользователь 126082

Гость
Почему у меня, когда добавляется текстдрав на экран все нормально, а когда текстрав с обводкой, то игра замедляется в 10 раз?
Я делал все по уроку от DarkP1xel и еще в ютубе смотрел.

CLEO:
{$CLEO}
0000: NOP

:MainLoop
0001: wait 0 ms
0ADC: test_cheat "FEV"
004D: jump_if_false @MainLoop
0C48: samp textdraw 420 create "FeaVor" pos 50.0 180.0 ||| Ñîçäà¸ò textdraw
0C4E: samp textdraw 420 set_outline 1 color 0xFF000000 ||| Устанавливает обводку на textdraw'e .
jump @MainLoop
 
Последнее редактирование модератором:
1,417
1,029
Код:
{$CLEO}
0000:

WHILE TRUE
wait 0
   IF 0ADC:   test_cheat "H"
   THEN
       0C72: set_virtual_key 32 down true
       repeat
       wait 0
       until 0ADC: "H"
       0C72: set_virtual_key 32 down false  
   END
END

Не работает код, не жмется автоматически пробел "бесконечное количество раз"
Надо было так и писать, чтобы скрипт нажимал на клавишу, а не зажимал клавишу.
CLEO:
{$CLEO}
0000:

WHILE TRUE
wait 0
   IF 0ADC:   test_cheat "H"
   THEN
       repeat
       wait 0
           0C72: set_virtual_key 32 down true
           wait 10
           0C72: set_virtual_key 32 down false
       until 0ADC: "H"
   END
END
 
У

Удалённый пользователь 126082

Гость
Помогите мне пожайлуста. Вот допустим я хочу введя какую-либо новую зарегистрированную в клео команду и id игрока. Как мне сделать так, чтобы я мог введя команду и айди сделать какие-то действия? Ну то есть как определить хэндл игрока?
 

DarkL1ght

Новичок
252
112
Помогите мне пожайлуста. Вот допустим я хочу введя какую-либо новую зарегистрированную в клео команду и id игрока. Как мне сделать так, чтобы я мог введя команду и айди сделать какие-то действия? Ну то есть как определить хэндл игрока?
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "kek" to_label @kek

repeat
wait 0
    if 0@ == 1
        then
        Samp.IsCommandTyped(2@)
        IF 0AD4: 1@ = scan_string 2@ format "%d" 3@
        THEN
        IF 0B20: samp 4@ = actor_handle_by_samp_player_id 3@
        THEN
        // тут уже пиши свой код дальше
        ELSE // после того как написал код, else [иначе]
        msg "Неправильный ID игрока" -1 // если у тебя ошибка пиши chatmsg
        END
        ELSE
        msg "Введите: /kek [ID игрока]" -1
        END
    0@ = 0
END
until false

:kek
0@ = 1
SAMP.CmdRet()
 

Вложения

  • kek.cs
    18 KB · Просмотры: 3
  • Нравится
Реакции: MaIIoy
У

Удалённый пользователь 126082

Гость
А как мне записать в команду 0AF9: samp say_msg "/id " переменную в которой записан хэндл игрока?



CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "kek" to_label @kek

repeat
wait 0
    if 0@ == 1
        then
        Samp.IsCommandTyped(2@)
        IF 0AD4: 1@ = scan_string 2@ format "%d" 3@
        THEN
        IF 0B20: samp 4@ = actor_handle_by_samp_player_id 3@
        THEN
        // тут уже пиши свой код дальше
        ELSE // после того как написал код, else [иначе]
        msg "Неправильный ID игрока" -1 // если у тебя ошибка пиши chatmsg
        END
        ELSE
        msg "Введите: /kek [ID игрока]" -1
        END
    0@ = 0
END
until false

:kek
0@ = 1
SAMP.CmdRet()
 

DarkL1ght

Новичок
252
112
А как мне записать в команду 0AF9: samp say_msg "/id " переменную в которой записан хэндл игрока?
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "kek" to_label @kek

repeat
wait 0
    if 0@ == 1
        then
        Samp.IsCommandTyped(2@)
        IF 0AD4: 1@ = scan_string 2@ format "%d" 3@
        THEN
        IF 0B23:  samp is_player_connected 3@ // [НЕОБЯЗАТЕЛЬНО] Проверяет подключение игрока с данным идом(локального игрока будет возвращать как отключен)
        THEN
        0B36: samp 4@ = get_player_nickname 3@
        msg "Имя: %s[id %d]" -1 4@ 3@
        else
        msg "Неправильный ID игрока" -1 // если у тебя ошибка пиши chatmsg
        END
        ELSE
        msg "Введите: /kek [ID игрока]" -1
        END
    0@ = 0
END
until false

:kek
wait 0
0@ = 1
SAMP.CmdRet()
 

Вложения

  • kek.cs
    18.2 KB · Просмотры: 6
  • Нравится
Реакции: MaIIoy

D3.Pheonix

🎹
Модератор
2,816
1,597
Я типо хочу сделать так, чтобы было не /invite, а /iv + /id прописывал игрока.
Я знаю, что есть такое клео, но оно закриптовано. Я просто на примерах учусь создавать клео потихоньку.
/iv id
Для этого хендл не нужен
CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 0
until SAMP.Available()
0B34: samp register_client_command "iv" to_label @iv
0BDE: pause_thread 0


:iv
SAMP.IsCommandTyped(0@)
if
0AD4: 1@ = scan_string 0@ format "%d" 2@
then
say "/invite %d" 2@
end
SAMP.CmdRet()