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

#saniwe

глаза пофикси
218
107
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Все равно пишет: /command 0 (должно быть id)

Вот весь код:
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

REPEAT
wait 0
UNTIL 0AFA:  is_samp_available

0B34: samp register_client_command "command" to_label @command

0BE3: raknet setup_incoming_rpc_hook @hook
alloc 4@ 256
alloc 11@ 256

WHILE TRUE
wait 0
    IF 0039:   31@ == 1
    THEN
        IF
        0C18: 0 = strstr string1 4@ string2 "  123"
        THEN
            wait 2000
            0AA5: call 0x8220AD num_params 5 pop 5 params 13@v 12@v 11@ "%s_%s[%d] говорит:  123" 4@
            say "123 %d" 13@
            wait 2000
            say "123 %s" 12@
            wait 2000
        END
        0C11: memset destination 4@ value 0 size 256
    END
END



:hook
0BE5: raknet 0@ = get_hook_param {PARAM_BITSTREAM}0
0BE5: raknet 1@ = get_hook_param {PARAM_PACKETID}1
IF 1@ == 93
THEN
    0BE7: raknet 2@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // color
    0BE7: raknet 3@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // strLen
    alloc 4@ 256
    0C11: memset destination 4@ value 0 size 256
 
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    0C0F: array 4@ element 3@ = 0x00           
END
0BE0: raknet hook_ret true


:command
0B12: 31@ = 31@ XOR 1
IF 31@ == 1
THEN
    0AF8: samp add_message_to_chat "{FF0000}[1] {FFFFFF}1 {32CD32}1" color -1
ELSE
    0AF8: samp add_message_to-chat "{FF0000}[0] {FFFFFF}0 {CB2821}0!" color -1
END
0B43: samp cmd_ret


Чатлог:
[16:14:30] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} 123

[16:14:33] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi 0

[16:14:35] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi (null)


Что тут не так?
юзай опкод "0B2B"для получения id
 

клешь рояль

Известный
1,253
550
Что делает опкод 0b12 ?
Например в скрипте
CLEO:
{$CLEO}
0000:

0B34: samp register_client_command "pers" to_label @cmd
while true
    wait 0
        if 0@ == 1 // Если мы активировали скрипт
            then
                wait 1000 
        0C72: set_virtual_key 0x57 down true
            wait 500
            0C72: set_virtual_key 0x57 down false
                wait 500
                0C72: set_virtual_key 0x44 down true
                wait 500
            0C72: set_virtual_key 0x44 down false
                wait 500
                0C72: set_virtual_key 0x53 down true
                    wait 500
                0C72: set_virtual_key 0x53 down false
                    wait 500
            0C72: set_virtual_key 0x41 down true
            wait 500
        0C72: set_virtual_key 0x41 down false
        wait 500
    end
end
:cmd
0B12: 0@ = 0@ XOR 1
    if 0@ == 1
        then
    0AF8: samp add_message_to_chat "Pers Activated" color -1
end
    if 0@ == 0
        then
    0AF8: samp add_message_to_chat "Pers Deactivated" color -1
end
Samp.CmdRet()
 

Musaigen

shitposter
Проверенный
1,660
1,477
Что делает опкод 0b12 ?
Например в скрипте
CLEO:
{$CLEO}
0000:

0B34: samp register_client_command "pers" to_label @cmd
while true
    wait 0
        if 0@ == 1 // Если мы активировали скрипт
            then
                wait 1000
        0C72: set_virtual_key 0x57 down true
            wait 500
            0C72: set_virtual_key 0x57 down false
                wait 500
                0C72: set_virtual_key 0x44 down true
                wait 500
            0C72: set_virtual_key 0x44 down false
                wait 500
                0C72: set_virtual_key 0x53 down true
                    wait 500
                0C72: set_virtual_key 0x53 down false
                    wait 500
            0C72: set_virtual_key 0x41 down true
            wait 500
        0C72: set_virtual_key 0x41 down false
        wait 500
    end
end
:cmd
0B12: 0@ = 0@ XOR 1
    if 0@ == 1
        then
    0AF8: samp add_message_to_chat "Pers Activated" color -1
end
    if 0@ == 0
        then
    0AF8: samp add_message_to_chat "Pers Deactivated" color -1
end
Samp.CmdRet()
А что непонятно? Переключает статус переменной с TRUE на FALSE(и наоборот)
 
  • Нравится
Реакции: клешь рояль

astap_

Известный
Всефорумный модератор
626
603
Что делает опкод 0b12 ?
Например в скрипте
CLEO:
{$CLEO}
0000:

0B34: samp register_client_command "pers" to_label @cmd
while true
    wait 0
        if 0@ == 1 // Если мы активировали скрипт
            then
                wait 1000
        0C72: set_virtual_key 0x57 down true
            wait 500
            0C72: set_virtual_key 0x57 down false
                wait 500
                0C72: set_virtual_key 0x44 down true
                wait 500
            0C72: set_virtual_key 0x44 down false
                wait 500
                0C72: set_virtual_key 0x53 down true
                    wait 500
                0C72: set_virtual_key 0x53 down false
                    wait 500
            0C72: set_virtual_key 0x41 down true
            wait 500
        0C72: set_virtual_key 0x41 down false
        wait 500
    end
