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

Dark_Knight

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

Z3roKwq

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

Dark_Knight

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

Z3roKwq

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

Dark_Knight

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

al3x_

Известный
130
1,045
Помогите переписать 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

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

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

why ega

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

Z3roKwq

Известный
294
157
Есть код на луа, хотелось бы переписать на плюсы, но чето опять идет не так
Ориг код:
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 Man

Любитель Linux
Модератор
1,638
1,124
Есть код на луа, хотелось бы переписать на плюсы, но чето опять идет не так
Ориг код:
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

Известный
294
157
покажи свою реализацию
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,310
494
unsigned idk1S = *reinterpret_cast<unsigned*>(idk1); if (idk1S > 0) {
Как минимум у тебя оно не может быть меньше нуля ибо это unsigned



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


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