Другое С/С++ Вопрос - Ответ

Digger Man52

52NGG
1,113
989
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пхах, неа, функа нормально работает, чтение из памяти тоже, проблема именно с записью
ну, добавь отладочные строки, проверь, выполняется ли вообще твоя проверка
 

Dark_Knight

Me, me and me.
Друг
4,083
2,113
Пхах, неа, функа нормально работает, чтение из памяти тоже, проблема именно с записью
Потому что хуйню делаешь. Протект памяти на запись не снятый. Плюс копирование из памяти в другую область памяти не есть чтением.
 
  • Вау
Реакции: Z3roKwq

Z3roKwq

Известный
291
154
Потому что хуйню делаешь. Протект памяти на запись не снятый. Плюс копирование из памяти в другую область памяти не есть чтением.
насчет "чтения" согласен, но как я понял протекцию там вроде не нужно снимать, я прикреплял исходник на луа там выключено снятие протекции памяти
 

Dark_Knight

Me, me and me.
Друг
4,083
2,113
насчет "чтения" согласен, но как я понял протекцию там вроде не нужно снимать, я прикреплял исходник на луа там выключено снятие протекции памяти
На луа вполне возможно снимается автоматом.
 
  • Нравится
Реакции: Z3roKwq

Z3roKwq

Известный
291
154
На луа вполне возможно снимается автоматом.
бля я уже заебался с этой залупой сидеть, и так и сяк пробовал, не хочет работать и все, буду оооооооооооочень благодарен если предоставите хотяб пример кода
 

Dark_Knight

Me, me and me.
Друг
4,083
2,113
бля я уже заебался с этой залупой сидеть, и так и сяк пробовал, не хочет работать и все, буду оооооооооооочень благодарен если предоставите хотяб пример кода
Читай топик. Тысячу раз тут отвечали уже
 

al3x_

Известный
125
1,107
Помогите переписать no gears с луа

Lua:
if isCharInAnyCar(PLAYER_PED) then
    header = getCarModel(storeCarCharIsInNoSave(PLAYER_PED))
    header = memory.getint32(header * 0x4 + 0xA9B0C8, false)
    header = memory.getint16(header + 0x4A, false)
    memory.setint8(header * 0xE0 + 0xC2B9DC + 0x74, 1, false)
end

пробовал

C++:
typedef unsigned long Uint;
inline Uint bit_set(Uint number, Uint n) {
    return number | ((Uint)1 << n);
}

if (isLocalPlayerInCar()) {
    int car_model = SF->getSAMP()->getVehicles()->sampVehicle[SF->getSAMP()->getPlayers()->localPlayerInfo.data->inCarData.vehicleId]->gtaVehicle->base.model_alt_id;
    car_model = readUInt32FromMemory(reinterpret_cast<void*>(car_model * 0x4 + 0xA9B0C8));
    car_model = readUInt16FromMemory(reinterpret_cast<void*>(car_model + 0x4A));
    bit_set((car_model * 0xE0 + 0xC2B9DC + 0x74), 1);
}

но результата не дало
C++:
auto car{ *reinterpret_cast<unsigned*>(0xBA18FC) };
if (car) {
    auto model_id{ *reinterpret_cast<unsigned short*>(car + 0x22) };
    auto model{ *reinterpret_cast<unsigned*>(model_id * 0x4 + 0xA9B0C8) };
    auto handling_id{ *reinterpret_cast<unsigned short*>(model + 0x4A) };
    *reinterpret_cast<unsigned char*>(handling_id * 0xE0 + 0xC2B9DC + 0x74) = 1;
}
 
  • Нравится
  • Влюблен
Реакции: ARMOR и Z3roKwq

Z3roKwq

Известный
291
154
В какой то момент появилась проблема с компиляцией, искал в инете, ответов не нашел
Собственно сама проблема:
1694341666287.png

Использую: CLion + Visual Studio (компилер) + Ninja + CMake
 
Последнее редактирование:

вайега52

Налуашил состояние
Модератор
2,979
3,097
На что лучше стоит ставить хук по мимо конструкторов, чтобы проверить, что доступны методы ракпира? CHud::DrawRadar вызывается уже после того, как персонаж заспавнился, а проверка на CNetGame в CTimer::Update и последующая установка хука после первого вызова не хочет работать на методе RakPeer:Receive (тупо крашит, даже если юзать задержку)
 

Z3roKwq

Известный
291
154
Есть код на луа, хотелось бы переписать на плюсы, но чето опять идет не так
Ориг код:
if trigger and not isCharOnAnyBike(playerPed) and not isCharDead(playerPed) then
            local int = readMemory(0xB6F3B8, 4, 0)
            int=int + 0x79C
            local intS = readMemory(int, 4, 0)
            if intS > 0 then
                local lol = 0xB73458
                lol=lol + 34
                writeMemory(lol, 4, 255, 0)
                wait(100)
                local int = readMemory(0xB6F3B8, 4, 0)
                int=int + 0x79C
                writeMemory(int, 4, 0, 0)
            end
        end

я пытался переписать, но оно детектит что игрок в прицеле, но не стреляет как в оригинале
 

Digger Man52

52NGG
1,113
989
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Есть код на луа, хотелось бы переписать на плюсы, но чето опять идет не так
Ориг код:
if trigger and not isCharOnAnyBike(playerPed) and not isCharDead(playerPed) then
            local int = readMemory(0xB6F3B8, 4, 0)
            int=int + 0x79C
            local intS = readMemory(int, 4, 0)
            if intS > 0 then
                local lol = 0xB73458
                lol=lol + 34
                writeMemory(lol, 4, 255, 0)
                wait(100)
                local int = readMemory(0xB6F3B8, 4, 0)
                int=int + 0x79C
                writeMemory(int, 4, 0, 0)
            end
        end

я пытался переписать, но оно детектит что игрок в прицеле, но не стреляет как в оригинале
покажи свою реализацию
 

Z3roKwq

Известный
291
154
покажи свою реализацию
pizdec x2:
if (isEnabled) {
    static int xuy = 0;
    if (xuy == 0) {
        unsigned idk1 = *reinterpret_cast<unsigned*>(0xB6F3B8);
        idk1 += 0x79C;
        unsigned idk1S = *reinterpret_cast<unsigned*>(idk1);
        if (idk1S > 0) {
            unsigned lox = 0xB73458;
            lox += 34;
            *reinterpret_cast<unsigned*>(lox) = 255;
            xuy += 1;
        }
    }
    else {
        if (xuy > 10) {
            xuy = 0;
            unsigned pizda = *reinterpret_cast<unsigned*>(0xB6F3B8);
            pizda += 0x79C;
            *reinterpret_cast<unsigned*>(pizda) = 0;
        }
        else {
            xuy += 1;
        }
    }
}

писал @N08I40K , за нейминг я отвечал (unsigned тоже я въебал ес че)
 

F0RQU1N and

Известный
1,297
500
unsigned idk1S = *reinterpret_cast<unsigned*>(idk1); if (idk1S > 0) {
Как минимум у тебя оно не может быть меньше нуля ибо это unsigned



unsigned idk1 = *reinterpret_cast<unsigned*>(0xB6F3B8); idk1 += 0x79C; unsigned idk1S = *reinterpret_cast<unsigned*>(idk1);


А в чем прикол?)