end
:cmd
0B12: 0@ = 0@ XOR 1
    if 0@ == 1
        then
    0AF8: samp add_message_to_chat "Pers Activated" color -1
end
    if 0@ == 0
        then
    0AF8: samp add_message_to_chat "Pers Deactivated" color -1
end
Samp.CmdRet()
простым языком, устанавливает переменной 0@ сначала "0" (так как в этом коде 0@ = 0), а при повторном вызове опкода - "1". И так по кругу.
 

Musaigen

shitposter
Проверенный
1,660
1,477
Угу не понятно.
А за что отвечает "XOR 1" ?
И можно ли писать "XOR 2" "XOR 3"? И что от этого будет?
Угу, понятно.
А ты знаешь диапазон типа BOOL?

Я не знаю что это
Тогда лучше не суваться в программирование
Диапазоны типов данных(https://msdn.microsoft.com/ru-ru/library/s3f49ktz.aspx)
 
  • Нравится
Реакции: клешь рояль

Skelerll

Известный
154
8
Вот весь код:
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

REPEAT
wait 0
UNTIL 0AFA:  is_samp_available

0B34: samp register_client_command "command" to_label @command

0BE3: raknet setup_incoming_rpc_hook @hook
alloc 4@ 256
alloc 11@ 256

WHILE TRUE
wait 0
    IF 0039:   31@ == 1
    THEN
        IF
        0C18: 0 = strstr string1 4@ string2 "  123"
        THEN
            wait 2000
            0AA5: call 0x8220AD num_params 5 pop 5 params 13@v 12@v 11@ "%s_%s[%d] говорит:  123" 4@
            say "123 %d" 13@
            wait 2000
            say "123 %s" 12@
            wait 2000
        END
        0C11: memset destination 4@ value 0 size 256
    END
END



:hook
0BE5: raknet 0@ = get_hook_param {PARAM_BITSTREAM}0
0BE5: raknet 1@ = get_hook_param {PARAM_PACKETID}1
IF 1@ == 93
THEN
    0BE7: raknet 2@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // color
    0BE7: raknet 3@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // strLen
    alloc 4@ 256
    0C11: memset destination 4@ value 0 size 256

    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    0C0F: array 4@ element 3@ = 0x00          
END
0BE0: raknet hook_ret true


:command
0B12: 31@ = 31@ XOR 1
IF 31@ == 1
THEN
    0AF8: samp add_message_to_chat "{FF0000}[1] {FFFFFF}1 {32CD32}1" color -1
ELSE
    0AF8: samp add_message_to-chat "{FF0000}[0] {FFFFFF}0 {CB2821}0!" color -1
END
0B43: samp cmd_ret


Чатлог:
[16:14:30] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} 123

[16:14:33] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi 0

[16:14:35] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi (null)


Что тут не так?
 

клешь рояль

Известный
1,253
550
Вот весь код:
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

REPEAT
wait 0
UNTIL 0AFA:  is_samp_available

0B34: samp register_client_command "command" to_label @command

0BE3: raknet setup_incoming_rpc_hook @hook
alloc 4@ 256
alloc 11@ 256

WHILE TRUE
wait 0
    IF 0039:   31@ == 1
    THEN
        IF
        0C18: 0 = strstr string1 4@ string2 "  123"
        THEN
            wait 2000
            0AA5: call 0x8220AD num_params 5 pop 5 params 13@v 12@v 11@ "%s_%s[%d] говорит:  123" 4@
            say "123 %d" 13@
            wait 2000
            say "123 %s" 12@
            wait 2000
        END
        0C11: memset destination 4@ value 0 size 256
    END
END



:hook
0BE5: raknet 0@ = get_hook_param {PARAM_BITSTREAM}0
0BE5: raknet 1@ = get_hook_param {PARAM_PACKETID}1
IF 1@ == 93
THEN
    0BE7: raknet 2@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // color
    0BE7: raknet 3@ = bit_stream_read 0@ type {BS_TYPE_INT}3 // strLen
    alloc 4@ 256
    0C11: memset destination 4@ value 0 size 256

    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    0C0F: array 4@ element 3@ = 0x00         
END
0BE0: raknet hook_ret true


:command
0B12: 31@ = 31@ XOR 1
IF 31@ == 1
THEN
    0AF8: samp add_message_to_chat "{FF0000}[1] {FFFFFF}1 {32CD32}1" color -1
ELSE
    0AF8: samp add_message_to-chat "{FF0000}[0] {FFFFFF}0 {CB2821}0!" color -1
END
0B43: samp cmd_ret


Чатлог:
[16:14:30] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} 123

[16:14:33] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi 0

[16:14:35] {FFFFFF}Roman_NonTrivial[297] говорит:{B7AFAF} gotaxi (null)


Что тут не так?
Я не в тему, но у тебя нету освобождения занятой памяти или я тупой