Lua Chat MImGui | UPDATE 7.0

LuaQ

Участник
84
27
Когда pagesize? Когда timestamp? Когда fontsize? Когда исправишь баги?
 

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,656
2,539
Когда pagesize? Когда timestamp? Когда fontsize? Когда исправишь баги?
pagesize/fontsize/timestamp пока что не готовы, а остальные кажется уже всё, нужно лишь доделать пару фиговин для работы с памятью и всё
 

LuaQ

Участник
84
27
Сделай jump на свои функции в этих функциях или нопни их
C++:
    char* OFFAddress = reinterpret_cast<char*>(pSamp + 0x658E0);
    char* EnableAddress = reinterpret_cast<char*>(pSamp + 0x657E0);
Из-за них у меня включено два inputs. Это включение и выключение input.
Аргументов в них нет, можешь смело ставить тип функций __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
 
Последнее редактирование:

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,656
2,539
Сделай jump на свои функции в этих функциях или нопни их
C++:
    char* OFFAddress = reinterpret_cast<char*>(pSamp + 0x658E0);
    char* EnableAddress = reinterpret_cast<char*>(pSamp + 0x657E0);
Из-за них у меня включено два inputs. Это включение и выключение input.
Аргументов в них нет, можешь смело ставить тип функций __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
Уже
42006
 

Compich

Известный
236
43
Было бы неплохо, если бы после / автоматически все писалось на английском языке (команды)
 

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,656
2,539
Обновление 3.0:
  • Добавлен хук на включение/отключение инпута через sampSetChatInputEnabled(bool enabled) и на вставку текста в инпут через sampSetChatInputText(zstring text), спасибо @Rinat_Namazov
  • Теперь можно переключать статус включённости показа времени через /timestamp, спасибо за получение статуса @RTD
  • Изменена сама система показа текста в чате, теперь FPS не должен проседать сильно спустя N-ое количество добавлений новых строк. Спасибо @DonHomka
  • Исправлен баг с некорректным отображением строк со 2-ым типом, привет @Chip Family
  • Временно отключена возможность просмотра истории отправки сообщений, из-за неё каким-то образом скрипт умудрялся вылетать.
  • Исправлено открытие чата на T.
Новая версия скрипта в первом посту.
 

S-Sirius

Известный
351
21
Делай пожалуйста так, чтобы после перезапуска скрипта содержание чата не исчезала
 

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,656
2,539
Делай пожалуйста так, чтобы после перезапуска скрипта содержание чата не исчезала
Это невозможно, потому что мунлоадер насильно его перезагружает

UPD: я посмотрю, возможно буду записывать из чатлога строки после перезагрузки
 
Последнее редактирование:

LuaQ

Участник
84
27
Это невозможно, потому что мунлоадер насильно его перезагружает
VirtualAlloc можно использовать и указатель на выделенную память хранить где нибудь. Где - непонятно. Как-то может можно создать клиентскую команду и функцию, которая хранит указатель и возвращает его с помощью присвоению регистру eax указатель на начало выделенной памяти. Или найти неиспользуемый участок памяти и использовать его для наших целей
 
Последнее редактирование:

user31883

Потрачен
98
222
Тогда заказываю от лица пользующихся этим скриптом отрисовку тексдравов и диалогов на имгуи, или хотя б улучшенные диалоги от @imring))
шутка юмора провального
кстати, @#Northn, только что заметил
в чатлоге В Баре №51 на пляже, в скрипте В Баре ?51 на пляже
 
Последнее редактирование:

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,656
2,539
кстати, @#Northn, только что заметил
в чатлоге В
Это баг шрифта, если поставить требушет то всё будет ок, я просто постарался подобрать максимально похожий на обычный чат шрифт