RedBoxWhite
Известный
- 337
- 27
не неси хуйню плис1. IP может состоять из скольки хочешь частей (допустим 12.572.572.2)
Больше 255 не может же быть.(допустим 12.572.572.2)
Я блядь для кого пишу допустим? ДОПУСТИМ, может так видно будет?Больше 255 не может же быть.
Собственно сделал вот так:Да. Юзай эти опкоды
0BD7: samp get_dialog_text 0@
0AF8: samp add_message_to_chat 1@ color 2@
if 0BD7: samp get_dialog_text "Уровень: %d" 1@
then
0AF8: samp add_message_to_chat "Ваш игровой уровень: %d" 1@ color 0x3366FF
end
энивей ты хуйню несёшь, IPv4 не может быть больше/меньше 4 чисел.Я блядь для кого пишу допустим? ДОПУСТИМ, может так видно будет?
лолСобственно сделал вот так:
** Скрытый контент не может быть процитирован. **
Но не работает, как правильно будет?
Дак это был ответ не тебе, я ступил, прост ip с номером сети начинался на 3, чёт подумал что там 5 частей)00энивей ты хуйню несёшь, IPv4 не может быть больше/меньше 4 чисел.
Опкод можно?лол
сначла получаешь текст, потом уже сканируешь его
Допустим в байте не может быть. НЕ МОЖЕТ.Я блядь для кого пишу допустим? ДОПУСТИМ, может так видно будет?
Те же самые опкоды. Ты неправильно используешь их. Смотри описание опкодов на вики.Опкод можно?
const
RPC_CHAT = 101
end
0BE3: raknet setup_incoming_rpc_hook @RPC
:RPC
while true
wait 0
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_CHAT
then
0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_BYTE
alloc 3@ 32
0BE8: raknet bit_stream 1@ read_array 3@ size 2@
0C1E: array 3@ element 2@ el_size 1 = 0
if 3@ == "Привет"
then
say "И вам"
else
free 3@
end
end
end
{$CLEO .cs}
0000:
repeat
wait 150
until 0afa:
0BE3: raknet setup_incoming_rpc_hook @DHOOK
0B34: samp register_client_command "test" to_label @cmd
while true
wait 0
end
:cmd
if 23@ == 0
then
23@ = 1
chatmsg "Активирован" -1
else
chatmsg "Деактивирован" -1
23@ = 0
end
SAMP.CmdRet()
:DHOOK
IF 23@ == 1
THEN
0BE5: raknet 0@ = get_hook_param 1
IF 0@ == 36
THEN
0BE5: raknet 1@ = get_hook_param 0
0BE7: raknet 4@ = bit_stream_read 1@ type 4 // коорд X
0BE7: raknet 5@ = bit_stream_read 1@ type 4 // коорд y
////////
00A0: store_actor $PLAYER_ACTOR position_to 12@ 13@ 14@
0509: 17@ = distance_between_XY 12@ 13@ and_XY 4@ 5@
chatmsg "%f" -1 17@
alloc 11@ 1337
0BF4: raknet bit_stream 1@ decode_string 11@ size 1337
chatmsg 11@ -1
free 11@
end
end
0BE0: raknet hook_ret TRUE
Что я пытаюсь сделать ?
Я пытаюсь поставить RPC_Hook на чат и при получением RPC_Chat , который будет равняться нужной мне строке, я напишу определенную фразу. И так это часть кода, я решил не писать CLEO, а попытался только реализовать функцию хука текста из чата.
1) Это пиздецCLEO:const RPC_CHAT = 101 end 0BE3: raknet setup_incoming_rpc_hook @RPC :RPC while true wait 0 0BE5: raknet 0@ = get_hook_param PARAM_PACKETID if 0@ == RPC_CHAT then 0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM 0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_BYTE alloc 3@ 32 0BE8: raknet bit_stream 1@ read_array 3@ size 2@ 0C1E: array 3@ element 2@ el_size 1 = 0 if 3@ == "Привет" then say "И вам" else free 3@ end end end
2) Я даже не могу понять где мне не хватило параметров
3) Я думаю, что, даже, если бы я скомпилировал все это, то меня бы крашнуло.
4) Что не так ?
Вкратце, я хочу научиться хукать определенный текст из чата, как мне это сделать ? Возможно у кого-то есть готовый код ?
{$CLEO}
{$INCLUDE SF}
0000:
wait 2000
alloc 4@ 256
memset 4@ 0 256
0BE3: raknet setup_incoming_rpc_hook @ClientMessage
while true
wait 0
end
:ClientMessage
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
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: 7@ = strstr string1 4@ string2 "Привет"
then
say "И вам"
end
end
0BE0: raknet hook_ret true