RPC перехват исходящих

Статус
В этой теме нельзя размещать новые ответы.

RedBoxWhite

Известный
Автор темы
337
27
Задал вопросик в теме по поводу RPC, мне ответили, что ещё не успеваю получить ответа от сервера (типа того), херню пробовал, не получалось, как понимаете.
Просьба исправить/подсказать.
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms

while not SAMP.Available()
   wait 400
end

0BE1: raknet setup_outcoming_rpc_hook @out_rpc
0BE3: raknet setup_incoming_rpc_hook @ClientMessage

alloc 14@ 256

0BDE: pause_thread 0

:out_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_SERVERCOMMAND
then
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
        0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT

        0AC8: 3@ = allocate_memory_size 145
        0AC8: 21@ = allocate_memory_size 14
        0AC8: 22@ = allocate_memory_size 14
        0BE8: raknet bit_stream 1@ read_array 3@ size 2@
        0C1E: array 3@ element 2@ el_size 1 = 0
           if 0C18: 0 = strstr string1 3@ string2 "/id"
           then
            0AA5: call 0x8220AD num_params 4 pop 4 params 22@ 21@ "%s %s" 3@
               if 0C18: 0 = strstr string1 14@ string2 "Ошибка"
               then
                   for 4@ = 0 to 999
                       if 0B23: samp is_player_connected 4@
                       then
                            0B36: samp 5@ = get_player_nickname 4@
                           if 0C21: stricmp string1 22@ string2 5@
                           then
                            0AF8: samp add_message_to_chat "%s [%d]" color -1 22@ 4@
                            0AC9: free_allocated_memory 3@
                           end
                       end
                   end
               end
           end
end
0BE0: raknet hook_ret true

:ClientMessage
0BE5: raknet 10@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 11@ = get_hook_param PARAM_PACKETID
if
11@ == RPC_ScrClientMessage
then
    0BE7: raknet 12@ = bit_stream_read 10@ type BS_TYPE_INT
    0BE7: raknet 13@ = bit_stream_read 10@ type BS_TYPE_INT
    0C11: memset destination 14@ value 0 size 256
    0BE8: raknet bit_stream 10@ read_array 14@ size 13@
    0C0F: array 14@ element 13@ = 0x00
end
0BE0: raknet hook_ret true
 
Последнее редактирование:

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Чтобы хочешь после сравнения на ид сделать? И какие там параметры идут?
 

Woofing Giraffe

Активный
402
49
Если я ввожу /id *nick*, и сервер выдаёт слово "Ошибка", то скрипт чекает ник и ид игрока, а потом выводит в чат.
Так сначала от тебя идет RPC с командой, а только потом тебе приходит RPC с сообщением об ошибке. Тебе этот код нужно выполнять в другом хуке
Код:
if 0C18: 0 = strstr string1 14@ string2 "Ошибка"
then
    for 4@ = 0 to 999
    if 0B23: samp is_player_connected 4@
    then
        0B36: samp 5@ = get_player_nickname 4@
        if 0C21: stricmp string1 22@ string2 5@
        then
            0AF8: samp add_message_to_chat "%s [%d]" color -1 22@ 4@
            0AC9: free_allocated_memory 3@
        end
    end
end
 

RedBoxWhite

Известный
Автор темы
337
27
Так сначала от тебя идет RPC с командой, а только потом тебе приходит RPC с сообщением об ошибке. Тебе этот код нужно выполнять в другом хуке
Код:
if 0C18: 0 = strstr string1 14@ string2 "Ошибка"
then
    for 4@ = 0 to 999
    if 0B23: samp is_player_connected 4@
    then
        0B36: samp 5@ = get_player_nickname 4@
        if 0C21: stricmp string1 22@ string2 5@
        then
            0AF8: samp add_message_to_chat "%s [%d]" color -1 22@ 4@
            0AC9: free_allocated_memory 3@
        end
    end
end
В каком хуке? Как? Я чёт не шарю:sad_frog:
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

  1. Ответы
    497
    Просмотры
    244K
    • Закреплено
    • Статья
    Ответы
    197
    Просмотры
    686K