Про префикс забыл, поэтому ник и не показываеттретье -- не имею представления, не должно быть такого, я хукаю то, что должно добавляться в чат
pagesize/fontsize/timestamp пока что не готовы, а остальные кажется уже всё, нужно лишь доделать пару фиговин для работы с памятью и всёКогда pagesize? Когда timestamp? Когда fontsize? Когда исправишь баги?
char* OFFAddress = reinterpret_cast<char*>(pSamp + 0x658E0);
char* EnableAddress = reinterpret_cast<char*>(pSamp + 0x657E0);
local memory = require("memory")
local ffi = require("ffi")
function offChat()
sampAddChatMessage("The chat wanted shutdown", -1)
end
function enableChat()
sampAddChatMessage("The chat wanted enable", -1)
end
function main()
while not isSampLoaded() do wait(100) end
local СOffChat = ffi.cast("void (__stdcall*)()", offChat)
local CEnableChat = ffi.cast("void (__stdcall*)()", enableChat)
local pSamp = getModuleHandle("samp.dll")
local enableChatAddr = pSamp + 0x657E0
local offChatAddr = pSamp + 0x658E0
--enablechat
memory.setuint8(enableChatAddr, 0xE9, true)
memory.setuint32(enableChatAddr + 1, tonumber(ffi.cast("unsigned long", CEnableChat)) - enableChatAddr - 5, true)
--offchat
memory.setuint8(offChatAddr, 0xE9, true)
print(tonumber(ffi.cast("unsigned long", COffChat)) - offChatAddr - 5)
memory.setuint32(offChatAddr + 1, tonumber(ffi.cast("unsigned long", СOffChat)) - offChatAddr - 5, true)
memory.fill(offChatAddr + 5, 0x90, 4, true)
wait(-1)
end
УжеСделай jump на свои функции в этих функциях или нопни их
Из-за них у меня включено два inputs. Это включение и выключение input.C++:char* OFFAddress = reinterpret_cast<char*>(pSamp + 0x658E0); char* EnableAddress = reinterpret_cast<char*>(pSamp + 0x657E0);
Аргументов в них нет, можешь смело ставить тип функций __stdcall
Lua:local memory = require("memory") local ffi = require("ffi") function offChat() sampAddChatMessage("The chat wanted shutdown", -1) end function enableChat() sampAddChatMessage("The chat wanted enable", -1) end function main() while not isSampLoaded() do wait(100) end local СOffChat = ffi.cast("void (__stdcall*)()", offChat) local CEnableChat = ffi.cast("void (__stdcall*)()", enableChat) local pSamp = getModuleHandle("samp.dll") local enableChatAddr = pSamp + 0x657E0 local offChatAddr = pSamp + 0x658E0 --enablechat memory.setuint8(enableChatAddr, 0xE9, true) memory.setuint32(enableChatAddr + 1, tonumber(ffi.cast("unsigned long", CEnableChat)) - enableChatAddr - 5, true) --offchat memory.setuint8(offChatAddr, 0xE9, true) print(tonumber(ffi.cast("unsigned long", COffChat)) - offChatAddr - 5) memory.setuint32(offChatAddr + 1, tonumber(ffi.cast("unsigned long", СOffChat)) - offChatAddr - 5, true) memory.fill(offChatAddr + 5, 0x90, 4, true) wait(-1) end
sampSetChatInputEnabled(bool enabled)
и на вставку текста в инпут через sampSetChatInputText(zstring text)
, спасибо @Rinat_Namazov /timestamp
, спасибо за получение статуса @RTD Это невозможно, потому что мунлоадер насильно его перезагружаетДелай пожалуйста так, чтобы после перезапуска скрипта содержание чата не исчезала
НереальноРеально сделать чтобы диалог и текстдрав был поверх чата?
VirtualAlloc можно использовать и указатель на выделенную память хранить где нибудь. Где - непонятно. Как-то может можно создать клиентскую команду и функцию, которая хранит указатель и возвращает его с помощью присвоению регистру eax указатель на начало выделенной памяти. Или найти неиспользуемый участок памяти и использовать его для наших целейЭто невозможно, потому что мунлоадер насильно его перезагружает
Это баг шрифта, если поставить требушет то всё будет ок, я просто постарался подобрать максимально похожий на обычный чат шрифткстати, @#Northn, только что заметил
в чатлоге В