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

Kotovasya

Участник
85
13
Если я ищу строку в чате с помощью хука, можно ли добавить проверку на цвет текста?
 
1,417
1,029
Если я ищу строку в чате с помощью хука, можно ли добавить проверку на цвет текста?
цвет всего сообщения ты получаешь до самого сообщения
CLEO:
IF 0@ == RPC_SCRCLIENTMESSAGE
THEN
    0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT // color
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // strlen
    alloc 3@ 125
    0BE8: raknet bit_stream 0@ read_array 3@ size 2@
    0C1E: struct 3@ offset 2@ size 1 = 0   
    free 3@
END
0BE0: raknet hook_ret TRUE
 
  • Нравится
Реакции: Kotovasya

MaIIoy

Новичок
24
2
Привет ребята! Подскажите пожалуйста как сделать проверку находится ли игрок на улице? Вот допустим пишем /команда и если вы на улице то напишет типо такого: вы на улице или вы на свободе. Если в интерьере то не будет ничего писать, помогите пожалуйста.
 

kawa operand

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

MaIIoy

Новичок
24
2
получай текущий интерьер, если нуль то ты на улице
А можете показать на примере по опкоду? Я просто новичок и вообще не понимаю!

получай текущий интерьер, если нуль то ты на улице
Точнее вот типо такого? if 0154: actor $PLAYER_ACTOR in_zone 0
 
Последнее редактирование модератором:

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
077E: get_active_interior_to 0@
if 0@ == 0
then
ты на улице
end
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Ещё вопросик, можно как то узнать модель транспорта по его хендлу?
Если нужен model id:
CLEO:
0441: 14@ = car 20@ model // 14@ - model(id),   20@ - handle
Если нужно Model name, то
CLEO:
0441: 14@ = car 20@ model
0ADB: 25@ = car_model 14@ name // 25@ - model name
А если полное название:
CLEO:
0441: 14@ = car 20@ model
0ADB: 25@ = car_model 14@ name
0ADE: 21@ = text_by_GXT_entry 25@ // 21@ - Veh name
 
Последнее редактирование:

Kotovasya

Участник
85
13
CLEO:
CONST
TXT = 20@
NICK = 21@
ID = 22@
END

WHILE TRUE
wait 0
IF 17@ == 1
THEN
    IF 0A9A: TXT = openfile "cleo/Spisok.txt" mode "r"
    THEN
        0AC8: 23@ = allocate_memory_size 64
        0C11: memset destination 23@ value 0 size 64
        17@ = 0
     
        REPEAT
        wait 0
        IF 0AD7: read_string_from_file TXT to 23@ size 65
        THEN
            IF 0C21: stricmp string1 NICK string2 23@
            THEN
                0C11: memset destination 23@ value 0 size 64
                0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Игрок {FF0000}находится {FFFFFF}в ЧС" color -1
                24@ = -1
                break
            END
            0C11: memset destination 23@ value 0 size 64 
        END
        UNTIL 0AD6:   end_of_file TXT reached
     
        free 23@
        IF 24@ == 0
        THEN
            0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Игрок {2BFF00}не занесен {FFFFFF}в ЧС" color -1
        ELSE
            24@ = 0     
        END
    END
END
END

:check
IF 0B35: samp ID = get_last_command_params
THEN
    0C1A: ID = atoi ID
    IF 0B23:  samp is_player_connected ID
    THEN
        0B36: samp NICK = get_player_nickname ID
        17@ = 1
    ELSE
        0AF8: samp add_message_to_chat "{FFFFFF} Игрок не подключен" color -1
    END
ELSE
        0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Не верно введена команда. Введите команду /bl [id игрока]" color -1
END
cmdret

Вообщем, при проверке любого игрока на ЧС, пишет что не занесен. В чем причина? Я наверное в глаза долблюсь, но нормальный скан файла на бх я так и не нашел:( Если сможете подкрепить примером: буду очень благодарен.

P.S. closefile забыл ебануть, но не в этом суть же, так?
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,817
1,599
CLEO:
CONST
TXT = 20@
NICK = 21@
ID = 22@
END

WHILE TRUE
wait 0
IF 17@ == 1
THEN
    IF 0A9A: TXT = openfile "cleo/Spisok.txt" mode "r"
    THEN
        0AC8: 23@ = allocate_memory_size 64
        0C11: memset destination 23@ value 0 size 64
        17@ = 0
 
        REPEAT
        wait 0
        IF 0AD7: read_string_from_file TXT to 23@ size 65
        THEN
            IF 0C21: stricmp string1 NICK string2 23@
            THEN
                0C11: memset destination 23@ value 0 size 64
                0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Игрок {FF0000}находится {FFFFFF}в ЧС" color -1
                24@ = -1
                break
            END
            0C11: memset destination 23@ value 0 size 64
        END
        UNTIL 0AD6:   end_of_file TXT reached
 
        free 23@
        IF 24@ == 0
        THEN
            0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Игрок {2BFF00}не занесен {FFFFFF}в ЧС" color -1
        ELSE
            24@ = 0 
        END
    END
END
END

:check
IF 0B35: samp ID = get_last_command_params
THEN
    0C1A: ID = atoi ID
    IF 0B23:  samp is_player_connected ID
    THEN
        0B36: samp NICK = get_player_nickname ID
        17@ = 1
    ELSE
        0AF8: samp add_message_to_chat "{FFFFFF} Игрок не подключен" color -1
    END
ELSE
        0AF8: samp add_message_to_chat "{FFFF00}[Проверка ЧС] {FFFFFF}Не верно введена команда. Введите команду /bl [id игрока]" color -1
END
cmdret

Вообщем, при проверке любого игрока на ЧС, пишет что не занесен. В чем причина? Я наверное в глаза долблюсь, но нормальный скан файла на бх я так и не нашел:( Если сможете подкрепить примером: буду очень благодарен.
Всё пока не читал, 12 строка, режим выставь "rt"
а, и 0ADA для скана юзай
В конце файл можно и закрыть File.Close(TXT)
 
Последнее редактирование:
  • Нравится
Реакции: Kotovasya