Не хукает чат Radmir

Sanurial

Участник
Автор темы
78
12
Версия MoonLoader
.026-beta
В чат логе вот это: <Jean_Kirstein> - Нн {CCFF00}(Jean_Kirstein)[35]
Даже если просто выводить чат, целиком, как он есть, всеровно не хукает.
p.s: не хукает обычный чат, чаты нрп, фраки и пр. хукает. Под обычным чатом я имею ввиду текст где я написал Нн
BamftGX.png
 

why ega

РП игрок
Модератор
2,557
2,251
В чат логе вот это: <Jean_Kirstein> - Нн {CCFF00}(Jean_Kirstein)[35]
Даже если просто выводить чат, целиком, как он есть, всеровно не хукает.
p.s: не хукает обычный чат, чаты нрп, фраки и пр. хукает. Под обычным чатом я имею ввиду текст где я написал Нн
BamftGX.png
на некоторых серверах чат реализован через входящий RPC_CHAT[101], а не RPC_SCRCLIENTMESSAGE[93]. Ну или можешь повыебываться и хукать абсолютно все сообщения (системные в том числе)
Lua:
local hooks = require("hooks")
local ffi = require("ffi")


local samp = getModuleHandle("samp.dll")
local str = ffi.string
local originalCChat__AddEntry

local messages = {}
local addEntryOffsets = {
    R1 = 0x64010,
    R3 = 0x67460
}


function getSampVersion()            
    local version = "unknown"
    local versions = {
       ["3268371"] = "R1",
       ["3249629"] = "R2", 
       ["836816"] = "R3",
       ["834736"] = "R4",
       ["1039200"] = "R5",
   }
   local handle = getModuleHandle("samp.dll")
   if handle then                            
      local ntHeader = (handle + cast("long*", (handle + 60))[0])
      local pEntryPoint = tostring(cast("unsigned int*", (ntHeader + 40))[0])               
      if versions[pEntryPoint] then                  
         version = versions[pEntryPoint] 
      end
   end
   return version
end

function CChat__AddEntry(this, nType, szText, szPrefix, textColor, prefixColor)
    text = str(szText) 
    print("Message: ", text)   
    return originalCChat__AddEntry(this, nType, szText, szPrefix, textColor, prefixColor)
end


originalCChat__AddEntry = hooks.jmp.new(     
    "void(__thiscall*)(void*, int, const char*, const char*, unsigned long, unsigned long)",     
    CChat__AddEntry, (samp + addEntryOffsets[getSampVersion()])
)

хук 101 рпц выглядит так, если что:
Lua:
function sampev.onChatMessage(playerId, text)
    print(playerId, text)
end
 
Последнее редактирование: