Freym
Известный
- 488
- 204
Самое интересное, что такой вопрос задавали уже сотню тысяч раз. Поиском пользоваться не учили?
1) Вот вариант через хук, если нужен МОМЕНТАЛЬНЫЙ ответ и чтоб 100 процентно среагировало
2) Еще как вариант получать последнюю строку из чата и сравнивать тоже через 0с18, но тут может быть косяк, если в один момент вылетит много строк чата в одну секунду и скрипт может не успеть прочитать, сам чаще юзаю второй способ, потому что лень ебаться с хуками, но если надо какое-то действие моментальное на строку, то лучше через рцп ее получатьCLEO:{$CLEO} {$INCLUDE SF} 0000: repeat wait 500 until Samp.Available() alloc 4@ 256 0c11: memset 4@ 0 256 0BE3: raknet setup_incoming_rpc_hook @ClientMessage 0BDE: pause_thread 0 :ClientMessage 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE5: raknet 1@ = get_hook_param PARAM_PACKETID if and 29@ == 1 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color 0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen 0C11: memset destination 4@ value 0 size 256 0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text 0C0F: array 4@ element 3@ = 0x00 if 0C18: 8@ = strstr string1 4@ string2 "Привет" then 0AF9: samp say_msg "И тебе привет" end end 0BE0: raknet hook_ret true
CLEO:SAMP.GetChatString(99, 7@, 0, 0, 0)
Спасибо)