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

1,417
1,029
Приветствую, как вывести последнее число в "chatmsg" через опкод SAMP.IsCommandTyped(0@) ? Можно что бы выдавало с ошибкой, например число от 1 до 7, если введено 8 то -> "else / chatmsg "Число может быть от 1 до 7." " Заранее спасибо
CLEO:
Cmd "cmd" @label

:label
0B35: samp 0@ = get_last_command_params
0C1A: 0@ = atoi 0@
If and
0@ <= 7
0@ > 0
Then
// code
Else
Chatmsg "от 1 до 7" -1
End
Cmdret
 

noob213

Известный
33
2
существует некоторая форма
как получить идентификацию игрока через пример команды / id 24
CLEO:
:mycmd
0B35: samp 0@ = get_last_command_params
if
0AD4: 0@ = scan_string 0@ format "%d" 1@
then
if
0B23:  samp is_player_connected 1@
then
   
// opcode для получения идентификатора игрока по команде?
    // это не сработает 0B2B: samp 3@ = get_player_id_by_actor_handle 1@
    chatmsg "идентификатор игрока %d" 3@
        end
    end
0B43: samp cmd_ret
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
существует некоторая форма
как получить идентификацию игрока через пример команды / id 24
CLEO:
:mycmd
0B35: samp 0@ = get_last_command_params
if
0AD4: 0@ = scan_string 0@ format "%d" 1@
then
if
0B23:  samp is_player_connected 1@
then
 
// opcode для получения идентификатора игрока по команде?
    // это не сработает 0B2B: samp 3@ = get_player_id_by_actor_handle 1@
    chatmsg "идентификатор игрока %d" 3@
        end
    end
0B43: samp cmd_ret
Судя по языку - ты не русский. Просто хочу убедиться, что это так.

Что значит идентификатора игрока? samp id? Если да, то зачем его получать, если ты его (id) вводишь как параметр к команде?
 

noob213

Известный
33
2
Судя по языку - ты не русский. Просто хочу убедиться, что это так.

Что значит идентификатора игрока? samp id? Если да, то зачем его получать, если ты его (id) вводишь как параметр к команде?
Скинул бы весь код, тогда всё станет ясно
Я все равно исправил это
Благодарю вас
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Написал гавённый автоответчик, но так и не вкурил почему ругается на регистр (хотя не должен)
CLEO:
0C29: 13@ = stristr string1 2@ string2 19@
CLEO:
{$CLEO .cs}

0000: NOP 

:Noname_2
0001: wait 0 ms 
0AFA:  is_samp_available 
004D: jump_if_false @Noname_2 
0B34: samp register_client_command "autoa" to_label @Noname_506 

:Noname_29
0001: wait 0 ms 
0039:   1@ == 1 
004D: jump_if_false @Noname_29 
0AC8: 2@ = allocate_memory_size 260 
0AC8: 28@ = allocate_memory_size 50 
0AC8: 29@ = allocate_memory_size 35 
0AC8: 30@ = allocate_memory_size 0 
0AC8: 25@ = allocate_memory_size 100 
0AC8: 19@ = allocate_memory_size 80 
0AC8: 13@ = allocate_memory_size 80 
0B75: samp get_chat_string 99 text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@ 
0B2B: samp 12@ = get_player_id_by_actor_handle $PLAYER_ACTOR 
0B36: samp 24@ = get_player_nickname 12@ 
0AD3: 25@ = format "для %s[%d]:" 24@ 12@ 
0AF4: 19@ = read_string_from_ini_file "cleo\autoa.ini" section "Admin" key "Question" 
0AC8: 10@ = allocate_memory_size 100 
0AC8: 11@ = allocate_memory_size 100 
00D6: if and
0039:   29@ == -26299 
0C18: 10@ = strstr string1 2@ string2 "Администратор" 
0C18: 11@ = strstr string1 2@ string2 25@ 
0C29: 13@ = stristr string1 2@ string2 19@ 
004D: jump_if_false @Noname_29 
004D: jump_if_false @Noname_29 
0001: wait 50 ms 
0AF8: samp add_message_to_chat "{ffffff}[AA] {FF0000}Message from ADMIN {FF0000}detected." color -65536 
0AC8: 17@ = allocate_memory_size 160 
0C11: memset destination 17@ value 0 size 160 
0AF4: 17@ = read_string_from_ini_file "cleo\autoa.ini" section "Your Answer" key "Text" 
0AF0: 31@ = get_int_from_ini_file "cleo\autoa.ini" section "Delay" key "Ms" 
0001: wait 31@ ms 
0AF9: samp say_msg 17@ 
0AC9: free_allocated_memory 17@ 
0AC9: free_allocated_memory 2@ 
0AC9: free_allocated_memory 28@ 
0AC9: free_allocated_memory 29@ 
0AC9: free_allocated_memory 30@ 
0AC9: free_allocated_memory 25@ 
0AC9: free_allocated_memory 10@ 
0AC9: free_allocated_memory 11@ 
0AC9: free_allocated_memory 19@ 
0AC9: free_allocated_memory 13@ 
0002: jump @Noname_29 

