Гайд Отдача

reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
699
Реакции[?]
119
Поинты[?]
0
Реализация:
Предполагая, что у вас уже есть Player Entity, сначала прочитайте netvar m_aimPunchAngle как вектор (или QAngle).
Если вам нужны смещения NetVar, обратитесь к потоку Structs,Offsets смещению или перечислите таблицы данных ClientClass.

Код:
Vector AimPunch = *(Vector*)((DWORD)pLocal + m_Local + m_aimPunchAngle);
Далее, вы должны умножить углы цели перфоратора по нынешней шкале отдачи оружия.
По умолчанию это «2», но это может различаться на серверах сообщества, если у вас есть сомнения, обратитесь к значению Convar weapon_recoil_scale.

Код:
AimPunch *= 2.f;
Теперь вы можете вычесть это из углов обзора. Некоторые дополнительные шаги могут потребоваться в зависимости от того, как вы устанавливаете углы
Internal:
Если вы устанавливаете новые углы в клиенте ClientMode CreateMove, вы можете просто внести свои изменения и return false.
При использовании этого метода во время съемки
Когда
Код:
// Adjust viewangles for full recoil compensation.
UserCmd->ViewAngles -= *(Vector*)((DWORD)pLocal + m_Local + m_aimPunchAngle) * 2.f;

return false;
Кроме того, вы можете также сохранить старый угол цели удара:
Код:
Vector OldAimPunch = Vector(0, 0, 0);

bool __stdcall CreateMove_NoRecoil(float SampleTime, CUserCmd* UserCmd) {
    // Get LocalPlayer so we can read NetVars from it.
    CBaseEntity* pLocal = g_EntityList->GetClientEntity(g_Engine->GetLocalPlayer());

    if (!pLocal)
        return false;
    
    // Only compensate when firing.
    if (UserCmd->Buttons & IN_ATTACK) {
        // Get the current aim punch angles and multiply the recoil scale.
        Vector AimPunch = *(Vector*)((DWORD)pLocal + m_Local + m_aimPunchAngle) * 2.f;

        // Set compensated view angles.
        UserCmd->ViewAngles += (OldAimPunch - AimPunch);

        // Save old aim punch for next tick.
        OldAimPunch = AimPunch;

        return true;
    } else {
        // Reset when not firing.
        OldAimPunch.X = OldAimPunch.Y = OldAimPunch.Z = 0;
    }
Результат должен

External:
При работе External почти такой же,просто заменяя разыменовании с вызовами ReadProcessMemory.
Код:
Vector OldAimPunch;

void RCS() {
    bool bInAttack = (Game.ReadMemory<int>(hClient + m_dwForceAttack) == 5);

    if (!bInAttack) {
        OldAimPunch.X = OldAimPunch.Y = OldAimPunch.Z = 0;
        continue;
    }

    Vector AimPunch = Game.ReadMemory<Vector>(dwLocalPlayer + m_Local + m_aimPunchAngle) * 2.f;

    Vector CurrentViewAngles = Game.ReadMemory<Vector>(dwClientState + m_dwViewAngles);
    Vector NewViewAngles = ((CurrentViewAngles + OldAimPunch) - AimPunch);

    OldAimPunch = AimPunch;

    Game.WriteMemory<Vector>(dwClientState + m_dwViewAngles, NewViewAngles);[/FONT]
}
Подумайте о добавлении проверки оружия, чтобы отключить компенсацию отдачи от оружия, такого как AWP.


 
Начинающий
Статус
Оффлайн
Регистрация
24 Авг 2016
Сообщения
41
Реакции[?]
82
Поинты[?]
0
Гайд норм но паста с ** переведённая походу гугл переводчиком
обратитесь к потоку Structs,Offsets
обратитесь к потоку, серьёзно? Слышал что-нибудь про треды (темы).
Или вот еще
углы цели перфоратора
ПЕРФОРАТОР ????

ОТЭТА *****? Каким раком она относится к rcs'у?
Ты сам-то свой гайд читал?
З.Ы: Примеры кода старее моей бабки.
 
reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
699
Реакции[?]
119
Поинты[?]
0
Гайд норм но паста с ** переведённая походу гугл переводчиком

обратитесь к потоку, серьёзно? Слышал что-нибудь про треды (темы).
Или вот еще

ПЕРФОРАТОР ????

ОТЭТА *****? Каким раком она относится к rcs'у?
Ты сам-то свой гайд читал?
З.Ы: Примеры кода старее моей бабки.
Извиняюсь, вам нужно на УС зайти и скачать ayyware и вам не нужно эти гайди
 
Сверху Снизу