Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Просто хукаешь нужные функции и дальше ебешься как захочешь.
Очень полезным будет репо с почти полностью декомпилированным кодом гташки: https://github.com/gta-reversed/gta-reversed
CEF к игре подключается относительно легко. Единственное, если не хочется пихать libcef.dll в корень игры...
GITHUB REPO
Библиотека для работы с сампом, которая реализует незаметную для разработчика поддержку версий сампа. Добавлять новые версии крайне легко, достаточно добавить таблицу оффсетов в массив (src/offsets.cpp).
Небольшой пример:
auto netGame = SAMP::NetGame();
if (netGame) {
if...
Благодарим священных людей, которым не жалко тратить свои часы на декомпиляцию всей гташки и идём чекать код!!!
Если что-то и связанно с fov'ом, то это скорее всего будет в классе камеры. Еще можешь поискать в классах авто...
@redcode Очень важный вопрос, а в какой момент этот плагин хукает d3ddevice? Очень нужно рисовать вещи под диалогами, но хуй пойми в какой момент нужно хукать, чтобы до твоего плагина
Возможно я не понимаю чего-то, но вроде у rpc ShowMenu передаётся только ИД менюшки. Скорее всего остальное передаётся на DL, но проверок версии я вроде не вижу.
Даже если задисасемблить, то не особо видно, чтобы читались какие-то строки
ботов любое железо потянет, хоть картошка, я думаю в твоём случае большая проблема в IP. хостить можешь хоть на своём пк, а вот прокси не помешают. где купить врятли кто-то скажет, так что ищи сам
Хукаешь функцию отрисовки чата и "выключаешь" её. Если не понимаешь, то честно, советую тебе не лезть в плюсы пока не подрастёшь (не в смысле возраста, а в смысле опыта)
Два варианта:
1. Хукаешь d3d present, и там сохраняешь скриншот куда тебе нужно
2. Лютейшие костыли: менять строку в коде сампа. Этот код начинается примерно с адреса 0x5E7B2 на r1
на счёт C# не знаю вообще, но на C++ ты просто буквально передаешь функцию:
void handler(const char* arg) {
/// ....
}
void reg() {
CInput::AddCommand("mycmf", handler);
}
Я бы советовал поискать в интернете, возможно ли передать C#-пную функцию как аргумент C-шной (100% функция должна...
json сохраняет любую lua таблицу в текст, и обратно. Намного удобнее, чем ini, поскольку можем вкладывать таблицы друг в друга сколько захотим:
-- заменить "ИМЯ ФАЙЛА" на желаемое имя файла настроек
local SETTINGS_FILE_PATH = getGameDirectory() .. "/moonloader/config/ИМЯ ФАЙЛА.json"
-- наши...
используй json ('encodeJson' и 'decodeJson')
придётся вручную писать в файл
небольшой пример:
saveJson = function(filepath, data)
local encoded = encodeJson(data)
local file, errorinfo = io.open(filepath, "w+")
if not file then
print("failed to save JSON")
print("Filepath: "...