:Noname_506
8039:   not  1@ == 1 
004D: jump_if_false @Noname_559 
0AD1: show_formatted_text_highpriority "Auto answer ~g~ON" time 1500 2769 
0A8E: 1@ = 1 + 0 // int 
0B43: samp cmd_ret 

:Noname_559
0AD1: show_formatted_text_highpriority "Auto answer ~r~OFF" time 1500 2769 
0A8E: 1@ = 0 + 0 // int 
0B43: samp cmd_ret
 
1,417
1,029
Написал гавённый автоответчик, но так и не вкурил почему ругается на регистр (хотя не должен)
CLEO:
0C29: 13@ = stristr string1 2@ string2 19@
CLEO:
{$CLEO .cs}

0000: NOP

:Noname_2
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "autoa" to_label @Noname_506

:Noname_29
0001: wait 0 ms
0039:   1@ == 1
004D: jump_if_false @Noname_29
0AC8: 2@ = allocate_memory_size 260
0AC8: 28@ = allocate_memory_size 50
0AC8: 29@ = allocate_memory_size 35
0AC8: 30@ = allocate_memory_size 0
0AC8: 25@ = allocate_memory_size 100
0AC8: 19@ = allocate_memory_size 80
0AC8: 13@ = allocate_memory_size 80
0B75: samp get_chat_string 99 text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
0B2B: samp 12@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 24@ = get_player_nickname 12@
0AD3: 25@ = format "для %s[%d]:" 24@ 12@
0AF4: 19@ = read_string_from_ini_file "cleo\autoa.ini" section "Admin" key "Question"
0AC8: 10@ = allocate_memory_size 100
0AC8: 11@ = allocate_memory_size 100
00D6: if and
0039:   29@ == -26299
0C18: 10@ = strstr string1 2@ string2 "Администратор"
0C18: 11@ = strstr string1 2@ string2 25@
0C29: 13@ = stristr string1 2@ string2 19@
004D: jump_if_false @Noname_29
004D: jump_if_false @Noname_29
0001: wait 50 ms
0AF8: samp add_message_to_chat "{ffffff}[AA] {FF0000}Message from ADMIN {FF0000}detected." color -65536
0AC8: 17@ = allocate_memory_size 160
0C11: memset destination 17@ value 0 size 160
0AF4: 17@ = read_string_from_ini_file "cleo\autoa.ini" section "Your Answer" key "Text"
0AF0: 31@ = get_int_from_ini_file "cleo\autoa.ini" section "Delay" key "Ms"
0001: wait 31@ ms
0AF9: samp say_msg 17@
0AC9: free_allocated_memory 17@
0AC9: free_allocated_memory 2@
0AC9: free_allocated_memory 28@
0AC9: free_allocated_memory 29@
0AC9: free_allocated_memory 30@
0AC9: free_allocated_memory 25@
0AC9: free_allocated_memory 10@
0AC9: free_allocated_memory 11@
0AC9: free_allocated_memory 19@
0AC9: free_allocated_memory 13@
0002: jump @Noname_29

