2110 lines
67 KiB
C++
2110 lines
67 KiB
C++
/*
|
||
Copyright 2016-2017 sub1to
|
||
|
||
This file is part of subVersion GTA:O SC External Hack.
|
||
|
||
subVersion GTA:O SC External Hack is free software: you can redistribute
|
||
it and/or modify it under the terms of the GNU General Public License
|
||
as published by the Free Software Foundation, either version 3 of the
|
||
License, or (at your option) any later version.
|
||
|
||
subVersion GTA:O SC External Hack is distributed in the hope that it
|
||
will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
|
||
the GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License along
|
||
with subVersion GTA:O SC External Hack. If not, see <http://www.gnu.org/licenses/>.
|
||
*/
|
||
|
||
#include "stdafx.h"
|
||
#include <string>
|
||
|
||
/*
|
||
TRAINER
|
||
*/
|
||
|
||
trainer::trainer()
|
||
{
|
||
m_keyTmr = clock();
|
||
}
|
||
|
||
trainer::~trainer() {}
|
||
void trainer::checkKeys() {}
|
||
|
||
bool trainer::checkKeyState(int key)
|
||
{
|
||
if
|
||
(
|
||
clock() - m_keyTmr > 100 &&
|
||
(GetAsyncKeyState(key) & 0x8001) == 0x8001
|
||
)
|
||
{
|
||
m_keyTmr = clock();
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
/*
|
||
HACK
|
||
*/
|
||
|
||
|
||
hack::hack() {
|
||
m_explosion = ImpactExplosionEnum::DefaultBullets;
|
||
}
|
||
|
||
hack::~hack() {}
|
||
|
||
void hack::checkKeys()
|
||
{
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyExit]))
|
||
{
|
||
g_bKillHack = true;
|
||
killProgram();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenu]))
|
||
{
|
||
g_pSettings->toggleMenu();
|
||
return;
|
||
}
|
||
|
||
//hotkeys
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyHotTeleport]))
|
||
{
|
||
g_pHack->teleportWaypoint();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyHotWanted]))
|
||
{
|
||
g_pHack->notWanted();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyHotHealth]))
|
||
{
|
||
g_pHack->restoreHealth();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyHotAmmo]))
|
||
{
|
||
g_pHack->fillAllAmmo(NULL);
|
||
return;
|
||
}
|
||
|
||
//if menu is not active, no need to check other keys
|
||
if (!g_pSettings->isMenuActive())
|
||
return;
|
||
|
||
//menu navigation
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuDown]))
|
||
{
|
||
g_pSettings->menuDown();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuUp]))
|
||
{
|
||
g_pSettings->menuUp();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuRight]))
|
||
{
|
||
g_pSettings->menuRight();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuLeft]))
|
||
{
|
||
g_pSettings->menuLeft();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuTabNext]))
|
||
{
|
||
g_pSettings->menuTabRight();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuTabPrev]))
|
||
{
|
||
g_pSettings->menuTabLeft();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuSave]))
|
||
{
|
||
featTeleport* tp = dynamic_cast<featTeleport*>(g_pSettings->getFeatureCur(g_pSettings->getActiveFeature()));
|
||
if (tp == nullptr || tp->m_tpType != tp_saved)
|
||
return;
|
||
m_player.getPos();
|
||
tp->m_v3Pos.x = m_player.m_v3Pos.x;
|
||
tp->m_v3Pos.y = m_player.m_v3Pos.y;
|
||
tp->m_v3Pos.z = m_player.m_v3Pos.z;
|
||
g_pSettings->m_iniParser.setValue<float>(tp->m_szIniKey + "_x", m_player.m_v3Pos.x, "Teleport");
|
||
g_pSettings->m_iniParser.setValue<float>(tp->m_szIniKey + "_y", m_player.m_v3Pos.y, "Teleport");
|
||
g_pSettings->m_iniParser.setValue<float>(tp->m_szIniKey + "_z", m_player.m_v3Pos.y, "Teleport");
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuSelect]))
|
||
{
|
||
g_pSettings->menuSelect();
|
||
return;
|
||
}
|
||
if (checkKeyState(g_pSettings->m_iKeys[keyMenuBack]))
|
||
{
|
||
g_pSettings->menuBack();
|
||
return;
|
||
}
|
||
}
|
||
|
||
BYTE hack::initPointers()
|
||
{
|
||
|
||
BYTE r = 0;
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_hModule + ADDRESS_WORLD, &m_dwpWorldBase);
|
||
if (m_dwpWorldBase == 0)
|
||
return INITPTR_INVALID_WORLD;
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_hModule + ADDRESS_TUNABLE, &m_dwpTunableBase);
|
||
if (m_dwpTunableBase == 0)
|
||
return INITPTR_INVALID_TUNABLE;
|
||
m_tunable.m_dwpTunableBase = m_dwpTunableBase;
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_hModule + ADDRESS_GLOBAL, &m_dwpGlobalBase);
|
||
if (m_dwpGlobalBase == 0)
|
||
return INITPTR_INVALID_GLOBAL;
|
||
m_global.m_dwpGlobalBase = m_dwpGlobalBase;
|
||
m_mpId = "MP0_";
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_hModule + ADDRESS_REPLAY_INTERFACE, &m_dwpReplayInterfaceBase);
|
||
if (m_dwpReplayInterfaceBase == 0)
|
||
return INITPTR_INVALID_REPLAY_INTERFACE;
|
||
m_replayInterface.m_dwpPedInterface = m_dwpReplayInterfaceBase;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpReplayInterfaceBase + OFFSET_REPLAY_PED_INTERFACE, &m_replayInterface.m_dwpPedInterface);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_replayInterface.m_dwpPedInterface + OFFSET_PED_INTERFACE_PED_LIST, &m_replayInterface.m_dwpPedList);
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpWorldBase + OFFSET_PLAYER, &m_dwpPlayerBase);
|
||
if (m_dwpPlayerBase == 0)
|
||
return INITPTR_INVALID_PLAYER;
|
||
m_player.m_dwpBase = m_dwpPlayerBase;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpPlayerBase + OFFSET_ENTITY_POSBASE, &m_player.m_dwpPosBase);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpPlayerBase + OFFSET_PLAYER_INFO, &m_player.m_dwpPlayerInfo);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpPlayerBase + OFFSET_ENTITY_ATTACKER, &m_dwpAttackerBase);
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpPlayerBase + OFFSET_PLAYER_VEHICLE, &m_dwpVehicleBase);
|
||
if (m_dwpVehicleBase == 0)
|
||
r |= INITPTR_INVALID_VEHICLE;
|
||
else
|
||
{
|
||
m_vehicle.m_dwpBase = m_dwpVehicleBase;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpVehicleBase + OFFSET_ENTITY_POSBASE, &m_vehicle.m_dwpPosBase);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpVehicleBase + OFFSET_VEHICLE_HANDLING, &m_vehicle.m_handlingCur.m_dwpHandling);
|
||
}
|
||
|
||
//g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_hModule + ADDRESS_WEAPON, &m_dwpWeaponBase);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpPlayerBase + OFFSET_WEAPON_MANAGER, &m_dwpWeaponManager);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpWeaponManager + OFFSET_WEAPON_CURRENT, &m_dwpWeaponCur);
|
||
if (m_dwpWeaponManager == 0 || m_dwpWeaponCur == 0 )// || m_dwpWeaponBase == 0
|
||
r |= INITPTR_INVALID_WEAPON;
|
||
else
|
||
{
|
||
m_weapon.m_weapDataCur.m_dwpWeapon = m_dwpWeaponCur;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpWeaponCur + OFFSET_WEAPON_AMMOINFO, &m_dwpAmmoInfo);
|
||
m_weapon.m_dwpAmmoInfo = m_dwpAmmoInfo;
|
||
}
|
||
|
||
return r;
|
||
}
|
||
|
||
void hack::getWaypoint()
|
||
{
|
||
DWORD_PTR a = (DWORD_PTR)m_hModule + ADDRESS_BLIP;
|
||
for (size_t i = 2000; i > 1; i--)
|
||
{
|
||
DWORD64 n;
|
||
DWORD buf[2];
|
||
g_pMemMan->readMem<DWORD64>((DWORD_PTR)a + (i * 8), &n);
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)n + 0x40, &buf[0]);
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)n + 0x48, &buf[1]);
|
||
if (n > 0 && buf[0] == 8 && buf[1] == 84)
|
||
{
|
||
g_pMemMan->readMem<v2>((DWORD_PTR)n + 0x10, &m_v2Waypoint);
|
||
}
|
||
}
|
||
|
||
//g_pMemMan->readMem<v2>((DWORD_PTR) m_hModule + ADDRESS_WAYPOINT, &m_v2Waypoint);
|
||
return;
|
||
}
|
||
|
||
void hack::getObjective()
|
||
{
|
||
DWORD_PTR a = (DWORD_PTR)m_hModule + ADDRESS_BLIP;
|
||
for (size_t i = 2000; i > 1; i--)
|
||
{
|
||
DWORD64 n;
|
||
DWORD buf[2];
|
||
g_pMemMan->readMem<DWORD64>((DWORD_PTR)a + (i * 8), &n);
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)n + 0x40, &buf[0]);
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)n + 0x48, &buf[1]);
|
||
if (n > 0 && buf[0] == 1 && (buf[1] == 5 || buf[1] == 60 || buf[1] == 66))
|
||
{
|
||
g_pMemMan->readMem<v3>((DWORD_PTR)n + 0x10, &m_v3Objective);
|
||
}
|
||
}
|
||
|
||
//g_pMemMan->readMem<v3>((DWORD_PTR) m_hModule + ADDRESS_OBJECTIVE, &m_v3Objective);
|
||
return;
|
||
}
|
||
|
||
void hack::teleport(v3 v)
|
||
{
|
||
m_player.getInVehicle();
|
||
if (m_player.m_bIsInVehicle)
|
||
{
|
||
m_vehicle.setPos(v);
|
||
return;
|
||
}
|
||
m_player.setPos(v);
|
||
return;
|
||
}
|
||
|
||
bool hack::teleportWaypoint()
|
||
{
|
||
getWaypoint();
|
||
if (m_v2Waypoint.x == 64000.f && m_v2Waypoint.y == 64000.f)
|
||
return false;
|
||
|
||
v3 dest(m_v2Waypoint.x, m_v2Waypoint.y, -225.f);
|
||
teleport(dest);
|
||
return true;
|
||
}
|
||
|
||
|
||
bool hack::teleportObjective()
|
||
{
|
||
getObjective();
|
||
if (m_v3Objective.x == 64000.f && m_v3Objective.y == 64000.f && m_v3Objective.z == 64000.f)
|
||
return false;
|
||
|
||
v3 dest(m_v3Objective.x, m_v3Objective.y, m_v3Objective.z + 1.f);
|
||
teleport(dest);
|
||
return true;
|
||
}
|
||
|
||
void hack::restoreHealth()
|
||
{
|
||
m_player.getHealth();
|
||
if (m_player.m_flArmor < 100.f || m_player.m_cmHp.cur < m_player.m_cmHp.max)
|
||
m_player.setHealth(m_player.m_cmHp.max, 100.f);
|
||
return;
|
||
}
|
||
|
||
void hack::restoreVehicleHealth()
|
||
{
|
||
m_vehicle.getHealth();
|
||
if ((m_vehicle.m_cmHp.cur < m_vehicle.m_cmHp.max && m_vehicle.m_cmHp.cur > 0.f) ||
|
||
(m_vehicle.m_cmHpVehicle.cur < m_vehicle.m_cmHpVehicle.max && m_vehicle.m_cmHpVehicle.cur > 0.f))
|
||
m_vehicle.setHealth(m_vehicle.m_cmHp.max);
|
||
return;
|
||
}
|
||
|
||
void hack::restoreStamina()
|
||
{
|
||
m_player.getStamina();
|
||
if (m_player.m_cmStamina.cur < m_player.m_cmStamina.max)
|
||
m_player.setStamina(m_player.m_cmStamina.max);
|
||
return;
|
||
}
|
||
|
||
void hack::notWanted()
|
||
{
|
||
m_player.getWanted();
|
||
if (m_player.m_dwWanted == 0)
|
||
return;
|
||
m_player.setWanted(0);
|
||
feat* fpWanted = g_pSettings->getFeature(g_iFeature[FEATURE_P_WANTED]);
|
||
if (fpWanted->m_bOn)
|
||
fpWanted->toggle();
|
||
return;
|
||
}
|
||
|
||
void hack::killNpc()
|
||
{
|
||
if (m_dwpAttackerBase == 0)
|
||
return;
|
||
for (int i = 0; i < 3; i++)
|
||
{
|
||
DWORD_PTR npc;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpAttackerBase + (i * OFFSET_ATTACKER_DISTANCE), &npc);
|
||
if (npc == m_dwpPlayerBase || npc == 0)
|
||
continue;
|
||
float health;
|
||
g_pMemMan->readMem<float>((DWORD_PTR)npc + OFFSET_ENTITY_HEALTH, &health);
|
||
float v = 0.f;
|
||
if (health > v)
|
||
g_pMemMan->writeMem<float>((DWORD_PTR)npc + OFFSET_ENTITY_HEALTH, &v);
|
||
}
|
||
return;
|
||
}
|
||
|
||
void hack::fillAmmo()
|
||
{
|
||
if (!m_weapon.findAmmoBase())
|
||
return;
|
||
m_weapon.getCurAmmo();
|
||
m_weapon.getMaxAmmo();
|
||
if (m_weapon.m_dwCurAmmo != m_weapon.m_dwMaxAmmo)
|
||
m_weapon.setCurAmmo(m_weapon.m_dwMaxAmmo);
|
||
return;
|
||
}
|
||
|
||
void hack::setImpactExplosion(float* arg)
|
||
{
|
||
this->m_explosion = (ImpactExplosionEnum)((DWORD)*arg);
|
||
}
|
||
|
||
void hack::fillAllAmmo(float* arg)
|
||
{
|
||
for (size_t i = 0; i < 0x400; i++)
|
||
{
|
||
DWORD_PTR dwpWeapon, dwpAmmoInfo, dwpAmmoPtr1, dwpAmmoPtr2;
|
||
DWORD dwCurAmmo, dwMaxAmmo;
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)m_dwpWeaponBase + i, &dwpWeapon);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)dwpWeapon + OFFSET_WEAPON_AMMOINFO, &dwpAmmoInfo);
|
||
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)dwpAmmoInfo + OFFSET_WEAPON_AMMOINFO_CUR_1, &dwpAmmoPtr1);
|
||
g_pMemMan->readMem<DWORD_PTR>((DWORD_PTR)dwpAmmoPtr1 + OFFSET_WEAPON_AMMOINFO_CUR_2, &dwpAmmoPtr2);
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)dwpAmmoPtr2 + OFFSET_WEAPON_AMMOINFO_CURAMMO, &dwCurAmmo);
|
||
if (dwCurAmmo >= 0 && dwCurAmmo <= 9999)
|
||
{
|
||
g_pMemMan->readMem<DWORD>((DWORD_PTR)dwpAmmoInfo + OFFSET_WEAPON_AMMOINFO_MAX, &dwMaxAmmo);
|
||
if (dwMaxAmmo >= 20 && dwMaxAmmo <= 9999 && dwCurAmmo < dwMaxAmmo)
|
||
{
|
||
g_pMemMan->writeMem<DWORD>((DWORD_PTR)dwpAmmoPtr2 + OFFSET_WEAPON_AMMOINFO_CURAMMO, &dwMaxAmmo);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
void hack::healVehicle(float* arg)
|
||
{
|
||
restoreVehicleHealth();
|
||
}
|
||
|
||
void hack::healPlayer(float* arg)
|
||
{
|
||
restoreHealth();
|
||
}
|
||
|
||
void hack::suicide(float* arg)
|
||
{
|
||
m_player.setHealth(0, 0);
|
||
}
|
||
|
||
void hack::fillAmmo(float* arg)
|
||
{
|
||
this->fillAmmo();
|
||
}
|
||
|
||
void hack::fillSkillLevels(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_STAM"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_SHO"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_STRN"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_STL"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_FLY"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_DRIV"), 100);
|
||
dStatPushBack(string_to_hash("SCRIPT_INCREASE_LUNG"), 100);
|
||
}
|
||
|
||
void hack::fillAllSnacks(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("NO_BOUGHT_YUM_SNACKS"), 30);
|
||
dStatPushBack(string_to_hash("NO_BOUGHT_HEALTH_SNACKS"), 15);
|
||
dStatPushBack(string_to_hash("NO_BOUGHT_EPIC_SNACKS"), 5);
|
||
dStatPushBack(string_to_hash("NUMBER_OF_ORANGE_BOUGHT"), 10);
|
||
dStatPushBack(string_to_hash("NUMBER_OF_BOURGE_BOUGHT"), 10);
|
||
dStatPushBack(string_to_hash("CIGARETTES_BOUGHT"), 20);
|
||
dStatPushBack(string_to_hash("MP_CHAR_ARMOUR_5_COUNT"), 10);
|
||
}
|
||
|
||
void hack::casinoStat(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("H3_COMPLETEDPOSIX"), -1);
|
||
}
|
||
|
||
void hack::casinoStatBitSet1(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("H3OPT_BITSET1"), 0);
|
||
switch ((int)*arg)
|
||
{
|
||
case 0:
|
||
dStatPushBack(string_to_hash("H3OPT_APPROACH"), 1);
|
||
break;
|
||
case 1:
|
||
dStatPushBack(string_to_hash("H3OPT_APPROACH"), 2);
|
||
break;
|
||
case 2:
|
||
dStatPushBack(string_to_hash("H3OPT_APPROACH"), 3);
|
||
break;
|
||
case 3:
|
||
dStatPushBack(string_to_hash("H3OPT_TARGET"), 0);
|
||
break;
|
||
case 4:
|
||
dStatPushBack(string_to_hash("H3OPT_TARGET"), 1);
|
||
break;
|
||
case 5:
|
||
dStatPushBack(string_to_hash("H3OPT_TARGET"), 2);
|
||
break;
|
||
case 6:
|
||
dStatPushBack(string_to_hash("H3OPT_TARGET"), 3);
|
||
break;
|
||
case 7:
|
||
dStatPushBack(string_to_hash("H3OPT_ACCESSPOINTS"), -1);
|
||
break;
|
||
case 8:
|
||
dStatPushBack(string_to_hash("H3OPT_POI"), -1);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
dStatPushBack(string_to_hash("H3OPT_BITSET1"), -1);
|
||
}
|
||
|
||
void hack::casinoStatBitSet2(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("H3OPT_BITSET0"), 0);
|
||
switch ((int)*arg)
|
||
{
|
||
case 0:
|
||
dStatPushBack(string_to_hash("H3OPT_DISRUPTSHIP"), 3);
|
||
break;
|
||
case 1:
|
||
dStatPushBack(string_to_hash("H3OPT_KEYLEVELS"), 2);
|
||
break;
|
||
case 2:
|
||
dStatPushBack(string_to_hash("H3OPT_CREWWEAP"), 5);
|
||
break;
|
||
case 3:
|
||
dStatPushBack(string_to_hash("H3OPT_CREWDRIVER"), 5);
|
||
break;
|
||
case 4:
|
||
dStatPushBack(string_to_hash("H3OPT_CREWHACKER"), 4);
|
||
break;
|
||
case 5:
|
||
dStatPushBack(string_to_hash("H3OPT_VEHS"), 0);
|
||
break;
|
||
case 6:
|
||
dStatPushBack(string_to_hash("H3OPT_VEHS"), 1);
|
||
break;
|
||
case 7:
|
||
dStatPushBack(string_to_hash("H3OPT_VEHS"), 2);
|
||
break;
|
||
case 8:
|
||
dStatPushBack(string_to_hash("H3OPT_VEHS"), 3);
|
||
break;
|
||
case 9:
|
||
dStatPushBack(string_to_hash("H3OPT_WEAPS"), 0);
|
||
break;
|
||
case 10:
|
||
dStatPushBack(string_to_hash("H3OPT_WEAPS"), 1);
|
||
break;
|
||
default:
|
||
dStatPushBack(string_to_hash("H3OPT_DISRUPTSHIP"), 3);
|
||
dStatPushBack(string_to_hash("H3OPT_KEYLEVELS"), 2);
|
||
dStatPushBack(string_to_hash("H3OPT_CREWWEAP"), 5);
|
||
dStatPushBack(string_to_hash("H3OPT_CREWDRIVER"), 5);
|
||
dStatPushBack(string_to_hash("H3OPT_CREWHACKER"), 4);
|
||
dStatPushBack(string_to_hash("H3OPT_VEHS"), 3);
|
||
dStatPushBack(string_to_hash("H3OPT_WEAPS"), 0);
|
||
break;
|
||
}
|
||
dStatPushBack(string_to_hash("H3OPT_BITSET0"), -1);
|
||
}
|
||
|
||
void hack::unlockHeistCars(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("CHAR_FM_VEHICLE_1_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_VEHICLE_2_UNLCK"), -1);
|
||
for (size_t i = 1; i <= 7; i++)
|
||
{
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_"+ std::to_string(i) +"_UNLCK"), -1);
|
||
}
|
||
}
|
||
|
||
void hack::unlockLSC(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("RACES_WON"), 50);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_1_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_2_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_3_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_4_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_5_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_6_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CARMOD_7_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("NUMBER_SLIPSTREAMS_IN_RACE"), 110);
|
||
dStatPushBack(string_to_hash("NUMBER_TURBO_STARTS_IN_RACE"), 90);
|
||
dStatPushBack(string_to_hash("USJS_FOUND"), 50);
|
||
dStatPushBack(string_to_hash("USJS_COMPLETED"), 50);
|
||
dStatPushBack(string_to_hash("TIMES_RACE_BEST_LAP", "MPPLY_"), 101);
|
||
dStatPushBack(string_to_hash("AWD_FMRALLYWONDRIVE"), 2);
|
||
dStatPushBack(string_to_hash("AWD_FMWINSEARACE"), 2);
|
||
dStatPushBack(string_to_hash("AWD_FMWINAIRRACE"), 2);
|
||
dStatPushBack(string_to_hash("AWD_FM_RACES_FASTEST_LAP"), 101);
|
||
}
|
||
|
||
void hack::unlockWeaponCamos(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("PISTOL_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("CMBTPISTOL_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("PISTOL50_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("APPISTOL_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("MICROSMG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("SMG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("ASLTSMG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("ASLTRIFLE_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("CRBNRIFLE_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("ADVRIFLE_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("MG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("CMBTMG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("ASLTMG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("PUMP_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("SAWNOFF_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("BULLPUP_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("ASLTSHTGN_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("SNIPERRFL_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("HVYSNIPER_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("GRNLAUNCH_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("RPG_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("MINIGUNS_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("GRENADE_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("SMKGRENADE_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("STKYBMB_ENEMY_KILLS"), 600);
|
||
dStatPushBack(string_to_hash("MOLOTOV_ENEMY_KILLS"), 600);
|
||
}
|
||
|
||
//void hack::unlockWeapon(float* arg)
|
||
//{
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_UNLOCKED"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_UNLOCKED2"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_ADDON_1_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_ADDON_2_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_ADDON_3_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_WEAP_ADDON_4_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_UNLOCKED"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_UNLOCKED2"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_ADDON_1_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_ADDON_2_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_ADDON_3_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_ADDON_4_UNLCK"), -1);
|
||
// globalStatSetInt(string_to_hash("CHAR_FM_WEAP_ADDON_5_UNLCK"), -1);
|
||
//}
|
||
|
||
void hack::unlockAllAwards(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("AWD_100_KILLS_PISTOL"), 500);
|
||
dStatPushBack(string_to_hash("AWD_100_KILLS_SNIPER"), 500);
|
||
dStatPushBack(string_to_hash("AWD_50_KILLS_GRENADES"), 500);
|
||
dStatPushBack(string_to_hash("AWD_100_KILLS_SHOTGUN"), 500);
|
||
dStatPushBack(string_to_hash("AWD_100_KILLS_SMG"), 500);
|
||
dStatPushBack(string_to_hash("AWD_50_KILLS_ROCKETLAUNCH"), 500);
|
||
dStatPushBack(string_to_hash("AWD_25_KILLS_STICKYBOMBS"), 500);
|
||
dStatPushBack(string_to_hash("AWD_20_KILLS_MELEE"), 500);
|
||
dStatPushBack(string_to_hash("AWD_100_HEADSHOTS"), 500);
|
||
dStatPushBack(string_to_hash("AWD_50_VEHICLES_BLOWNUP"), 500);
|
||
dStatPushBack(string_to_hash("AWD_ENEMYDRIVEBYKILLS"), 500);
|
||
dStatPushBack(string_to_hash("AWD_COPS_KILLED"), 500);
|
||
dStatPushBack(string_to_hash("AWD_BUY_EVERY_GUN"), 1);
|
||
dStatPushBack(string_to_hash("AWD_DRIVE_ALL_COP_CARS"), 1);
|
||
dStatPushBack(string_to_hash("AWD_VEHICLE_JUMP_OVER_40M"), 50);
|
||
dStatPushBack(string_to_hash("AWD_VEHICLE_JUMP0_OVER_40M"), 50);
|
||
dStatPushBack(string_to_hash("AWD_VEHICLE_JUMP1_OVER_40M"), 50);
|
||
dStatPushBack(string_to_hash("AWD_NO_ARMWRESTLING_WINS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_KILLS_MACHINEGUN"), 50);
|
||
dStatPushBack(string_to_hash("AWD_ODD_JOBS"), 52);
|
||
dStatPushBack(string_to_hash("AWD_PREPARATION"), 50);
|
||
dStatPushBack(string_to_hash("AWD_ASLEEPONJOB"), 20);
|
||
dStatPushBack(string_to_hash("AWD_DAICASHCRAB"), 100000);
|
||
dStatPushBack(string_to_hash("AWD_BIGBRO"), 40);
|
||
dStatPushBack(string_to_hash("AWD_SHARPSHOOTER"), 40);
|
||
dStatPushBack(string_to_hash("AWD_RACECHAMP"), 40);
|
||
dStatPushBack(string_to_hash("AWD_BATSWORD"), 1000000);
|
||
dStatPushBack(string_to_hash("AWD_COINPURSE"), 950000);
|
||
dStatPushBack(string_to_hash("AWD_ASTROCHIMP"), 3000000);
|
||
dStatPushBack(string_to_hash("AWD_MASTERFUL"), 40000);
|
||
dStatPushBack(string_to_hash("AWD_5STAR_WANTED_AVOIDANCE"), 50);
|
||
dStatPushBack(string_to_hash("AWD_CAR_BOMBS_ENEMY_KILLS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_CARS_EXPORTED"), 50);
|
||
dStatPushBack(string_to_hash("AWD_CONTROL_CROWDS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_DAILYOBJCOMPLETED"), 100);
|
||
dStatPushBack(string_to_hash("AWD_DO_HEIST_AS_MEMBER"), 25);
|
||
dStatPushBack(string_to_hash("AWD_DO_HEIST_AS_THE_LEADER"), 25);
|
||
dStatPushBack(string_to_hash("AWD_DROPOFF_CAP_PACKAGES"), 100);
|
||
dStatPushBack(string_to_hash("AWD_FINISH_HEIST_SETUP_JOB"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FINISH_HEISTS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_DM_3KILLSAMEGUY"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_DM_KILLSTREAK"), 100);
|
||
dStatPushBack(string_to_hash("AWD_FM_DM_STOLENKILL"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_DM_TOTALKILLS"), 500);
|
||
dStatPushBack(string_to_hash("AWD_FM_DM_WINS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_GOLF_HOLE_IN_1"), 300);
|
||
dStatPushBack(string_to_hash("AWD_FM_GOLF_BIRDIES"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_GOLF_WON"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_GTA_RACES_WON"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_RACE_LAST_FIRST"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_RACES_FASTEST_LAP"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_SHOOTRANG_CT_WON"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_SHOOTRANG_RT_WON"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_SHOOTRANG_TG_WON"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_TDM_MVP"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_TDM_WINS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FM_TENNIS_ACE"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FM_TENNIS_WON"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMBASEJMP"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMBBETWIN"), 50000);
|
||
dStatPushBack(string_to_hash("AWD_FMCRATEDROPS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMDRIVEWITHOUTCRASH"), 30);
|
||
dStatPushBack(string_to_hash("AWD_FMHORDWAVESSURVIVE"), 10);
|
||
dStatPushBack(string_to_hash("AWD_FMKILLBOUNTY"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMRALLYWONDRIVE"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMRALLYWONNAV"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMREVENGEKILLSDM"), 50);
|
||
dStatPushBack(string_to_hash("AWD_FMSHOOTDOWNCOPHELI"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMWINAIRRACE"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMWINRACETOPOINTS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_FMWINSEARACE"), 25);
|
||
dStatPushBack(string_to_hash("AWD_HOLD_UP_SHOPS"), 20);
|
||
dStatPushBack(string_to_hash("AWD_KILL_CARRIER_CAPTURE"), 100);
|
||
dStatPushBack(string_to_hash("AWD_KILL_PSYCHOPATHS"), 100);
|
||
dStatPushBack(string_to_hash("AWD_KILL_TEAM_YOURSELF_LTS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_LAPDANCES"), 25);
|
||
dStatPushBack(string_to_hash("AWD_LESTERDELIVERVEHICLES"), 25);
|
||
dStatPushBack(string_to_hash("AWD_MENTALSTATE_TO_NORMAL"), 50);
|
||
dStatPushBack(string_to_hash("AWD_NIGHTVISION_KILLS"), 100);
|
||
dStatPushBack(string_to_hash("AWD_NO_HAIRCUTS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_ODISTRACTCOPSNOEATH"), 25);
|
||
dStatPushBack(string_to_hash("AWD_ONLY_PLAYER_ALIVE_LTS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_PARACHUTE_JUMPS_20M"), 50);
|
||
dStatPushBack(string_to_hash("AWD_PARACHUTE_JUMPS_50M"), 50);
|
||
dStatPushBack(string_to_hash("AWD_PASSENGERTIME"), 4);
|
||
dStatPushBack(string_to_hash("AWD_PICKUP_CAP_PACKAGES"), 100);
|
||
dStatPushBack(string_to_hash("AWD_RACES_WON"), 50);
|
||
dStatPushBack(string_to_hash("AWD_SECURITY_CARS_ROBBED"), 25);
|
||
dStatPushBack(string_to_hash("AWD_TAKEDOWNSMUGPLANE"), 50);
|
||
dStatPushBack(string_to_hash("AWD_TIME_IN_HELICOPTER"), 4);
|
||
dStatPushBack(string_to_hash("AWD_TRADE_IN_YOUR_PROPERTY"), 25);
|
||
dStatPushBack(string_to_hash("AWD_VEHICLES_JACKEDR"), 500);
|
||
dStatPushBack(string_to_hash("AWD_WIN_AT_DARTS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_WIN_CAPTURE_DONT_DYING"), 25);
|
||
dStatPushBack(string_to_hash("AWD_WIN_CAPTURES"), 50);
|
||
dStatPushBack(string_to_hash("AWD_WIN_GOLD_MEDAL_HEISTS"), 25);
|
||
dStatPushBack(string_to_hash("AWD_WIN_LAST_TEAM_STANDINGS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_DANCE_TO_SOLOMUN"), 100);
|
||
dStatPushBack(string_to_hash("AWD_DANCE_TO_TALEOFUS"), 100);
|
||
dStatPushBack(string_to_hash("AWD_DANCE_TO_DIXON"), 100);
|
||
dStatPushBack(string_to_hash("AWD_DANCE_TO_BLKMAD"), 100);
|
||
dStatPushBack(string_to_hash("AWD_CLUB_DRUNK"), 200);
|
||
dStatPushBack(string_to_hash("AWD_WATCH_YOUR_STEP"), 50);
|
||
dStatPushBack(string_to_hash("AWD_TOWER_OFFENSE"), 50);
|
||
dStatPushBack(string_to_hash("AWD_READY_FOR_WAR"), 50);
|
||
dStatPushBack(string_to_hash("AWD_THROUGH_A_LENS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_SPINNER"), 50);
|
||
dStatPushBack(string_to_hash("AWD_YOUMEANBOOBYTRAPS"), 50);
|
||
dStatPushBack(string_to_hash("AWD_MASTER_BANDITO"), 50);
|
||
dStatPushBack(string_to_hash("AWD_SITTING_DUCK"), 50);
|
||
dStatPushBack(string_to_hash("AWD_CROWDPARTICIPATION"), 50);
|
||
dStatPushBack(string_to_hash("AWD_KILL_OR_BE_KILLED"), 50);
|
||
dStatPushBack(string_to_hash("AWD_MASSIVE_SHUNT"), 25);
|
||
dStatPushBack(string_to_hash("AWD_YOURE_OUTTA_HERE"), 200);
|
||
dStatPushBack(string_to_hash("AWD_WEVE_GOT_ONE"), 50);
|
||
dStatPushBack(string_to_hash("AWD_ARENA_WAGEWORKER"), 20000000);
|
||
dStatPushBack(string_to_hash("AWD_TIME_SERVED"), 1000);
|
||
dStatPushBack(string_to_hash("AWD_TOP_SCORE"), 500000);
|
||
dStatPushBack(string_to_hash("AWD_CAREER_WINNER"), 1000);
|
||
}
|
||
|
||
void hack::unlockClothes(float* arg)
|
||
{
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_1_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_2_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_3_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_4_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_5_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_6_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_7_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_8_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_9_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_10_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CHAR_FM_CLOTHES_11_UNLCK"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_OUTFIT"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_OUTFIT"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_HAIR_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_OUTFIT"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_OUTFIT"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_JBIB_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_JBIB_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_LEGS_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_LEGS_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_FEET_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_FEET_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_8"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_9"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_PROPS_10"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_TEETH"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_TEETH_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_TEETH_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_TEETH"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_TEETH_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_TEETH_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_BERD_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_BERD_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_TORSO"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_TORSO"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_SPECIAL2_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_3"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_4"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_5"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_6"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL_7"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL2"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_SPECIAL2_1"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_AVAILABLE_DECL"), -1);
|
||
dStatPushBack(string_to_hash("CLTHS_ACQUIRED_DECL"), -1);
|
||
for (size_t i = 0; i <= 205; i++)
|
||
{
|
||
dStatPushBack(string_to_hash("DLC_APPAREL_ACQUIRED_" + std::to_string(i)), -1);
|
||
}
|
||
for (size_t i = 0; i <= 31; i++)
|
||
{
|
||
|
||
dStatPushBack(string_to_hash("ADMIN_CLOTHES_GV_BS_" + std::to_string(i)), -1);
|
||
}
|
||
}
|
||
|
||
void hack::intoPV(float* arg)
|
||
{
|
||
if (m_global.initIntoPVPtr(m_hModule))
|
||
{
|
||
m_global.setIntoPersonalVehicle(1);
|
||
Sleep(500);
|
||
m_global.getIntoPersonalVehicle();
|
||
if (m_global.m_dwIntoPersonalVehicle == 1)
|
||
{
|
||
m_global.setIntoPersonalVehicle(0);
|
||
}
|
||
}
|
||
}
|
||
|
||
void hack::loadSession(float* arg)
|
||
{
|
||
if (m_global.initSessionPtr(m_hModule))
|
||
{
|
||
m_global.setSessionID((int)*arg);
|
||
m_global.setSessionTransition(1);
|
||
Sleep(400);
|
||
m_global.setSessionTransition(0);
|
||
}
|
||
}
|
||
|
||
void hack::forwardTeleport(float* arg)
|
||
{
|
||
m_player.getPos();
|
||
v3 v3Pos = m_player.m_v3Pos;
|
||
m_player.getCos();
|
||
m_player.getSin();
|
||
float fAngle = m_player.m_fCos;
|
||
float fAngle2 = m_player.m_fSin;
|
||
v3Pos.x +=*arg * fAngle2;
|
||
v3Pos.y +=*arg * fAngle;
|
||
teleport(v3Pos);
|
||
}
|
||
|
||
void hack::spawnVehicle(float* arg)
|
||
{
|
||
if (m_global.initVehiclePtr(m_hModule))
|
||
{
|
||
int vehTypeIndex = (int)*arg / 1000;
|
||
int vehIndex = (int)*arg % 1000;
|
||
m_player.getPos();
|
||
v3 v3Pos = m_player.m_v3Pos;
|
||
m_player.getCos();
|
||
m_player.getSin();
|
||
float fAngle = m_player.m_fCos;
|
||
float fAngle2 = m_player.m_fSin;
|
||
v3Pos.x += 6 * fAngle2;
|
||
v3Pos.y += 6 * fAngle;
|
||
|
||
m_global.setVehicleHash(joaat(vehiclePreview[vehTypeIndex].second[vehIndex].VCode));
|
||
m_global.setVehicleKickPrevent1(2);
|
||
m_global.setVehicleKickPrevent2(14);
|
||
m_global.setSecondaryColor(-1);
|
||
m_global.setPrimaryColor(-1);
|
||
m_global.setVehiclePosX(v3Pos.x);
|
||
m_global.setVehiclePosY(v3Pos.y);
|
||
m_global.setVehiclePosZ(-255);
|
||
if (true)
|
||
{
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 10, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 11, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 12, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 13, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 14, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 15, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 16, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 17, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 18, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 19, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 20, m_hModule), 1);
|
||
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 21, m_hModule), 4);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 22, m_hModule), 3);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 23, m_hModule), 3);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 24, m_hModule), 57);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 25, m_hModule), 4);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 26, m_hModule), 5);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 28, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 30, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 32, m_hModule), 1);
|
||
g_pMemMan->writeMem<BYTE>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 65, m_hModule), 1);
|
||
|
||
g_pMemMan->writeMem<int>(m_global.getGlobal(OFFSET_GLOBAL_VEHICLE_HASH + 27 + 77, m_hModule), 0xF0400200);
|
||
}
|
||
|
||
m_global.setVehicleSpawn2(1);
|
||
m_global.setVehicleSpawn1(1);
|
||
}
|
||
}
|
||
|
||
void hack::selfDropMoney(feat* feature)
|
||
{
|
||
if (!m_bSelfDropInit)
|
||
{
|
||
m_bSelfDropInit = true;
|
||
std::thread t([=] {
|
||
while (true)
|
||
{
|
||
if (feature->m_bOn)
|
||
{
|
||
if (m_global.initMoneyPtr(m_hModule))
|
||
{
|
||
m_player.getPos();
|
||
m_global.setMoneyObject(1);
|
||
m_global.setMoneyVal(2000);
|
||
m_global.setMoneyPosX(m_player.m_v3Pos.x);
|
||
m_global.setMoneyPosY(m_player.m_v3Pos.y);
|
||
m_global.setMoneyPosZ(m_player.m_v3Pos.z + 5);
|
||
m_global.findMoneyPtr(m_hModule);
|
||
m_global.setMoneyCall(2);
|
||
}
|
||
}
|
||
Sleep(100);
|
||
}
|
||
});
|
||
t.detach();
|
||
}
|
||
}
|
||
|
||
|
||
void hack::dStatPushBack(unsigned int hash, int value)
|
||
{
|
||
this->m_dStat.push_back(std::pair<unsigned int, int>(hash, value));
|
||
}
|
||
|
||
void hack::consumeStatQueue()
|
||
{
|
||
if (!m_bInit)
|
||
{
|
||
m_bInit = true;
|
||
std::thread tConsumeStatQueue([=] {
|
||
while (true)
|
||
{
|
||
if (!m_dStat.empty())
|
||
{
|
||
g_pD3D9Render->m_bMBShowing = true;
|
||
g_pD3D9Render->m_sTitle = L"Memproses...";
|
||
g_pD3D9Render->m_sDetail = L"Sisa " + std::to_wstring(m_dStat.size()) + L" detik";
|
||
if (m_global.initStatPtr(m_hModule))
|
||
{
|
||
m_global.getStatHash();
|
||
unsigned int resotreHash = m_global.m_dwStatHash;
|
||
m_global.getStatValue();
|
||
DWORD resotreValue = m_global.m_dwStatValue;
|
||
m_global.getStatCall();
|
||
DWORD call = m_global.m_dwStatCall;
|
||
|
||
m_global.setStatHash(m_dStat.front().first);
|
||
m_global.setStatValue(m_dStat.front().second);
|
||
m_global.setStatCall(-1);
|
||
Sleep(1000);
|
||
m_global.setStatHash(resotreHash);
|
||
m_global.setStatValue(resotreValue);
|
||
}
|
||
m_dStat.pop_front();
|
||
}
|
||
else
|
||
{
|
||
g_pD3D9Render->m_bMBShowing = false;
|
||
}
|
||
Sleep(1);
|
||
}
|
||
});
|
||
tConsumeStatQueue.detach();
|
||
}
|
||
}
|
||
|
||
void hack::killAllNpc(float* arg)
|
||
{
|
||
m_replayInterface.initPeds();
|
||
for (size_t i = 0; i < m_replayInterface.dw_curPedNum; i++)
|
||
{
|
||
if (i == 10)
|
||
continue;
|
||
m_replayInterface.g_pPedList[i]->getHealth();
|
||
if (m_replayInterface.g_pPedList[i]->m_cmHp.cur > 0)
|
||
{
|
||
m_replayInterface.g_pPedList[i]->setHealth(0);
|
||
}
|
||
}
|
||
}
|
||
|
||
void hack::renderPlayerList(int parent,int playerList[32])
|
||
{
|
||
for (size_t i = 0; i < 32; i++)
|
||
{
|
||
g_pSettings->updataFeature(playerList[i], -1, parent, L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + std::to_wstring(i), feat_teleport,tp_static, -1336.f, -3044.f, -225.f);
|
||
}
|
||
}
|
||
|
||
void hack::waterProof(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_player.m_playerDataCur.m_dwWaterProof != m_player.m_playerDataRestore.m_dwWaterProof)
|
||
m_player.setWaterProof(m_player.m_playerDataRestore.m_dwWaterProof);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_player.m_playerDataCur.m_dwWaterProof != m_player.m_playerDataRestore.m_dwWaterProof + 0x1000000)
|
||
m_player.setWaterProof(m_player.m_playerDataRestore.m_dwWaterProof + 0x1000000);
|
||
return;
|
||
}
|
||
|
||
void hack::undeadOffradar(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_player.m_playerDataCur.m_maxHealth != m_player.m_playerDataRestore.m_maxHealth)
|
||
m_player.setMaxHealth(m_player.m_playerDataRestore.m_maxHealth);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_player.m_playerDataCur.m_maxHealth > 0)
|
||
m_player.setMaxHealth(0);
|
||
return;
|
||
}
|
||
|
||
void hack::superPunch(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getVehicleDamageMult();
|
||
if (m_player.m_flVehicleDamageMult != 1)
|
||
m_player.setVehicleDamageMult(1);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_player.m_flVehicleDamageMult != fValue)
|
||
m_player.setVehicleDamageMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::noSpread(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fSpread != m_weapon.m_weapDataRestore.m_fSpread)
|
||
m_weapon.setSpread(m_weapon.m_weapDataRestore.m_fSpread);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_weapon.m_weapDataCur.m_fSpread != 0)
|
||
m_weapon.setSpread(0);
|
||
return;
|
||
}
|
||
|
||
void hack::noRecoil(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fRecoil != m_weapon.m_weapDataRestore.m_fRecoil)
|
||
m_weapon.setRecoil(m_weapon.m_weapDataRestore.m_fRecoil);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_weapon.m_weapDataCur.m_fRecoil != 0)
|
||
m_weapon.setRecoil(0);
|
||
return;
|
||
}
|
||
|
||
void hack::quickReload(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fReload != m_weapon.m_weapDataRestore.m_fReload || m_weapon.m_weapDataCur.m_fReloadVeh != m_weapon.m_weapDataRestore.m_fReloadVeh)
|
||
{
|
||
m_weapon.setReloadSpeed(m_weapon.m_weapDataRestore.m_fReload);
|
||
m_weapon.setReloadVehicle(m_weapon.m_weapDataRestore.m_fReloadVeh);
|
||
}
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fReload * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fReload != fValue)
|
||
m_weapon.setReloadSpeed(fValue);
|
||
if (m_weapon.m_weapDataCur.m_fReloadVeh != 0)
|
||
m_weapon.setReloadVehicle(0);
|
||
return;
|
||
}
|
||
|
||
void hack::bulletDamage(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fDamage != m_weapon.m_weapDataRestore.m_fDamage)
|
||
m_weapon.setBulletDamage(m_weapon.m_weapDataRestore.m_fDamage);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fDamage * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fDamage != fValue)
|
||
m_weapon.setBulletDamage(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::weaponRange(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fRange != m_weapon.m_weapDataRestore.m_fRange)
|
||
m_weapon.setRange(m_weapon.m_weapDataRestore.m_fRange);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fRange * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fRange != fValue)
|
||
m_weapon.setRange(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::weaponSpin(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fSpinUp != m_weapon.m_weapDataRestore.m_fSpinUp || m_weapon.m_weapDataCur.m_fSpin != m_weapon.m_weapDataRestore.m_fSpin)
|
||
{
|
||
m_weapon.setSpinUp(m_weapon.m_weapDataRestore.m_fSpinUp);
|
||
m_weapon.setSpin(m_weapon.m_weapDataRestore.m_fSpin);
|
||
}
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_weapon.m_weapDataCur.m_fSpinUp != 0 || m_weapon.m_weapDataCur.m_fSpin != 0)
|
||
{
|
||
m_weapon.setSpin(0);
|
||
m_weapon.setSpinUp(0);
|
||
}
|
||
return;
|
||
}
|
||
|
||
void hack::weaponForceOnPed(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fForceOnPed != m_weapon.m_weapDataRestore.m_fForceOnPed)
|
||
m_weapon.setForceOnPed(m_weapon.m_weapDataRestore.m_fForceOnPed);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fForceOnPed * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fForceOnPed != fValue)
|
||
m_weapon.setForceOnPed(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::weaponForceOnVehicle(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fForceOnVehicle != m_weapon.m_weapDataRestore.m_fForceOnVehicle)
|
||
m_weapon.setForceOnVehicle(m_weapon.m_weapDataRestore.m_fForceOnVehicle);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fForceOnVehicle * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fForceOnVehicle != fValue)
|
||
m_weapon.setForceOnVehicle(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::weaponForceOnHeli(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fForceOnHeli != m_weapon.m_weapDataRestore.m_fForceOnHeli)
|
||
m_weapon.setForceOnHeli(m_weapon.m_weapDataRestore.m_fForceOnHeli);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fForceOnHeli * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fForceOnHeli != fValue)
|
||
m_weapon.setForceOnHeli(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::weaponBulletEdit(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_dwImpactType != m_weapon.m_weapDataRestore.m_dwImpactType)
|
||
m_weapon.setImpactType(m_weapon.m_weapDataRestore.m_dwImpactType);
|
||
if (m_weapon.m_weapDataCur.m_dwImpactExplosion != ImpactExplosionEnum::DefaultBullets)
|
||
m_weapon.setImpactExplosion(ImpactExplosionEnum::DefaultBullets);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
if (m_weapon.m_weapDataCur.m_dwImpactType != ImpactTypeEnum::Explosives)
|
||
m_weapon.setImpactType(ImpactTypeEnum::Explosives);
|
||
if (m_weapon.m_weapDataCur.m_dwImpactExplosion != m_explosion)
|
||
m_weapon.setImpactExplosion(m_explosion);
|
||
return;
|
||
}
|
||
|
||
void hack::runSpeed(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getRunSpeed();
|
||
if (m_player.m_flRunSpd > 1.f)
|
||
m_player.setRunSpeed(1.f);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getRunSpeed();
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_player.m_flRunSpd != fValue)
|
||
m_player.setRunSpeed(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::swimSpeed(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getSwimSpeed();
|
||
if (m_player.m_flSwimSpd > 1.f)
|
||
m_player.setSwimSpeed(1.f);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getSwimSpeed();
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_player.m_flSwimSpd != fValue)
|
||
m_player.setSwimSpeed(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::npcIgnore(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getNpcIgnore();
|
||
if (m_player.m_dwNpcIgnore > 0)
|
||
m_player.setNpcIgnore(0);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getNpcIgnore();
|
||
if (m_player.m_dwNpcIgnore != 0x450000)
|
||
m_player.setNpcIgnore(0x450000);
|
||
return;
|
||
}
|
||
|
||
void hack::godMode(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getGod();
|
||
if (m_player.m_btGod > 0)
|
||
m_player.setGod(0);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getGod();
|
||
if (m_player.m_btGod < 1)
|
||
m_player.setGod(1);
|
||
return;
|
||
}
|
||
|
||
void hack::frameFlags(feat* featSuperJump, feat* featExplosiveMelee, feat* featFireAmmo, feat* featExplosiveAmmo)
|
||
{
|
||
if (!featSuperJump->m_bOn && !featExplosiveMelee->m_bOn && !featFireAmmo->m_bOn && !featExplosiveAmmo->m_bOn)
|
||
return;
|
||
DWORD dwValue = 0;
|
||
if (featSuperJump->m_bOn)
|
||
dwValue += 64;
|
||
if (featExplosiveMelee->m_bOn)
|
||
dwValue += 32;
|
||
if (featFireAmmo->m_bOn)
|
||
dwValue += 16;
|
||
if (featExplosiveAmmo->m_bOn)
|
||
dwValue += 8;
|
||
m_player.setFrameFlags(dwValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleGod(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_vehicle.getGod();
|
||
if (m_vehicle.m_btGod > 0)
|
||
m_vehicle.setGod(0);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_vehicle.getGod();
|
||
if (m_vehicle.m_btGod < 1)
|
||
m_vehicle.setGod(1);
|
||
return;
|
||
}
|
||
|
||
void hack::infAmmo(feat* feature)
|
||
{
|
||
BYTE cur[3] = {};
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
g_pMemMan->readMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_AMMO, cur, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
BYTE value[3] = { 0x41, 0x2B, 0xD1 };
|
||
if (cur[0] != value[0])
|
||
g_pMemMan->writeMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_AMMO, value , sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
g_pMemMan->readMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_AMMO, cur, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
BYTE value[3] = { 0x90, 0x90, 0x90 };
|
||
if (cur[0] != value[0])
|
||
g_pMemMan->writeMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_AMMO, value, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
return;
|
||
}
|
||
|
||
void hack::noReload(feat* feature)
|
||
{
|
||
BYTE cur[3] = {};
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
g_pMemMan->readMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_MAGAZINE, cur, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
BYTE value[3] = { 0x41, 0x2B, 0xC9 };
|
||
if (cur[0] != value[0])
|
||
g_pMemMan->writeMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_MAGAZINE, value, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
g_pMemMan->readMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_MAGAZINE, cur, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
BYTE value[3] = { 0x90, 0x90, 0x90 };
|
||
if (cur[0] != value[0])
|
||
g_pMemMan->writeMem<BYTE>((DWORD_PTR)m_hModule + ADDRESS_MAGAZINE, value, sizeof(BYTE) * 3, PAGE_EXECUTE_READWRITE);
|
||
return;
|
||
}
|
||
|
||
void hack::seatbelt(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getSeatbelt();
|
||
if (m_player.m_btSeatbelt & 0x01)
|
||
m_player.setSeatbelt(m_player.m_btSeatbelt ^ 0x01);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getSeatbelt();
|
||
if (!(m_player.m_btSeatbelt & 0x01))
|
||
m_player.setSeatbelt(m_player.m_btSeatbelt | 0x01);
|
||
return;
|
||
}
|
||
|
||
void hack::noRagdoll(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getRagdoll();
|
||
if (!(m_player.m_btRagdoll & 0x20))
|
||
m_player.setRagdoll(m_player.m_btRagdoll | 0x20);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getRagdoll();
|
||
if (m_player.m_btRagdoll & 0x20)
|
||
m_player.setRagdoll(m_player.m_btRagdoll ^ 0x20);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleAccel(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fAcceleration != m_vehicle.m_handlingRestore.m_fAcceleration)
|
||
m_vehicle.setAcceleration(m_vehicle.m_handlingRestore.m_fAcceleration);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_vehicle.m_handlingRestore.m_fAcceleration * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fAcceleration != fValue)
|
||
m_vehicle.setAcceleration(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleBrake(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fBrakeForce != m_vehicle.m_handlingRestore.m_fBrakeForce)
|
||
m_vehicle.setBrakeForce(m_vehicle.m_handlingRestore.m_fBrakeForce);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_vehicle.m_handlingRestore.m_fBrakeForce * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fBrakeForce != fValue)
|
||
m_vehicle.setBrakeForce(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::neverWanted(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_player.getWantedCanChange();
|
||
if (m_player.m_flWantedCanChange != 1.f)
|
||
m_player.setWantedCanChange(1.f);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_player.getWantedCanChange();
|
||
if (m_player.m_flWantedCanChange != 0.f)
|
||
m_player.setWantedCanChange(0.f);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleTraction(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fTractionCurveMin != m_vehicle.m_handlingRestore.m_fTractionCurveMin)
|
||
m_vehicle.setTractionCurveMin(m_vehicle.m_handlingRestore.m_fTractionCurveMin);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_vehicle.m_handlingRestore.m_fTractionCurveMin * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fTractionCurveMin != fValue)
|
||
m_vehicle.setTractionCurveMin(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleGravity(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_vehicle.getGravity();
|
||
if (m_vehicle.m_fGravity != 9.8f)
|
||
m_vehicle.setGravity(9.8f);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_vehicle.getGravity();
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_fGravity != fValue)
|
||
m_vehicle.setGravity(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleBulletproofTires(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_vehicle.getBulletproofTires();
|
||
if (m_vehicle.m_btBulletproofTires & 0x20)
|
||
m_vehicle.setBulletproofTires(m_vehicle.m_btBulletproofTires ^ 0x20);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_vehicle.getBulletproofTires();
|
||
if (!(m_vehicle.m_btBulletproofTires & 0x20))
|
||
m_vehicle.setBulletproofTires(m_vehicle.m_btBulletproofTires | 0x20);
|
||
return;
|
||
}
|
||
|
||
void hack::wanted(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
return;
|
||
m_player.getWanted();
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_player.m_dwWanted != (DWORD)fValue)
|
||
{
|
||
m_player.setWanted((DWORD)fValue);
|
||
feat* fpNeverWanted = g_pSettings->getFeature(g_iFeature[FEATURE_P_NEVERWANTED]);
|
||
if (fpNeverWanted->m_bOn)
|
||
fpNeverWanted->toggle();
|
||
}
|
||
return;
|
||
}
|
||
|
||
void hack::bulletBatch(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_dwBulletBatch != m_weapon.m_weapDataRestore.m_dwBulletBatch)
|
||
m_weapon.setBulletBatch(m_weapon.m_weapDataRestore.m_dwBulletBatch);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_dwBulletBatch * static_cast<featSlider*>(feature)->m_fValue;
|
||
fValue = (fValue > 25.f) ? 25.f : fValue;
|
||
if (m_weapon.m_weapDataCur.m_dwBulletBatch != fValue)
|
||
m_weapon.setBulletBatch((DWORD)fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::muzzleVelocity(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_weapon.m_weapDataCur.m_fMuzzleVelocity != m_weapon.m_weapDataRestore.m_fMuzzleVelocity)
|
||
m_weapon.setMuzzleVelocity(m_weapon.m_weapDataRestore.m_fMuzzleVelocity);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_weapon.m_weapDataRestore.m_fMuzzleVelocity * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_weapon.m_weapDataCur.m_fMuzzleVelocity != fValue)
|
||
m_weapon.setMuzzleVelocity(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleDeformation(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fDeformationDamageMult != m_vehicle.m_handlingRestore.m_fDeformationDamageMult)
|
||
m_vehicle.setDeformationDamageMult(m_vehicle.m_handlingRestore.m_fDeformationDamageMult);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fDeformationDamageMult != fValue)
|
||
m_vehicle.setDeformationDamageMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleUpShift(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fUpShift != m_vehicle.m_handlingRestore.m_fUpShift)
|
||
m_vehicle.setUpShift(m_vehicle.m_handlingRestore.m_fUpShift);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fUpShift != fValue)
|
||
m_vehicle.setUpShift(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleSuspensionForce(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fSuspensionForce != m_vehicle.m_handlingRestore.m_fSuspensionForce)
|
||
m_vehicle.setSuspensionForce(m_vehicle.m_handlingRestore.m_fSuspensionForce);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = m_vehicle.m_handlingRestore.m_fSuspensionForce * static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fSuspensionForce != fValue)
|
||
m_vehicle.setSuspensionForce(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleDownShift(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fDownShift != m_vehicle.m_handlingRestore.m_fDownShift)
|
||
m_vehicle.setDownShift(m_vehicle.m_handlingRestore.m_fDownShift);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fDownShift != fValue)
|
||
m_vehicle.setDownShift(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleMass(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fMass != m_vehicle.m_handlingRestore.m_fMass)
|
||
m_vehicle.setMass(m_vehicle.m_handlingRestore.m_fMass);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fMass != fValue)
|
||
m_vehicle.setMass(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleBuoyancy(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fBuoyancy != m_vehicle.m_handlingRestore.m_fBuoyancy)
|
||
m_vehicle.setBuoyancy(m_vehicle.m_handlingRestore.m_fBuoyancy);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fBuoyancy != fValue)
|
||
m_vehicle.setBuoyancy(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleHandbrakeForce(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fHandbrakeForce != m_vehicle.m_handlingRestore.m_fHandbrakeForce)
|
||
m_vehicle.setHandbrakeForce(m_vehicle.m_handlingRestore.m_fHandbrakeForce);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fHandbrakeForce != fValue)
|
||
m_vehicle.setHandbrakeForce(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::boost(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_vehicle.getBoost();
|
||
if (m_vehicle.m_fBoost != 1.25)
|
||
m_vehicle.setBoost(1.25);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_vehicle.getBoost();
|
||
if (m_vehicle.m_fBoost != 1.25)
|
||
m_vehicle.setBoost(1.25);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleRocketRechargeSpeed(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_vehicle.getRocketRechargeSpeed();
|
||
if (m_vehicle.m_fRocketRechargeSpeed != 0.5f)
|
||
m_vehicle.setRocketRechargeSpeed(0.5f);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_vehicle.getRocketRechargeSpeed();
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_fRocketRechargeSpeed != fValue)
|
||
m_vehicle.setRocketRechargeSpeed(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleSuspensionHeigh(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fSuspensionHeigh != m_vehicle.m_handlingRestore.m_fSuspensionHeigh)
|
||
m_vehicle.setSuspensionHeigh(m_vehicle.m_handlingRestore.m_fSuspensionHeigh);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fSuspensionHeigh != fValue)
|
||
m_vehicle.setSuspensionHeigh(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleColisionDamageMult(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fColisionDamageMult != m_vehicle.m_handlingRestore.m_fColisionDamageMult)
|
||
m_vehicle.setColisionDamageMult(m_vehicle.m_handlingRestore.m_fColisionDamageMult);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fColisionDamageMult != fValue)
|
||
m_vehicle.setColisionDamageMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleWeaponDamageMult(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fWeaponDamageMult != m_vehicle.m_handlingRestore.m_fWeaponDamageMult)
|
||
m_vehicle.setWeaponDamageMult(m_vehicle.m_handlingRestore.m_fWeaponDamageMult);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fWeaponDamageMult != fValue)
|
||
m_vehicle.setWeaponDamageMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::vehicleEngineDamageMult(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
if (m_vehicle.m_handlingCur.m_fEngineDamageMult != m_vehicle.m_handlingRestore.m_fEngineDamageMult)
|
||
m_vehicle.setEngineDamageMult(m_vehicle.m_handlingRestore.m_fEngineDamageMult);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
if (m_vehicle.m_handlingCur.m_fEngineDamageMult != fValue)
|
||
m_vehicle.setEngineDamageMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableRpMult(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getRpMult();
|
||
if (m_tunable.m_fRpMult != 1)
|
||
m_tunable.setRpMult(1);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
m_tunable.getRpMult();
|
||
if (m_tunable.m_fRpMult != fValue)
|
||
m_tunable.setRpMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableApMult(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getApMult();
|
||
if (m_tunable.m_fApMult != 1)
|
||
m_tunable.setApMult(1);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
m_tunable.getApMult();
|
||
if (m_tunable.m_fApMult != fValue)
|
||
m_tunable.setApMult(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableMissionPayout(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getMinMissionPayout();
|
||
if (m_tunable.m_fMinMissionPayout != 0)
|
||
m_tunable.setMinMissionPayout(0);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
float fValue = static_cast<featSlider*>(feature)->m_fValue;
|
||
m_tunable.getMinMissionPayout();
|
||
if (m_tunable.m_fMinMissionPayout != fValue)
|
||
m_tunable.setMinMissionPayout(fValue);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableOrbitalCannonCooldown(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getOrbitalCannonCooldown();
|
||
if (m_tunable.m_dwOrbitalCannonCooldown != 2880000)
|
||
m_tunable.setOrbitalCannonCooldown(2880000);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_tunable.getOrbitalCannonCooldown();
|
||
if (m_tunable.m_dwOrbitalCannonCooldown != 0)
|
||
m_tunable.setOrbitalCannonCooldown(0);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableBunkerResearch(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getBunkerResearch();
|
||
if (m_tunable.m_dwBunkerResearch != 0)
|
||
m_tunable.setBunkerResearch(0);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_tunable.getBunkerResearch();
|
||
if (m_tunable.m_dwBunkerResearch != 1)
|
||
m_tunable.setBunkerResearch(1);
|
||
return;
|
||
}
|
||
|
||
void hack::tunableAntiIdleKick(feat* feature)
|
||
{
|
||
if (!feature->m_bOn)
|
||
{
|
||
if (!feature->m_bRestored)
|
||
{
|
||
m_tunable.getAntiIdleKick1();
|
||
m_tunable.getAntiIdleKick2();
|
||
m_tunable.getAntiIdleKick3();
|
||
m_tunable.getAntiIdleKick4();
|
||
if (m_tunable.m_dwAntiIdleKick1 != 120000)
|
||
m_tunable.setAntiIdleKick1(120000);
|
||
if (m_tunable.m_dwAntiIdleKick2 != 300000)
|
||
m_tunable.setAntiIdleKick2(300000);
|
||
if (m_tunable.m_dwAntiIdleKick3 != 600000)
|
||
m_tunable.setAntiIdleKick3(600000);
|
||
if (m_tunable.m_dwAntiIdleKick4 != 900000)
|
||
m_tunable.setAntiIdleKick4(900000);
|
||
feature->m_bRestored = true;
|
||
}
|
||
return;
|
||
}
|
||
m_tunable.getAntiIdleKick1();
|
||
m_tunable.getAntiIdleKick2();
|
||
m_tunable.getAntiIdleKick3();
|
||
m_tunable.getAntiIdleKick4();
|
||
if (m_tunable.m_dwAntiIdleKick1 != 2000000000)
|
||
m_tunable.setAntiIdleKick1(2000000000);
|
||
if (m_tunable.m_dwAntiIdleKick2 != 2000000000)
|
||
m_tunable.setAntiIdleKick2(2000000000);
|
||
if (m_tunable.m_dwAntiIdleKick3 != 2000000000)
|
||
m_tunable.setAntiIdleKick3(2000000000);
|
||
if (m_tunable.m_dwAntiIdleKick4 != 2000000000)
|
||
m_tunable.setAntiIdleKick4(2000000000);
|
||
return;
|
||
}
|
||
|
||
void hack::about(float* arg)
|
||
{
|
||
switch ((int)*arg)
|
||
{
|
||
case 0:
|
||
WinExec("explorer.exe https://google.com", SW_NORMAL);
|
||
break;
|
||
case 1:
|
||
WinExec("explorer.exe https://google.com", SW_NORMAL);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
void hack::cabut(float* arg)
|
||
{
|
||
exit(0);
|
||
}
|