:Noname_506
8039:   not  1@ == 1
004D: jump_if_false @Noname_559
0AD1: show_formatted_text_highpriority "Auto answer ~g~ON" time 1500 2769
0A8E: 1@ = 1 + 0 // int
0B43: samp cmd_ret

:Noname_559
0AD1: show_formatted_text_highpriority "Auto answer ~r~OFF" time 1500 2769
0A8E: 1@ = 0 + 0 // int
0B43: samp cmd_ret
CLEO:
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_SCRCLIENTMESSAGE   
THEN
        0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM  
        0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT
        0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT
        alloc 3@ 125
        0BE8: raknet bit_stream 0@ read_array 3@ size 2@
        0C1E: struct 3@ offset 2@ size 1 = 0         
        IF AND
        0C18: 4@ = strstr string1 3@ string2 "Администратор"
        ...
        THEN
            ...                       
        END
        free 3@     
END
лови сообщение в хуке
 

BlackKnigga

Известный
BH Team
922
444
Написал гавённый автоответчик, но так и не вкурил почему ругается на регистр (хотя не должен)
CLEO:
0C29: 13@ = stristr string1 2@ string2 19@
CLEO:
{$CLEO .cs}

0000: NOP

:Noname_2
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "autoa" to_label @Noname_506

:Noname_29
0001: wait 0 ms
0039:   1@ == 1
004D: jump_if_false @Noname_29
0AC8: 2@ = allocate_memory_size 260
0AC8: 28@ = allocate_memory_size 50
0AC8: 29@ = allocate_memory_size 35
0AC8: 30@ = allocate_memory_size 0
0AC8: 25@ = allocate_memory_size 100
0AC8: 19@ = allocate_memory_size 80
0AC8: 13@ = allocate_memory_size 80
0B75: samp get_chat_string 99 text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
0B2B: samp 12@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 24@ = get_player_nickname 12@
0AD3: 25@ = format "для %s[%d]:" 24@ 12@
0AF4: 19@ = read_string_from_ini_file "cleo\autoa.ini" section "Admin" key "Question"
0AC8: 10@ = allocate_memory_size 100
0AC8: 11@ = allocate_memory_size 100
00D6: if and
0039:   29@ == -26299
0C18: 10@ = strstr string1 2@ string2 "Администратор"
0C18: 11@ = strstr string1 2@ string2 25@
0C29: 13@ = stristr string1 2@ string2 19@
004D: jump_if_false @Noname_29
004D: jump_if_false @Noname_29
0001: wait 50 ms
0AF8: samp add_message_to_chat "{ffffff}[AA] {FF0000}Message from ADMIN {FF0000}detected." color -65536
0AC8: 17@ = allocate_memory_size 160
0C11: memset destination 17@ value 0 size 160
0AF4: 17@ = read_string_from_ini_file "cleo\autoa.ini" section "Your Answer" key "Text"
0AF0: 31@ = get_int_from_ini_file "cleo\autoa.ini" section "Delay" key "Ms"
0001: wait 31@ ms
0AF9: samp say_msg 17@
0AC9: free_allocated_memory 17@
0AC9: free_allocated_memory 2@
0AC9: free_allocated_memory 28@
0AC9: free_allocated_memory 29@
0AC9: free_allocated_memory 30@
0AC9: free_allocated_memory 25@
0AC9: free_allocated_memory 10@
0AC9: free_allocated_memory 11@
0AC9: free_allocated_memory 19@
0AC9: free_allocated_memory 13@
0002: jump @Noname_29

:Noname_506
8039:   not  1@ == 1
004D: jump_if_false @Noname_559
0AD1: show_formatted_text_highpriority "Auto answer ~g~ON" time 1500 2769
0A8E: 1@ = 1 + 0 // int
0B43: samp cmd_ret

:Noname_559
0AD1: show_formatted_text_highpriority "Auto answer ~r~OFF" time 1500 2769
0A8E: 1@ = 0 + 0 // int
0B43: samp cmd_ret
Он кажется не работает с кириллицей
 
  • Нравится
Реакции: D3.Pheonix

enziweee

Участник
28
32
привет, есть опкоды с текстравами, чтоб не удалить, а просто скрыть?)
 

D3.Pheonix

🎹
Модератор
2,817
1,599
привет, есть опкоды с текстравами, чтоб не удалить, а просто скрыть?)
Я делал так
CLEO:
0C4C: samp textdraw 0@ set_style 4
Тупой костыль, но по другому я сам хз как )

Вот у меня бывает такое на серверах, когда играешь с кем-то, а потом твой друг просто у тебя пропадает
Рассинхрон короче
То есть ты его не видишь а он видит тебя
Бывает даже что и с машиной вместе пропадает
Так вот, спасает обычно зайти и выйти в какой-то интерьер
Там мир обновится
Можно ли как-то реализовать обновление всего в зоне стрима на клео?
Через НОПы? Или опкоды как-то?
Onfoot Data не помогает
Первый раз слышу, может это проблема сервера ?
 

enziweee

Участник
28
32
Код:
{$CLEO}
{$INCLUDE SF}
0000:NOP
:1
wait 200                             
if SAMP.Available
else_jump @1
0B34: samp register_client_command "dtp" to_label @metka
0BE3: raknet setup_incoming_rpc_hook @Noname_4528 
4@ = 0
  while true 
    wait 0
            if
            3@ == 1
            then
            SAMP.Disconnect(1)
            wait 16000
            SAMP.SetGameState(1) = 1000
            repeat
            wait 100
            until 0B61: samp is_local_player_spawned
            if
            0B4C: not samp is_dialog_active 1
            then
            wait 100
            Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 2@)
            3@ = 0
            end
        end
    end
:metka
0B12: 4@ = 4@ XOR 1
if 4@ == 1
then
wait 1000
0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET )
29@ = 43
30@ = 228
3@ = 1
4@ = 0
end
SAMP.CmdRet()

:Noname_4528
0BE5: raknet 29@ = get_hook_param 1 
if and
  29@ == 43 
  30@ == 228 
jf @Noname_4572 
0BE0: raknet hook_ret 0

:Noname_4572
0BE0: raknet hook_ret 1
здравствуйте, help me, нужно чтоб тпшило на 0@ 1@ 2@ только после закрытия диалога 1 и цикл завершался
у меня чет не работает
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите из-за чего крашит
CLEO:
:Pick
0BB9: samp 0@ = get_pickup_pool_ptr
while true
    wait 0   
    for 1@ = 0 to 4096
        if 0B51: samp 2@ = pickup_handle_by_id 1@
            then
            0A90: 2@ = 1@ * 20
            000A: 2@ += 61444
            000A: 2@ += 0@
            0A8D: 3@ = read_memory 2@ size 4 virtual_protect 1
            if 3@ == 19198
                then
                0C0C: 3@ = struct 2@ offset 8 size 4 // X
                0C0C: 4@ = struct 2@ offset 12 size 4 // Y
                00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
                0509: 8@ = distance_between_XY 3@ 4@ and_XY 5@ 6@
                0C00: math 9@ = abs 8@
                if 0021: 9@ > 100.0
                    then
                    ret 3 3@ 4@ 9@
                end
            end
        end
    end
end
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите пж в хук добавить id строки
CLEO:
0BE5: raknet 0@ = get_hook_param 0
0BE5: raknet 1@ = get_hook_param 1
if 1@ == 93
    then
    0BE7: raknet 2@ = bit_stream_read 0@ type 3
    0BE7: raknet 3@ = bit_stream_read 0@ type 3
    0C11: memset destination 4@ value 0 size 257
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    if 0C14: strcmp string1 4@ string2 "Привет"
           then
           0af8: "Id строки %d" -1 @
end
end
0BE0: raknet hook_ret 1