Register for your free account! | Forgot your password?

Go Back   elitepvpers > Shooter > WarRock
You last visited: Today at 10:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



War Rock Cheat Programming Discussion

Discussion on War Rock Cheat Programming Discussion within the WarRock forum part of the Shooter category.

Reply
 
Old 01/13/2017, 02:59   #1111
 
n4n033's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 726
Received Thanks: 1,128
Code:
//|||| -- N4n033 Ultimate  Logger Starting -- ||||


//       Starting Generating Pointers ...

#define Pointer_Player          0x00B127A0
#define Pointer_Server          0x00B11604
#define Pointer_Angles          0x00B0FC70
#define Pointer_Class           0x00B64F08
#define Pointer_Base            0x00B64588
#define Pointer_Weapon          0x00B30C9C
#define Pointer_HWND            0x00B0FC6C
#define Pointer_Device          0x00B0FC74
#define Pointer_Vehicle         0x00B0FD98
#define Pointer_Flags           0x00B19B68
#define Pointer_GMWarn          0x00B5F3A8

//       Starting Generating Memory Addresses ...

#define Memory_GM_Warn_IP       0x00B5F3B8
#define Memory_GM_Warn          0x00B5F788
#define Memory_Fast_Ammo        0x00B17140
#define Memory_Fast_Medic       0x00B17148
#define Memory_Fast_Flag        0x00B17158
#define Memory_Fast_Lock_On     0x00AE1908
#define Memory_CrossHair        0x00911BA4
#define Memory_Speed            0x0092D280
#define Memory_Speed_Roll       0x0092C680
#define Memory_NoWater_1        0x00B199AC
#define Memory_NoWater_2        0x00B199B0
#define Memory_No_Spread_1      0x00B171DC
#define Memory_No_Spread_2      0x00B171E0
#define Memory_Scope            0x00B0FCB4
#define Memory_Scope_Size       0x00998EC0
#define Memory_No_Bounds_1      0x00C60034
#define Memory_No_Bounds_2      0x00C60038
#define Memory_No_Bounds_3      0x00C6003C
#define Memory_Weapon_Gravity   0x0092C450
#define Memory_IsReady          0x00B64FA0
#define Memory_No_Spawn_Wait_1  0x00C610B8
#define Memory_No_Spawn_Wait_2  0x00C610BC
#define Memory_No_Spawn_Wait_3  0x00C610C0
#define Memory_Super_No_Spread  0x0092C498
#define Memory_Plant_Any_Where  0x00B0FCBF
#define Memory_Def_Any_Where    0x00AF19F8
#define Memory_Bone_Shot        0x0092D608
#define Memory_Shoot_True_Walls 0x008EA2CC
#define Memory_Walk_True_Walls  0x008F1B30
#define Memory_CQC_Prone        0x00B12F48
#define Memory_AI_Weapons       0x00998EB0
#define Memory_Instant_Spawn    0x00C6A4DC
#define Memory_Unl_Ammo         0x00B10ACC
#define Memory_Quick_Plant      0x0092C522
#define Memory_Quick_Defuse     0x0092C526
#define Memory_Im_Drunk         0x00B10A80
#define Memory_FFA_Spawn_1      0x00B17168
#define Memory_FFA_Spawn_2      0x00B1716C
#define Memory_Flag_Time        0x00B17138
#define Memory_Flag_Counter     0x00B17148
#define Memory_PlantLocation    0x00998EE4
#define Memory_PushMeAway       0x009174A8
#define Memory_Plant_Defuse     0x00B07080
#define Memory_Invisible        0x009174AC
#define Memory_Camera_View      0x008F223C
#define Memory_Swim_1           0x00B127BC
#define Memory_Swim_2           0x00B127C0
#define Memory_Walk_True_Walls2 0x008F2394
#define Memory_Anti_AFK         0x00B0FD14
#define Memory_Ammo_Medic_Dist  0x0092D4D8
#define Memory_Fast_Nade_Expl   0x008EA2CC
#define Memory_Nade_Size        0x0092C998
#define Memory_Mixed_Zero       0x00B1BD98
#define Memory_Quick_Plant_Time 0x009984B8
#define Memory_Quick_Def_Time   0x009984C4
#define Memory_Assault_Clip     0x00B0FCCE
#define Memory_Sniper_Clip      0x00B0FCCE
#define Memory_Destroy_Veh      0x0092CAC0
#define Memory_In_Game_Name     0x00B64BB4
#define Memory_Window_Name      0x008F9A98

//       Starting Generating Offset Addresses ...

#define Offset_Auto_Repair      0x0000005D
#define Offset_Slot_Base        0x0004DBE8
#define Offset_NFD              0x00010354
#define Offset_X                0x0001036C
#define Offset_Y                0x0001037C
#define Offset_Z                0x00010374
#define Offset_Level            0x0005B374
#define Offset_Dinar            0x0005B380
#define Offset_Slots            0x0004ED80
#define Offset_Premium          0x000003C4
#define Offset_Room_Master      0x0004C330
#define Offset_Super_Master     0x0004C28C
#define Offset_Player_Stare     0x00000528
#define Offset_Player_Size      0x00000AD8
#define Offset_Player_Slot      0x0005B8A8
#define Offset_No_Recoil_1      0x0000C484
#define Offset_No_Recoil_2      0x0000C488
#define Offset_No_Recoil_3      0x0000C48C
#define Offset_View_X           0x0001021C
#define Offset_View_Y           0x00010224
#define Offset_View_Z           0x00010220
#define Offset_Weapon_1         0x00010254
#define Offset_Weapon_2         0x00010256
#define Offset_Weapon_3         0x00010258
#define Offset_M134_Idle        0x00010464
#define Offset_Index            0x0000C4DC
#define Offset_Force_Kick       0x000491FC
#define Offset_In_Water         0x0000C528
#define Offset_In_Vehicle       0x0000041D
#define Offset_GM               0x000003BC
#define Offset_Time             0x00000638
#define Offset_Packet           0x000491FC
#define Offset_Game_Type        0x0004C108
#define Offset_Map_Num          0x0004C258
#define Offset_Room_Players     0x0004C278
#define Offset_Wep_Slot_0       0x0004ED80
#define Offset_Total_Kills      0x0005B38C
#define Offset_Total_Deaths     0x0005B390
#define Offset_Invisible        0x0005B3AC
#define Offset_Game_Server      0x0005B3BC
#define Offset_Login_Name       0x0005B3DC
#define Offset_Disp_Name        0x0005B41C
#define Offset_Base_Pos         0x0001023C
#define Offset_Write_Pos        0x0001036C
#define Offset_Status           0x000102B8
#define Offset_My_Player_Team   0x0005B8AC
#define Offset_Delay            0x000103F2
#define Offset_Device_Pointer   0x0002B930
#define Offset_Auto_Plant_Def   0x000103E4
#define Offset_Fast_Reload      0x00010479
#define Offset_Weapon_State     0x0000C52C
#define Offset_No_Reload        0x0001047C
#define Offset_Pitch            0x00010210
#define Offset_Leaning          0x00010214
#define Offset_Yaw              0x00010230
#define Offset_Pos_1            0x000102C0
#define Offset_Pos_2            0x000102C4
#define Offset_Pos_3            0x000102C8
#define Offset_CVeh             0x0000C520

#define Assembly_Auto_Ammo_1    0x00502A8F
#define Assembly_Auto_Ammo_2    0x00502ACF
#define Assembly_Auto_Medic_1   0x00502B96
#define Assembly_Auto_Medic_2   0x00502703
#define Assembly_Auto_Repair_1  0x0042BF57
#define Assembly_Auto_Repair_2  0x0042BF86
#define Assembly_Auto_Repair_3  0x0042C026
#define Assembly_Always_Cross   0x005A37CD
#define Assembly_No_Reload      0x005187FD
#define Assembly_No_Restric     0x004F1BF4
#define Assembly_Quick_Plant    0x0050E9CA
#define Assembly_Quick_Defuse   0x0050A3D4
#define Assembly_WTW            0x007AFF55
#define Assembly_STW            0x00641C7B
#define Assembly_STW_2          0x00641C81
#define Assembly_No_Delay       0x005184BE
#define Assembly_Bullets        0x0050C870
#define Assembly_OPK_X          0x0040806E
#define Assembly_OPK_Y          0x00408077
#define Assembly_OPK_Z          0x00408083
#define Assembly_Unl_Oxygen     0x00504A8B
#define Assembly_Prone          0x004F2EDA
#define Assembly_Damage_As      0x0050C77D
#define Assembly_GPS            0x005CFFAA
#define Assembly_FFA_GPS        0x005D0019
#define Assembly_Vehicle_Jump   0x00464D70
#define Assembly_Vehicle_Jump_2 0x00464D78
#define Assembly_Vehicle_Invis  0x00430190
#define Assembly_Anti_Flash     0x005DEF0B
#define Assembly_Anti_M14       0x005DEE37
#define Assembly_Over_Heat      0x007644A3
#define Assembly_Bone_Shot      0x004510F7
#define Assembly_Stamina_1      0x0045E63D
#define Assembly_Stamina_2      0x004019F8
#define Assembly_Stamina_3      0x00502F44
#define Assembly_Auto_Shot      0x004F1BE9
#define Assembly_Fast_Reload    0x00518AF3
#define Assembly_Fast_Reload_2  0x005CAFBA
#define Assembly_Artillery_1    0x0050947B
#define Assembly_Artillery_2    0x005C554A
#define Assembly_Artillery_3    0x005C55D0
#define Assembly_Artillery_4    0x005C5664
#define Assembly_Artillery_5    0x005C53AB
#define Assembly_Artillery_6    0x005A3E8A
#define Assembly_Artillery_7    0x005C554A
#define Assembly_Artillery_8    0x005C56E1
#define Assembly_GameNotice     0x006184CC
#define Assembly_SpamBot        0x005613F2
#define Assembly_GameText       0x004D0F2D
#define Assembly_GameMessage    0x004AE01B
#define Assembly_UnlAmmo        0x0050F6EC
#define Assembly_Command        0x004D58C5
#define Assembly_Visible        0x005EF084
#define Assembly_Get_Player     0x00******
#define Assembly_CRC            0x00648710
Credits : Me, UnknownPK, GHTheBoss, R3d_L!n3, WarLord & others I forgot
n4n033 is offline  
Thanks
2 Users
Old 02/17/2017, 14:21   #1112
 
CyberVeezy :)'s Avatar
 
elite*gold: 1
Join Date: Oct 2011
Posts: 1,117
Received Thanks: 1,520
Hier ein paar Addys mir war langweilig
Code:
#define ADR_PLAYERPOINTER 0x00B07758
#define ADR_SERVERPOINTER 0x00B0A138
#define ADR_WEAPONPOINTER 0x00990914
#define ADR_DEVICEPOINTER 0x00B0A1D0
#define ADR_USERPOINTER   0x00B07724
#define ADR_HEALTHPOINTER 0x0031FB8

#define ADR_FASTAMMO    0x00B0EB48
#define ADR_FASTREPAIR  0x00B0EAEC
#define ADR_NOSPREAD    0x00B064D8
#define ADR_QUICKDEFUSE 0x0050A697

#define OFS_SLOT5 0x0032E675F6
#define OFS_SLOT6 0x0032E675F7
#define OFS_SLOT7 0x0032E675F8
#define OFS_SLOT8 0x0032E675F9
#define OFS_LEVEL 0x00FFFB71E8

#define ESP_D3DTEAM 0x005B8A8
#define ESP_D3DNAME 0x00B5C4DC
#define ESP_D3DPING 0x005B8A8
CyberVeezy :) is offline  
Old 02/17/2017, 15:05   #1113
 
.BuBBLe.'s Avatar
 
elite*gold: 0
Join Date: Jul 2016
Posts: 38
Received Thanks: 14
Quote:
Originally Posted by CyberVeezy :) View Post
Hier ein paar Addys mir war langweilig
Code:
#define ADR_PLAYERPOINTER 0x00B07758
#define ADR_SERVERPOINTER 0x00B0A138
#define ADR_WEAPONPOINTER 0x00990914
#define ADR_DEVICEPOINTER 0x00B0A1D0
#define ADR_USERPOINTER   0x00B07724
#define ADR_HEALTHPOINTER 0x0031FB8

#define ADR_FASTAMMO    0x00B0EB48
#define ADR_FASTREPAIR  0x00B0EAEC
#define ADR_NOSPREAD    0x00B064D8
#define ADR_QUICKDEFUSE 0x0050A697

#define OFS_SLOT5 0x0032E675F6
#define OFS_SLOT6 0x0032E675F7
#define OFS_SLOT7 0x0032E675F8
#define OFS_SLOT8 0x0032E675F9
#define OFS_LEVEL 0x00FFFB71E8

#define ESP_D3DTEAM 0x005B8A8
#define ESP_D3DNAME 0x00B5C4DC
#define ESP_D3DPING 0x005B8A8
Du lebscht noch? Adde mich mal auf skype
.BuBBLe. is offline  
Thanks
1 User
Old 02/18/2017, 15:01   #1114
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
Wut is this?

Quote:
#define OFS_SLOT5 0x0032E675F6
#define OFS_SLOT6 0x0032E675F7
#define OFS_SLOT7 0x0032E675F8
#define OFS_SLOT8 0x0032E675F9
#define OFS_LEVEL 0x00FFFB71E8
Wie kann ein Offset so lange sein? Well played dude.
Wanetrain is offline  
Old 03/14/2017, 10:03   #1115
 
elite*gold: 0
Join Date: Sep 2014
Posts: 20
Received Thanks: 1
Request DamagesAs New On Bytes.. thanks and advance..

Quote:
Originally Posted by n4n033 View Post
Code:
//|||| -- N4n033 Ultimate  Logger Starting -- ||||


//       Starting Generating Pointers ...

#define Pointer_Player          0x00B127A0
#define Pointer_Server          0x00B11604
#define Pointer_Angles          0x00B0FC70
#define Pointer_Class           0x00B64F08
#define Pointer_Base            0x00B64588
#define Pointer_Weapon          0x00B30C9C
#define Pointer_HWND            0x00B0FC6C
#define Pointer_Device          0x00B0FC74
#define Pointer_Vehicle         0x00B0FD98
#define Pointer_Flags           0x00B19B68
#define Pointer_GMWarn          0x00B5F3A8

//       Starting Generating Memory Addresses ...

#define Memory_GM_Warn_IP       0x00B5F3B8
#define Memory_GM_Warn          0x00B5F788
#define Memory_Fast_Ammo        0x00B17140
#define Memory_Fast_Medic       0x00B17148
#define Memory_Fast_Flag        0x00B17158
#define Memory_Fast_Lock_On     0x00AE1908
#define Memory_CrossHair        0x00911BA4
#define Memory_Speed            0x0092D280
#define Memory_Speed_Roll       0x0092C680
#define Memory_NoWater_1        0x00B199AC
#define Memory_NoWater_2        0x00B199B0
#define Memory_No_Spread_1      0x00B171DC
#define Memory_No_Spread_2      0x00B171E0
#define Memory_Scope            0x00B0FCB4
#define Memory_Scope_Size       0x00998EC0
#define Memory_No_Bounds_1      0x00C60034
#define Memory_No_Bounds_2      0x00C60038
#define Memory_No_Bounds_3      0x00C6003C
#define Memory_Weapon_Gravity   0x0092C450
#define Memory_IsReady          0x00B64FA0
#define Memory_No_Spawn_Wait_1  0x00C610B8
#define Memory_No_Spawn_Wait_2  0x00C610BC
#define Memory_No_Spawn_Wait_3  0x00C610C0
#define Memory_Super_No_Spread  0x0092C498
#define Memory_Plant_Any_Where  0x00B0FCBF
#define Memory_Def_Any_Where    0x00AF19F8
#define Memory_Bone_Shot        0x0092D608
#define Memory_Shoot_True_Walls 0x008EA2CC
#define Memory_Walk_True_Walls  0x008F1B30
#define Memory_CQC_Prone        0x00B12F48
#define Memory_AI_Weapons       0x00998EB0
#define Memory_Instant_Spawn    0x00C6A4DC
#define Memory_Unl_Ammo         0x00B10ACC
#define Memory_Quick_Plant      0x0092C522
#define Memory_Quick_Defuse     0x0092C526
#define Memory_Im_Drunk         0x00B10A80
#define Memory_FFA_Spawn_1      0x00B17168
#define Memory_FFA_Spawn_2      0x00B1716C
#define Memory_Flag_Time        0x00B17138
#define Memory_Flag_Counter     0x00B17148
#define Memory_PlantLocation    0x00998EE4
#define Memory_PushMeAway       0x009174A8
#define Memory_Plant_Defuse     0x00B07080
#define Memory_Invisible        0x009174AC
#define Memory_Camera_View      0x008F223C
#define Memory_Swim_1           0x00B127BC
#define Memory_Swim_2           0x00B127C0
#define Memory_Walk_True_Walls2 0x008F2394
#define Memory_Anti_AFK         0x00B0FD14
#define Memory_Ammo_Medic_Dist  0x0092D4D8
#define Memory_Fast_Nade_Expl   0x008EA2CC
#define Memory_Nade_Size        0x0092C998
#define Memory_Mixed_Zero       0x00B1BD98
#define Memory_Quick_Plant_Time 0x009984B8
#define Memory_Quick_Def_Time   0x009984C4
#define Memory_Assault_Clip     0x00B0FCCE
#define Memory_Sniper_Clip      0x00B0FCCE
#define Memory_Destroy_Veh      0x0092CAC0
#define Memory_In_Game_Name     0x00B64BB4
#define Memory_Window_Name      0x008F9A98

//       Starting Generating Offset Addresses ...

#define Offset_Auto_Repair      0x0000005D
#define Offset_Slot_Base        0x0004DBE8
#define Offset_NFD              0x00010354
#define Offset_X                0x0001036C
#define Offset_Y                0x0001037C
#define Offset_Z                0x00010374
#define Offset_Level            0x0005B374
#define Offset_Dinar            0x0005B380
#define Offset_Slots            0x0004ED80
#define Offset_Premium          0x000003C4
#define Offset_Room_Master      0x0004C330
#define Offset_Super_Master     0x0004C28C
#define Offset_Player_Stare     0x00000528
#define Offset_Player_Size      0x00000AD8
#define Offset_Player_Slot      0x0005B8A8
#define Offset_No_Recoil_1      0x0000C484
#define Offset_No_Recoil_2      0x0000C488
#define Offset_No_Recoil_3      0x0000C48C
#define Offset_View_X           0x0001021C
#define Offset_View_Y           0x00010224
#define Offset_View_Z           0x00010220
#define Offset_Weapon_1         0x00010254
#define Offset_Weapon_2         0x00010256
#define Offset_Weapon_3         0x00010258
#define Offset_M134_Idle        0x00010464
#define Offset_Index            0x0000C4DC
#define Offset_Force_Kick       0x000491FC
#define Offset_In_Water         0x0000C528
#define Offset_In_Vehicle       0x0000041D
#define Offset_GM               0x000003BC
#define Offset_Time             0x00000638
#define Offset_Packet           0x000491FC
#define Offset_Game_Type        0x0004C108
#define Offset_Map_Num          0x0004C258
#define Offset_Room_Players     0x0004C278
#define Offset_Wep_Slot_0       0x0004ED80
#define Offset_Total_Kills      0x0005B38C
#define Offset_Total_Deaths     0x0005B390
#define Offset_Invisible        0x0005B3AC
#define Offset_Game_Server      0x0005B3BC
#define Offset_Login_Name       0x0005B3DC
#define Offset_Disp_Name        0x0005B41C
#define Offset_Base_Pos         0x0001023C
#define Offset_Write_Pos        0x0001036C
#define Offset_Status           0x000102B8
#define Offset_My_Player_Team   0x0005B8AC
#define Offset_Delay            0x000103F2
#define Offset_Device_Pointer   0x0002B930
#define Offset_Auto_Plant_Def   0x000103E4
#define Offset_Fast_Reload      0x00010479
#define Offset_Weapon_State     0x0000C52C
#define Offset_No_Reload        0x0001047C
#define Offset_Pitch            0x00010210
#define Offset_Leaning          0x00010214
#define Offset_Yaw              0x00010230
#define Offset_Pos_1            0x000102C0
#define Offset_Pos_2            0x000102C4
#define Offset_Pos_3            0x000102C8
#define Offset_CVeh             0x0000C520

#define Assembly_Auto_Ammo_1    0x00502A8F
#define Assembly_Auto_Ammo_2    0x00502ACF
#define Assembly_Auto_Medic_1   0x00502B96
#define Assembly_Auto_Medic_2   0x00502703
#define Assembly_Auto_Repair_1  0x0042BF57
#define Assembly_Auto_Repair_2  0x0042BF86
#define Assembly_Auto_Repair_3  0x0042C026
#define Assembly_Always_Cross   0x005A37CD
#define Assembly_No_Reload      0x005187FD
#define Assembly_No_Restric     0x004F1BF4
#define Assembly_Quick_Plant    0x0050E9CA
#define Assembly_Quick_Defuse   0x0050A3D4
#define Assembly_WTW            0x007AFF55
#define Assembly_STW            0x00641C7B
#define Assembly_STW_2          0x00641C81
#define Assembly_No_Delay       0x005184BE
#define Assembly_Bullets        0x0050C870
#define Assembly_OPK_X          0x0040806E
#define Assembly_OPK_Y          0x00408077
#define Assembly_OPK_Z          0x00408083
#define Assembly_Unl_Oxygen     0x00504A8B
#define Assembly_Prone          0x004F2EDA
#define Assembly_Damage_As      0x0050C77D
#define Assembly_GPS            0x005CFFAA
#define Assembly_FFA_GPS        0x005D0019
#define Assembly_Vehicle_Jump   0x00464D70
#define Assembly_Vehicle_Jump_2 0x00464D78
#define Assembly_Vehicle_Invis  0x00430190
#define Assembly_Anti_Flash     0x005DEF0B
#define Assembly_Anti_M14       0x005DEE37
#define Assembly_Over_Heat      0x007644A3
#define Assembly_Bone_Shot      0x004510F7
#define Assembly_Stamina_1      0x0045E63D
#define Assembly_Stamina_2      0x004019F8
#define Assembly_Stamina_3      0x00502F44
#define Assembly_Auto_Shot      0x004F1BE9
#define Assembly_Fast_Reload    0x00518AF3
#define Assembly_Fast_Reload_2  0x005CAFBA
#define Assembly_Artillery_1    0x0050947B
#define Assembly_Artillery_2    0x005C554A
#define Assembly_Artillery_3    0x005C55D0
#define Assembly_Artillery_4    0x005C5664
#define Assembly_Artillery_5    0x005C53AB
#define Assembly_Artillery_6    0x005A3E8A
#define Assembly_Artillery_7    0x005C554A
#define Assembly_Artillery_8    0x005C56E1
#define Assembly_GameNotice     0x006184CC
#define Assembly_SpamBot        0x005613F2
#define Assembly_GameText       0x004D0F2D
#define Assembly_GameMessage    0x004AE01B
#define Assembly_UnlAmmo        0x0050F6EC
#define Assembly_Command        0x004D58C5
#define Assembly_Visible        0x005EF084
#define Assembly_Get_Player     0x00******
#define Assembly_CRC            0x00648710
Credits : Me, UnknownPK, GHTheBoss, R3d_L!n3, WarLord & others I forgot

Can i request DamagesAs On Bytes
EdzjhamzYo is offline  
Old 05/15/2017, 15:53   #1116
 
elite*gold: 0
Join Date: Apr 2016
Posts: 4
Received Thanks: 0
can you guys teach me to code no recoil , just no recoil thats all i want
mcamo17 is offline  
Old 05/25/2017, 09:15   #1117
 
~ExoduS~*'s Avatar
 
elite*gold: 0
Join Date: Jul 2012
Posts: 1,426
Received Thanks: 1,370
Servus

Kann mir jemand aktulle addys und structs geben

Danke !
~ExoduS~* is offline  
Old 09/01/2017, 20:57   #1118
 
elite*gold: 0
Join Date: Dec 2011
Posts: 8
Received Thanks: 0
Quote:
Originally Posted by znoeen View Post
Code:
class cPlayer
{
public:
char _0x0000[66716];
BYTE isAI;                  //0x1049C
char _0x1049D[3];
int aiControllerSession; //0x104A0
BYTE isDeadAI;           //0x104A4
};

void demo()
{
cPlayer * player = GetPlayerByID(<zombie_id>);
player->aiControllerSession = 4;
}
aiControllerSession is the target id of the zombie (who he follows). Changing this value makes the zombies trippp. They are only turning rounds xD (or following teammember)
Setting isDeadAI to true. Causes to completly disable the zombie (doesn't move or attack you).

Credits:
Znoen
Mae
Alliance
Armour
Already made my no zombie attack in nomenu
faqking is offline  
Old 11/09/2017, 00:36   #1119
 
elite*gold: 0
Join Date: Apr 2013
Posts: 3
Received Thanks: 0
Hey Leute,

würde mich freuen, wenn dass wenigstens einer zu lesen bekommt
Mano mano wie sich Warrock verändert hat und wie wenige Leute noch aktive sind...schade eigentlich...in meiner Kindheit habe ich dieses Spiel noch durch gesuchtet da gabs noch einen halb vollen Germany_3 Server, da die anderen überlastet waren
Und nun kriegen die ja kaum noch einen ganzen voll...

Naja soviel erstmal zur vergangenheit....wie gesagt habe ich mich damals mit Warrock beschäftigt und war auch ein richtiger Zocker...
Mittlwerweile bin älter geworden und konnte mir in der Zeit viel neues über Programmiersprachen aneignen...zwar habe ich mein Informatik Studium hingeschmissen und habe eine Ausbildung zum Fachinformatiker hinter mir...jedoch´bin ich der Java und C# Typ....da mich jedoch das entwickeln von Warrock Hacks schon im meiner Kindheit fasziniert hatte würde ich mich sehr gerne damit beschäftigen...damals noch no Menü Hacks mithilfe von Youtube Tutorials erstellt (Copy&Past) will ich nun wirklich etwas größeres Entwickeln bzw. mitwirken.
Das erste Problem ist das soweit ich weiß jeder C++ für die Erstellung der Warrock benutzt und ich damit noch keinerlei Erfahrungen gemacht habe...
Wenn keine andere möglichkeit außer C++ existiert würde ich mich daran setzen und versuchen es zu erlernen.
Zudem würde ich mich sehr darüber freuen, wenn mir einer unter die Arme greifen könnte in der Zeit, da sich doch vieles geändert hat und ich jetzt sozusagen alleine im großen Wald stehe

Würde mich über Antworten freuen und nochmehr darüber wenn sich jemand bereit erklärt etwas mit mir zusammen zu starten

Wünsche euch allen noch eine gute Nacht.

Euer Apfelsaft28
apfelsaft28 is offline  
Old 04/06/2018, 18:57   #1120



 
yazzn.biz's Avatar
 
elite*gold: 0
Join Date: Jan 2012
Posts: 1,019
Received Thanks: 979
WarRock SDK

Most of the stuff has to be dereferenced before using like this
Code:
(*warrock::player)->position
addresses.hpp
Code:
#pragma once

#include "sdk/utility.hpp"

#include <cstdint>
#include <array>

namespace warrock {
namespace addr {

  //constexpr std::uintptr_t player_pointer = 0xB09818;
  //constexpr std::uintptr_t server_pointer = 0xB0873C;
  //constexpr std::uintptr_t remote_player_pointer = 0xB09798;
  //constexpr std::uintptr_t player_data_pointer = 0xB5A3D0;
  //constexpr std::uintptr_t camera_pointer = 0xB06E60;
  //constexpr std::uintptr_t trace_packs = 0xB06F18;
  //constexpr std::uintptr_t server_send = 0x4D6623;
  //constexpr std::uintptr_t server_send_bomb = 0x4D697B;
  //constexpr std::uintptr_t server_send_exit = 0x4D623E;
  //constexpr std::uintptr_t physics_world = 0xB06F94;
  //constexpr std::uintptr_t item_manager = 0xB26700;
  //constexpr std::uintptr_t water_enabled = 0xB0F3F4;
  //constexpr std::uintptr_t occlusion = (water_enabled + 0x54);
  //constexpr std::uintptr_t minimap_offset = (water_enabled + 0x30);
  //constexpr std::uintptr_t flags = (occlusion + 0x168);
  //constexpr std::uintptr_t bombs = (flags + 0x30);
  //constexpr std::uintptr_t bomb_data = 0xAC6478;
  //constexpr std::uintptr_t set_state_calls = 0x638FA7;
  //constexpr std::uintptr_t no_spread = 0x925398;
  //constexpr std::uintptr_t std_string_string = 0x7D6040;
  //constexpr std::uintptr_t invisible = 0x990F38;
  //constexpr std::uintptr_t is_visible = 0x613D34;
  //constexpr std::uintptr_t ui_ingame_mgr = 0x407F95;
  //constexpr std::uintptr_t no_bounds = 0xC56960;
  //constexpr std::uintptr_t no_afk_kick = 0xB06F10;
  //constexpr std::uintptr_t global_vars = 0xB0DF28;
  //constexpr std::uintptr_t plant_anywhere = 0xB06E83;
  //constexpr std::uintptr_t time_over = 0xC58078;
  //constexpr std::uintptr_t save_delay = 0xC60C14;
  //constexpr std::uintptr_t wait_respawn_time = 0xB0DF70;
  //constexpr std::uintptr_t premium_crosshair = 0x909398;
  //constexpr std::uintptr_t zoom = 0xB06EA4;
  //constexpr std::uintptr_t read_level_done = 0xB06F74;

  extern std::uintptr_t player_pointer;
  extern std::uintptr_t server_pointer;
  extern std::uintptr_t remote_player_pointer;
  extern std::uintptr_t player_data_pointer;
  extern std::uintptr_t camera_pointer;
  extern std::uintptr_t trace_packs;
  extern std::uintptr_t server_send;
  extern std::uintptr_t server_send_bomb;
  extern std::uintptr_t server_send_exit;
  extern std::uintptr_t physics_world;
  extern std::uintptr_t item_manager;
  extern std::uintptr_t water_enabled;
  extern std::uintptr_t occlusion;
  extern std::uintptr_t minimap_offset;
  extern std::uintptr_t flags;
  extern std::uintptr_t bombs;
  extern std::uintptr_t bomb_data;
  extern std::uintptr_t set_state_calls;
  extern std::uintptr_t no_spread;
  extern std::uintptr_t std_string_string;
  extern std::uintptr_t invisible;
  extern std::uintptr_t is_visible;
  extern std::uintptr_t ui_ingame_mgr;
  extern std::uintptr_t no_bounds;
  extern std::uintptr_t no_afk_kick;
  extern std::uintptr_t global_vars;
  extern std::uintptr_t plant_anywhere;
  extern std::uintptr_t time_over;
  extern std::uintptr_t save_delay;
  extern std::uintptr_t wait_respawn_time;
  extern std::uintptr_t premium_crosshair;
  extern std::uintptr_t zoom;
  extern std::uintptr_t read_level_done;
} // addr

  //constexpr std::uintptr_t end_scene = 0x718851;
  //constexpr std::uintptr_t draw_indexed_char = 0x8135DE;
  //constexpr std::uintptr_t draw_indexed_misc = 0x7B7F23;
  // 	constexpr std::uintptr_t reset = 0x712F6B;  // 52 50 8B 41 40 FF D0 85 + 7

namespace pod {

struct global_vars
{
	safe_value<float> ammo_box_cool_time;       // 0x00
	safe_value<float> health_box_cool_time;     // 0x08
	safe_value<float> ammo_box_delay;           // 0x10
	safe_value<float> health_box_delay;         // 0x18
	safe_value<float> ammo_box_time;            // 0x20
	safe_value<float> health_box_time;          // 0x28
	safe_value<float> control_point_delay_time; // 0x30
	safe_value<float> control_point_time;       // 0x38
	safe_value<bool> show_crosshair;            // 0x40
	safe_value<int> wait_respawn_time;          MAKE_PADDING(0x50, 0x00, 0xBC); // 0x48
	safe_value<float> crosshair_factors;
};

} // pod

extern std::uintptr_t *(__stdcall *construct_std_string)(std::uint8_t *data, const char* name);

extern std::array<std::uintptr_t, 2> *occlusion;
extern std::array<std::uintptr_t, 2> *flags;
extern float *invisible;
extern float *no_afk_kick;
extern float *no_bounds;
extern double *no_spread;
extern safe_value<bool> *water_enabled;
extern safe_value<float> *water_height;
extern safe_value<float> *ai_min_height;
extern bool *plant_anywhere;
extern int *time_over;
extern int *save_delay;
extern pod::global_vars *global_vars;

} // warrock
addresses.cpp
Code:
#include "addresses.hpp"

namespace warrock {
namespace addr {
  std::uintptr_t player_pointer        = 0;
  std::uintptr_t server_pointer        = 0;
  std::uintptr_t remote_player_pointer = 0;
  std::uintptr_t player_data_pointer   = 0;
  std::uintptr_t camera_pointer        = 0;
  std::uintptr_t trace_packs           = 0;
  std::uintptr_t server_send           = 0;
  std::uintptr_t server_send_bomb      = 0;
  std::uintptr_t server_send_exit      = 0;
  std::uintptr_t physics_world         = 0;
  std::uintptr_t item_manager          = 0;
  std::uintptr_t water_enabled         = 0;
  std::uintptr_t occlusion             = 0;
  std::uintptr_t minimap_offset        = 0;
  std::uintptr_t flags                 = 0;
  std::uintptr_t bombs                 = 0;
  std::uintptr_t bomb_data             = 0;
  std::uintptr_t set_state_calls       = 0;
  std::uintptr_t no_spread             = 0;
  std::uintptr_t std_string_string     = 0;
  std::uintptr_t invisible             = 0;
  std::uintptr_t is_visible            = 0;
  std::uintptr_t ui_ingame_mgr         = 0;
  std::uintptr_t no_bounds             = 0;
  std::uintptr_t no_afk_kick           = 0;
  std::uintptr_t global_vars           = 0;
  std::uintptr_t plant_anywhere        = 0;
  std::uintptr_t time_over             = 0;
  std::uintptr_t save_delay            = 0;
  std::uintptr_t wait_respawn_time     = 0;
  std::uintptr_t premium_crosshair     = 0;
  std::uintptr_t zoom                  = 0;
  std::uintptr_t read_level_done       = 0;
};

std::uintptr_t *(__stdcall *construct_std_string)(std::uint8_t *, const char* ) = (decltype(construct_std_string))warrock::addr::std_string_string;

std::array<std::uintptr_t, 2>    *occlusion         = reinterpret_cast<std::array<std::uintptr_t, 2> *>(addr::occlusion);
std::array<std::uintptr_t, 2>    *flags             = reinterpret_cast<std::array<std::uintptr_t, 2> *>(addr::flags);

float                            *invisible         = reinterpret_cast<float *>(addr::invisible);
float                            *no_afk_kick       = reinterpret_cast<float *>(addr::no_afk_kick);
float                            *no_bounds         = reinterpret_cast<float *>(addr::no_bounds);
double                           *no_spread         = reinterpret_cast<double *>(addr::no_spread);
safe_value<bool>                 *water_enabled     = reinterpret_cast<safe_value<bool> *>(addr::water_enabled);
safe_value<float>                *water_height      = reinterpret_cast<safe_value<float> *>(addr::water_enabled + 0x8);
safe_value<float>                *ai_min_height     = reinterpret_cast<safe_value<float> *>(addr::water_enabled + 0xC);
bool                             *plant_anywhere    = reinterpret_cast<bool *>(addr::plant_anywhere);
int                              *time_over         = reinterpret_cast<int *>(addr::time_over);
int                              *save_delay        = reinterpret_cast<int *>(addr::save_delay);
pod::global_vars                 *global_vars       = reinterpret_cast<pod::global_vars *>(addr::global_vars);

} // warrock
camera.hpp
Code:
#pragma once

#include <cstdint>

#include "math/vector4.hpp"

#include "sdk/addresses.hpp"
#include "sdk/utility.hpp"
#include <d3d9.h>

#undef near
#undef far

namespace warrock {
namespace pod {

using matrix4x4 = float[4][4];

struct camera
{
	virtual void has_virtuals();
	void *input_device;
	int mode;
	float cam_speed;
	float cam_dist;
	float fov;
	float near;
	float far;
	math::vec3f real_position;
	math::vec3f position;
	math::vec3f look_at;
	math::vec3f up;
	union {
		struct {
			float pitch;
			float yaw;
		};
		math::vec2f cur_angles;
	};
	float pitch_speed;
	float yaw_speed;
	float mouse_smoothing;
	bool flip;
	std::uint8_t alignment[3];
	float max_horizontal_angle;
	float min_horizontal_angle;
	float max_vertical_angle;
	float min_vertical_angle;
	bool limit_angle[4];
	math::vec3f cam_dir;
	float move_smoothing;
	math::vec3f move_vel;
	math::vec3f cam_dir_backup;
	math::vec3f look_at_backup;
	math::vec3f position_backup;
	float pitch_backup;
	float yaw_backup;
	int mouse_x;
	int mouse_y;
	bool l_button_down;
	bool r_button_down;
	bool m_button_down[2];
	float avg_x;
	float avg_y;
	float avg_x_2;
	float avg_y_2;
	int joystick_data[4];
	matrix4x4 view;
	matrix4x4 project;
};

struct renderer
{
	void **vftable;           MAKE_PADDING(0x04, 0x00000, 0x2B930);
  IDirect3DDevice9 *device; MAKE_PADDING(0x04, 0x2B930, 0x2B94C);
	int screen_width;
	int screen_height;        MAKE_PADDING(0x08, 0x2B94C, 0x31E38);
	matrix4x4 view;
	matrix4x4 proj;

	math::vec2f screen_center() const { return{ 0.5f * screen_width, 0.5f * screen_height }; }
};

} // pod

extern pod::renderer **renderer;
extern pod::camera **camera;

} // warrock
camera.cpp
Code:
#include "camera.hpp"

namespace warrock {

pod::camera   **camera   = reinterpret_cast<pod::camera   **>(addr::camera_pointer);
pod::renderer **renderer = reinterpret_cast<pod::renderer **>(addr::camera_pointer + 4);

} // warrock
hud_manager.hpp
Code:
#pragma once

#include <cstdint>

#include "sdk/addresses.hpp"
#include "sdk/utility.hpp"

#pragma pack(push, 1)

#include "format/format.h"

namespace warrock {
namespace pod {

struct vote_kick_data
{
	int vote_state;
	int vote_time;
	int vote_result;
	int vote_result_time;
	int vote_player_slot;
	int request_player_slot;
	int vote_rate;
};

struct ingame_message_event
{
	MAKE_PADDING(0x00, 0x000, 0x15C);
	float action_boom_install_time;
	float action_boom_uninstall_time;
	float action_end_time;
};

struct ui_ingame_manager
{
	                                               MAKE_PADDING(0x00, 0x000, 0x01C);
	ingame_message_event *message_event;           MAKE_PADDING(0x04, 0x01C, 0x024);
	void *minimap;                                 MAKE_PADDING(0x04, 0x024, 0x184);
	safe_value<int> respawn_time;                  MAKE_PADDING(0x08, 0x184, 0x198);
	safe_value<std::uint32_t> request_active;
	safe_value<std::uint32_t> request_count;
	safe_value<std::uint32_t> next_request_time;
	float attack_position[3];
	float gun_position[3];
	float gun_distance;
	std::uint32_t gun_countdown;
	float enemy_pos[3];
	bool end_countdown;
	bool intude;
	char alignment[3];
	vote_kick_data kick_data;

	static ui_ingame_manager *instance()
	{
		using func_t = warrock::pod::ui_ingame_manager *(__cdecl *)();
		static ui_ingame_manager *instance_ptr = reinterpret_cast<func_t>(addr::ui_ingame_mgr)();
		return instance_ptr;
	}
};

} // pod

using ui_ingame_manager = pod::ui_ingame_manager;
} // warrock
packet.hpp
Code:
#pragma once

#include <cstdint>
#include <array>
#include <any>

#include "math/vector4.hpp"

#include "addresses.hpp"
#include "server.hpp"

#pragma pack(push, 1)

namespace warrock {

enum class BOMB_TYPE : int
{
	BOMB_TIMER = 0,
	BOMB_BUTTON = 1,
	BOMB_MINE = 2,
	MAX_BOMB_TYPE = 3
};

enum class BOMB_CMD : int
{
	BOMB_LAY = 0,
	BOMB_EXPLODE = 1,
	BOMB_REMOVE = 2,
	BOMB_COUNT = 3,
	BOMB_COUNT_EXPLODE = 4,
	BOMB_COUNT_NONEEXPLODE = 5
};


struct room_in_protocol_extended_t { explicit room_in_protocol_extended_t() = default; };
struct room_in_protocol_lobby_t { explicit room_in_protocol_lobby_t() = default; };

constexpr room_in_protocol_extended_t extended{};
constexpr room_in_protocol_lobby_t lobby{};

struct bomb_data
{
	bomb_data(BOMB_CMD cmd_code, BOMB_TYPE type, int serial, int sub_code, math::vec3f position, math::vec3f velocity = {}, int count = 0)
		: session((*server)->data.player_slot), cmd_code(cmd_code), type(type), serial(serial), sub_code(sub_code), position(position), velocity(velocity), count(count) {}

	bool send()
	{
		auto cmd_proc = &(*server)->cmd_proc;
    _asm mov esi, this
		_asm mov eax, cmd_proc;
		_asm call [addr::server_send_bomb];
	}

	int session;            // 0x00
	BOMB_CMD cmd_code;      // 0x04
	BOMB_TYPE type;         // 0x08
	int serial;             // 0x0C
	int sub_code;           // 0x10
	math::vec3f position; // 0x14
	math::vec3f velocity; // 0x20
	int count;              // 0x2C
};

namespace {
struct dummy_t { explicit dummy_t() = default; };
constexpr dummy_t dummy{};
}

class room_in_protocol
{
public:
	template <typename... Ts>
	room_in_protocol(GM_HI_STATE hi_msg, GM_LO_STATE lo_msg, Ts&&...extra_args) : room_in_protocol(dummy, hi_msg, lo_msg)
	{
    std::vector<std::any> any_args{ std::forward<Ts>(extra_args)... };
		
		/*
    TODO rewrite
		*/

		auto char_args = std::data(args.chars);
		auto float_args = std::data(args.floats);
		auto integer_args = std::data(args.ints);
    

		for (auto arg : any_args)
		{
			if (arg.type() == typeid(room_in_protocol_extended_t))
				extended = true;
			else if (arg.type() == typeid(room_in_protocol_lobby_t))
				lobby = true;
			else if (arg.type() == typeid(float))
				*float_args++ = std::any_cast<float>(arg);
			else if (arg.type() == typeid(math::vec3f)) {
				math::vec3f vec = std::any_cast<math::vec3f>(arg);
				*float_args++ = vec.x;
				*float_args++ = vec.y;
				*float_args++ = vec.z;
			}
			else if (arg.type() == typeid(int))
				*integer_args++ = std::any_cast<int>(arg);
			else if (arg.type() == typeid(unsigned int))
				*integer_args++ = static_cast<int>(std::any_cast<unsigned int>(arg));
			else if (arg.type() == typeid(long))
				*integer_args++ = static_cast<int>(std::any_cast<long>(arg));
			else if (arg.type() == typeid(unsigned long))
				*integer_args++ = static_cast<int>(std::any_cast<unsigned long>(arg));
			else if (arg.type() == typeid(short))
				*integer_args++ = static_cast<int>(std::any_cast<short>(arg));
			else if (arg.type() == typeid(unsigned short))
				*integer_args++ = static_cast<int>(std::any_cast<unsigned short>(arg));
			else if (arg.type() == typeid(unsigned char))
				*integer_args++ = static_cast<int>(std::any_cast<unsigned char>(arg));
			else if (arg.type() == typeid(char))
				*char_args++ = std::any_cast<char>(arg);
			else try { // untested
				auto str = std::any_cast<const char *>(arg);
				auto len = std::strlen(str);
				std::memcpy(char_args, str, len);
				std::advance(char_args, ++len);
			}
			catch (const std::bad_any_cast&) {
				throw std::exception("Unimplemented any type!");
			}
		}
	}
	bool send()
	{
		using send_t = bool(__fastcall *)(pod::command_process *, room_in_protocol *);
		return reinterpret_cast<send_t>(addr::server_send)(&(*server)->cmd_proc, this);
	}

	const int get_player_slot() const { return player_slot; };

	const bool is_extended() const { return extended; };
	const bool is_lobby() const { return lobby; };

	const auto &get_args() const { return args; };

private:
	room_in_protocol(dummy_t, GM_HI_STATE hi_msg, GM_LO_STATE lo_msg) : session((*server)->data.session), player_slot((*server)->data.player_slot), room_num((*server)->data.room_number), lobby(false), extended(false), alignment{ false, false }, hi_msg(hi_msg), lo_msg(lo_msg)
	{
		memset(&args, 0, sizeof(*this) - offsetof(room_in_protocol, args));
	};

	struct extra_args_t
	{
		std::array<int, 13> ints;    // 0x00
		std::array<float, 8> floats; // 0x34
		std::array<char, 300> chars; // 0x58
	};

	int session;					 // 0x00
	int player_slot;			 // 0x04
	int room_num;					 // 0x08 
	bool lobby;						 // 0x0C 
	bool extended;				 // 0x0D 
	char alignment[2];	   // 0x0E
	GM_HI_STATE hi_msg;		 // 0x10
	GM_LO_STATE lo_msg;	   // 0x14 
	extra_args_t args;     // 0x18
};


namespace packet {

using namespace std::placeholders;

auto sender = [](warrock::GM_HI_STATE hi_state, warrock::GM_LO_STATE lo_state, auto&&... args) {
	return warrock::room_in_protocol{ hi_state, lo_state, std::forward<decltype(args)>(args)... }.send();
};

auto commit_suicide = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_SUICIDE, _1);
auto heal_player    = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_HEALING_PLAYER, _1, 1);
auto refill_ammo    = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_RELOAD_PLAYER, _1);
auto conquest_flag  = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_CONQUEST_CAMP, _1, 0, 0, 0, 3, 20, 0, 0);

auto kick_player    = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_VOTE_KICK,    warrock::lobby, 0, _1, 0, 0, _2);

auto respawn        = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_PLAYER_REGEN, warrock::extended, _1, _2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ', 'ÿ');
auto hit_once       = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_DAMAGED_PLAYER,   warrock::extended, 1, _1, _2, _3, 0, _3, 1, 0, 0, 1319, 0, 0, 0, 111.f, 222.f, 333.f, 4.f, 0.f, 10.f, 5.f, 0.f, 'D', 'B', '0', '1', '3', '1', '9', '9');
auto damage = std::bind(sender, GM_HI_STATE::GM_EVENT, GM_LO_STATE::GCMD_E_DAMAGED_PLAYER, warrock::extended, 1, _1 /*target*/, _2 /*attacker*/, _3 /*weapon*/, 0, _3, _4 /*slot*/, 0, _5 /*is nade*/, _6 /*bone + sess*/, 0, 0, 0, _7 /*pos*/, 4.f /*damaged area?*/, 0.f, _8 /*ammo*/, _9 /*magazine*/, _10 /*effect range*/, _11 /*weapon code*/);


auto exit_room = []() -> bool {
	auto cmd_proc = &(*warrock::server)->cmd_proc;
	_asm mov eax, cmd_proc
	_asm call[addr::server_send_exit]
};

} // packet
} // warrock

#pragma pack(pop)
player.hpp
Code:
#pragma once

#include <cstdint>

#include <string>

#include "math/vector4.hpp"

#include "sdk/addresses.hpp"
#include "sdk/utility.hpp"

#include "sdk/vehicle.hpp"

#pragma pack(push, 1)

namespace warrock {
namespace pod {

struct spatial_object
{
	MAKE_PADDING(0x00, 0x00, 0xA4);
	float position[3];
};

struct default_spatial_object_palette  // RD::AVRDDefaultSpatialObjectPalette : RD::AVRDSpatialObjectPalette : RD::AVRDObject : RD::AVRDRefObject
{
	virtual void func0();
	virtual void func1();
	virtual void func2();
	virtual void func3();
	virtual void func4();
	virtual void func5();
	virtual void func6();
	virtual void func7();
	virtual void func8();
	virtual void func9();
	virtual void func10();
	virtual spatial_object *get_spatial_object(std::uint8_t *name);
};

struct custom_char // RD::AVWRCustomChar : RD::AVRDRefObject
{
	MAKE_PADDING(0x00, 0x00, 0x28);
	default_spatial_object_palette *scene_graph_palette;
};

struct third_person_handle
{
	MAKE_PADDING(0x00, 0x00, 0xBC);
	pod::custom_char *custom_char;
};

struct character_state
{
	virtual void begin_state(void *p);
	std::int16_t type;
	std::int16_t unk;
};

struct character_motion_state : character_state {
	bounding_box bounding;
	float bounding_mat[4][4];
};

struct character_upper_state : character_state {};
struct character_lower_state : character_state {};

namespace {
constexpr std::uintptr_t get_relative_operand(std::uintptr_t operation) { 
	return operation + *reinterpret_cast<std::uintptr_t *>(operation + 1) + 5;
}
}

struct cls_instances
{
	using character_lower_state_ptr = character_lower_state *;

	cls_instances() = default;

	void initialize()
	{
		using get_state_instance_t = character_lower_state *(__cdecl *)(void);
		std::uintptr_t get_state_table = get_relative_operand(warrock::addr::set_state_calls)/*0x4FC39D*/ + 0x10;
		get_state_instance_t get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));

		for (character_lower_state_ptr *state = &move; state != &end; ++state) {
			*state = get_state();

			get_state_table += 0x7;
			get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));
		}
	}

	character_lower_state_ptr move, jump, die, damage_fly, roll, emotion, change_shift, change_crouch,
		parachute_put_on, parachute_fall, parachute_take_off, lean, idle;
private:
	character_lower_state_ptr end;
};


struct cus_instances
{
	using character_upper_state_ptr = character_upper_state *;

	cus_instances() = default;

	void initialize()
	{
		using get_state_instance_t = character_upper_state *(__cdecl *)(void);
		std::uintptr_t get_state_table = get_relative_operand(warrock::addr::set_state_calls + 0xB) + 0x1B;
		get_state_instance_t get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));

		for (character_upper_state_ptr *state = &emotion; state != &end; ++state) {
			*state = get_state();

			get_state_table += 0x7;
			get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));
		}
	}

	character_upper_state_ptr emotion, roll, reload, change, fire, idle_event, idle;
private:
	character_upper_state_ptr end;
};

struct cbs_instances
{
	using character_motion_state_ptr = character_motion_state *;

	cbs_instances() = default;

	void initialize()
	{
		using get_state_instance_t = character_motion_state *(__cdecl *)(void);
		std::uintptr_t get_state_table = get_relative_operand(warrock::addr::set_state_calls + 0x16) + 0x18;
		get_state_instance_t get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));

		for (character_motion_state_ptr *state = &ladder; state != &end; ++state) {
			*state = get_state();

			get_state_table += 0x7;
			get_state = reinterpret_cast<get_state_instance_t>(get_relative_operand(get_state_table));
		}
	}

	character_motion_state_ptr ladder, swim, ride, crouch, shift, normal;
private:
	character_motion_state_ptr end;
};


struct player_data
{
	                                    MAKE_PADDING(0x00, 0x000, 0x0F0);
	char peer_name[20];                 MAKE_PADDING(0x14, 0x0F0, 0x584);
	std::uint32_t experience;           MAKE_PADDING(0x04, 0x584, 0x59C);
	std::uint32_t total_kills;
	std::uint32_t total_deaths;         MAKE_PADDING(0x08, 0x59C, 0x5BC);
	std::uint32_t session;              MAKE_PADDING(0x04, 0x5BC, 0x5EC);
	char login_name[20];                MAKE_PADDING(0x14, 0x5EC, 0x62C);
	char name[20];                      MAKE_PADDING(0x14, 0x62C, 0x674);
	char clan_name[20];                 MAKE_PADDING(0x14, 0x674, 0x96C);
	int score;
	int kills;
	int deaths;
	int flags;                          MAKE_PADDING(0x10, 0x96C, 0x984);
	int health;
	int max_health;
	int branch;                         MAKE_PADDING(0x0C, 0x984, 0x9A8);
	int assists;                        MAKE_PADDING(0x04, 0x9A8, 0xA24);
	bool ready;                         MAKE_PADDING(0x01, 0xA24, 0xAC0);
	std::int32_t room_number;
	std::int32_t player_slot;
	std::uint8_t team;                  MAKE_PADDING(0x09, 0xAC0, 0xAE8);

	bool is_enemy() const;
	bool is_ally() const;
	bool is_alive() const;
	bool is_hurt() const;
	bool is_real() const;
};

struct speed_factors
{
	float dash = 1.5f;
	float zero = 0.0f; // unknown
	float forward = 1.0f;
	float backward = 0.7f;
	float right = 0.55f;
	float left = 0.55f;
};

struct personal_weapon_pack // TODO pod::warrock::personal_weapon_pack -- move to pod::weapon::
{
	struct pack
	{
		char code[4];
		std::int16_t unk;
		std::int16_t index;
		std::uint32_t ammo_denom;
		std::uint32_t ammo_num;
		std::uint32_t mag_denom;
		std::uint32_t mag_num;
		std::uint32_t extra_ammo;
	};

	MAKE_PADDING(0x00, 0x00, 0x0C);
	std::vector<pack> packs;
};

struct control_variable
{
	bool is_control;
	char alignment[0x3];
	float lerp_time;
	float cur_pos_time; 
	float cur_euler_time; 
	float cur_upper_spine_theta_time;
	float cur_upper_spine_bend_theta_time;
	float cur_angle_time;
	math::vec3f origin_pos; 
	math::vec3f dest_pos;
	math::vec3f origin_euler;
	math::vec3f dest_euler;
	float origin_upper_spine_theta;
	float dest_upper_spine_theta;
	float origin_upper_spine_bend_theta; 
	float dest_upper_spine_bend_theta; 
	math::vec3f origin_angle; 
	math::vec3f dest_angle;
	math::vec3f cur_angle;
};

struct player
{
	                                             MAKE_PADDING(0x000, 0x00000, 0x062C4);
	float stamina_decrease;                      MAKE_PADDING(0x004, 0x062C4, 0x062D8);
	personal_weapon_pack *weapon_pack;
	safe_value<float> cam_recovery_factor;
	safe_value<float> cam_nockback_factor;
	safe_value<float> cam_feedback_factor;
	std::int32_t ladder_index;                   MAKE_PADDING(0x020, 0x062D8, 0x06304);
	float idle_event_time;
	bool setup_c4;
	bool lean_left;
	bool lean_right;
	bool __alignment;
	float send_network_packet_time;
	bool send_network_packet_one_send;           MAKE_PADDING(0x00D, 0x06304, 0x06334);
	std::int32_t force_skip_wasd;
	std::int32_t index;
	bool skip_play_healing_sound;
	bool dash;
	std::int16_t __alignment2;
	math::vec3f adding_force;
	math::vec3f velocity;                      MAKE_PADDING(0x024, 0x06334, 0x0637C);
	physics_unit *ride_unit;
	character_lower_state *pre_lower_state;
	character_motion_state *motion_state;
	character_upper_state *upper_state;  
	character_lower_state *lower_state;          MAKE_PADDING(0x014, 0x0637C, 0x06ED4);// MAKE_PADDING(0x014, 0x0C520, 0x10184); //x //  __int16 m_nCustomParts[27]; char m_PartsPacketData[27] custom_info m_kCustomState;
	float speed;
	float no_spread;                              MAKE_PADDING(0x008, 0x06ED4, 0x06EE4);
	std::int16_t backup_weapon;
	std::int16_t __alignment3;
	control_variable control;
	std::uint16_t mode;
	bool auto_change_mode;
	bool __alignment4;
	float thigh_theta;
	float cur_thigh_theta;
	float upper_spine_theta; // pitch
	float upper_spine_bend_theta;
	math::vec3f ground_normal;
	float head_theta;
	float upper_theta;
	float theta; //yaw 
	float local_rer_theta;
	float upper_rer_theta;
	math::vec3f save_pos;
	math::vec3f linear_vel;
	std::int16_t weapon; 
	std::int16_t prev_weapon;
	std::int16_t unk;
	std::int16_t branch;
	std::int16_t slot;
	std::int16_t __alignment5;
	std::int32_t gender; // 1 = male, 2 = female
	bool able_drop;
	char __alignment6[3];
	float parachute_matrix[4][4];
	math::vec3f parachute_direction;
	std::uint32_t upper_animation;
	std::uint32_t lower_animation;
	std::int16_t pre_fire_index;
	std::int16_t __alignment7;
	math::vec3f head_position;
	math::vec3f head_look_at;
	math::vec3f __unk;
	math::vec3f gun_look_at;
	math::vec3f gun_position;
	char character_definition_crap[0x38];
	void *first_person;
	third_person_handle *third_person;
	std::int16_t on_ground;
	std::int16_t on_ground_backup;
	float upper_offset;
	math::vec3f damage_theta_axis;
	float damage_theta;
	safe_value<float> save_jump_y;
	std::int32_t __alignment8;
	bool forward;
	bool backward;
	bool left;
	bool right;
	std::int32_t is_arrangement;
	std::int32_t char_index;
	safe_value<math::vec3f> position;
	math::vec3f save_pos2;
	math::vec3f euler;
	math::vec3f center;
	float radius;
	math::vec3f ambient;
	math::vec3f diffuse;
	std::int32_t ride_order;
	physics_unit *parachute;
	bool is_ride_parachute;
	char __alignment9[3];
	float flickering_time;
	float skill_effect_time;
	std::int32_t __alignment10;
	std::int32_t c4_notify_count; 
	std::int32_t nipper_notify_count;
	std::int32_t end_action_count;
	std::int32_t auto_wrench_sound_idx;
	std::int16_t hack_tool_notify_count;
	std::int16_t hack_tool_step;
	bool setup_hack_tool;
	std::int8_t first_fire_an94;
	std::int16_t fire_index;
	bool dash_attack;
	char __alignment11[3];
	float rotate_factor; 
	float height_offset; 
	float h_upper_offset; 
	float find_light_time; 
	std::int16_t roll_id;
	std::int16_t emotion_id;
	std::int16_t roll_notify_tick;              MAKE_PADDING(0x28A, 0x06EE4, 0x071BC);
	std::int32_t ladder_state;
	std::int32_t change_notify_count;
	std::int32_t reload_notify_count;
	float m134_rot_theta;
	float m134_rot_speed;
	bool fire_reserve_flag;
	bool left_lean;
	bool right_lean;
	bool __alignment12;
	std::int32_t animation_flag;
	bool render_shadow_switch;
	char __alignment13[0x3];
	speed_factors factors;
	bool ai;
	char __alignment14[0x3];
	int ai_controller_session;
	bool is_dead_ai;

	const player_data &data() const;
	bool is_enemy() const;
	bool is_ally() const;
	bool is_alive() const;
	bool is_hurt() const;
	bool is_invincible() const;
	bool is_real() const;
	bool is_valid_id() const;

	static bool is_valid_id(int index);
};

} // pod

extern pod::player **player;
extern std::array<pod::player *, 32> *players;
extern std::array<pod::player_data, 8> *spectator_data;
extern std::array<pod::player_data, 32> *player_data;

//extern pod::cls_instances cls_instances;
//extern pod::cus_instances cus_instances;
//extern pod::cbs_instances cbs_instances;

static pod::cls_instances cls_instances;
static pod::cus_instances cus_instances;
static pod::cbs_instances cbs_instances;

} // warrock

#pragma pack(pop)
player.cpp
Code:
#include "sdk/player.hpp"
#include "sdk/server.hpp"

using std::decay_t;

namespace warrock {

	pod::player **player                            = reinterpret_cast<decay_t<decltype(player)>>(addr::player_pointer);
	std::array<pod::player *, 32> *players          = reinterpret_cast<decay_t<decltype(players)>>(addr::remote_player_pointer);
	std::array<pod::player_data, 8> *spectator_data = reinterpret_cast<decay_t<decltype(spectator_data)>>(addr::player_data_pointer - 8 * sizeof(pod::player_data));
	std::array<pod::player_data, 32> *player_data   = reinterpret_cast<decay_t<decltype(player_data)>>(addr::player_data_pointer);

 /* pod::cls_instances cls_instances;
  pod::cus_instances cus_instances;
  pod::cbs_instances cbs_instances;*/

	namespace pod {

		bool player_data::is_enemy() const {
			return player_slot != (*warrock::server)->data.player_slot && ((*warrock::server)->room.game_mode == GAME_MODE::FFA || team != (*warrock::server)->data.team);
		}

		bool player_data::is_ally() const {
			return !is_enemy();
		}

		bool player_data::is_alive() const {
			return health > 0;
		}

		bool player_data::is_hurt() const {
			return health < max_health;
		}

		bool player_data::is_real() const {
			return player::is_valid_id(player_slot) && std::strlen(name) > 2;
		}

		const player_data &player::data() const {
			return (*warrock::player_data)[index];
		}

		bool player::is_enemy() const {
			return data().is_enemy();
		}

		bool player::is_ally() const {
			return !is_enemy();
		}

		bool player::is_alive() const {
			return  data().is_alive() && (!ai || !is_dead_ai) && lower_state != warrock::cls_instances.die;
		}

		bool player::is_hurt() const {
			return data().is_hurt();
		}

		bool player::is_real() const {
			return data().is_real();
		}

		bool player::is_invincible() const {
			return !ai && flickering_time > 0.f;
		}
		
		bool player::is_valid_id() const {
			return is_valid_id(index);
		}

		bool player::is_valid_id(int index) {
			return index >= 0 && index < 32;
		}

	} // pod

} // warrock
server.hpp
Code:
#pragma once

#include <cstdint>

#include "sdk/addresses.hpp"
#include "sdk/player.hpp"
#include "sdk/weapon.hpp"
#include "sdk/utility.hpp"

#pragma pack(push, 1)

namespace warrock {

enum class GM_HI_STATE
{
	GM_INVALID = 0x0,
	GM_CONTOL = 0x1, // [sic]
	GM_EVENT = 0x2
};

enum class GM_LO_STATE
{
	GCMD_INVALID = 0x0,
	GCMD_C_START_GAME = 0x1,
	GCMD_C_LOADING_MAP_START = 0x2,
	GCMD_C_LOADING_MAP_DONE = 0x3,
	GCMD_C_GAME_START = 0x4,
	GCMD_C_ROUND_OVER = 0x5,
	GCMD_C_GAME_OVER = 0x6,
	GCMD_C_GAME_OVER_DONE = 0x7,
	GCMD_C_RESULT_SHOW = 0x8,
	GCMD_C_RETURN_LOBBY = 0x9,
	GCMD_E_READY_CLICK = 0x32,
	GCMD_E_MAP_CLICK = 0x33,
	GCMD_E_TYPE_CLICK = 0x34,
	GCMD_E_ROUND_CLICK = 0x35,
	GCMD_E_TIME_CLICK = 0x36,
	GCMD_E_KILL_CLICK = 0x37,
	GCMD_E_TEAM_CLICK = 0x38,
	GCMD_E_SCORE_CLICK = 0x39,
	GCMD_E_HOLD_CLICK = 0x3A,
	GCMD_E_PING_CLICK = 0x3B,
	GCMD_E_VOTERATE_CLICK = 0x3C,
	GCMD_E_VOTE_KICK = 0x3D,
	GCMD_E_AUTOSTART_CLICK = 0x3E,
	GCMD_E_AILEVEL_CLICK = 0x3F,
	GCMD_E_BRANCH_CLICK = 0x64,
	GCMD_E_HEALING_PLAYER = 0x65,
	GCMD_E_HEALING_UNIT = 0x66,
	GCMD_E_DAMAGED_PLAYER = 0x67,
	GCMD_E_DAMAGED_UNIT = 0x68,
	GCMD_E_RELOAD_PLAYER = 0x69,
	GCMD_E_RELOAD_UNIT = 0x6A,
	GCMD_E_INVALID_BULLET = 0x6B,
	GCMD_E_PLAYER_REGEN = 0x96,
	GCMD_E_UNIT_REGEN = 0x97,
	GCMD_E_PLAYER_DIE = 0x98,
	GCMD_E_UNIT_DIE = 0x99,
	GCMD_E_PLAYER_DENY = 0x9A,
	GCMD_E_CHANGE_WEAPONS = 0x9B,
	GCMD_E_CONQUEST_CAMP = 0x9C,
	GCMD_E_SUICIDE = 0x9D,
	GCMD_E_SUICIDE_UNIT = 0x9E,
	GCMD_E_FIRE_ARTILLERY = 0x9F,
	GCMD_E_FIRE_FLARE = 0xA0,
	GCMD_E_OBJECT_RIDE = 0xC8,
	GCMD_E_OBJECT_CHANGE_SEAT = 0xC9,
	GCMD_E_OBJECT_ALIGHT = 0xCA,
	GCMD_E_OBJECT_NETSTART = 0xCB,
	GCMD_E_DUMMY_PACKET = 0x12C,
	GCMD_E_ITEM_DROP = 0x190,
	GCMD_E_ITEM_PICKUP = 0x191,
	GCMD_E_STAND_BY = 0x192,
	GCMD_E_GO = 0x193,
	GCMD_E_CRASH_OBJECT = 0x1F4,
	GCMD_E_MISSION = 0x258,
	GCMD_E_ISHERO = 0x2BC,
	GCMD_E_HERO_SKILL = 0x2BD,
	GCMD_E_HERO_HEAL_SKILL = 0x2BE,
	GCMD_E_HACK_PREVENT = 0x320,
	GCMD_E_AI_DAMAGE_SP = 0x384,
	GCMD_E_AI_ITEM_DROP = 0x385,
	GCMD_E_AI_ITEM_PICKUP = 0x386,
	GCMD_E_AI_ITEM_DELETE = 0x387,
	GCMD_E_TRACE_GAS = 0x388
};

enum class CMD_CODE : int
{
	DO_UDP_PEER_ADDR = 8448,
	/* UNKNOWN_UNUSED = 12288 */
	/* UNKNOWN_UNUSED = 16896 */
	/* UNKNOWN_UNUSED = 16897 */
	/* UNKNOWN_UNUSED = 16912 */
	/* UNKNOWN_UNUSED = 16928 */
	DO_UDP_CHAR_MOVE = 12544,
	DO_UDP_CHAR_MOVE_A = 12548,
	DO_UDP_CHAR_MOVE_B = 12549,
	DO_UDP_OBJ_MOVE = 12800,
	DO_UDP_VEHICLE_MOVE = 12801,
	DO_UDP_VEHICLE_MOVE_A = 12802,
	DO_UDP_VEHICLE_MOVE_B = 12803,
	DO_UDP_BULLET = 13312,
	DO_UDP_DUMMY_INFO = 13313,
	DO_UDP_HACK_INFO = 13314,
	DO_UDP_TEXT_CHAT = 13824,
	DO_PLAYER_INFO = 24593,
	DO_GAME_SERIAL = 24832,
	DO_JOIN_SERV = 25088,
	DO_SET_CHANNEL = 28673,
	DO_EVENT_MESSAGE = 25344,
	DO_KEEP_ALIVE = 25600,
	DO_USER_LIST = 28928,
	DO_USER_LIST_EX = 28960,
	DO_USER_LIST_MODIFY = 28944,
	DO_ROOM_LIST = 29184,
	DO_ROOM_INFO_CHANGE = 29200,
	DO_CREATE_ROOM = 29440,
	DO_JOIN_ROOM = 29456,
	DO_QUICK_JOIN = 29472,
	DO_CLAN_QUICK_JOIN = 29536,
	DO_GUEST_JOIN = 29488,
	DO_EXIT_ROOM = 29504,
	DO_EXPEL_PLAYER = 29505,
	DO_INVIT_ROOM = 29520,
	DO_CHAT_MSG = 29696,
	DO_GAME_PROTOCOL = 30000,
	DO_GAME_USER_LIST = 29952,
	DO_GAME_GUEST_LIST = 29953,
	DO_GDATA_INFO = 29968,
	DO_GAME_LAUNCH_COUNT = 30001,
	DO_ROOM_DESTROY_CLOCK = 30002,
	DO_GAME_CLOCK = 30016,
	DO_GAME_UPDATE_DATA = 30017,
	DO_GAME_SCORE = 30032,
	DO_GAME_RESULT = 30048,
	DO_GAME_IN_BOMB = 29984,
	DO_GAME_IN_MISSION = 29985,
	DO_ITEM_CONTROL = 30208,
	DO_ITEM_DESTROY = 30224,
	DO_CUSTOM_CONTROL = 30209,
	DO_CUSTOMITEM_DESTROY = 30225,
	DO_CITEM_CHANGE = 29971,
	DO_CUSTOM_BOUNS = 31079,
	DO_CUSTOM_CSHOP = 30230,
	DO_TMARKET_PROTOCOL = 30464,
	DO_BITEM_CHANGE = 29970,
	DO_AI_GOAL = 31490,
	DO_KILL_STREAK = 31492,
	DO_GET_KILL_STREAK = 31495,
	DO_AI_WAVE_NOTIFY = 31494,
	DO_AI_DESTROY_BONUS = 13441,
	DO_AI_DESTROY_TIME = 13442,
	DO_AI_MASK_EVENT = 31094,
	DO_MESSENGER_CTRL = 29776,
	DO_EVENT_COUPON = 30992,
	DO_EVENT_ALPHABET = 30997,
	DO_CS_BONUS_EVENT = 31076,
	DO_PLAYER_PROMOTION = 31008,
	DO_PLAYER_OVER_BIGINNER = 31024,
	DO_TEST_ALPHABET = 31072,
	DO_SIEGEWAR_EVENT = 31077,
	DO_SNOWBALL_EVENT = 31080,
	DO_SEMESTER_BONUS = 31081,
	/* UNKNOWN_UNUSED = 31088 */
	DO_INGAME_BONUS = 31089,
	DO_CHALLENGE_TIME = 31090,
	DO_CHARACTER_BONUS = 31091,
	DO_MAYEVENT_BONUS = 31092,
	DO_MAYEVENT_ITEM = 31093,
	DO_HAMMER_COUNT = 31104,
	DO_HAMMER_ITEM = 31105,
	DO_NCASH_PROCESS = 30720,
	DO_SBI_CHANGE = 30976,
	DO_EVENT_COUNTMISSION = 30772,
	/* UNKNOWN_UNUSED = 30752 */
	DO_SBC_CHANGE = 30977,
	DO_GET_AMPEDCASH = 30768,
	DO_POPUP_TOPUP = 30769,
	/* UNKNOWN_UNUSED = 30240 */
	DO_BOAST_ITEM = 30241,
	DO_AHNHS_KEEPALIVE = 31264,
	DO_AHNHS_DROP = 31265,
	DO_CS_KEEPALIVE = 22040,
	/* UNKNOWN_UNUSED = 12545 */
	/* UNKNOWN_UNUSED = 12546 */
	/* UNKNOWN_UNUSED = 12547 */
	/* UNKNOWN_UNUSED = 13315 */
	DO_SQUEAKYHAMMER_EVENT = 30774,
	DO_EVENT_PUZZLE = 30998,
	DO_TEST_PUZZLE_EVENT = 31057,
	DO_EVENT_WATERBALLOON = 31120,
	DO_WAVE_STATE = 13431,
	DO_AI_SPAWN = 13432,
	DO_AI_CHANGE_CONTROLLER = 13433,
	DO_SPAWN_SKILL_ITEM_IN_SURVIVAL = 13440,
	DO_PEAKTIME_EVENT = 30775,
	DO_CHARIOT_KILL = 13443,
	DO_REWARD_EVENT = 31109,
	DO_LUCKYSHOT_UPDATE = 30256,
	DO_LUCKYSHOT_INFO = 30257,
	DO_LUCKYSHOT_PROCESS = 30258,
	DO_DEFENCE_EVENT = 30776,
	DO_ONGAMENET_EVENT = 30777,
	DO_THANKSDINAR_EVENT = 30784,
	DO_GET_SERVER_TIME = 25601,
	DO_EVENT_KILL_COUNT = 30999,
	DO_EVENT_SAKURA_KILL_COUNT = 13444
};

enum class GAME_MODE : std::uint32_t
{
	EXPLOSIVE = 0,
	FFA = 1,
	CQC_DEATH_MATCH_8 = 2,
	CQC_DEATH_MATCH_16 = 3,/*indistinguishable from HERO*/
	HERO = 3,/*indistinguishable from CQC_DEATH_MATCH_16*/
	CAPTURE = 9,
	SURVIVAL = 10,
	DEFENCE = 11,
	TIME_ATTACK = 12,
	ESCAPE = 13,
	TANKWAR = 14, /*indistinguishable from DEATHMATCH*/
	DEATHMATCH = 14, /*indistinguishable from TANKWAR*/
	ANNIHILATION = 15,
	FOGGY_SURVIVAL = 16,
	//DEFENCE_POINT = 9,
	//TRAINING = 10
};

namespace pod {

struct server;

class command_process
{
	virtual void is_virtual();
	server *socket_client;
};

template <typename CmdType>
struct command
{
	virtual void is_virtual();
	CmdType cmd_code;
	std::size_t min_pos;
	std::size_t min_level;
	std::size_t sub_identifier;
	void(__cdecl *cmd_ptr)(void *, char *, int, std::int16_t, std::int16_t, std::int16_t, std::size_t);
};

template <typename CmdType>
struct command_list
{
	virtual void is_virtual();
	std::size_t count;
	std::array<command<CmdType>, 250> commands;
};

struct cgi_connection
{
	struct vftbl_t
	{
		void(*unk0)();
		void(*unk1)();
		std::uintptr_t encode;
		std::uintptr_t decode;
		//int(__fastcall *encode)(void *, void *, char *, int, int);
	};
	vftbl_t *vftbl;
};

struct room_data
{
	int room_number;
	int players;
	char pad_0x4C0FC[0x4];
	bool joinable;
	char __alignment2[3];
	GAME_MODE game_mode;
	int room_mode;
	int room_state;
	char pad_0x4C114[0x2C];
	int kills_derb;
	int kills_niu;
	char pad_0x4C148[0x8];
	char title[128];
	char password[128];
	bool has_password;
	char __alignment[3];
	int sel_capacity;
	int sel_map_id;
	int sel_round_id;
	int sel_kill_id;
	int sel_time_id;
	int sel_id;
	int event_state;
	int event_time;
	int sel_auto_start;
	int capacity;
	int mujuk_time;
	int bet_point;
	int level;
	int is_auto_start;
	int superhost_type;
	char pad_0x4C298[0xA0];
	int host_session;
	char pad_0x4C334[0x6AC];
	int sel_level_range_id;
};

struct server
{
	                                                           MAKE_PADDING(0x0000, 0x00000, 0x03498); // confirmed
  cgi_connection connection;                                 MAKE_PADDING(0x0004, 0x03498, 0x165F0); // confirmed
	int code;                                                  MAKE_PADDING(0x0004, 0x165F0, 0x48F24); // maybe current buffer or something
	void *recv_deframe;                                        MAKE_PADDING(0x0004, 0x48F24, 0x6EAFC); // confirmed
	command_process cmd_proc;
	command_list<warrock::CMD_CODE> cmd_list; // confirmed
	command_list<warrock::GM_LO_STATE> game_cmd_list;          MAKE_PADDING(0x2EF8, 0x6EAFC, 0x719F8); // confirmed
	room_data room;                                            MAKE_PADDING(0x08EC, 0x719F8, 0x7247C); // confirmed

//	bool vote_kick_enabled;                                    MAKE_PADDING(0x0001, 0x4C9E7, 0x4CA18);
	//weapon_slot slotbase[5][8];                                MAKE_PADDING(0x0C80, 0x4CA18, 0x734A8);
	weapon_slot serslotbase[5][8];                             MAKE_PADDING(0x0C80, 0x7247C, 0x75A50); // confirmed
	warrock::pod::player_data data; // confirmed
	
	warrock::pod::player_data &in_room_data() { return (*warrock::player_data)[data.player_slot]; }
};

} // pod

extern pod::server **server;

} // warrock

#pragma pack(pop)
server.cpp
Code:
#include "server.hpp"

namespace warrock { 

pod::server **warrock::server = reinterpret_cast<pod::server **>(addr::server_pointer);

} // warrock
utility.hpp
Code:
#pragma once

#include <array>
#include <cstdint>

#pragma pack(push, 1)

namespace warrock::pod {

struct bounding_box
{
	float min[3];
	float max[3];
};

} // warrock::pod

namespace detail {

template <std::size_t Size>
class padding
{
	static_assert(Size > 0, "Size needs to be greater than zero!");

private:
	std::uint8_t data[Size];
};

} // detail

#define MAKE_PADDING(PREV_SIZE, PREV, NEXT) private: detail::padding<(NEXT) - (PREV) - (PREV_SIZE)> __padding_##PREV##_##NEXT##__; public:

namespace detail {

struct safe_value_value {
	unsigned long value;
	unsigned long key;
};

template <typename T, std::size_t Size = sizeof(T), bool = false>
struct safe_value_data {};

template <typename T, std::size_t Size>
struct safe_value_data<T, Size, true> {
	std::array<safe_value_value, Size> data;
};

template <typename T, std::size_t Size>
struct safe_value_data<T, Size> : safe_value_data<T, Size / 4, true> {
	static_assert(Size % 4 == 0, "Size needs to be a multiple of four.");
};

template <typename T>
struct safe_value_data<T, 1> : safe_value_data<T, 1, true> {};

template <typename T>
struct safe_value_data<T, 2> : safe_value_data<T, 1, true> {};

} // detail

#define IMPL_OPERATORS1(C,T) C<T> &operator=(const T &value) { set(value); return *this; } \
                             operator const T() const { return get(); }

#define IMPL_OPERATORS2(C,T) C<T> &operator+=(const T &value) { T tmp(*this); *this = tmp += value; return *this; } \
                             C<T> &operator-=(const T &value) { T tmp(*this); *this = tmp -= value; return *this; } \
                             C<T> &operator*=(const T &value) { T tmp(*this); *this = tmp *= value; return *this; } \
                             C<T> &operator/=(const T &value) { T tmp(*this); *this = tmp /= value; return *this; } \
                             C<T> operator+(const T &value) { C<T> tmp(*this); *this = tmp + value; return *this; } \
                             C<T> operator-(const T &value) { C<T> tmp(*this); *this = tmp - value; return *this; } \
                             C<T> operator*(const T &value) { C<T> tmp(*this); *this = tmp * value; return *this; } \
                             C<T> operator/(const T &value) { C<T> tmp(*this); *this = tmp / value; return *this; }

template <typename T>
class safe_value;

template <typename T>
class safe_value : detail::safe_value_data<T>
{
public:
	safe_value() { set(T{}) };
	safe_value(safe_value<T> const &other) : data(other.data) {}
	safe_value(T const &value) { set(value); }

	void set(T const &value)
	{
		unsigned long const *value32 = reinterpret_cast<unsigned long const *>(&value);
		
		for (auto &pair : detail::safe_value_data<T>::data)
			pair.value = pair.key ^ *value32++;
	}

	const T get() const
	{
		T result;
		unsigned long *result32 = reinterpret_cast<unsigned long *>(&result);

		for (auto const &pair : detail::safe_value_data<T>::data)
			*result32++ = pair.key ^ pair.value;

		return result;
	}

	IMPL_OPERATORS1(safe_value, T);
	IMPL_OPERATORS2(safe_value, T);
};

template <>
class safe_value<bool> : detail::safe_value_data<bool>
{
public:
	safe_value() : safe_value(false) {}
	safe_value(safe_value<bool> const &other) : safe_value_data(other) {}
	safe_value(bool const &value) { set(value); }

	void set(bool const &value)
	{
		data[0].value = value ? data[0].key / 2 : data[0].key;
	}

	const bool get() const
	{
		return data[0].value == data[0].key / 2;
	}

	IMPL_OPERATORS1(safe_value, bool);
};

#undef IMPL_OPERATORS1
#undef IMPL_OPERATORS2

#pragma pack(pop)
vehicle.hpp
Code:
#pragma once

#include <vector>
#include <array>

#include "math/vector4.hpp"

#include "sdk/addresses.hpp"
#include "sdk/utility.hpp"

#pragma pack(push, 1)

namespace warrock {

enum class UNIT_TAG : int {
	UNIT_VOID = 0x0,
	UNIT_CAR = 0x1,
	UNIT_TANK = 0x2,
	UNIT_AIRPLANE = 0x3,
	UNIT_HELICOPTER = 0x4,
	UNIT_BOAT = 0x5,
	UNIT_MOTORCYCLE = 0x6,
	UNIT_EXPLOSION = 0x7,
	UNIT_FIXED = 0x8,
	UNIT_FRAGMENT = 0x9,
	UNIT_RAGDOLL = 0xA,
	UNIT_PARACHUTE = 0xB,
	UNIT_MAXCOUNT = 0xC
};

namespace pod {

struct world
{
	char unk[0x98];
	float scale;
};

struct dx_body
{
	char unk[0x98];
	math::vec3f position;
};

struct unit_parts
{
	std::uint32_t tag_type;      MAKE_PADDING(0x04, 0x00, 0x10);
	dx_body* body_ode;
	void* geoms_ode;
	float result[4][4]; // matrix4x4 result[3][0] result[3][1] result[3][2] = pos
	float result_rot[4]; // quaternion
	math::vec3f result_pos; // might not match warrock pos space
	float key_rot[4][6]; // 6x quaternion
	float key_pos[3][6]; // 6x vector3
	void *handle; // -> CPartMeshHandle : CLocal
};

struct weapon_button
{
	float impact;
	float impact2;
	int max_ammo;
	safe_value<int> ammo;
	safe_value<int> magazine;
	std::uint32_t delay_time; // cool_time
	std::uint32_t reload_time;
	safe_value<float> fire_timer;
	safe_value<float> cool_timer;
	float heat_factor;
	float cool_factor;
	std::uint32_t fire_start_delay_time;
	std::uint32_t start_cool_delay_time;
	bool shooting;
	char alignment[3];
	std::uint32_t timer;
	safe_value<float> rate;
};

struct weapon_property
{
	char name[32];             MAKE_PADDING(32, 0x000, 0x214);
	weapon_button button1;
	char unk[0x11C - 8];
	weapon_button button2;
};

struct ride_info_property
{
	int driver;
	char fp_bone_name[32];
	char char_bone_name[32];
	char weapon_name[32];
	char name[32];
};

struct unit_properties
{
	float wheel_joint_cfm;
	float wheel_joint_erp;
	float contact_mu;
	float contact_mu2;
	float contact_slide; 
	float contact_slide2;
	float contact_cfm; 
	float contact_erp;
	float contact_bounce;
	float contact_bounce_vel;
	float mass;
	math::vec3f mass_center;
	float air_drag;
	float water_drag;
	float forward_max_speed;
	float backward_max_speed;
	float forward_accel;
	float backward_accel;
	float forward_handling;
	float backward_handling;
	float engine_power;
	float camera_speed;
	math::vec3f camera_pos;
	float free_camera_max_speed;
	float free_camera_min_dist;
	float free_camera_height;
	math::vec3f free_camera_pos;
	float roll_stiff;
	float roll_damp;
	float min_speed;
	float forward_steer;
	float backward_steer; 
	char pad[0xc];
	std::vector<weapon_property *> weapons;
	std::vector<ride_info_property *> rides; // untested
};

struct physics_unit
{                                MAKE_PADDING(0x00, 0x000, 0x038);
	UNIT_TAG type;
	bounding_box aabb;
	void *space;
	char name[32];
	int seats;
	std::uint32_t health;
	std::uint32_t max_health;
	int last_get_off_session;
	int last_time;
	float health_rate;           MAKE_PADDING(0x058, 0x038, 0x1D8);
	pod::world *world;
	unit_properties *properties;
	unit_parts *parts;           MAKE_PADDING(0x00C, 0x1D8, 0x300);
	math::vec3f net_regen_pos;
	math::vec3f net_velocity;
	math::vec3f net_position;
	float flickering_time;
};

struct physics_world
{
	                                    MAKE_PADDING(0x00, 0x00, 0x0C);
	std::vector<physics_unit *> units;  MAKE_PADDING(0x08, 0x0C, 0x78);
	float scale;
};

} // pod

extern pod::physics_world **world;
} // warrock

#pragma pack(pop)
vehicle.cpp
Code:
#include "sdk/vehicle.hpp"

namespace warrock {
pod::physics_world **world = reinterpret_cast<pod::physics_world **>(addr::physics_world);
}
weapon.hpp
Code:
#pragma once

#include <cstdint>
#include <list>

#include "math/vector4.hpp"

#include "sdk/addresses.hpp"
#include "sdk/utility.hpp"

#pragma pack(push, 1)

namespace warrock {
namespace pod {

struct weapon
{                                            MAKE_PADDING(0x00, 0x000, 0x004);
	std::uint16_t id;
	char name[32];
	char name_korean[32];
	char name_short[5];
	bool active;                             MAKE_PADDING(0x48, 0x004, 0x08C);
	int power;
	int shoot_range;
	int ammo_num;
	int magazine_num;
	int effective_range;
	int parabola;
	float react_amount;
	float react_recovery;
	float accuracy;
	int shoot_speed;
	int weight;
	float reload_time;
};

struct weapon_slot
{
	bool enabled;
	std::uint8_t type;
	std::uint16_t weapon_id;                 MAKE_PADDING(0x04, 0x000, 0x025);
	char name_short[0x10];                   MAKE_PADDING(0x10, 0x025, 0x048);
	weapon *adr_weap;
	void *adr_inv;
};

class item_manager
{
private:
	std::uint8_t alignment[0x4];
	void *vehicles;
	std::uint8_t alignment0[0x10];
public:
	bool read_done;
private:
	std::uint8_t alignment1[0x03];
public:
	std::size_t item_count[7];
	void **resources;
	void **clothes;
	void **etc;
	weapon **weapons;
	void **equipment;
	void **equipment_weapons;
};

struct weapon_trace_pack
{
	struct pack
	{
		bool sent_packet; //0x0008 
		char pad_0x0009[0x3]; //0x0009
		math::vec3f start_pos; //0x000C 
		math::vec3f save_pos; //0x0018 
		math::vec3f pos; //0x0024 
		math::vec3f dir; //0x0030 
		math::vec3f save_dir; //0x003C 
		math::vec3f temp1; //0x0048 
		math::vec3f temp2; //0x0054 
		math::vec3f look_at; //0x0060 
		math::vec3f start; //0x006C 
		math::vec3f end; //0x0078 
		std::uint8_t slot; //0x0084 
		std::uint8_t magazine; //0x0085 
		std::uint8_t shell; //0x0086 
		char pad_0x0087[0x1]; //0x0087
		float mass; //0x0088 
		float life; //0x008C 
		float acceleration; //0x0090 
		float shoot_speed; //0x0094 
		std::int32_t item_type; //0x0098 
    std::int32_t type; //0x009C 
    std::int32_t owner; //0x00A0 
    std::int32_t button; //0x00A4 
    std::int32_t fire_time; //0x00A8 
		std::int16_t serial_num; //0x00AC 
		std::int16_t bound_count; //0x00AE 
		char weapon_code[5]; //0x00B0 
	};
	                                                         MAKE_PADDING(0x00, 0x00, 0x054);
	std::list<pack> traces;                                  MAKE_PADDING(0x08, 0x54, 0x124);
	void *weapon_integrity;
	void *grenade_integrity;
};

struct mine_pack
{
	struct pack
	{
		int slot;
		std::int16_t active;
		char __alignment1[2];
		math::vec3f vel;
		math::vec3f pos;
		math::vec3f dir;
		float eff_range;
		float frustrum_plane[4][6];
		float view[4][4];
		float proj[4][4];
		float life;
		std::int8_t type;
		char __alignment2[3];
		int owner;
		int __alignment3;
		int serial;
		float radian;
		float local[4][4];
	};

	MAKE_PADDING(0x00, 0x00, 0x14);
	std::list<pack> mines;
};

} // pod

enum class ZOOM_TYPE : int
{
	DEFAULT = 5,
	ZOOM = 1,
	ZOOMX2 = 8,
	ZOOMX3 = 7,
	ZERO = 0
};

extern pod::item_manager *item_manager;
extern pod::weapon_trace_pack **weapon_trace_pack;
extern pod::mine_pack **mine_pack;

} // warrock

#pragma pack(pop)
weapon.cpp
Code:
#include "weapon.hpp"

namespace warrock
{
	pod::item_manager *item_manager = reinterpret_cast<pod::item_manager *>(addr::item_manager);
	pod::weapon_trace_pack **weapon_trace_pack = reinterpret_cast<pod::weapon_trace_pack **>(addr::trace_packs);
	pod::mine_pack **mine_pack = reinterpret_cast<pod::mine_pack **>(addr::trace_packs + 4);
}
sdk.hpp
Code:
#pragma once

#include "sdk/addresses.hpp"
#include "sdk/player.hpp"
#include "sdk/server.hpp"
#include "sdk/camera.hpp"
#include "sdk/weapon.hpp"
#include "sdk/packet.hpp"
#include "sdk/vehicle.hpp"
#include "sdk/hud_manager.hpp"
#include "sdk/utility.hpp"
yazzn.biz is offline  
Old 11/05/2020, 04:09   #1121
 
elite*gold: 0
Join Date: Sep 2020
Posts: 28
Received Thanks: 1
Quote:
Originally Posted by Alliance™ View Post
Code:
#=====================================================================#
#==================[ ADDYLOGGER VIP BY ALLIANCE™ ]====================#
#=====================================================================#
UPDATE: 15.11.2013
AddyLogger start...
#=============================[Pointer]===============================#

#define ADR_PLAYERPOINTER  0xAF17F0
#define ADR_SERVERPOINTER  0xAEBFB8
#define ADR_BASEPOINTER    0xB23D78
#define ADR_VIEWANGELS     0xAEB050
#define ADR_DEVICEPOINTER  0xAEB054
#define ADR_INFOPOINTER    0xB23D78
#define ADR_WEAPONPOINTER  0xB0FDD8
#define ADR_REMOTEPOINTER  0xB737A0
#define ASM_GAMENOTICE     0x5E00B8
#define ASM_GAMETEXT       0x5215F7
#define ADR_CLASSROOMPTR   0xAF1A48
#define ADR_STATEPOINTER   0xAF1818

#==========================[Warrock check]============================#

#define ASM_WARROCKCHECK1  0x51BA51
#define ASM_WARROCKCHECK2  0x5DECA8

#===========================[Offset Player]===========================#

#define OFS_NOFALLDAMAGE   0x102E8
#define OFS_X              0x10300
#define OFS_Y              0x10310
#define OFS_Z              0x10308
#define OFS_NOSPREAD       0x10110
#define OFS_NORECOIL1      0xC444
#define OFS_NORECOIL2      0xC448
#define OFS_NORECOIL3      0xC450
#define OFS_FASTNADE       0x10114
#define OFS_NORELOAD       0x1040D
#define OFS_AUTOPLANT      0x10370
#define OFS_AUTODEFUSE     0x10374
#define OFS_AUTOSHOOT      0x10386
#define OFS_INVISIBLE      0xB7E44
#define OFS_PLAYERSTATE    0xC4CC

#===========================[Offset Weapon]==========================#

#define OFS_WEAPONSTATE    0xC4D0
#define OFS_WEAPON1        0x101EC
#define OFS_WEAPON2        0x101EE
#define OFS_WEAPON3        0x101F0
#define OFS_WEAPONDAMAGE   0x14BC
#define OFS_WEAPONDEFENCE  0x14C0
#define OFS_AMMONUMBER     0x14C8
#define OFS_MAGAZINENUMBER 0x14CC
#define OFS_EFFECTRANGE    0x14D0
#define OFS_PARABOLA       0x14D4
#define OFS_SHOOTSPEED     0x14E4
#define OFS_WEAPONWHEIGHT  0x14E8

#===========================[Offset Server]==========================#

#define OFS_Premium        0x3CC
#define OFS_SLOT5          0x9F1E4
#define OFS_SLOT6          0x9F1E5
#define OFS_SLOT7          0x9F1E6
#define OFS_SLOT8          0x9F1E7
#define OFS_ROOMMASTER     0x9C7E8
#define OFS_SUPERMASTER    0x9C750

#==============================[Address]=============================#

#define ADR_NEARFOG          0xAF8624
#define ADR_FARFOG           0xAF862C
#define ADR_GLASSWALLS       0xAEB14C
#define ADR_SPEED            0x8D0F48
#define ADR_SPEEDROLL        0x8D0D80
#define ADR_SCOPE            0x93C480
#define ADR_SCOPESIZE        0x93C488
#define ADR_NOWATER1         0xAF860C
#define ADR_NOWATER2         0xAF8610
#define ADR_NOBOUNDS1        0xB8384C
#define ADR_NOBOUNDS2        0xB83850
#define ADR_NOSPAWNWAIT1     0xB8DE1C
#define ADR_NOSPAWNWAIT2     0xB8DE20
#define ADR_NOSPAWNWAIT3     0xB8DE24
#define ADR_FASTAMMO         0xAF5DFC
#define ADR_FASTMEDIC        0xAF5E04
#define ADR_FASTFLAG         0xAF5E14
#define ADR_FASTREPAIR       0xAF5DFC
#define ADR_QUICKPLANTDEF    0xAEB074
#define ADR_PLANTANYWHERE    0xAEB08E
#define ADR_DEFUSEANYWHERE   0x93C49C
#define ADR_SUPERNOSPREAD    0x8D0BC8
#define ADR_BONESHOOT        0x8D1B78
#define ADR_STW              0x89491C
#define ADR_WALKUNDERWATER   0xAF8614
#define ADR_WTW              0x8924A4
#define ADR_NOSPREAD         0xAF5E9C
#define ADR_CLANTAG1         0xB0FD78
#define ADR_CLANTAG2         0xB0FD34
#define ADR_CLANTAG3         0xB0FD80
#define ADR_CLANTAG4         0xB0E7FC
#define ADR_CLANTAG5         0xAA7A44
#define ADR_CLANTAG6         0xB243FC Name of clan
#define ADR_SWIM1            0xAE2E3C
#define ADR_SWIM2            0xAF1830
#define ADR_INVEHICLE        0xAF1834
#define ADR_PLAYERID         0xA40
#define ADR_USERNAME         0xB243B4
#define ADR_WEAPONGRAVITY    0x8D0B88
#define ADR_CHECKREADYSTART  0x0
#define ADR_STARTSTAMINA     0x89AEC0
#define ADR_STAMINAROLL      0x89AECC (float)
#define ADR_STAMINASPRINT    0x8D0FA8 (doubòe)
#define ADR_STAMINAJUMP      0x89A59C (float)

#================================[Asm]==============================#

#define ASM_UNLIMITEDOXY   0x5087C1
#define ASM_CQCPRONE       0x4F68D7
#define ASM_NORELOAD       0x51AB2F
#define ASM_AUTOAMMO1      0x5067AE
#define ASM_AUTOAMMO2      0x5067EE
#define ASM_AUTOMEDIC1     0x5068B7
#define ASM_AUTOMEDIC2     0x506B24
#define ASM_AUTOREPAIR1    0x4274B6
#define ASM_AUTOREPAIR2    0x4274E5
#define ASM_STAMINA1       0x457DB5
#define ASM_STAMINA2       0x4019DC
#define ASM_STAMINA3       0x4F6B9E
#define ASM_NORESTRICTION  0x4F579E
#define ASM_QUICKPLANT     0x51192D
#define ASM_QUICKDEFUSE    0x50D9D9
#define ASM_ANTIAFK        0x595B48
#define ASM_OPK1           0x4083BA
#define ASM_OPK2           0x4083C3
#define ASM_OPK3           0x4083CF
#define ASM_INVISIBLE      0x50B979
#define ASM_ARTILLERY1     0x4F6E6D
#define ASM_ARTILLERY2     0x4F710D
#define ASM_ARTILLERY3     0x597D86
#define ASM_ARTILLERY4     0x597E19
#define ASM_ARTILLERY5     0x597B61
#define ASM_ARTILLERY6     0x579DB3
#define ASM_ARTILLERY7     0x597D00
#define ASM_ARTILLERY8     0x597E96
#define ASM_ASSAULTAMMO    0x42B2FB
#define ASM_SNIPERAMMO     0x60F918
#define ASM_DEATHCAM       0x456DE5
#define ASM_ANTIFLASH      0x5ACB47
#define ASM_ANTIM14        0x5ACA73
#define ASM_MINEVIEW1      0x4485FC
#define ASM_MINEVIEW2      0x44867A
#define ASM_MINEVIEWFFA1   0x4485E3
#define ASM_MINEVIEWFFA2   0x448661
#define ASM_RADARGPS       0x59F7F4
#define ASM_RADARFFA1      0x59F812
#define ASM_RADARFFA2      0x5A1CB2
#define ASM_STW1           0x609280
#define ASM_STW2           0x609286
#define ASM_UNLOCKSWIM     0x4014CB
#define ASM_VEHICLENODMG   0x401000
#define ASM_VEHICLEINVI    0x42AC9A
#define ASM_VEHSUPERFIRE1  0x427430
#define ASM_VEHSUPERFIRE2  0x42745B
#define ASM_VEHSUPERFIRE3  0x42749B
#define ASM_ZERODELAY      0x51A83C
#define ASM_ROOMEVENT      0x5658B0
#define ASM_AUTOREADYSTART 0x5487DE
#define ASM_FAKEKIK        0x591573
#define ASM_MOVETOLOBBY    0x4DF9E5
#define ASM_BACKTOLOBBY    0x4DF66C

AddyLogger finish!
Credits: Alliance™,CyberMask,n4n033,Aerys2nd
Warrock int Dump:
Hellow can i get the pattern i need to update my addy logger from ph << my old addyLogger some addys are working but the others is not working.. Because of my patterns
ungriaralph is offline  
Old 02/25/2022, 10:55   #1122
 
elite*gold: 0
Join Date: Oct 2021
Posts: 44
Received Thanks: 6
Arrow Any one can release All Source Code of this?

Quote:
Originally Posted by Combatarmshackeraaa View Post
My old hacks function.h


Code:
#ifndef ADDRESS
#define ADDRESS

#pragma once


#define ADR_GAMENOTICE       0x0040EECD//***
#define ADR_GAMETEXT         0x00522CC0//***
#define ADR_DEVICEPOINTER    0xAE2B74//***
#define OFS_DEVICEPOINTER    0x2B930  
#define ADR_PLAYERPTR        0xAE92FC//*** 
#define ADR_SERVERPTR        0xAE3AC4//*** 
#define ADR_BASEPTR          0xB1BCF0//***
#define ADR_VIEWANGELS       0xAE2B70//***
#define ADR_GMALERTIP        0xB16928 + 0x10//***
#define ADR_GMALERTNAMEBASE  (ADR_GMALERTIP - 0x400)
#define ADR_GMALERTNAME      (ADR_GMALERTNAMEBASE + 0x10)
#define ADR_BACKINLOBBY      0x004E11EF
#define OFS_NOFALLDAMAGE     0x102E8  
#define OFS_PREMIUM          0x3CC    
#define OFS_PLAYERSTARE      0xC4CC   
#define OFS_SLOTS            0x9F1E4 
#define OFS_SUPERJUMP        0x10308 
#define OFS_ROOMMASTER       0x9C7E8
#define OFS_SUPERMASTER      0x9C750
#define OFS_PLAYERSLOT       0xB8368//***** 
#define ADR_SPEED            0x8C9E10//***** 
#define ADR_SPEEDROLLING     0x8C9C38//*****
#define ADR_SCOPE            0x934460//*****
#define ADR_GETBASE         ( 0xB6AC98 -  ADR_PLAYERPTR ) //******
#define ADR_NEWCBASE        ( ADR_GETBASE - 0x4  )
#define ADR_UNLOCKSWIM       0x00509C10//*****
#define ADR_SWIM1            0xADA95C //*****
#define ADR_SWIM2            0xAE933C //*****
#define ADR_INVEHICLE        0xAE9340 //*****
#define ADR_NOWATER_1        0xAF011C //*****
#define ADR_NOWATER_2        0xAF0120 //*****
#define ADR_WEAPONBASE       0xB07CE8 //******
#define ADR_SLOTBASE         0x9E040
#define ADR_PLAYERID         0xA40
#define ADR_DAMAGEAS         0x005105B0
#define ADR_UNLOXYGEN        0x00509CD2
#define ADR_PRONE            0x004F7D44
#define ADR_NOSPREAD         0x0051042C
#define ADR_NORECOIL         0x00500B8E
#define ADR_NORELOAD         0x0051C02A
#define ADR_BULLETS          0x00510696
#define ADR_BULLETSJMP       0x005106A2
#define ADR_STAMINA1         0x004575F8
#define ADR_STAMINA2         0x004F800B
#define ADR_STAMINA3         0x0050819A
#define ADR_VEHNODAMAGE      0x0042A91F
#define ADR_VEHINVISIBLE     0x0042AC8E
#define ADR_VEHSUPERFIRE1    0x004273C0
#define ADR_VEHSUPERFIRE2    0x004273EB
#define ADR_VEHSUPERFIRE3    0x0042742B
#define ADR_UNLAMMO          0x00513A0A
#define ADR_WALKTHRU         0x0076FB70
#define ADR_ANTIAFK          0x00592D17
#define ADR_QUICKSPAWN1      0x005E3249
#define ADR_QUICKSPAWN2      0x005E3263
#define ADR_FASTRELOAD1      0x0051C216
#define ADR_FASTRELOAD2      0x0059882E
#define ADR_STAMINAUP1       0x0040938E
#define ADR_STAMINAUP2       0x004093D5
#define ADR_CLIPA            0x00456646
#define ADR_CLIPS            0x0045665F
#define ADR_SNIPERPX         0x0045666D
#define ADR_COMPBANDAGE      0x004566C8
#define ADR_DEATHCAM         0x004566FA
#define ADR_ANTIFLASH        0x005A9818
#define ADR_ANTIM14          0x005A9744
#define ADR_MINEINFO1        0x00448404
#define ADR_MINEINFO2        0x00448482
#define ADR_MINEINFOFFA1     0x004483EB
#define ADR_MINEINFOFFA2     0x00448469
#define ADR_INVISIBLE        0x0050CFBC
#define ADR_RADARGPS         0x0059C874
#define ADR_RADARFFA1        0x0059C892
#define ADR_RADARFFA2        0x0059EAE6
#define ADR_NORESTRICTION    0x004F6C4F
#define ADR_AUTOSHOT         0x004F6C44
#define ADR_QUICKPLANT       0x00512E29
#define ADR_QUICKDEFUSE      0x0050EF26
#define ADR_PLANTANYWHERE    0x0057F8F8
#define ADR_BONESHOT         0x0044A575
#define ADR_AUTOHEAL1        0x00507D93
#define ADR_AUTOHEAL2        0x00508000
#define ADR_AUTOAMMO1        0x00507C8A
#define ADR_AUTOAMMO2        0x00507CCA
#define ADR_AUTOREPAIR1      0x00427446
#define ADR_AUTOREPAIR2      0x00427475
#define ADR_AUTOREPAIR3      0x004274F2
#define ADR_ANTIOVERHEART    0x00724B46
#define ADR_SHOTTHRU1        0x006041D0
#define ADR_SHOTTHRU2        0x006041D6
#define ADR_PREMCROSSCALL1   0x0057702A
#define ADR_PREMCROSSCALL2   0x00407F34
#define ADR_PREMCROSSCHANGE  0x00577050
#define ADR_PREMIUMCROSS1    0x00577172
#define ADR_PREMIUMCROSS2    0x0057717A
#define ADR_UNLOCKCROSS      0x00577385
#define ADR_OPK1             0x00408103
#define ADR_OPK2             0x0040810C
#define ADR_OPK3             0x00408118
#define ADR_ZERODELAY        0x0051BD25
#define ADR_SPAMBOT          0x0051F1F1
#define ADR_FAKEKICK         0x0058EB9B
#define ADR_USERKILL         0x00416CFC
#define ADR_ARTILLERY0       0x004F82E0
#define ADR_ARTILLERY1       0x004F8555
#define ADR_ARTILLERY2       0x00594F1E
#define ADR_ARTILLERY3       0x00594FB1
#define ADR_ARTILLERY4       0x00594CF9
#define ADR_ARTILLERY5       0x00577A01
#define ADR_ARTILLERY6       0x00594E98
#define ADR_ARTILLERY7       0x0059502E
#define ADR_VEHJUMP1         0x0045E153
#define ADR_VEHJUMP2         0x0045E15C
#define ADR_VEHJUMP3         0x8C9AA4
#define ADR_AUTOREADYSTART   0x005469B8
#define ADR_WEAPONGRAVITY    0x8C9A38
#define ADR_PLAYERSIZE       0x0B18   
#define ADR_USERNAME         0xB1C334
#define ADR_USERIP          (0xB1C1E8+0x10)
#define ADR_CHECKREADYSTART  0xB1C738
#define ADR_CLASSROOMPOINTER 0xAE9554
#define ADR_WEAPONGLOBAL1    0xB07CA8
#define ADR_WEAPONGLOBAL2    0xB5C5E8
#define ADR_FASTAMMO         0xAED90C
#define ADR_FASTMEDIC        0xAED914
#define ADR_FASTFLAG         0xAED924
#define ADR_NOBOUNDS1        0xB7AB24
#define ADR_NOBOUNDS2        0xB7AB28
#define ADR_NOBOUNDS3        0xB7AB36



#define IsReady ((ADR_CHECKREADYSTART)+(ADR_PLAYERSIZE*(*(int*)(*(DWORD*)(ADR_SERVERPTR)+OFS_PLAYERSLOT)) ))	


class CVehicle;

struct  vectorB
{
	float x,a,z,b,y,d,m,g,s;
};

struct  vectorA
{
	float x,z,y;
};


struct CPlayer
{
		char unknown0[50328]; //0x0000
	BYTE index; //0xC498  
		char unknown50329[43]; //0xC499
	CVehicle* wVehicle; //0xC4C4  
		char unknown50376[15588]; //0xC4C8
	float pitch; //0x101AC  
		char unknown65968[24]; //0x101B0
	float yaw; //0x101C8  
		char unknown65996[8]; //0x101CC
	vectorA pos;  //0x101D4  
		char unknown66008[14]; //0x101D8
	WORD weapon; //0x101EE  
		char unknown66032[92]; //0x101F0
	__int32 status; //0x1024C  
		char unknown66128[164]; //0x10250
	vectorB pos1; //0x102F4  
		char unknown66296[172]; //0x102F8
	BYTE shotting; //0x103A4  
};

struct CLocal
{
	char unknown51[32];		    //0x0000
	vectorA pos;				//0x0020
	char unknown52[36];		    //0x002C
	float pitch;				//0x0050
	float yaw;					//0x0054
	char unknown53[16];		    //0x0058
	float view_down;			//0x0068
	float view_up;				//0x006C
	float fovx;					//0x0070
	float fovy;					//0x0074
};

struct CPlayerInfo
{

		char unknown0[1288]; //0x0000
	char ip[16]; //0x0508  
		char unknown1304[300]; //0x0518
	char name[20]; //0x0644  
		char unknown1624[836]; //0x0658
	__int32 health; //0x099C  
		char unknown2464[340]; //0x09A0
	BYTE team; //0x0AF4  
		char unknown2805[13671]; //0x0AF5

};


struct  CBase
{
        CPlayer* local;           
    char unknown0[ADR_NEWCBASE];  
        CPlayer** player;        
};       

struct CWeaponInformations
{
	char _0x0000[20]; 
	char Name[25]; //0x0014 
	char _0x002D[39];
		char ShortName[4]; //0x0054 
	char _0x0058[1];
		char Animation[4]; //0x0059 
	char _0x005D[5219];
		DWORD dwDamage; //0x14C0 
	DWORD dwDefence; //0x14C4 
	DWORD dwRange; //0x14C8 
	DWORD dwAmmoNum; //0x14CC 
	DWORD dwMagazineNum; //0x14D0 
	DWORD dwEffectRange; //0x14D4
	DWORD dwParabola; //0x14D8 ?
	float ReactAmount; //0x14DC 
	float ReactRecovery; //0x14E0 
	float Accurate; //0x14E4 
	DWORD dwShotSpeed; //0x14E8 
	DWORD dwWeight; //0x14EC 
};

struct CWeaponGlobalPtr
{
	CWeaponInformations* WeaponInformations[340]; //0x0000
};

struct CWeaponGlobal
{
	char _0x0000[64];
	   CWeaponGlobalPtr* WeaponPtr; 
};

#endif
Code:
#include "cFunction.h"
#include "cAimbot.h"

cHackvar hacks;
mYcAimbot * cAimBot;

CPlayerInfo* GetPlayerInfo(int index)
{
	if ( index > 32 ) return 0;
	DWORD dwBasePointer = ADR_BASEPTR;
	DWORD dwSize        = ADR_PLAYERSIZE;
	return (CPlayerInfo*) (dwBasePointer + (index*dwSize));
}; 
    CBase *g_pBase = (CBase*)ADR_PLAYERPTR;




bool bValueStored = false;
bool oncea = false;
//  ==
D3DCOLOR UrbaESP;
D3DCOLOR UrbaDistance;
char szhealth[100];
char szDistance[100];
//  ===
DWORD OldProtection;
//  ===
bool  cSwim        = true;
//  ===
BYTE Slot5,Slot6,Slot7,Slot8;
bool  cSlot        = true;
//  ===
bool cPlayerKill   = true;
//  ===
int cWater1,cWater2;
bool cWaterB       = true;
//  ===
bool  cWepGrav     = true;
//  ===
bool cVehJump      = true;
//  ===
bool  cSpeedRoll   = true;
bool  cSpeed       = true;
//  ===
bool  cSuperMaster = true;
long  SuperMaster;
// ====
bool  cCrossHairs1 = true;
bool  cCrossHairs2 = true;
bool  cCrossHairs3 = true;
bool  cCrossHairs4 = true;
bool  cCrossHairs5 = true;
bool  cCrossHairs9 = true;
// ==
DWORD dwGame   = 0;
DWORD dwServer = 0;
// ==

DWORD *serverptr = (DWORD*)ADR_SERVERPTR;


#define MAX_WEAPONS 350

struct sWeaponsOriginalValues
{
     DWORD dwWeight;
	 DWORD dwShotSpeed;
};

sWeaponsOriginalValues weaponsOriginalValues[MAX_WEAPONS]; 

struct t_weap
{
	char unknown[12];
	int  id;
	char lname[32];
	char sname1[32];
	char sname2[32];
	char sname3[32];
	char data[5336];
};
 
struct t_slot
{
	BYTE  enab;     
	BYTE  type;   
    BYTE  id;        
	BYTE  novaule;
    char  dum1[33]; 
    char  sname[16];
    char  dum2[19]; 
    DWORD adr_weap; 
    DWORD adr_inv;   
};

struct t_invslot
{
    BYTE  enab; 
    BYTE  type;     
    BYTE  id;    
	BYTE  novaule;
    char  dum1[33];  
    char  sname[16];
    char  dum2[19];  
    DWORD adr_weap;
    DWORD adr_inv; 
};

DWORD dwADR_WEAPONBASE                    =     ADR_WEAPONBASE;
DWORD dwOFS_SLOTBASE                      =		ADR_SLOTBASE;
DWORD dwOFS_PLAYERID                      =     ADR_PLAYERID;


t_weap          *pweap[342]; 
t_slot          *pslot[8];     
t_invslot       *pinvoslot[8];
 
t_invslot *WPNinvslotadr(int pclass, int slot)
{
    return (t_invslot *)(*serverptr+dwOFS_SLOTBASE+(pclass*0x50)+(slot*0x50));
}

t_slot *WPNslotadr(int pclass, int slot)
{
    return (t_slot *)(*serverptr+dwOFS_SLOTBASE+(pclass*0x280)+(slot*0x50));
}

void WPNput(int pclass, int slot, int weappon)
{
    t_slot   *pslot;
    if (weappon<0 || pweap[weappon] == 0) return;
 
    pslot=WPNslotadr(pclass,slot);
    pslot->adr_weap=(DWORD)pweap[weappon];
    strcpy(pslot->sname, pweap[weappon]->lname);
    pslot->id = weappon;   
    pslot->type = 0x44;
    pslot->enab = 1;  
}


void find_weapons(void)
{
    DWORD *p_weapbase, *baseadr;
    t_weap *weap;
 
    for (int i=0; i<342; i++)pweap[i]=0;
    p_weapbase=(DWORD *)dwADR_WEAPONBASE;
    baseadr=(DWORD*)(*p_weapbase);
 
    for (int b=0;b<342;b++)
    {
        weap=(t_weap *)(*baseadr);
        if (weap)pweap[b]=weap;
        baseadr++;
    }
}

int WPNget(int pclass, int slot)
{
    t_slot  *pslot;
    pslot=WPNslotadr(pclass,slot);
    return pslot->id;
}



BYTE NOP           [8] = {0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90};
BYTE JMP           [1] = {0xEB};
BYTE RETN          [1] = {0xC3};
BYTE RETNC         [3] = {0xC2,0x0C,0x00};
BYTE ANTIM14ON     [6] = {0xE9,0xAA,0x00,0x00,0x00,0x90};
BYTE INVISIBLEON   [3] = {0x8D,0x47,0x0C};
BYTE QPLANTON      [2] = {0xEB,0x3F};
BYTE QDEFUSEON     [2] = {0xEB,0x42};
BYTE VEHFIREON     [2] = {0xEB,0x0A};
BYTE REPAIRJMP     [2] = {0xEB,0x24};
BYTE HEADON        [5] = {0xB9,0x64,0xC1,0x54,0xA5};
BYTE NEKCON        [5] = {0xB9,0x1D,0xFD,0x87,0x9F};
BYTE EXTRACLIPON   [3] = {0xB0,0x01,0x90};
BYTE STWON         [2] = {0xD9,0x40};
BYTE AUTOHEALON    [6] = {0xE9,0x3F,0x02,0x00,0x00,0x90};
BYTE CROSSSELECT1  [5] = {0xB8,0x01,0x00,0x00,0x00};
BYTE CROSSSELECT2  [5] = {0xB8,0x02,0x00,0x00,0x00};
BYTE CROSSSELECT3  [5] = {0xB8,0x03,0x00,0x00,0x00};
BYTE CROSSSELECT4  [5] = {0xB8,0x04,0x00,0x00,0x00};
BYTE CROSSSELECT5  [5] = {0xB8,0x05,0x00,0x00,0x00};
BYTE CROSSSELECT9  [5] = {0xB8,0x09,0x00,0x00,0x00};
BYTE STAMINAUPON   [3] = {0xB1,0x01,0x90};
BYTE SNIPERXON     [2] = {0xB3,0x01};
BYTE PLANTDEFON    [3] = {0xB3,0x01,0x88};
BYTE DAMAGEASPUNCH [7] = {0xB8,0x01,0x00,0x00,0x00,0x90,0x90};
BYTE DAMAGEASCOLT  [7] = {0xB8,0x07,0x00,0x00,0x00,0x90,0x90};


BYTE BULLETOFF     [6] = {0xFF,0x85,0x14,0xFF,0xFF,0xFF};
BYTE KICKASOFF     [6] = {0x8D,0x8F,0xB0,0x96,0x09,0x00};
BYTE USERKILLOFF   [6] = {0xD9,0x58,0x50,0xDB,0x45,0x28};




CPatch cProne         (ADR_PRONE,NOP,2);
CPatch cNoRecoil      (ADR_NORECOIL,RETNC,3);
CPatch cNoReload      (ADR_NORELOAD,NOP,6);
CPatch cNoSpread      (ADR_NOSPREAD,NOP,6);
CPatch cStamina1      (ADR_STAMINA1,JMP,1);
CPatch cStamina2      (ADR_STAMINA2,JMP,1);
CPatch cStamina3      (ADR_STAMINA3,JMP,1);
CPatch cVehNoDamage   (ADR_VEHNODAMAGE,RETN,1);
CPatch cVehInvisible  (ADR_VEHINVISIBLE,NOP,3);
CPatch cVehSuperFire1 (ADR_VEHSUPERFIRE1,NOP,2);
CPatch cVehSuperFire2 (ADR_VEHSUPERFIRE2,NOP,2);
CPatch cVehSuperFire3 (ADR_VEHSUPERFIRE3,VEHFIREON,2);
CPatch cVehOverHeart  (ADR_ANTIOVERHEART,NOP,4);
CPatch cUnlAmmo       (ADR_UNLAMMO,RETN,1);
CPatch cWalkThru      (ADR_WALKTHRU,NOP,3);
CPatch cAntiAfk       (ADR_ANTIAFK,JMP,1);
CPatch cQuickSpawn1   (ADR_QUICKSPAWN1,JMP,1);
CPatch cQuickSpawn2   (ADR_QUICKSPAWN2,NOP,6);
CPatch cFastReload1   (ADR_FASTRELOAD1,NOP,2);
CPatch cFastReload2   (ADR_FASTRELOAD2,NOP,2);
CPatch cMineInfo1     (ADR_MINEINFO1,NOP,6);
CPatch cMineInfo2     (ADR_MINEINFO2,NOP,6);
CPatch cMineInfoFFA1  (ADR_MINEINFOFFA1,NOP,2);
CPatch cMineInfoFFA2  (ADR_MINEINFOFFA2,NOP,2);
CPatch cAntiFlash     (ADR_ANTIFLASH,JMP,1);
CPatch cAntiM14       (ADR_ANTIM14,ANTIM14ON,6);
CPatch cInvisible     (ADR_INVISIBLE,INVISIBLEON,3);
CPatch cRadarGPS      (ADR_RADARGPS,JMP,1);
CPatch cRadarFFA1     (ADR_RADARFFA1,JMP,1);
CPatch cRadarFFA2     (ADR_RADARFFA2,JMP,1);
CPatch cNoRestriction (ADR_NORESTRICTION,NOP,6);
CPatch cQuickPlant    (ADR_QUICKPLANT,QPLANTON,2);
CPatch cQuickDefuse   (ADR_QUICKDEFUSE,QDEFUSEON,2);
CPatch cHeadShot      (ADR_BONESHOT,HEADON,5);
CPatch cNeckShot      (ADR_BONESHOT,NEKCON,5);
CPatch cAutoHeal1     (ADR_AUTOHEAL1,AUTOHEALON,6);
CPatch cAutoHeal2     (ADR_AUTOHEAL2,NOP,6);
CPatch cAutoAmmo1     (ADR_AUTOAMMO1,JMP,1);
CPatch cAutoAmmo2     (ADR_AUTOAMMO2,NOP,6);
CPatch cAutoRepair1   (ADR_AUTOREPAIR1,NOP,6);
CPatch cAutoRepair2   (ADR_AUTOREPAIR2,NOP,6);
CPatch cAutoRepair3   (ADR_AUTOREPAIR3,REPAIRJMP,2);
CPatch cExtraClipA    (ADR_CLIPA,EXTRACLIPON,3);
CPatch cExtraClipS    (ADR_CLIPS,EXTRACLIPON,3);
CPatch cPXStamina1    (ADR_STAMINAUP1,STAMINAUPON,3);
CPatch cPXStamina2    (ADR_STAMINAUP2,STAMINAUPON,3);
CPatch cDeathCam      (ADR_DEATHCAM,NOP,2);
CPatch cSnierPX       (ADR_SNIPERPX,SNIPERXON,2);
CPatch cCompBandage   (ADR_COMPBANDAGE,EXTRACLIPON,3);
CPatch cShotThru1     (ADR_SHOTTHRU1,STWON,2);
CPatch cShotThru2     (ADR_SHOTTHRU2,STWON,2);
CPatch cOPK1          (ADR_OPK1,NOP,3);
CPatch cOPK2          (ADR_OPK2,NOP,3);
CPatch cOPK3          (ADR_OPK3,NOP,2);
CPatch cZeroDelay     (ADR_ZERODELAY,NOP,2);
CPatch UnLockSwim     (ADR_UNLOCKSWIM,NOP,2);
CPatch cCrossChange   (ADR_PREMCROSSCHANGE,NOP,2);
CPatch cPremCross1    (ADR_PREMIUMCROSS1,NOP,6);
CPatch cPremCrossSel1 (ADR_PREMIUMCROSS2,CROSSSELECT1,5);
CPatch cPremCrossSel2 (ADR_PREMIUMCROSS2,CROSSSELECT2,5);
CPatch cPremCrossSel3 (ADR_PREMIUMCROSS2,CROSSSELECT3,5);
CPatch cPremCrossSel4 (ADR_PREMIUMCROSS2,CROSSSELECT4,5);
CPatch cPremCrossSel5 (ADR_PREMIUMCROSS2,CROSSSELECT5,5);
CPatch cPremCrossSel9 (ADR_PREMIUMCROSS2,CROSSSELECT9,5);
CPatch cUnLockCross   (ADR_UNLOCKCROSS,NOP,2);
CPatch cAutoShot      (ADR_AUTOSHOT,NOP,6);
CPatch cUnlOxygen     (ADR_UNLOXYGEN,NOP,2);
CPatch cPlantDef      (ADR_PLANTANYWHERE,PLANTDEFON,3);
CPatch cPunchDamage   (ADR_DAMAGEAS,DAMAGEASPUNCH,7);
CPatch cColtDamage    (ADR_DAMAGEAS,DAMAGEASCOLT,7);
CPatch cArtillery0    (ADR_ARTILLERY0,NOP,2);
CPatch cArtillery1    (ADR_ARTILLERY1,NOP,2);
CPatch cArtillery2    (ADR_ARTILLERY2,JMP,1);
CPatch cArtillery3    (ADR_ARTILLERY3,JMP,1);
CPatch cArtillery4    (ADR_ARTILLERY4,JMP,1);
CPatch cArtillery5    (ADR_ARTILLERY5,NOP,5);
CPatch cArtillery6    (ADR_ARTILLERY6,JMP,1);
CPatch cArtillery7    (ADR_ARTILLERY7,NOP,6);
CPatch cVehJump1      (ADR_VEHJUMP1,NOP,2);
CPatch cVehJump2      (ADR_VEHJUMP2,NOP,2);

void GETBACKLOBBY (void)
{  
   dwServer  =  *(DWORD*)ADR_SERVERPTR;
   if (dwServer !=0 )
   {
	   DWORD dwKickMeNow    =  *(DWORD*)(dwServer+0x996B0);
	   DWORD GetMeInLobby   =   ADR_BACKINLOBBY;

		__asm 
		{	
			  mov  eax,dwKickMeNow
			  call [GetMeInLobby]
		}
   }
}

void cHackvar :: SpamBot ( char *SpamTexting  )
{
	DWORD dwWriteChat = ADR_SPAMBOT;
    Sleep(2500);
	__asm
	{
		mov  ecx,SpamTexting 
		call dwWriteChat
	}
}


void CallCrosshair (void)
{
//	VMProtectBeginMutation("CallCrosshair");
    dwGame   = *(DWORD*)ADR_PLAYERPTR;
	if ( dwGame !=0 )
	{
		DWORD CrosshairsCall1 = ADR_PREMCROSSCALL1;
		DWORD CrosshairsCall2 = ADR_PREMCROSSCALL2;

	    cCrossChange.Patch();	

		__asm
		{
			call [CrosshairsCall2]
			mov  eax,dword ptr ds:[eax+0x30]
			call [CrosshairsCall1]
		}

		cCrossChange.Restore();
	}
//	VMProtectEnd();
}

DWORD dwBulletsJMP = NULL;
__declspec (naked) void new_bullets (void)
{
   // VMProtectBeginMutation("new_bullets");
	if ( hacks.BULLETS !=0 )
	{
		__asm
		{
			mov ecx,hacks.BULLETS
			mov dword ptr ss :[ebp-0x124],ecx
			jmp dword ptr [dwBulletsJMP]
		}
	}
  //VMProtectEnd();
}


DWORD IDKick = NULL;
DWORD fakeKickJmp = NULL;
__declspec (naked) void new_fakekick()
{
	//VMProtectBeginMutation("new_fakekick");
	if ( hacks.KICKAS !=0 )
	{
        __asm
		{ 
			    lea  ecx, dword ptr [edi+0x996B0]
		        mov  eax,IDKick
				jmp  dword ptr [fakeKickJmp] 
		}
	}
	//VMProtectEnd();
}


DWORD UserKillKJmp = NULL;
DWORD UserID = NULL;
__declspec (naked) void new_userkill(void)
{
	//VMProtectBeginMutation("new_userkill");
	if ( hacks.USERKILL !=0 && hacks.PLAYERFIND !=0 )
	{
		__asm
		{
			mov ecx,UserID
			mov dword ptr [eax+0x1C],ecx
			jmp dword ptr [UserKillKJmp]
		}
	}
	//VMProtectEnd();
}


void __cdecl GetGameNotice ( char* Text )
{
    DWORD dwGameNotice = ADR_GAMENOTICE;
	__asm
	{
		push Text
		call [dwGameNotice]
		pop  ecx
	}
}

void __cdecl PrintText ( int * UpGames , int * InChat, char *szName, BYTE *Red, BYTE *Green, BYTE *Blue )
{  
	__asm
	{
		 push    UpGames
		 push    InChat
		 push    Red
		 pop     edi
		 push    Green
		 push    Blue
		 push    szName
		 mov     esi,ADR_GAMETEXT
		 call    esi
	}
}


void cHackvar :: cAsmFunction (void)
{
        //VMProtectBeginMutation("cAsmFunction");
		// == USER KILL 
		 if ( hacks.USERKILL !=0 && hacks.PLAYERFIND !=0 )
		 {
			cPlayerKill = false;
			dwGame   = *(DWORD*)ADR_PLAYERPTR;
			if ( dwGame !=0 )
			{
				UserID = ( hacks.PLAYERFIND-1);
				CPlayerInfo *pInfo      = GetPlayerInfo (UserID);
				CPlayerInfo *pLocalInfo = GetPlayerInfo( g_pBase->local->index );
				if ( (pLocalInfo->health > 0) && ( pInfo->team != pLocalInfo->team ) && (pInfo->health > 0) && strcmp(hacks.SNAME,"Empty Slot")!=0 )
				{	
					UserKillKJmp = (ADR_USERKILL+0x6);
					tools->DetourCreate((BYTE*)ADR_USERKILL,(BYTE*)new_userkill,6);
				}else{
					patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
				}
			}else{
		          patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
				}
		 }else{
				if ( cPlayerKill == false )
				{
					patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
					cPlayerKill = true;
				}
		 }
		// == KICK AS
		if ( hacks.KICKAS !=0  )
		{
				switch (  hacks.KICKAS )
				{
					case 1 : ( IDKick = 0x25 ); break;
					case 2 : ( IDKick = (hacks.PLAYERFIND-1)  ); break;
				}
				if (hacks.BGHOSTKICKER)
				{
					fakeKickJmp  = (ADR_FAKEKICK+0x6);
					tools->DetourCreate((BYTE*)ADR_FAKEKICK,(BYTE*)new_fakekick,6);
					hacks.BGHOSTKICKER=false;
				}
		}else{
				if (!hacks.BGHOSTKICKER)
				{  
				    patch->memcpy_s((void*)ADR_FAKEKICK,(BYTE*)KICKASOFF,6);
					hacks.BGHOSTKICKER=true;
				}
		}
		// == Artillery
		if ( hacks.ARTILLERY == 1 )
		{
				cArtillery0.Patch();
				cArtillery1.Patch();
				cArtillery2.Patch();
				cArtillery3.Patch();
				cArtillery4.Patch();
				cArtillery5.Patch();
				cArtillery6.Patch();
				cArtillery7.Patch();
		}else{
				cArtillery0.Restore();
				cArtillery1.Restore();
				cArtillery2.Restore();
				cArtillery3.Restore();
				cArtillery4.Restore();
				cArtillery5.Restore();
				cArtillery6.Restore();
				cArtillery7.Restore();
		}
	    // == WEAPON DAMAGE
		if ( hacks.WEAPONDAMAGE == 1 )
		{
			cPunchDamage.Patch();
		}
		if ( hacks.WEAPONDAMAGE == 2 )
		{
			cPunchDamage.Restore();
			cColtDamage.Patch();
		}
		if ( hacks.WEAPONDAMAGE == 0 )
		{
			cPunchDamage.Restore();
			cColtDamage.Restore();
		}
	    // == CROSSHAIR
		if ( hacks.CROSSHAIR !=0 )
		{
			cPremCross1.Patch();
			cUnLockCross.Patch();

            if ( hacks.CROSSHAIR == 1 )
			{
					if ( cCrossHairs1 == true )
					{
						cPremCrossSel1.Patch();
						CallCrosshair();
						cCrossHairs1 = false;
						cCrossHairs2 = true;
						cCrossHairs3 = true;
						cCrossHairs4 = true;
						cCrossHairs5 = true;
					}
		    }
            if ( hacks.CROSSHAIR == 2 )
			{	
					if ( cCrossHairs2 == true )
					{
						cPremCrossSel1.Restore();
						cPremCrossSel2.Patch();
						CallCrosshair();
						cCrossHairs2 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs1 = true;
					}
			}
            if ( hacks.CROSSHAIR == 3 )
			{
				if ( cCrossHairs3 == true )
				{
						cPremCrossSel2.Restore();
						cPremCrossSel3.Patch();
						CallCrosshair();
						cCrossHairs3 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 4 )
			{
				if ( cCrossHairs4 == true )
				{
						cPremCrossSel3.Restore();
						cPremCrossSel4.Patch();
						CallCrosshair();
						cCrossHairs4 = false;
						cCrossHairs5 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 5 )
			{
				if ( cCrossHairs5 == true )
				{
						cPremCrossSel4.Restore();
						cPremCrossSel5.Patch();
						CallCrosshair();
						cCrossHairs5 = false;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 6 )
			{
				if ( cCrossHairs9 == true )
				{
						cPremCrossSel5.Restore();
						cPremCrossSel9.Patch();
						CallCrosshair();
                        cCrossHairs9 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}

	   }else{
				if ( cCrossHairs1 == false || cCrossHairs2 == false || cCrossHairs3 == false || cCrossHairs4 == false || cCrossHairs5 == false || cCrossHairs9 == false )
				{
						cPremCross1.Restore();
						cPremCrossSel1.Restore();
						cPremCrossSel2.Restore();
						cPremCrossSel3.Restore();
						cPremCrossSel4.Restore();
						cPremCrossSel5.Restore();
						cPremCrossSel9.Restore();
						cUnLockCross.Restore();
						CallCrosshair();
						cCrossHairs1 = true;
						cCrossHairs2 = true;
						cCrossHairs3 = true;
						cCrossHairs4 = true;
						cCrossHairs5 = true;
						cCrossHairs9 = true;
				}
	    }

		if(!bValueStored)
		{
			CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
			CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

			if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
			{
					for(int i = 0; i < MAX_WEAPONS; i++)
					{
							weaponsOriginalValues[i].dwWeight = weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwWeight;
							weaponsOriginalValues[i].dwWeight = weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwWeight;
							weaponsOriginalValues[i].dwShotSpeed = weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwShotSpeed;
weaponsOriginalValues[i].dwShotSpeed = weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwShotSpeed;
							bValueStored = true;
					}
			}
		}
	    // NO WEAPON RANGE
	    if ( hacks.WEAPONRANGE == 1 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
							weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwRange = 1000000;
							weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwRange = 1000000;
				}
			}
		}
	    // EXTRA RANGE
		if ( hacks.EXTRARANGE !=0 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
					switch ( hacks.EXTRARANGE )
					{
						case 1 : 
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 10000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 10000;
						break;
						case 2 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 20000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 20000;
						break;
						case 3 :
					    		weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 30000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 30000;
						break;
						case 4 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 40000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 40000;
						break;
						case 5 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 1000000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 1000000;
						break;
					}
				}
			}
		}
	    // == Super Weapons
		if ( hacks.WEAPONPLUS == 1 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
						weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwShotSpeed = 50000;
						weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwShotSpeed = 50000;
				}
			}
		}else{
				if ( bValueStored )
				{
					CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
					CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

					if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
					{
						for(int i = 0; i < MAX_WEAPONS; i++)
						{
							weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwShotSpeed = weaponsOriginalValues[i].dwShotSpeed;
							weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwShotSpeed = weaponsOriginalValues[i].dwShotSpeed;
						}
					}
				}
		}
	    // == No Weapon weight
	    if ( hacks.NOWEAPONWEIGHT == 1 )
		{
					if ( g_pBase->local )
					{ 
						CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
						CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

						if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
						{
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwWeight = 0;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwWeight = 0;
						}
					}
		}else{
					if ( bValueStored )
					{
						CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
						CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

						if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
						{
							for(int i = 0; i < MAX_WEAPONS; i++)
							{
								weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwWeight = weaponsOriginalValues[i].dwWeight;
								weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwWeight = weaponsOriginalValues[i].dwWeight;
							}
						}
					}
		}
	    // == UNLIMITED OXYGEN
		if ( hacks.UNLOXYGEN == 1 )
		{
			cUnlOxygen.Patch();
		}else{
			cUnlOxygen.Restore();
		}
	    // == COMP BANDAGE 
	    if ( hacks.COMPBANDAGE == 1 )
		{
			 cCompBandage.Patch();
		}else{
			 cCompBandage.Restore();
		}
	    // == SNIPER ZOOM x2
	    if ( hacks.SZOOM == 1 )
		{
			cSnierPX.Patch();
		}else{

			cSnierPX.Restore();
		}
	    // == DEATH CAM
        if ( hacks.DTCAM == 1 )
		{
           cDeathCam.Patch();
		}else{
	      cDeathCam.Restore();
		}
	    // == SP UP
		if ( hacks.SPUP == 1 )
		{
			cPXStamina1.Patch();
			cPXStamina2.Patch();
		}else{
			cPXStamina1.Restore();
			cPXStamina2.Restore();
		}
		/*
	    // == CLAN WAR
	    if ( hacks.CLANTAG == 1 )
		{
			*(int*)(ADR_CLANTAG_1) = 1;
			*(int*)(ADR_CLANTAG_2) = 1;
			*(int*)(ADR_CLANTAG_3) = 1;
			*(int*)(ADR_CLANTAG_4) = 1;
			*(int*)(ADR_ENBLCLANCHAT) = 1;
		*/
		//	memcpy((void*)ADR_CLANNAME,/*NexonArmy*/XorStr<0x3B,10,0xBF748C35>("\x75\x59\x45\x51\x51\x01\x33\x2F\x3A"+0xBF748C35).s,9);
		//}
		
	    // == BULLETS
		if ( hacks.BULLETS !=0 )
		{
			if ( hacks.BBULLET )
			{
				dwBulletsJMP = ADR_BULLETSJMP;
				tools->DetourCreate((BYTE*)ADR_BULLETS,(BYTE*)new_bullets,6);
				hacks.BBULLET = false;
			}
		}else{
			if (!hacks.BBULLET)
			{  
				patch->memcpy_s((void*)ADR_BULLETS,BULLETOFF,6);
				hacks.BBULLET = true;
			}
		}
	    // == ZERO DELAY
	    if ( hacks.ZERODELAY == 1 )
		{
                cZeroDelay.Patch();
		}else{
			    cZeroDelay.Restore();
		}
	    // == OPK
	    if ( hacks.OPK == 1 )
		{
				cOPK1.Patch();
				cOPK2.Patch();
				cOPK3.Patch();
		}else{
				cOPK1.Restore();
				cOPK2.Restore();
				cOPK3.Restore();
		}
	    // == PRONE
		if ( hacks.PRONE == 1 )
		{
				cProne.Patch();
		}else{
				cProne.Restore();
		     }
	    // == SHOTTHRU
		if ( hacks.SHOTTHRU == 1 )
		{
			dwGame   = *(DWORD*)ADR_PLAYERPTR;
			if ( dwGame !=0 )
			{
					cShotThru1.Patch();
					cShotThru2.Patch();
			}else{
					cShotThru1.Restore();
					cShotThru2.Restore();
			}
		}else{
					cShotThru1.Restore();
					cShotThru2.Restore();
		     }
	    // == EXTRA CLIP S
		if ( hacks.EXTRACLIPS == 1 )
		{
				cExtraClipS.Patch();
		}else{
			    cExtraClipS.Restore();
		     }
	    // == EXTRA CLIP A
		if ( hacks.EXTRACLIPA == 1 )
		{
				cExtraClipA.Patch();
		}else{
			    cExtraClipA.Restore();
		     }
		// == VEH NO OVER HEART
		if ( hacks.VEHOVERHEART == 1 )
		{
			cVehOverHeart.Patch();
		}else{
            cVehOverHeart.Restore();
		}
	    // == AUTO REPAIR
		if ( hacks.AUTOREPAIR == 1 )
		{
				cAutoRepair1.Patch();
				cAutoRepair2.Patch();
				cAutoRepair3.Patch();
		}else{
			    cAutoRepair1.Restore();
			    cAutoRepair2.Restore();
			    cAutoRepair3.Restore();
		     }
	    // == AUTO AMMO
		if ( hacks.AUTOAMMO == 1 )
		{
				cAutoAmmo1.Patch();
				cAutoAmmo2.Patch();
		}else{
			    cAutoAmmo1.Restore();
			    cAutoAmmo2.Restore();
		     }
	    // == AUTO HEAL
		if ( hacks.AUTOHEAL == 1 )
		{
				cAutoHeal1.Patch();
				cAutoHeal2.Patch();
		}else{
			    cAutoHeal1.Restore();
			    cAutoHeal2.Restore();
		     }
	    // == BONE SHOT
		if ( hacks.BONESHOT == 1 )
		{
			cHeadShot.Patch();
		}
		if ( hacks.BONESHOT == 2 )
		{
            cHeadShot.Restore();
 			cNeckShot.Patch();
		}
		if ( hacks.BONESHOT == 0 )
		{
			cHeadShot.Restore();
			cNeckShot.Restore();
		}
	    // == QUICK PLANT/DEFUSE
		if ( hacks.QUICKPLANTDEFUSE == 1 )
		{
				cQuickDefuse.Patch();
				cQuickPlant.Patch();
		}else{
				cQuickDefuse.Restore();
				cQuickPlant.Restore();
		     }
		// == Plant Def Anywhere
		if ( hacks.QUICKPLANTDEFUSE == 1 && hacks.PLANTDEFUSEANYWHERE == 1 )
		{
			cPlantDef.Patch();

		}else{

			cPlantDef.Restore();
		}

		// == AUTO SHOT
		if ( hacks.AUTOSHOT == 1 )
		{
			cAutoShot.Patch();
		}else{
			cAutoShot.Restore();
		}
	    // == NO RESTRICTION
		if ( hacks.NORESTRICTION == 1 )
		{
				cNoRestriction.Patch();
		}else{
				cNoRestriction.Restore();
		     }
	    // == RADARGPS
		if ( hacks.RADAR == 1 )
		{
			dwServer = *(DWORD*)ADR_SERVERPTR;
			if ( dwServer !=0 )
			{
				DWORD dwFFA = *(DWORD*)(dwServer+0x9C5C0);
				if ( dwFFA  == 1 )
				{ 
					cRadarFFA1.Patch();
					cRadarFFA2.Patch();
				}else{
					cRadarFFA1.Restore();
					cRadarFFA2.Restore();
				}
			}
				    cRadarGPS.Patch();
		}else{
				cRadarGPS.Restore();
                cRadarFFA1.Restore();
                cRadarFFA2.Restore();
		     }
	    // == INVISIBLE
		if ( hacks.INVISIBLE == 1 )
		{
				cInvisible.Patch();
		}else{
				cInvisible.Restore();
		     }
	    // == ANTI M14
		if ( hacks.ANTIM14 == 1 )
		{
				cAntiM14.Patch();
		}else{
				cAntiM14.Restore();
		     }
	    // == ANTI FLASH
		if ( hacks.ANTIFLASH == 1 )
		{
				cAntiFlash.Patch();
		}else{
				cAntiFlash.Restore();
		     }
	    // == MINEINFO
		if ( hacks.MINEINFO == 1 )
		{
				cMineInfo1.Patch();
				cMineInfo2.Patch();
				cMineInfoFFA1.Patch();
				cMineInfoFFA2.Patch();
		}else{
				cMineInfo1.Restore();
				cMineInfo2.Restore();
				cMineInfoFFA1.Restore();
				cMineInfoFFA2.Restore();
		     }
	    // == Fast Reload
		if ( hacks.FASTRELOAD == 1 )
		{
				cFastReload1.Patch();
				cFastReload2.Patch();
		}else{
				cFastReload1.Restore();
				cFastReload2.Restore();
		     }
	    // == Quick Spawn
		if ( hacks.QUICKSPAWN == 1 )
		{
				cQuickSpawn1.Patch();
				cQuickSpawn2.Patch();
		}else{
				cQuickSpawn1.Restore();
				cQuickSpawn2.Restore();
		     }
	    // == Walk Thru
		if ( hacks.WALKTHRU == 1 )
		{
				cWalkThru.Patch();
		}else{
				cWalkThru.Restore();
		     }
	    // == ANTIAFK
		if ( hacks.ANTIAFK == 1 )
		{
				cAntiAfk.Patch();
		}else{
				cAntiAfk.Restore();
		     }
	    // == UNL AMMO
		if ( hacks.UNLAMMO == 1 )
		{
				cUnlAmmo.Patch();
		}else{
				cUnlAmmo.Restore();
		     }
	    // == VEH SUPERJUMP
		if ( hacks.VEHJUMP == 1 )
		{
				cVehJump1.Patch();
			    cVehJump2.Patch();

				if ( cVehJump == true )
				{
		     		tools->VProtect((void*)(ADR_VEHJUMP3),0x4,PAGE_EXECUTE_READWRITE,&OldProtection);
					cVehJump = false;
				}
					if ( *(DWORD*)(dwGame+OFS_PLAYERSTARE) == *(DWORD*)ADR_INVEHICLE ) 
					{
						   *(float*) (ADR_VEHJUMP3) = 0;
					}else{
						   *(float*) (ADR_VEHJUMP3) = 40;
					}
		}else{
					cVehJump1.Restore();
					cVehJump2.Restore();
				if ( cVehJump == false )
				{    
					*(float*) (ADR_VEHJUMP3) = 40;
                    tools->VProtect((void*)(ADR_VEHJUMP3),0x4,OldProtection,0);
					cVehJump = true;
				}
		}
	    // == VEH NO DAMAGE
		if ( hacks.VEHNODAMAGE == 1 )
		{
				cVehNoDamage.Patch();
		}else{
				cVehNoDamage.Restore();
		     }
	    // == VEH INVISIBLE
		if ( hacks.VEHINVISIBLE == 1 )
		{
				cVehInvisible.Patch();
		}else{
				cVehInvisible.Restore();
		     }
	    // == VEH SUPER FIRE
		if ( hacks.VEHSUPERFIRE == 1 )
		{
				cVehSuperFire1.Patch();
				cVehSuperFire2.Patch();
				cVehSuperFire3.Patch();
		}else{
				cVehSuperFire1.Restore();
				cVehSuperFire2.Restore();
				cVehSuperFire3.Restore();
		     }
	    // == STAMINA
		if ( hacks.FULLSTAMINA == 1 )
		{
				cStamina1.Patch();
				cStamina2.Patch();
				cStamina3.Patch();
		}else{
				cStamina1.Restore();
				cStamina2.Restore();
				cStamina3.Restore();
		     }
		// == NO RECOIL
		if ( hacks.NORECOIL == 1 )
		{	
				cNoRecoil.Patch();
		}else{
				cNoRecoil.Restore();
		     }
		// == NO SPREAD
		if ( hacks.NOSPREAD == 1 )
		{
				cNoSpread.Patch();
		}else{
				cNoSpread.Restore();
		     }
		// == NO RELOAD
		if ( hacks.NORELOAD == 1 )
		{
				cNoReload.Patch();
		}else{
				cNoReload.Restore();
		     }

	   // VMProtectEnd();
}

void cHackvar :: cInGameFunction (void)
{
    dwGame   = *(DWORD*)ADR_PLAYERPTR;
	if ( dwGame !=0 )
	{

		// == FOLLOW PLAYER
		if ( hacks.USERTELEPORT == 1 && hacks.PLAYERFIND !=0 )
		{ 
			CPlayerInfo * spInfo   = GetPlayerInfo(hacks.PLAYERFIND-1);
			CPlayer     * spPlayer = g_pBase->player[hacks.PLAYERFIND-1];
			if ( spInfo && spPlayer)
			{
				if ( tools->IsValidPlayer(spPlayer,spInfo) )
				{
					if ( spInfo->health > 0 )
					{
						g_pBase->local->pos1 = spPlayer->pos1;
					}
				}
			}
		}

		// == User Invisible
		if ( hacks.USERINVISIBLE == 1 && hacks.PLAYERFIND !=0 )
		{ 
			CPlayerInfo * spInfo   = GetPlayerInfo(hacks.PLAYERFIND-1);
			CPlayer     * spPlayer = g_pBase->player[hacks.PLAYERFIND-1];
			if ( spInfo && spPlayer )
			{
				if ( tools->IsValidPlayer(spPlayer,spInfo) )
			    {
					if ( spInfo->health > 0 )
					{
						spPlayer->pos1.b = 0;
						spPlayer->pos1.y = 0;
						spPlayer->pos1.d = 0;
						spPlayer->pos1.m = 0;
						spPlayer->pos1.g = 0;
						spPlayer->pos1.s = 0;
					}
				}
			}
		}
		// == TELEKILL
		if ( hacks.TELEKILL == 1 )
		{
			if (GetAsyncKeyState(VK_RBUTTON)&0x8000)
			{
				for ( int i = 0; i < 32; i++ )
				{ 
					CPlayerInfo *pInfo = GetPlayerInfo(i);
					CPlayer     *spPlayer = g_pBase->player[i];

					if ( pInfo && spPlayer )
					{
					  if ( tools->IsValidPlayer(spPlayer,pInfo) )
			          {
							CPlayerInfo *pLocalInfo = GetPlayerInfo(g_pBase->local->index);
							if( pInfo->team != pLocalInfo->team )
							{
								if( pInfo->health !=0 )
								{
									g_pBase->local->pos1 = spPlayer->pos1;
									break;
								}     
							}
					  }
					}
				}
			}
		}
		// == Zombie OPK
		if ( hacks.ZOMBIEOPK == 1 )
		{
			dwServer = *(DWORD*)ADR_SERVERPTR;
			if ( dwServer !=0 )
			{
				DWORD dwZombie = *(DWORD*)(dwServer+0x9C5C0);
				if ( dwZombie == 9 )
				{ 
					for(int i = 0; i < 32; i++)
					{
						CPlayer * pPlayer = g_pBase->player[i];
						if ( pPlayer )
						{
							g_pBase->local->pos1.b =0.0f;   //ME
							g_pBase->local->pos1.d =0.0f;   //ME
							g_pBase->local->pos1.g =0.0f;   //ME
							/*<--------------->*/
							pPlayer->pos1.b = 80.0f;        //Zombie
							pPlayer->pos1.d = 80.0f;        //Zombie
							pPlayer->pos1.g = 80.0f;        //Zombie
						}
					}
				}
			}
		}
		// == SPEED HACK
		if ( hacks.SPEED != 0 )
		{
				if ( cSpeed == true )
				{
		     		tools->VProtect((void*)(ADR_SPEED),0x8,PAGE_EXECUTE_READWRITE,&OldProtection);
					cSpeed = false;
				}
						switch ( hacks.SPEED )
						{
								case 1 :*(double*)(ADR_SPEED) = 96+10;   break;
								case 2 :*(double*)(ADR_SPEED) = 96+20;   break;
								case 3 :*(double*)(ADR_SPEED) = 96+200;  break;
								case 4 :*(double*)(ADR_SPEED) = 96+500;  break;
								case 5 :*(double*)(ADR_SPEED) = 96+1000; break;
						}
		}else{
				if ( cSpeed == false )
				{
					*(double*)(ADR_SPEED) = 96; 
					tools->VProtect((void*)(ADR_SPEED),0x8,OldProtection,0);
					cSpeed = true;
				}
		}

		// == SPEED ROLLING
		if ( hacks.SPEEDROLL != 0 )
		{
				if ( cSpeedRoll == true )
				{
		     		tools->VProtect((void*)(ADR_SPEEDROLLING),0x4,PAGE_EXECUTE_READWRITE,&OldProtection);
					cSpeedRoll = false;
				}
						switch ( hacks.SPEEDROLL )
						{
								case 1 :*(float*)(ADR_SPEEDROLLING) = 2.75;  break;
								case 2 :*(float*)(ADR_SPEEDROLLING) = 3.75;  break;
								case 3 :*(float*)(ADR_SPEEDROLLING) = 4.75;  break;
								case 4 :*(float*)(ADR_SPEEDROLLING) = 5.75;  break;
								case 5 :*(float*)(ADR_SPEEDROLLING) = 6.75;  break;
						}
		}else{
				if ( cSpeedRoll == false )
				{
					*(float*)(ADR_SPEEDROLLING) = 1.75f; 
					tools->VProtect((void*)ADR_SPEEDROLLING,0x4,OldProtection,0);
					cSpeedRoll = true;
				}
		}
	    // == QUICK ALL
		if ( hacks.FASTALL == 1 )
		{
			*(float*)(ADR_FASTFLAG)  = 20.0f;
			*(float*)(ADR_FASTMEDIC) = 15.0f;
			*(float*)(ADR_FASTAMMO)  = 15.0f;
		}

	    // ==  Weapon Gravity
		if ( hacks.WEAPNOGRAVITY == 1 )
		{
				if ( cWepGrav == true )
				{
					tools->VProtect((void*)(ADR_WEAPONGRAVITY),0x8,PAGE_EXECUTE_READWRITE,&OldProtection);
					*(double*)(ADR_WEAPONGRAVITY) = 9999; 
                    cWepGrav = false;
				}
		}else{
				if ( cWepGrav == false )
				{
					*(double*)(ADR_WEAPONGRAVITY) = 1000;
		   			tools->VProtect((void*)ADR_WEAPONGRAVITY,0x8,OldProtection,0);
					cWepGrav = true;
				}
		}
		// == SWIM
		if ( hacks.SWIM == 1 )
		{ 
				if ( *(DWORD*)(dwGame+OFS_PLAYERSTARE) != *(DWORD*)ADR_INVEHICLE ) 
				{
			 			*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)ADR_SWIM1;
						UnLockSwim.Patch();
						cSwim = false;

				}else{
					    cSwim = false;
				     }
		}else{
				if ( cSwim == false  )
				{
						*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)ADR_SWIM2;
						*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)(dwGame+OFS_PLAYERSTARE);
						 UnLockSwim.Restore();
						 cSwim = true;
				}
		}
		// == SUPER JUMP
		if ( hacks.SUPERJUMP == 1 )
		{
			if (GetAsyncKeyState(0x20))
			{
			   *(float*)(dwGame+OFS_SUPERJUMP) = *(float*)(dwGame+OFS_SUPERJUMP) + 35;
			}
		}
		// == NO FALL DAMAGE
		if ( hacks.NOFALL == 1 )
		{
			*(float*)(dwGame+OFS_NOFALLDAMAGE) = -9999999;
		}
		// == SCOPE		
		if ( hacks.NOSCOPE == 1 )
		{
			if (GetAsyncKeyState(0x02))
			{
                *(DWORD*)(ADR_SCOPE) = 8;

			}else{

                *(DWORD*)(ADR_SCOPE) = 5;
			}
		}
		// == NO BOUNDS
		if ( hacks.NOBOUNDS == 1 )
		{
			*(DWORD*)(ADR_NOBOUNDS1) = 0;
			*(DWORD*)(ADR_NOBOUNDS2) = 0;
			*(DWORD*)(ADR_NOBOUNDS3) = 0;

		}
		// == NO WATER
		if ( hacks.NOWATER == 1 )
		{
			if ( cWaterB == true )
			{
				cWater1 =  *(int*)(ADR_NOWATER_1);
				cWater2 =  *(int*)(ADR_NOWATER_2);
				*(int*)(ADR_NOWATER_1) = 0;
		 		*(int*)(ADR_NOWATER_2) = 0;
				cWaterB = false;
			}
		}else{
			if ( cWaterB == false )
			{
			  *(int*)(ADR_NOWATER_1) = cWater1;
		 	  *(int*)(ADR_NOWATER_2) = cWater2;
			   cWaterB = true;
			}
		}
	

	}
}

void cHackvar :: cInServerFunction (void)
{
    dwServer = *(DWORD*)ADR_SERVERPTR;
	if ( dwServer !=0 )
	{
 
		// == PREMIUM
		switch ( hacks.PREMIUM )
				{
		case 1:
				*(long*)( dwServer+OFS_PREMIUM) = 1; 
				*(long*)( dwServer+OFS_PREMIUM + 0x4 ) = 2592000;
		break;
		case 2: 
				*(long*)( dwServer+OFS_PREMIUM ) = 2; 
				*(long*)( dwServer+OFS_PREMIUM  + 0x4 ) = 2592000;
		break;
		case 3: 
				*(long*)( dwServer+OFS_PREMIUM  ) = 3; 
				*(long*)( dwServer+OFS_PREMIUM + 0x4 ) = 2592000;	
		break;
		case 4: 
				*(long*)( dwServer+OFS_PREMIUM  ) = 4; 
				*(long*)( dwServer+OFS_PREMIUM  + 0x4 ) = 2592000;	
		break;
				}
        // == GM ALERT MESSAGE
		if ( hacks.GMALERT  == 1 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);	
			char *GMIP   = (char*)(ADR_GMALERTIP);	
			if ( strlen(GMName) > 2 || strlen(GMIP) > 2  ) 
			{
					char GMWarnMex[333];
					sprintf(GMWarnMex,/*ATTENTION >> %s is spectating room!*/XorStr<0x2C,36,0x4B99FFE8>("\x6D\x79\x7A\x6A\x7E\x65\x7B\x7C\x7A\x15\x08\x09\x18\x1C\x49\x1B\x55\x4E\x1E\x4C\x30\x24\x21\x37\x25\x31\x2F\x29\x2F\x69\x38\x24\x23\x20\x6F"+0x4B99FFE8).s,ADR_GMALERTNAME,ADR_GMALERTIP);
                    PrintText((int*)0x0,(int*)0x1,GMWarnMex,(BYTE*)0xFF,(BYTE*)0x00,(BYTE*)0x00);//Red
			}
		}
        // == GM ALERT LOBBY
		if ( hacks.GMALERT  == 2 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);	
			if ( strlen(GMName) > 2   ) 
			{
				 GETBACKLOBBY();
			}
		}
        // == GM ALERT CRASH
		if ( hacks.GMALERT  == 3 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);		
			if ( strlen(GMName) > 2  ) 
			{
				 ExitProcess(TRUE);
			}
		}
		// == Room Master
		if ( hacks.ROOMMASTER == 1 )
		{
			DWORD  *PLSLOT; 
			DWORD  *RMSLOT; 
			PLSLOT =(DWORD *)((dwServer)+ OFS_PLAYERSLOT); 
			RMSLOT =(DWORD *)((dwServer)+ OFS_ROOMMASTER); 
			*RMSLOT = *PLSLOT;
		} 
		// == SUPER MASTER
		if ( hacks.SUPERMASTER == 1 )
		{
			if ( cSuperMaster == true )
			{
				 SuperMaster =  *(long*)(dwServer+OFS_SUPERMASTER);
			    *(long*)(dwServer+OFS_SUPERMASTER) = 1;
			    cSuperMaster = false;
			}
		}else{

			if ( cSuperMaster == false )
			{
                *(long*)(dwServer+OFS_SUPERMASTER) = SuperMaster;
				 cSuperMaster = true;
			}


		}
		// == ALL SLOT
		if ( hacks.SLOTS == 1  )
		{ 
				if ( cSlot == true )
				{
					Slot5 = *(BYTE*)(dwServer+OFS_SLOTS); 
					Slot6 = *(BYTE*)(dwServer+OFS_SLOTS+0x1); 
					Slot7 = *(BYTE*)(dwServer+OFS_SLOTS+0x2);  
					Slot8 = *(BYTE*)(dwServer+OFS_SLOTS+0x3); 
					// ==========================================
					*(BYTE*)(dwServer+OFS_SLOTS)     = 1; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x1) = 1;  
					*(BYTE*)(dwServer+OFS_SLOTS+0x2) = 1;  
					*(BYTE*)(dwServer+OFS_SLOTS+0x3) = 1;
					cSlot = false;
				}
		}else{
				if ( cSlot == false )
				{
					*(BYTE*)(dwServer+OFS_SLOTS)     = Slot5; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x1) = Slot6; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x2) = Slot7;   
					*(BYTE*)(dwServer+OFS_SLOTS+0x3) = Slot8; 
					cSlot = true;	
				}
		}		
		// == WEAPON BINDER
		if ( hacks.CLASS > 0 )
		{
			find_weapons();
			if (hacks.WEAPONSLOT1 >0)
			WPNput(hacks.CLASS - 1, 0, hacks.WEAPONSLOT1-1);
			if (hacks.WEAPONSLOT2 > 0)
			WPNput(hacks.CLASS - 1, 1, hacks.WEAPONSLOT2-1);
			if ( hacks.WEAPONSLOT3 > 0)
			WPNput(hacks.CLASS- 1, 2,  hacks.WEAPONSLOT3-1);
			if ( hacks.WEAPONSLOT4 > 0) 
			WPNput(hacks.CLASS - 1, 3,  hacks.WEAPONSLOT4-1);
			if ( hacks.WEAPONSLOT5 > 0)
			WPNput(hacks.CLASS - 1, 4 , hacks.WEAPONSLOT5-1);
			if ( hacks.WEAPONSLOT6 > 0)
			WPNput(hacks.CLASS - 1, 5,  hacks.WEAPONSLOT6-1);
			if ( hacks.WEAPONSLOT7 > 0) 
			WPNput(hacks.CLASS- 1, 6,  hacks.WEAPONSLOT7-1);
			if ( hacks.WEAPONSLOT8 > 0)
			WPNput(hacks.CLASS - 1, 7,  hacks.WEAPONSLOT8-1);
		}
	}
		// == PLAYER FINDER
		if  ( hacks.PLAYERFIND )
		{
				DWORD Name = NULL;
				DWORD Ip   = NULL;
				int  i = (hacks.PLAYERFIND-1);
				Name       = (ADR_USERNAME      + (ADR_PLAYERSIZE * i));
				Ip         = (ADR_USERIP        + (ADR_PLAYERSIZE * i));
				if ( strlen((char*)Name) >0 )
				{
						sprintf(SNAME,/*%s*/XorStr<0xDE,3,0x8CBF9E26>("\xFB\xAC"+0x8CBF9E26).s,(void*)Name);
						sprintf(SIP,/*%s*/XorStr<0xDE,3,0x8CBF9E26>("\xFB\xAC"+0x8CBF9E26).s,(void*)Ip);	
				}else{
						sprintf(SNAME,/*Empty Slot*/XorStr<0x07,11,0x75D18515>("\x42\x65\x79\x7E\x72\x2C\x5E\x62\x60\x64"+0x75D18515).s);
						sprintf(SIP,/*Empty Slot*/XorStr<0x07,11,0x75D18515>("\x42\x65\x79\x7E\x72\x2C\x5E\x62\x60\x64"+0x75D18515).s);
				}
		}
}


void   cHackvar :: StartAimbot ( void )
{
	DWORD dwPlayerPointer = *(DWORD*)ADR_PLAYERPTR;

	if ( hacks.AIMBOT !=0 && dwPlayerPointer!=0 && IsValid==479 )
	{
		hacks.NORECOIL=1;
		D3DXVECTOR3 wLocal,wPlayer,wTarget,WarAngle;
		float SetDist,PlrDist;
		float SetAngle=9999999;
		int botkey;
		int PLRID = -1;
		CPlayer* MyInfo = g_pBase->local;
					
		switch(hacks.AIMRANGE)
		{
			case 0:SetDist=999999;	break;
			case 1:SetDist=10;		break;
			case 2:SetDist=20;		break;
			case 3:SetDist=30;		break;
			case 4:SetDist=40;		break;
			case 5:SetDist=60;		break;
			case 6:SetDist=80;		break;
			case 7:SetDist=100;		break;
			case 8:SetDist=200;		break;
			case 9:SetDist=300;		break;
			case 10:SetDist=400;	break;
			case 11:SetDist=600;	break;
			case 12:SetDist=1000;	break;
		}
		switch(hacks.AIMKEY)
		{
		    case 0:botkey=02;		break;
			case 1:botkey=02;		break;
			case 2:botkey=01;		break;
			case 3:botkey=04;		break;
			case 4:botkey=160;		break;
			case 5:botkey=162;		break;
		}


		for ( int slot=0 ; slot<32 ; slot++ )	
		{

			CPlayer     *pPlayer    = g_pBase->player[slot];
			CPlayerInfo *pInfo      = GetPlayerInfo(slot);
			CPlayerInfo *pLocalInfo = GetPlayerInfo(g_pBase->local->index);

			if ( MyInfo && pInfo && pPlayer )
			{
               if ( tools->IsValidPlayer(pPlayer,pInfo) )
			   {
					wLocal.x  =  MyInfo->pos.x;
					wLocal.y  =  MyInfo->pos.y;
					wLocal.z  =  MyInfo->pos.z;

					wPlayer.x =  pPlayer->pos.x;
					wPlayer.y =  pPlayer->pos.y;
					wPlayer.z =  pPlayer->pos.z;

					PlrDist = (float)sqrt(pow((wPlayer.x-wLocal.x),2)+pow((wPlayer.y-wLocal.y),2)+pow((wPlayer.z-wLocal.z),2))/10;
					if ( PlrDist < SetDist && pInfo->team != pLocalInfo->team && pInfo->health > 0 && pInfo->name > 0  )
					{
						SetDist = PlrDist;
						PLRID   = slot;
						cAimBot->AimCorrection(hacks.AIMAT,pPlayer,wPlayer,wTarget);
					}
			   }
			}
				if ( PLRID != -1 )
				{
					if ( hacks.AIMBOT==2 )
					{
						cAimBot->TargetAngle(wTarget,wLocal,WarAngle);
						cAimBot->AimToPoint(WarAngle[0],WarAngle[2]);
					}
					if ( hacks.AIMBOT==1 )
					{
						if(GetAsyncKeyState(botkey))
						{
							cAimBot->TargetAngle(wTarget,wLocal,WarAngle);
							cAimBot->AimToPoint(WarAngle[0],WarAngle[2]);
						}
					}
				}
		}

	}
}



void  cHackvar :: D3DESP ( LPDIRECT3DDEVICE9 pDevice )
{
  for ( int i = 0; i < 32; i++ )
  {
		if ( !g_pBase->player || !g_pBase->local)break; 
		CPlayer		*spPlayer;
		CPlayerInfo *spInfo;
		spPlayer    = g_pBase->player[i];
		spInfo	    = GetPlayerInfo(i);


	if ( spInfo && spPlayer )
	{
		CPlayerInfo *spLocalInfo = GetPlayerInfo(g_pBase->local->index);
		if (hacks.NAMEESP || hacks.HEALTESP || hacks.IPESP || hacks.TEAMESP || hacks.DISTANCEESP )
		{
				D3DXVECTOR3 g_pPlayer(spPlayer->pos.x, spPlayer->pos.z, spPlayer->pos.y), g_vView; 
				if ( tools->IsValidPlayer(spPlayer, spInfo) && d3d->GetScreenCoordFromWorld ( pDevice, g_vView, g_pPlayer) )
				{
                          float foffset =  g_vView.y-30;

							// == Enemy Only
									if  (hacks.ENEMYONLY == 1 && spInfo->team != spLocalInfo->team && spInfo->health > 0 && spInfo->name > 0 )
									{

										if (hacks.NAMEESP == 1 )
										{  
											font->DrawText( g_vView.x, foffset,TextRed, spInfo->name,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if( hacks.HEALTESP == 1  )
										{	
											d3d->ShowHealt(pDevice, g_vView.x+18,foffset+10,spInfo->health);
											foffset += 10;
										}
										if( hacks.HEALTESP == 2 )
										{
											int  Red1,Green1;
											Red1   =	255-((spInfo->health/10)*2.55);
											Green1 =	(spInfo->health/10)*2.55;
											sprintf(szhealth,/*%d %*/XorStr<0x63,5,0x678090F9>("\x46\x00\x45\x43"+0x678090F9).s,(int)spInfo->health/10);
											font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB( 255, Red1, Green1, 0), szhealth, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										/*
										if ( hacks.WEAPONESP == 1 )
										{
											font->DrawText( g_vView.x,foffset,UrbaESP,EspWeapons[(int)spPlayer->weapon], D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										*/
										if ( hacks.IPESP == 1 )
										{   
											font->DrawText( g_vView.x,foffset,TextRed, spInfo->ip,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										
										if(hacks.TEAMESP )
										{
											if ( GetPlayerInfo(i)->team == 1 )
											{
													font->DrawText(g_vView.x,foffset,D3DCOLOR_ARGB(255,0,255,0),/*N.I.U*/XorStr<0x20,6,0x4A8A24B3>("\x6E\x0F\x6B\x0D\x71"+0x4A8A24B3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
													foffset += 10;
											}else{
													font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB(255,255,255,0),/*Derberan*/XorStr<0x5D,9,0x5AE559A3>("\x19\x3B\x2D\x02\x04\x10\x02\x0A"+0x5AE559A3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
													foffset += 10;
											}
										}
										if( hacks.DISTANCEESP == 1 )
										{
											sprintf(szDistance,/*%.2f m*/XorStr<0x27,7,0xC1C454F0>("\x02\x06\x1B\x4C\x0B\x41"+0xC1C454F0).s,tools->GetDistance(g_pBase->local, spPlayer)/60);
											font->DrawText( g_vView.x,foffset, TextOrange, szDistance,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC); 
											foffset += 10;
										}
								}
								if (  hacks.ENEMYONLY == 2 && spInfo->health > 0 )
								{
										if ( spLocalInfo->team == spInfo->team )
										{
											UrbaESP =  D3DCOLOR_ARGB(255,235,235,235);
											}else{
											UrbaESP = D3DCOLOR_ARGB(255,255,000,000);
										}
										if ( hacks.NAMEESP == 1 )
										{    	
											font->DrawText( g_vView.x,foffset,UrbaESP, spInfo->name,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if( hacks.HEALTESP == 1  )
										{		
											d3d->ShowHealt (pDevice, g_vView.x+18,foffset+10, spInfo->health);
											foffset += 10;
										}
										if ( hacks.HEALTESP == 2 )
										{
											int Red1,Green1;
											Red1   =	255-((spInfo->health/10)*2.55);
											Green1 =	(spInfo->health/10)*2.55;
											sprintf(szhealth,/*%d %*/XorStr<0x63,5,0x678090F9>("\x46\x00\x45\x43"+0x678090F9).s,(int)spInfo->health/10);
											font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB( 255, Red1, Green1, 0), szhealth, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										
										/*
										if ( hacks.WEAPONESP == 1 )
										{
											font->DrawText( g_vView.x,foffset,UrbaESP,EspWeapons[(int)spPlayer->weapon], D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										*/
										if (hacks.IPESP == 1 )
										{    	
											font->DrawText( g_vView.x,foffset,UrbaESP, spInfo->ip,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if (hacks.TEAMESP )
										{
											if ( GetPlayerInfo(i)->team == 1 )
											{
												font->DrawText(g_vView.x,foffset,D3DCOLOR_ARGB(255,0,255,0),/*N.I.U*/XorStr<0x20,6,0x4A8A24B3>("\x6E\x0F\x6B\x0D\x71"+0x4A8A24B3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
												foffset += 10;
											}else{
												font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB(255,255,255,0),/*Derberan*/XorStr<0xD5,9,0x20273C3C>("\x91\xB3\xA5\xBA\xBC\xA8\xBA\xB2"+0x20273C3C).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
												foffset += 10;
											}
										}
										if(hacks.DISTANCEESP == 1 )
										{
											sprintf(szDistance,/*%.2f m*/XorStr<0x27,7,0xC1C454F0>("\x02\x06\x1B\x4C\x0B\x41"+0xC1C454F0).s,tools->GetDistance(g_pBase->local, spPlayer)/60);
											font->DrawText( g_vView.x,foffset,TextOrange, szDistance, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
								}

				 }
			  }
		}
	}
}

Anyone Can give me all source code of this?
UR_COD is offline  
Old 02/27/2022, 00:44   #1123
 
elite*gold: 0
Join Date: Feb 2022
Posts: 16
Received Thanks: 2
Quote:
Originally Posted by UR_COD View Post
Anyone Can give me all source code of this?
just ask from yazzn or use an packet logger.
Vicous00 is offline  
Thanks
1 User
Old 02/27/2022, 05:16   #1124
 
elite*gold: 0
Join Date: Oct 2021
Posts: 44
Received Thanks: 6
Hi, Still you have the Menu Base source code of this?

Quote:
Originally Posted by Combatarmshackeraaa View Post
My old hacks function.h


Code:
#ifndef ADDRESS
#define ADDRESS

#pragma once


#define ADR_GAMENOTICE       0x0040EECD//***
#define ADR_GAMETEXT         0x00522CC0//***
#define ADR_DEVICEPOINTER    0xAE2B74//***
#define OFS_DEVICEPOINTER    0x2B930  
#define ADR_PLAYERPTR        0xAE92FC//*** 
#define ADR_SERVERPTR        0xAE3AC4//*** 
#define ADR_BASEPTR          0xB1BCF0//***
#define ADR_VIEWANGELS       0xAE2B70//***
#define ADR_GMALERTIP        0xB16928 + 0x10//***
#define ADR_GMALERTNAMEBASE  (ADR_GMALERTIP - 0x400)
#define ADR_GMALERTNAME      (ADR_GMALERTNAMEBASE + 0x10)
#define ADR_BACKINLOBBY      0x004E11EF
#define OFS_NOFALLDAMAGE     0x102E8  
#define OFS_PREMIUM          0x3CC    
#define OFS_PLAYERSTARE      0xC4CC   
#define OFS_SLOTS            0x9F1E4 
#define OFS_SUPERJUMP        0x10308 
#define OFS_ROOMMASTER       0x9C7E8
#define OFS_SUPERMASTER      0x9C750
#define OFS_PLAYERSLOT       0xB8368//***** 
#define ADR_SPEED            0x8C9E10//***** 
#define ADR_SPEEDROLLING     0x8C9C38//*****
#define ADR_SCOPE            0x934460//*****
#define ADR_GETBASE         ( 0xB6AC98 -  ADR_PLAYERPTR ) //******
#define ADR_NEWCBASE        ( ADR_GETBASE - 0x4  )
#define ADR_UNLOCKSWIM       0x00509C10//*****
#define ADR_SWIM1            0xADA95C //*****
#define ADR_SWIM2            0xAE933C //*****
#define ADR_INVEHICLE        0xAE9340 //*****
#define ADR_NOWATER_1        0xAF011C //*****
#define ADR_NOWATER_2        0xAF0120 //*****
#define ADR_WEAPONBASE       0xB07CE8 //******
#define ADR_SLOTBASE         0x9E040
#define ADR_PLAYERID         0xA40
#define ADR_DAMAGEAS         0x005105B0
#define ADR_UNLOXYGEN        0x00509CD2
#define ADR_PRONE            0x004F7D44
#define ADR_NOSPREAD         0x0051042C
#define ADR_NORECOIL         0x00500B8E
#define ADR_NORELOAD         0x0051C02A
#define ADR_BULLETS          0x00510696
#define ADR_BULLETSJMP       0x005106A2
#define ADR_STAMINA1         0x004575F8
#define ADR_STAMINA2         0x004F800B
#define ADR_STAMINA3         0x0050819A
#define ADR_VEHNODAMAGE      0x0042A91F
#define ADR_VEHINVISIBLE     0x0042AC8E
#define ADR_VEHSUPERFIRE1    0x004273C0
#define ADR_VEHSUPERFIRE2    0x004273EB
#define ADR_VEHSUPERFIRE3    0x0042742B
#define ADR_UNLAMMO          0x00513A0A
#define ADR_WALKTHRU         0x0076FB70
#define ADR_ANTIAFK          0x00592D17
#define ADR_QUICKSPAWN1      0x005E3249
#define ADR_QUICKSPAWN2      0x005E3263
#define ADR_FASTRELOAD1      0x0051C216
#define ADR_FASTRELOAD2      0x0059882E
#define ADR_STAMINAUP1       0x0040938E
#define ADR_STAMINAUP2       0x004093D5
#define ADR_CLIPA            0x00456646
#define ADR_CLIPS            0x0045665F
#define ADR_SNIPERPX         0x0045666D
#define ADR_COMPBANDAGE      0x004566C8
#define ADR_DEATHCAM         0x004566FA
#define ADR_ANTIFLASH        0x005A9818
#define ADR_ANTIM14          0x005A9744
#define ADR_MINEINFO1        0x00448404
#define ADR_MINEINFO2        0x00448482
#define ADR_MINEINFOFFA1     0x004483EB
#define ADR_MINEINFOFFA2     0x00448469
#define ADR_INVISIBLE        0x0050CFBC
#define ADR_RADARGPS         0x0059C874
#define ADR_RADARFFA1        0x0059C892
#define ADR_RADARFFA2        0x0059EAE6
#define ADR_NORESTRICTION    0x004F6C4F
#define ADR_AUTOSHOT         0x004F6C44
#define ADR_QUICKPLANT       0x00512E29
#define ADR_QUICKDEFUSE      0x0050EF26
#define ADR_PLANTANYWHERE    0x0057F8F8
#define ADR_BONESHOT         0x0044A575
#define ADR_AUTOHEAL1        0x00507D93
#define ADR_AUTOHEAL2        0x00508000
#define ADR_AUTOAMMO1        0x00507C8A
#define ADR_AUTOAMMO2        0x00507CCA
#define ADR_AUTOREPAIR1      0x00427446
#define ADR_AUTOREPAIR2      0x00427475
#define ADR_AUTOREPAIR3      0x004274F2
#define ADR_ANTIOVERHEART    0x00724B46
#define ADR_SHOTTHRU1        0x006041D0
#define ADR_SHOTTHRU2        0x006041D6
#define ADR_PREMCROSSCALL1   0x0057702A
#define ADR_PREMCROSSCALL2   0x00407F34
#define ADR_PREMCROSSCHANGE  0x00577050
#define ADR_PREMIUMCROSS1    0x00577172
#define ADR_PREMIUMCROSS2    0x0057717A
#define ADR_UNLOCKCROSS      0x00577385
#define ADR_OPK1             0x00408103
#define ADR_OPK2             0x0040810C
#define ADR_OPK3             0x00408118
#define ADR_ZERODELAY        0x0051BD25
#define ADR_SPAMBOT          0x0051F1F1
#define ADR_FAKEKICK         0x0058EB9B
#define ADR_USERKILL         0x00416CFC
#define ADR_ARTILLERY0       0x004F82E0
#define ADR_ARTILLERY1       0x004F8555
#define ADR_ARTILLERY2       0x00594F1E
#define ADR_ARTILLERY3       0x00594FB1
#define ADR_ARTILLERY4       0x00594CF9
#define ADR_ARTILLERY5       0x00577A01
#define ADR_ARTILLERY6       0x00594E98
#define ADR_ARTILLERY7       0x0059502E
#define ADR_VEHJUMP1         0x0045E153
#define ADR_VEHJUMP2         0x0045E15C
#define ADR_VEHJUMP3         0x8C9AA4
#define ADR_AUTOREADYSTART   0x005469B8
#define ADR_WEAPONGRAVITY    0x8C9A38
#define ADR_PLAYERSIZE       0x0B18   
#define ADR_USERNAME         0xB1C334
#define ADR_USERIP          (0xB1C1E8+0x10)
#define ADR_CHECKREADYSTART  0xB1C738
#define ADR_CLASSROOMPOINTER 0xAE9554
#define ADR_WEAPONGLOBAL1    0xB07CA8
#define ADR_WEAPONGLOBAL2    0xB5C5E8
#define ADR_FASTAMMO         0xAED90C
#define ADR_FASTMEDIC        0xAED914
#define ADR_FASTFLAG         0xAED924
#define ADR_NOBOUNDS1        0xB7AB24
#define ADR_NOBOUNDS2        0xB7AB28
#define ADR_NOBOUNDS3        0xB7AB36



#define IsReady ((ADR_CHECKREADYSTART)+(ADR_PLAYERSIZE*(*(int*)(*(DWORD*)(ADR_SERVERPTR)+OFS_PLAYERSLOT)) ))	


class CVehicle;

struct  vectorB
{
	float x,a,z,b,y,d,m,g,s;
};

struct  vectorA
{
	float x,z,y;
};


struct CPlayer
{
		char unknown0[50328]; //0x0000
	BYTE index; //0xC498  
		char unknown50329[43]; //0xC499
	CVehicle* wVehicle; //0xC4C4  
		char unknown50376[15588]; //0xC4C8
	float pitch; //0x101AC  
		char unknown65968[24]; //0x101B0
	float yaw; //0x101C8  
		char unknown65996[8]; //0x101CC
	vectorA pos;  //0x101D4  
		char unknown66008[14]; //0x101D8
	WORD weapon; //0x101EE  
		char unknown66032[92]; //0x101F0
	__int32 status; //0x1024C  
		char unknown66128[164]; //0x10250
	vectorB pos1; //0x102F4  
		char unknown66296[172]; //0x102F8
	BYTE shotting; //0x103A4  
};

struct CLocal
{
	char unknown51[32];		    //0x0000
	vectorA pos;				//0x0020
	char unknown52[36];		    //0x002C
	float pitch;				//0x0050
	float yaw;					//0x0054
	char unknown53[16];		    //0x0058
	float view_down;			//0x0068
	float view_up;				//0x006C
	float fovx;					//0x0070
	float fovy;					//0x0074
};

struct CPlayerInfo
{

		char unknown0[1288]; //0x0000
	char ip[16]; //0x0508  
		char unknown1304[300]; //0x0518
	char name[20]; //0x0644  
		char unknown1624[836]; //0x0658
	__int32 health; //0x099C  
		char unknown2464[340]; //0x09A0
	BYTE team; //0x0AF4  
		char unknown2805[13671]; //0x0AF5

};


struct  CBase
{
        CPlayer* local;           
    char unknown0[ADR_NEWCBASE];  
        CPlayer** player;        
};       

struct CWeaponInformations
{
	char _0x0000[20]; 
	char Name[25]; //0x0014 
	char _0x002D[39];
		char ShortName[4]; //0x0054 
	char _0x0058[1];
		char Animation[4]; //0x0059 
	char _0x005D[5219];
		DWORD dwDamage; //0x14C0 
	DWORD dwDefence; //0x14C4 
	DWORD dwRange; //0x14C8 
	DWORD dwAmmoNum; //0x14CC 
	DWORD dwMagazineNum; //0x14D0 
	DWORD dwEffectRange; //0x14D4
	DWORD dwParabola; //0x14D8 ?
	float ReactAmount; //0x14DC 
	float ReactRecovery; //0x14E0 
	float Accurate; //0x14E4 
	DWORD dwShotSpeed; //0x14E8 
	DWORD dwWeight; //0x14EC 
};

struct CWeaponGlobalPtr
{
	CWeaponInformations* WeaponInformations[340]; //0x0000
};

struct CWeaponGlobal
{
	char _0x0000[64];
	   CWeaponGlobalPtr* WeaponPtr; 
};

#endif
Code:
#include "cFunction.h"
#include "cAimbot.h"

cHackvar hacks;
mYcAimbot * cAimBot;

CPlayerInfo* GetPlayerInfo(int index)
{
	if ( index > 32 ) return 0;
	DWORD dwBasePointer = ADR_BASEPTR;
	DWORD dwSize        = ADR_PLAYERSIZE;
	return (CPlayerInfo*) (dwBasePointer + (index*dwSize));
}; 
    CBase *g_pBase = (CBase*)ADR_PLAYERPTR;




bool bValueStored = false;
bool oncea = false;
//  ==
D3DCOLOR UrbaESP;
D3DCOLOR UrbaDistance;
char szhealth[100];
char szDistance[100];
//  ===
DWORD OldProtection;
//  ===
bool  cSwim        = true;
//  ===
BYTE Slot5,Slot6,Slot7,Slot8;
bool  cSlot        = true;
//  ===
bool cPlayerKill   = true;
//  ===
int cWater1,cWater2;
bool cWaterB       = true;
//  ===
bool  cWepGrav     = true;
//  ===
bool cVehJump      = true;
//  ===
bool  cSpeedRoll   = true;
bool  cSpeed       = true;
//  ===
bool  cSuperMaster = true;
long  SuperMaster;
// ====
bool  cCrossHairs1 = true;
bool  cCrossHairs2 = true;
bool  cCrossHairs3 = true;
bool  cCrossHairs4 = true;
bool  cCrossHairs5 = true;
bool  cCrossHairs9 = true;
// ==
DWORD dwGame   = 0;
DWORD dwServer = 0;
// ==

DWORD *serverptr = (DWORD*)ADR_SERVERPTR;


#define MAX_WEAPONS 350

struct sWeaponsOriginalValues
{
     DWORD dwWeight;
	 DWORD dwShotSpeed;
};

sWeaponsOriginalValues weaponsOriginalValues[MAX_WEAPONS]; 

struct t_weap
{
	char unknown[12];
	int  id;
	char lname[32];
	char sname1[32];
	char sname2[32];
	char sname3[32];
	char data[5336];
};
 
struct t_slot
{
	BYTE  enab;     
	BYTE  type;   
    BYTE  id;        
	BYTE  novaule;
    char  dum1[33]; 
    char  sname[16];
    char  dum2[19]; 
    DWORD adr_weap; 
    DWORD adr_inv;   
};

struct t_invslot
{
    BYTE  enab; 
    BYTE  type;     
    BYTE  id;    
	BYTE  novaule;
    char  dum1[33];  
    char  sname[16];
    char  dum2[19];  
    DWORD adr_weap;
    DWORD adr_inv; 
};

DWORD dwADR_WEAPONBASE                    =     ADR_WEAPONBASE;
DWORD dwOFS_SLOTBASE                      =		ADR_SLOTBASE;
DWORD dwOFS_PLAYERID                      =     ADR_PLAYERID;


t_weap          *pweap[342]; 
t_slot          *pslot[8];     
t_invslot       *pinvoslot[8];
 
t_invslot *WPNinvslotadr(int pclass, int slot)
{
    return (t_invslot *)(*serverptr+dwOFS_SLOTBASE+(pclass*0x50)+(slot*0x50));
}

t_slot *WPNslotadr(int pclass, int slot)
{
    return (t_slot *)(*serverptr+dwOFS_SLOTBASE+(pclass*0x280)+(slot*0x50));
}

void WPNput(int pclass, int slot, int weappon)
{
    t_slot   *pslot;
    if (weappon<0 || pweap[weappon] == 0) return;
 
    pslot=WPNslotadr(pclass,slot);
    pslot->adr_weap=(DWORD)pweap[weappon];
    strcpy(pslot->sname, pweap[weappon]->lname);
    pslot->id = weappon;   
    pslot->type = 0x44;
    pslot->enab = 1;  
}


void find_weapons(void)
{
    DWORD *p_weapbase, *baseadr;
    t_weap *weap;
 
    for (int i=0; i<342; i++)pweap[i]=0;
    p_weapbase=(DWORD *)dwADR_WEAPONBASE;
    baseadr=(DWORD*)(*p_weapbase);
 
    for (int b=0;b<342;b++)
    {
        weap=(t_weap *)(*baseadr);
        if (weap)pweap[b]=weap;
        baseadr++;
    }
}

int WPNget(int pclass, int slot)
{
    t_slot  *pslot;
    pslot=WPNslotadr(pclass,slot);
    return pslot->id;
}



BYTE NOP           [8] = {0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90};
BYTE JMP           [1] = {0xEB};
BYTE RETN          [1] = {0xC3};
BYTE RETNC         [3] = {0xC2,0x0C,0x00};
BYTE ANTIM14ON     [6] = {0xE9,0xAA,0x00,0x00,0x00,0x90};
BYTE INVISIBLEON   [3] = {0x8D,0x47,0x0C};
BYTE QPLANTON      [2] = {0xEB,0x3F};
BYTE QDEFUSEON     [2] = {0xEB,0x42};
BYTE VEHFIREON     [2] = {0xEB,0x0A};
BYTE REPAIRJMP     [2] = {0xEB,0x24};
BYTE HEADON        [5] = {0xB9,0x64,0xC1,0x54,0xA5};
BYTE NEKCON        [5] = {0xB9,0x1D,0xFD,0x87,0x9F};
BYTE EXTRACLIPON   [3] = {0xB0,0x01,0x90};
BYTE STWON         [2] = {0xD9,0x40};
BYTE AUTOHEALON    [6] = {0xE9,0x3F,0x02,0x00,0x00,0x90};
BYTE CROSSSELECT1  [5] = {0xB8,0x01,0x00,0x00,0x00};
BYTE CROSSSELECT2  [5] = {0xB8,0x02,0x00,0x00,0x00};
BYTE CROSSSELECT3  [5] = {0xB8,0x03,0x00,0x00,0x00};
BYTE CROSSSELECT4  [5] = {0xB8,0x04,0x00,0x00,0x00};
BYTE CROSSSELECT5  [5] = {0xB8,0x05,0x00,0x00,0x00};
BYTE CROSSSELECT9  [5] = {0xB8,0x09,0x00,0x00,0x00};
BYTE STAMINAUPON   [3] = {0xB1,0x01,0x90};
BYTE SNIPERXON     [2] = {0xB3,0x01};
BYTE PLANTDEFON    [3] = {0xB3,0x01,0x88};
BYTE DAMAGEASPUNCH [7] = {0xB8,0x01,0x00,0x00,0x00,0x90,0x90};
BYTE DAMAGEASCOLT  [7] = {0xB8,0x07,0x00,0x00,0x00,0x90,0x90};


BYTE BULLETOFF     [6] = {0xFF,0x85,0x14,0xFF,0xFF,0xFF};
BYTE KICKASOFF     [6] = {0x8D,0x8F,0xB0,0x96,0x09,0x00};
BYTE USERKILLOFF   [6] = {0xD9,0x58,0x50,0xDB,0x45,0x28};




CPatch cProne         (ADR_PRONE,NOP,2);
CPatch cNoRecoil      (ADR_NORECOIL,RETNC,3);
CPatch cNoReload      (ADR_NORELOAD,NOP,6);
CPatch cNoSpread      (ADR_NOSPREAD,NOP,6);
CPatch cStamina1      (ADR_STAMINA1,JMP,1);
CPatch cStamina2      (ADR_STAMINA2,JMP,1);
CPatch cStamina3      (ADR_STAMINA3,JMP,1);
CPatch cVehNoDamage   (ADR_VEHNODAMAGE,RETN,1);
CPatch cVehInvisible  (ADR_VEHINVISIBLE,NOP,3);
CPatch cVehSuperFire1 (ADR_VEHSUPERFIRE1,NOP,2);
CPatch cVehSuperFire2 (ADR_VEHSUPERFIRE2,NOP,2);
CPatch cVehSuperFire3 (ADR_VEHSUPERFIRE3,VEHFIREON,2);
CPatch cVehOverHeart  (ADR_ANTIOVERHEART,NOP,4);
CPatch cUnlAmmo       (ADR_UNLAMMO,RETN,1);
CPatch cWalkThru      (ADR_WALKTHRU,NOP,3);
CPatch cAntiAfk       (ADR_ANTIAFK,JMP,1);
CPatch cQuickSpawn1   (ADR_QUICKSPAWN1,JMP,1);
CPatch cQuickSpawn2   (ADR_QUICKSPAWN2,NOP,6);
CPatch cFastReload1   (ADR_FASTRELOAD1,NOP,2);
CPatch cFastReload2   (ADR_FASTRELOAD2,NOP,2);
CPatch cMineInfo1     (ADR_MINEINFO1,NOP,6);
CPatch cMineInfo2     (ADR_MINEINFO2,NOP,6);
CPatch cMineInfoFFA1  (ADR_MINEINFOFFA1,NOP,2);
CPatch cMineInfoFFA2  (ADR_MINEINFOFFA2,NOP,2);
CPatch cAntiFlash     (ADR_ANTIFLASH,JMP,1);
CPatch cAntiM14       (ADR_ANTIM14,ANTIM14ON,6);
CPatch cInvisible     (ADR_INVISIBLE,INVISIBLEON,3);
CPatch cRadarGPS      (ADR_RADARGPS,JMP,1);
CPatch cRadarFFA1     (ADR_RADARFFA1,JMP,1);
CPatch cRadarFFA2     (ADR_RADARFFA2,JMP,1);
CPatch cNoRestriction (ADR_NORESTRICTION,NOP,6);
CPatch cQuickPlant    (ADR_QUICKPLANT,QPLANTON,2);
CPatch cQuickDefuse   (ADR_QUICKDEFUSE,QDEFUSEON,2);
CPatch cHeadShot      (ADR_BONESHOT,HEADON,5);
CPatch cNeckShot      (ADR_BONESHOT,NEKCON,5);
CPatch cAutoHeal1     (ADR_AUTOHEAL1,AUTOHEALON,6);
CPatch cAutoHeal2     (ADR_AUTOHEAL2,NOP,6);
CPatch cAutoAmmo1     (ADR_AUTOAMMO1,JMP,1);
CPatch cAutoAmmo2     (ADR_AUTOAMMO2,NOP,6);
CPatch cAutoRepair1   (ADR_AUTOREPAIR1,NOP,6);
CPatch cAutoRepair2   (ADR_AUTOREPAIR2,NOP,6);
CPatch cAutoRepair3   (ADR_AUTOREPAIR3,REPAIRJMP,2);
CPatch cExtraClipA    (ADR_CLIPA,EXTRACLIPON,3);
CPatch cExtraClipS    (ADR_CLIPS,EXTRACLIPON,3);
CPatch cPXStamina1    (ADR_STAMINAUP1,STAMINAUPON,3);
CPatch cPXStamina2    (ADR_STAMINAUP2,STAMINAUPON,3);
CPatch cDeathCam      (ADR_DEATHCAM,NOP,2);
CPatch cSnierPX       (ADR_SNIPERPX,SNIPERXON,2);
CPatch cCompBandage   (ADR_COMPBANDAGE,EXTRACLIPON,3);
CPatch cShotThru1     (ADR_SHOTTHRU1,STWON,2);
CPatch cShotThru2     (ADR_SHOTTHRU2,STWON,2);
CPatch cOPK1          (ADR_OPK1,NOP,3);
CPatch cOPK2          (ADR_OPK2,NOP,3);
CPatch cOPK3          (ADR_OPK3,NOP,2);
CPatch cZeroDelay     (ADR_ZERODELAY,NOP,2);
CPatch UnLockSwim     (ADR_UNLOCKSWIM,NOP,2);
CPatch cCrossChange   (ADR_PREMCROSSCHANGE,NOP,2);
CPatch cPremCross1    (ADR_PREMIUMCROSS1,NOP,6);
CPatch cPremCrossSel1 (ADR_PREMIUMCROSS2,CROSSSELECT1,5);
CPatch cPremCrossSel2 (ADR_PREMIUMCROSS2,CROSSSELECT2,5);
CPatch cPremCrossSel3 (ADR_PREMIUMCROSS2,CROSSSELECT3,5);
CPatch cPremCrossSel4 (ADR_PREMIUMCROSS2,CROSSSELECT4,5);
CPatch cPremCrossSel5 (ADR_PREMIUMCROSS2,CROSSSELECT5,5);
CPatch cPremCrossSel9 (ADR_PREMIUMCROSS2,CROSSSELECT9,5);
CPatch cUnLockCross   (ADR_UNLOCKCROSS,NOP,2);
CPatch cAutoShot      (ADR_AUTOSHOT,NOP,6);
CPatch cUnlOxygen     (ADR_UNLOXYGEN,NOP,2);
CPatch cPlantDef      (ADR_PLANTANYWHERE,PLANTDEFON,3);
CPatch cPunchDamage   (ADR_DAMAGEAS,DAMAGEASPUNCH,7);
CPatch cColtDamage    (ADR_DAMAGEAS,DAMAGEASCOLT,7);
CPatch cArtillery0    (ADR_ARTILLERY0,NOP,2);
CPatch cArtillery1    (ADR_ARTILLERY1,NOP,2);
CPatch cArtillery2    (ADR_ARTILLERY2,JMP,1);
CPatch cArtillery3    (ADR_ARTILLERY3,JMP,1);
CPatch cArtillery4    (ADR_ARTILLERY4,JMP,1);
CPatch cArtillery5    (ADR_ARTILLERY5,NOP,5);
CPatch cArtillery6    (ADR_ARTILLERY6,JMP,1);
CPatch cArtillery7    (ADR_ARTILLERY7,NOP,6);
CPatch cVehJump1      (ADR_VEHJUMP1,NOP,2);
CPatch cVehJump2      (ADR_VEHJUMP2,NOP,2);

void GETBACKLOBBY (void)
{  
   dwServer  =  *(DWORD*)ADR_SERVERPTR;
   if (dwServer !=0 )
   {
	   DWORD dwKickMeNow    =  *(DWORD*)(dwServer+0x996B0);
	   DWORD GetMeInLobby   =   ADR_BACKINLOBBY;

		__asm 
		{	
			  mov  eax,dwKickMeNow
			  call [GetMeInLobby]
		}
   }
}

void cHackvar :: SpamBot ( char *SpamTexting  )
{
	DWORD dwWriteChat = ADR_SPAMBOT;
    Sleep(2500);
	__asm
	{
		mov  ecx,SpamTexting 
		call dwWriteChat
	}
}


void CallCrosshair (void)
{
//	VMProtectBeginMutation("CallCrosshair");
    dwGame   = *(DWORD*)ADR_PLAYERPTR;
	if ( dwGame !=0 )
	{
		DWORD CrosshairsCall1 = ADR_PREMCROSSCALL1;
		DWORD CrosshairsCall2 = ADR_PREMCROSSCALL2;

	    cCrossChange.Patch();	

		__asm
		{
			call [CrosshairsCall2]
			mov  eax,dword ptr ds:[eax+0x30]
			call [CrosshairsCall1]
		}

		cCrossChange.Restore();
	}
//	VMProtectEnd();
}

DWORD dwBulletsJMP = NULL;
__declspec (naked) void new_bullets (void)
{
   // VMProtectBeginMutation("new_bullets");
	if ( hacks.BULLETS !=0 )
	{
		__asm
		{
			mov ecx,hacks.BULLETS
			mov dword ptr ss :[ebp-0x124],ecx
			jmp dword ptr [dwBulletsJMP]
		}
	}
  //VMProtectEnd();
}


DWORD IDKick = NULL;
DWORD fakeKickJmp = NULL;
__declspec (naked) void new_fakekick()
{
	//VMProtectBeginMutation("new_fakekick");
	if ( hacks.KICKAS !=0 )
	{
        __asm
		{ 
			    lea  ecx, dword ptr [edi+0x996B0]
		        mov  eax,IDKick
				jmp  dword ptr [fakeKickJmp] 
		}
	}
	//VMProtectEnd();
}


DWORD UserKillKJmp = NULL;
DWORD UserID = NULL;
__declspec (naked) void new_userkill(void)
{
	//VMProtectBeginMutation("new_userkill");
	if ( hacks.USERKILL !=0 && hacks.PLAYERFIND !=0 )
	{
		__asm
		{
			mov ecx,UserID
			mov dword ptr [eax+0x1C],ecx
			jmp dword ptr [UserKillKJmp]
		}
	}
	//VMProtectEnd();
}


void __cdecl GetGameNotice ( char* Text )
{
    DWORD dwGameNotice = ADR_GAMENOTICE;
	__asm
	{
		push Text
		call [dwGameNotice]
		pop  ecx
	}
}

void __cdecl PrintText ( int * UpGames , int * InChat, char *szName, BYTE *Red, BYTE *Green, BYTE *Blue )
{  
	__asm
	{
		 push    UpGames
		 push    InChat
		 push    Red
		 pop     edi
		 push    Green
		 push    Blue
		 push    szName
		 mov     esi,ADR_GAMETEXT
		 call    esi
	}
}


void cHackvar :: cAsmFunction (void)
{
        //VMProtectBeginMutation("cAsmFunction");
		// == USER KILL 
		 if ( hacks.USERKILL !=0 && hacks.PLAYERFIND !=0 )
		 {
			cPlayerKill = false;
			dwGame   = *(DWORD*)ADR_PLAYERPTR;
			if ( dwGame !=0 )
			{
				UserID = ( hacks.PLAYERFIND-1);
				CPlayerInfo *pInfo      = GetPlayerInfo (UserID);
				CPlayerInfo *pLocalInfo = GetPlayerInfo( g_pBase->local->index );
				if ( (pLocalInfo->health > 0) && ( pInfo->team != pLocalInfo->team ) && (pInfo->health > 0) && strcmp(hacks.SNAME,"Empty Slot")!=0 )
				{	
					UserKillKJmp = (ADR_USERKILL+0x6);
					tools->DetourCreate((BYTE*)ADR_USERKILL,(BYTE*)new_userkill,6);
				}else{
					patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
				}
			}else{
		          patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
				}
		 }else{
				if ( cPlayerKill == false )
				{
					patch->memcpy_s((void*)ADR_USERKILL,(BYTE*)USERKILLOFF,6);
					cPlayerKill = true;
				}
		 }
		// == KICK AS
		if ( hacks.KICKAS !=0  )
		{
				switch (  hacks.KICKAS )
				{
					case 1 : ( IDKick = 0x25 ); break;
					case 2 : ( IDKick = (hacks.PLAYERFIND-1)  ); break;
				}
				if (hacks.BGHOSTKICKER)
				{
					fakeKickJmp  = (ADR_FAKEKICK+0x6);
					tools->DetourCreate((BYTE*)ADR_FAKEKICK,(BYTE*)new_fakekick,6);
					hacks.BGHOSTKICKER=false;
				}
		}else{
				if (!hacks.BGHOSTKICKER)
				{  
				    patch->memcpy_s((void*)ADR_FAKEKICK,(BYTE*)KICKASOFF,6);
					hacks.BGHOSTKICKER=true;
				}
		}
		// == Artillery
		if ( hacks.ARTILLERY == 1 )
		{
				cArtillery0.Patch();
				cArtillery1.Patch();
				cArtillery2.Patch();
				cArtillery3.Patch();
				cArtillery4.Patch();
				cArtillery5.Patch();
				cArtillery6.Patch();
				cArtillery7.Patch();
		}else{
				cArtillery0.Restore();
				cArtillery1.Restore();
				cArtillery2.Restore();
				cArtillery3.Restore();
				cArtillery4.Restore();
				cArtillery5.Restore();
				cArtillery6.Restore();
				cArtillery7.Restore();
		}
	    // == WEAPON DAMAGE
		if ( hacks.WEAPONDAMAGE == 1 )
		{
			cPunchDamage.Patch();
		}
		if ( hacks.WEAPONDAMAGE == 2 )
		{
			cPunchDamage.Restore();
			cColtDamage.Patch();
		}
		if ( hacks.WEAPONDAMAGE == 0 )
		{
			cPunchDamage.Restore();
			cColtDamage.Restore();
		}
	    // == CROSSHAIR
		if ( hacks.CROSSHAIR !=0 )
		{
			cPremCross1.Patch();
			cUnLockCross.Patch();

            if ( hacks.CROSSHAIR == 1 )
			{
					if ( cCrossHairs1 == true )
					{
						cPremCrossSel1.Patch();
						CallCrosshair();
						cCrossHairs1 = false;
						cCrossHairs2 = true;
						cCrossHairs3 = true;
						cCrossHairs4 = true;
						cCrossHairs5 = true;
					}
		    }
            if ( hacks.CROSSHAIR == 2 )
			{	
					if ( cCrossHairs2 == true )
					{
						cPremCrossSel1.Restore();
						cPremCrossSel2.Patch();
						CallCrosshair();
						cCrossHairs2 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs1 = true;
					}
			}
            if ( hacks.CROSSHAIR == 3 )
			{
				if ( cCrossHairs3 == true )
				{
						cPremCrossSel2.Restore();
						cPremCrossSel3.Patch();
						CallCrosshair();
						cCrossHairs3 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 4 )
			{
				if ( cCrossHairs4 == true )
				{
						cPremCrossSel3.Restore();
						cPremCrossSel4.Patch();
						CallCrosshair();
						cCrossHairs4 = false;
						cCrossHairs5 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 5 )
			{
				if ( cCrossHairs5 == true )
				{
						cPremCrossSel4.Restore();
						cPremCrossSel5.Patch();
						CallCrosshair();
						cCrossHairs5 = false;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}
            if ( hacks.CROSSHAIR == 6 )
			{
				if ( cCrossHairs9 == true )
				{
						cPremCrossSel5.Restore();
						cPremCrossSel9.Patch();
						CallCrosshair();
                        cCrossHairs9 = false;
						cCrossHairs5 = true;
						cCrossHairs4 = true;
						cCrossHairs3 = true;
						cCrossHairs2 = true;
						cCrossHairs1 = true;
				}
			}

	   }else{
				if ( cCrossHairs1 == false || cCrossHairs2 == false || cCrossHairs3 == false || cCrossHairs4 == false || cCrossHairs5 == false || cCrossHairs9 == false )
				{
						cPremCross1.Restore();
						cPremCrossSel1.Restore();
						cPremCrossSel2.Restore();
						cPremCrossSel3.Restore();
						cPremCrossSel4.Restore();
						cPremCrossSel5.Restore();
						cPremCrossSel9.Restore();
						cUnLockCross.Restore();
						CallCrosshair();
						cCrossHairs1 = true;
						cCrossHairs2 = true;
						cCrossHairs3 = true;
						cCrossHairs4 = true;
						cCrossHairs5 = true;
						cCrossHairs9 = true;
				}
	    }

		if(!bValueStored)
		{
			CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
			CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

			if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
			{
					for(int i = 0; i < MAX_WEAPONS; i++)
					{
							weaponsOriginalValues[i].dwWeight = weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwWeight;
							weaponsOriginalValues[i].dwWeight = weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwWeight;
							weaponsOriginalValues[i].dwShotSpeed = weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwShotSpeed;
weaponsOriginalValues[i].dwShotSpeed = weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwShotSpeed;
							bValueStored = true;
					}
			}
		}
	    // NO WEAPON RANGE
	    if ( hacks.WEAPONRANGE == 1 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
							weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwRange = 1000000;
							weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwRange = 1000000;
				}
			}
		}
	    // EXTRA RANGE
		if ( hacks.EXTRARANGE !=0 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
					switch ( hacks.EXTRARANGE )
					{
						case 1 : 
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 10000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 10000;
						break;
						case 2 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 20000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 20000;
						break;
						case 3 :
					    		weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 30000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 30000;
						break;
						case 4 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 40000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 40000;
						break;
						case 5 :
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 1000000;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwEffectRange = 1000000;
						break;
					}
				}
			}
		}
	    // == Super Weapons
		if ( hacks.WEAPONPLUS == 1 )
		{
			if ( g_pBase->local )
			{ 
				CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
				CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

				if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
				{
						weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwShotSpeed = 50000;
						weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwShotSpeed = 50000;
				}
			}
		}else{
				if ( bValueStored )
				{
					CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
					CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

					if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
					{
						for(int i = 0; i < MAX_WEAPONS; i++)
						{
							weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwShotSpeed = weaponsOriginalValues[i].dwShotSpeed;
							weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwShotSpeed = weaponsOriginalValues[i].dwShotSpeed;
						}
					}
				}
		}
	    // == No Weapon weight
	    if ( hacks.NOWEAPONWEIGHT == 1 )
		{
					if ( g_pBase->local )
					{ 
						CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
						CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

						if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
						{
								weaponPtr_1->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwWeight = 0;
								weaponPtr_2->WeaponPtr->WeaponInformations[g_pBase->local->weapon]->dwWeight = 0;
						}
					}
		}else{
					if ( bValueStored )
					{
						CWeaponGlobal* weaponPtr_1 = (CWeaponGlobal*)ADR_WEAPONGLOBAL1;
						CWeaponGlobal* weaponPtr_2 = (CWeaponGlobal*)ADR_WEAPONGLOBAL2;

						if ( weaponPtr_1 !=0 && weaponPtr_2 !=0 )
						{
							for(int i = 0; i < MAX_WEAPONS; i++)
							{
								weaponPtr_1->WeaponPtr->WeaponInformations[i]->dwWeight = weaponsOriginalValues[i].dwWeight;
								weaponPtr_2->WeaponPtr->WeaponInformations[i]->dwWeight = weaponsOriginalValues[i].dwWeight;
							}
						}
					}
		}
	    // == UNLIMITED OXYGEN
		if ( hacks.UNLOXYGEN == 1 )
		{
			cUnlOxygen.Patch();
		}else{
			cUnlOxygen.Restore();
		}
	    // == COMP BANDAGE 
	    if ( hacks.COMPBANDAGE == 1 )
		{
			 cCompBandage.Patch();
		}else{
			 cCompBandage.Restore();
		}
	    // == SNIPER ZOOM x2
	    if ( hacks.SZOOM == 1 )
		{
			cSnierPX.Patch();
		}else{

			cSnierPX.Restore();
		}
	    // == DEATH CAM
        if ( hacks.DTCAM == 1 )
		{
           cDeathCam.Patch();
		}else{
	      cDeathCam.Restore();
		}
	    // == SP UP
		if ( hacks.SPUP == 1 )
		{
			cPXStamina1.Patch();
			cPXStamina2.Patch();
		}else{
			cPXStamina1.Restore();
			cPXStamina2.Restore();
		}
		/*
	    // == CLAN WAR
	    if ( hacks.CLANTAG == 1 )
		{
			*(int*)(ADR_CLANTAG_1) = 1;
			*(int*)(ADR_CLANTAG_2) = 1;
			*(int*)(ADR_CLANTAG_3) = 1;
			*(int*)(ADR_CLANTAG_4) = 1;
			*(int*)(ADR_ENBLCLANCHAT) = 1;
		*/
		//	memcpy((void*)ADR_CLANNAME,/*NexonArmy*/XorStr<0x3B,10,0xBF748C35>("\x75\x59\x45\x51\x51\x01\x33\x2F\x3A"+0xBF748C35).s,9);
		//}
		
	    // == BULLETS
		if ( hacks.BULLETS !=0 )
		{
			if ( hacks.BBULLET )
			{
				dwBulletsJMP = ADR_BULLETSJMP;
				tools->DetourCreate((BYTE*)ADR_BULLETS,(BYTE*)new_bullets,6);
				hacks.BBULLET = false;
			}
		}else{
			if (!hacks.BBULLET)
			{  
				patch->memcpy_s((void*)ADR_BULLETS,BULLETOFF,6);
				hacks.BBULLET = true;
			}
		}
	    // == ZERO DELAY
	    if ( hacks.ZERODELAY == 1 )
		{
                cZeroDelay.Patch();
		}else{
			    cZeroDelay.Restore();
		}
	    // == OPK
	    if ( hacks.OPK == 1 )
		{
				cOPK1.Patch();
				cOPK2.Patch();
				cOPK3.Patch();
		}else{
				cOPK1.Restore();
				cOPK2.Restore();
				cOPK3.Restore();
		}
	    // == PRONE
		if ( hacks.PRONE == 1 )
		{
				cProne.Patch();
		}else{
				cProne.Restore();
		     }
	    // == SHOTTHRU
		if ( hacks.SHOTTHRU == 1 )
		{
			dwGame   = *(DWORD*)ADR_PLAYERPTR;
			if ( dwGame !=0 )
			{
					cShotThru1.Patch();
					cShotThru2.Patch();
			}else{
					cShotThru1.Restore();
					cShotThru2.Restore();
			}
		}else{
					cShotThru1.Restore();
					cShotThru2.Restore();
		     }
	    // == EXTRA CLIP S
		if ( hacks.EXTRACLIPS == 1 )
		{
				cExtraClipS.Patch();
		}else{
			    cExtraClipS.Restore();
		     }
	    // == EXTRA CLIP A
		if ( hacks.EXTRACLIPA == 1 )
		{
				cExtraClipA.Patch();
		}else{
			    cExtraClipA.Restore();
		     }
		// == VEH NO OVER HEART
		if ( hacks.VEHOVERHEART == 1 )
		{
			cVehOverHeart.Patch();
		}else{
            cVehOverHeart.Restore();
		}
	    // == AUTO REPAIR
		if ( hacks.AUTOREPAIR == 1 )
		{
				cAutoRepair1.Patch();
				cAutoRepair2.Patch();
				cAutoRepair3.Patch();
		}else{
			    cAutoRepair1.Restore();
			    cAutoRepair2.Restore();
			    cAutoRepair3.Restore();
		     }
	    // == AUTO AMMO
		if ( hacks.AUTOAMMO == 1 )
		{
				cAutoAmmo1.Patch();
				cAutoAmmo2.Patch();
		}else{
			    cAutoAmmo1.Restore();
			    cAutoAmmo2.Restore();
		     }
	    // == AUTO HEAL
		if ( hacks.AUTOHEAL == 1 )
		{
				cAutoHeal1.Patch();
				cAutoHeal2.Patch();
		}else{
			    cAutoHeal1.Restore();
			    cAutoHeal2.Restore();
		     }
	    // == BONE SHOT
		if ( hacks.BONESHOT == 1 )
		{
			cHeadShot.Patch();
		}
		if ( hacks.BONESHOT == 2 )
		{
            cHeadShot.Restore();
 			cNeckShot.Patch();
		}
		if ( hacks.BONESHOT == 0 )
		{
			cHeadShot.Restore();
			cNeckShot.Restore();
		}
	    // == QUICK PLANT/DEFUSE
		if ( hacks.QUICKPLANTDEFUSE == 1 )
		{
				cQuickDefuse.Patch();
				cQuickPlant.Patch();
		}else{
				cQuickDefuse.Restore();
				cQuickPlant.Restore();
		     }
		// == Plant Def Anywhere
		if ( hacks.QUICKPLANTDEFUSE == 1 && hacks.PLANTDEFUSEANYWHERE == 1 )
		{
			cPlantDef.Patch();

		}else{

			cPlantDef.Restore();
		}

		// == AUTO SHOT
		if ( hacks.AUTOSHOT == 1 )
		{
			cAutoShot.Patch();
		}else{
			cAutoShot.Restore();
		}
	    // == NO RESTRICTION
		if ( hacks.NORESTRICTION == 1 )
		{
				cNoRestriction.Patch();
		}else{
				cNoRestriction.Restore();
		     }
	    // == RADARGPS
		if ( hacks.RADAR == 1 )
		{
			dwServer = *(DWORD*)ADR_SERVERPTR;
			if ( dwServer !=0 )
			{
				DWORD dwFFA = *(DWORD*)(dwServer+0x9C5C0);
				if ( dwFFA  == 1 )
				{ 
					cRadarFFA1.Patch();
					cRadarFFA2.Patch();
				}else{
					cRadarFFA1.Restore();
					cRadarFFA2.Restore();
				}
			}
				    cRadarGPS.Patch();
		}else{
				cRadarGPS.Restore();
                cRadarFFA1.Restore();
                cRadarFFA2.Restore();
		     }
	    // == INVISIBLE
		if ( hacks.INVISIBLE == 1 )
		{
				cInvisible.Patch();
		}else{
				cInvisible.Restore();
		     }
	    // == ANTI M14
		if ( hacks.ANTIM14 == 1 )
		{
				cAntiM14.Patch();
		}else{
				cAntiM14.Restore();
		     }
	    // == ANTI FLASH
		if ( hacks.ANTIFLASH == 1 )
		{
				cAntiFlash.Patch();
		}else{
				cAntiFlash.Restore();
		     }
	    // == MINEINFO
		if ( hacks.MINEINFO == 1 )
		{
				cMineInfo1.Patch();
				cMineInfo2.Patch();
				cMineInfoFFA1.Patch();
				cMineInfoFFA2.Patch();
		}else{
				cMineInfo1.Restore();
				cMineInfo2.Restore();
				cMineInfoFFA1.Restore();
				cMineInfoFFA2.Restore();
		     }
	    // == Fast Reload
		if ( hacks.FASTRELOAD == 1 )
		{
				cFastReload1.Patch();
				cFastReload2.Patch();
		}else{
				cFastReload1.Restore();
				cFastReload2.Restore();
		     }
	    // == Quick Spawn
		if ( hacks.QUICKSPAWN == 1 )
		{
				cQuickSpawn1.Patch();
				cQuickSpawn2.Patch();
		}else{
				cQuickSpawn1.Restore();
				cQuickSpawn2.Restore();
		     }
	    // == Walk Thru
		if ( hacks.WALKTHRU == 1 )
		{
				cWalkThru.Patch();
		}else{
				cWalkThru.Restore();
		     }
	    // == ANTIAFK
		if ( hacks.ANTIAFK == 1 )
		{
				cAntiAfk.Patch();
		}else{
				cAntiAfk.Restore();
		     }
	    // == UNL AMMO
		if ( hacks.UNLAMMO == 1 )
		{
				cUnlAmmo.Patch();
		}else{
				cUnlAmmo.Restore();
		     }
	    // == VEH SUPERJUMP
		if ( hacks.VEHJUMP == 1 )
		{
				cVehJump1.Patch();
			    cVehJump2.Patch();

				if ( cVehJump == true )
				{
		     		tools->VProtect((void*)(ADR_VEHJUMP3),0x4,PAGE_EXECUTE_READWRITE,&OldProtection);
					cVehJump = false;
				}
					if ( *(DWORD*)(dwGame+OFS_PLAYERSTARE) == *(DWORD*)ADR_INVEHICLE ) 
					{
						   *(float*) (ADR_VEHJUMP3) = 0;
					}else{
						   *(float*) (ADR_VEHJUMP3) = 40;
					}
		}else{
					cVehJump1.Restore();
					cVehJump2.Restore();
				if ( cVehJump == false )
				{    
					*(float*) (ADR_VEHJUMP3) = 40;
                    tools->VProtect((void*)(ADR_VEHJUMP3),0x4,OldProtection,0);
					cVehJump = true;
				}
		}
	    // == VEH NO DAMAGE
		if ( hacks.VEHNODAMAGE == 1 )
		{
				cVehNoDamage.Patch();
		}else{
				cVehNoDamage.Restore();
		     }
	    // == VEH INVISIBLE
		if ( hacks.VEHINVISIBLE == 1 )
		{
				cVehInvisible.Patch();
		}else{
				cVehInvisible.Restore();
		     }
	    // == VEH SUPER FIRE
		if ( hacks.VEHSUPERFIRE == 1 )
		{
				cVehSuperFire1.Patch();
				cVehSuperFire2.Patch();
				cVehSuperFire3.Patch();
		}else{
				cVehSuperFire1.Restore();
				cVehSuperFire2.Restore();
				cVehSuperFire3.Restore();
		     }
	    // == STAMINA
		if ( hacks.FULLSTAMINA == 1 )
		{
				cStamina1.Patch();
				cStamina2.Patch();
				cStamina3.Patch();
		}else{
				cStamina1.Restore();
				cStamina2.Restore();
				cStamina3.Restore();
		     }
		// == NO RECOIL
		if ( hacks.NORECOIL == 1 )
		{	
				cNoRecoil.Patch();
		}else{
				cNoRecoil.Restore();
		     }
		// == NO SPREAD
		if ( hacks.NOSPREAD == 1 )
		{
				cNoSpread.Patch();
		}else{
				cNoSpread.Restore();
		     }
		// == NO RELOAD
		if ( hacks.NORELOAD == 1 )
		{
				cNoReload.Patch();
		}else{
				cNoReload.Restore();
		     }

	   // VMProtectEnd();
}

void cHackvar :: cInGameFunction (void)
{
    dwGame   = *(DWORD*)ADR_PLAYERPTR;
	if ( dwGame !=0 )
	{

		// == FOLLOW PLAYER
		if ( hacks.USERTELEPORT == 1 && hacks.PLAYERFIND !=0 )
		{ 
			CPlayerInfo * spInfo   = GetPlayerInfo(hacks.PLAYERFIND-1);
			CPlayer     * spPlayer = g_pBase->player[hacks.PLAYERFIND-1];
			if ( spInfo && spPlayer)
			{
				if ( tools->IsValidPlayer(spPlayer,spInfo) )
				{
					if ( spInfo->health > 0 )
					{
						g_pBase->local->pos1 = spPlayer->pos1;
					}
				}
			}
		}

		// == User Invisible
		if ( hacks.USERINVISIBLE == 1 && hacks.PLAYERFIND !=0 )
		{ 
			CPlayerInfo * spInfo   = GetPlayerInfo(hacks.PLAYERFIND-1);
			CPlayer     * spPlayer = g_pBase->player[hacks.PLAYERFIND-1];
			if ( spInfo && spPlayer )
			{
				if ( tools->IsValidPlayer(spPlayer,spInfo) )
			    {
					if ( spInfo->health > 0 )
					{
						spPlayer->pos1.b = 0;
						spPlayer->pos1.y = 0;
						spPlayer->pos1.d = 0;
						spPlayer->pos1.m = 0;
						spPlayer->pos1.g = 0;
						spPlayer->pos1.s = 0;
					}
				}
			}
		}
		// == TELEKILL
		if ( hacks.TELEKILL == 1 )
		{
			if (GetAsyncKeyState(VK_RBUTTON)&0x8000)
			{
				for ( int i = 0; i < 32; i++ )
				{ 
					CPlayerInfo *pInfo = GetPlayerInfo(i);
					CPlayer     *spPlayer = g_pBase->player[i];

					if ( pInfo && spPlayer )
					{
					  if ( tools->IsValidPlayer(spPlayer,pInfo) )
			          {
							CPlayerInfo *pLocalInfo = GetPlayerInfo(g_pBase->local->index);
							if( pInfo->team != pLocalInfo->team )
							{
								if( pInfo->health !=0 )
								{
									g_pBase->local->pos1 = spPlayer->pos1;
									break;
								}     
							}
					  }
					}
				}
			}
		}
		// == Zombie OPK
		if ( hacks.ZOMBIEOPK == 1 )
		{
			dwServer = *(DWORD*)ADR_SERVERPTR;
			if ( dwServer !=0 )
			{
				DWORD dwZombie = *(DWORD*)(dwServer+0x9C5C0);
				if ( dwZombie == 9 )
				{ 
					for(int i = 0; i < 32; i++)
					{
						CPlayer * pPlayer = g_pBase->player[i];
						if ( pPlayer )
						{
							g_pBase->local->pos1.b =0.0f;   //ME
							g_pBase->local->pos1.d =0.0f;   //ME
							g_pBase->local->pos1.g =0.0f;   //ME
							/*<--------------->*/
							pPlayer->pos1.b = 80.0f;        //Zombie
							pPlayer->pos1.d = 80.0f;        //Zombie
							pPlayer->pos1.g = 80.0f;        //Zombie
						}
					}
				}
			}
		}
		// == SPEED HACK
		if ( hacks.SPEED != 0 )
		{
				if ( cSpeed == true )
				{
		     		tools->VProtect((void*)(ADR_SPEED),0x8,PAGE_EXECUTE_READWRITE,&OldProtection);
					cSpeed = false;
				}
						switch ( hacks.SPEED )
						{
								case 1 :*(double*)(ADR_SPEED) = 96+10;   break;
								case 2 :*(double*)(ADR_SPEED) = 96+20;   break;
								case 3 :*(double*)(ADR_SPEED) = 96+200;  break;
								case 4 :*(double*)(ADR_SPEED) = 96+500;  break;
								case 5 :*(double*)(ADR_SPEED) = 96+1000; break;
						}
		}else{
				if ( cSpeed == false )
				{
					*(double*)(ADR_SPEED) = 96; 
					tools->VProtect((void*)(ADR_SPEED),0x8,OldProtection,0);
					cSpeed = true;
				}
		}

		// == SPEED ROLLING
		if ( hacks.SPEEDROLL != 0 )
		{
				if ( cSpeedRoll == true )
				{
		     		tools->VProtect((void*)(ADR_SPEEDROLLING),0x4,PAGE_EXECUTE_READWRITE,&OldProtection);
					cSpeedRoll = false;
				}
						switch ( hacks.SPEEDROLL )
						{
								case 1 :*(float*)(ADR_SPEEDROLLING) = 2.75;  break;
								case 2 :*(float*)(ADR_SPEEDROLLING) = 3.75;  break;
								case 3 :*(float*)(ADR_SPEEDROLLING) = 4.75;  break;
								case 4 :*(float*)(ADR_SPEEDROLLING) = 5.75;  break;
								case 5 :*(float*)(ADR_SPEEDROLLING) = 6.75;  break;
						}
		}else{
				if ( cSpeedRoll == false )
				{
					*(float*)(ADR_SPEEDROLLING) = 1.75f; 
					tools->VProtect((void*)ADR_SPEEDROLLING,0x4,OldProtection,0);
					cSpeedRoll = true;
				}
		}
	    // == QUICK ALL
		if ( hacks.FASTALL == 1 )
		{
			*(float*)(ADR_FASTFLAG)  = 20.0f;
			*(float*)(ADR_FASTMEDIC) = 15.0f;
			*(float*)(ADR_FASTAMMO)  = 15.0f;
		}

	    // ==  Weapon Gravity
		if ( hacks.WEAPNOGRAVITY == 1 )
		{
				if ( cWepGrav == true )
				{
					tools->VProtect((void*)(ADR_WEAPONGRAVITY),0x8,PAGE_EXECUTE_READWRITE,&OldProtection);
					*(double*)(ADR_WEAPONGRAVITY) = 9999; 
                    cWepGrav = false;
				}
		}else{
				if ( cWepGrav == false )
				{
					*(double*)(ADR_WEAPONGRAVITY) = 1000;
		   			tools->VProtect((void*)ADR_WEAPONGRAVITY,0x8,OldProtection,0);
					cWepGrav = true;
				}
		}
		// == SWIM
		if ( hacks.SWIM == 1 )
		{ 
				if ( *(DWORD*)(dwGame+OFS_PLAYERSTARE) != *(DWORD*)ADR_INVEHICLE ) 
				{
			 			*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)ADR_SWIM1;
						UnLockSwim.Patch();
						cSwim = false;

				}else{
					    cSwim = false;
				     }
		}else{
				if ( cSwim == false  )
				{
						*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)ADR_SWIM2;
						*(DWORD*)(dwGame+OFS_PLAYERSTARE) = *(DWORD*)(dwGame+OFS_PLAYERSTARE);
						 UnLockSwim.Restore();
						 cSwim = true;
				}
		}
		// == SUPER JUMP
		if ( hacks.SUPERJUMP == 1 )
		{
			if (GetAsyncKeyState(0x20))
			{
			   *(float*)(dwGame+OFS_SUPERJUMP) = *(float*)(dwGame+OFS_SUPERJUMP) + 35;
			}
		}
		// == NO FALL DAMAGE
		if ( hacks.NOFALL == 1 )
		{
			*(float*)(dwGame+OFS_NOFALLDAMAGE) = -9999999;
		}
		// == SCOPE		
		if ( hacks.NOSCOPE == 1 )
		{
			if (GetAsyncKeyState(0x02))
			{
                *(DWORD*)(ADR_SCOPE) = 8;

			}else{

                *(DWORD*)(ADR_SCOPE) = 5;
			}
		}
		// == NO BOUNDS
		if ( hacks.NOBOUNDS == 1 )
		{
			*(DWORD*)(ADR_NOBOUNDS1) = 0;
			*(DWORD*)(ADR_NOBOUNDS2) = 0;
			*(DWORD*)(ADR_NOBOUNDS3) = 0;

		}
		// == NO WATER
		if ( hacks.NOWATER == 1 )
		{
			if ( cWaterB == true )
			{
				cWater1 =  *(int*)(ADR_NOWATER_1);
				cWater2 =  *(int*)(ADR_NOWATER_2);
				*(int*)(ADR_NOWATER_1) = 0;
		 		*(int*)(ADR_NOWATER_2) = 0;
				cWaterB = false;
			}
		}else{
			if ( cWaterB == false )
			{
			  *(int*)(ADR_NOWATER_1) = cWater1;
		 	  *(int*)(ADR_NOWATER_2) = cWater2;
			   cWaterB = true;
			}
		}
	

	}
}

void cHackvar :: cInServerFunction (void)
{
    dwServer = *(DWORD*)ADR_SERVERPTR;
	if ( dwServer !=0 )
	{
 
		// == PREMIUM
		switch ( hacks.PREMIUM )
				{
		case 1:
				*(long*)( dwServer+OFS_PREMIUM) = 1; 
				*(long*)( dwServer+OFS_PREMIUM + 0x4 ) = 2592000;
		break;
		case 2: 
				*(long*)( dwServer+OFS_PREMIUM ) = 2; 
				*(long*)( dwServer+OFS_PREMIUM  + 0x4 ) = 2592000;
		break;
		case 3: 
				*(long*)( dwServer+OFS_PREMIUM  ) = 3; 
				*(long*)( dwServer+OFS_PREMIUM + 0x4 ) = 2592000;	
		break;
		case 4: 
				*(long*)( dwServer+OFS_PREMIUM  ) = 4; 
				*(long*)( dwServer+OFS_PREMIUM  + 0x4 ) = 2592000;	
		break;
				}
        // == GM ALERT MESSAGE
		if ( hacks.GMALERT  == 1 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);	
			char *GMIP   = (char*)(ADR_GMALERTIP);	
			if ( strlen(GMName) > 2 || strlen(GMIP) > 2  ) 
			{
					char GMWarnMex[333];
					sprintf(GMWarnMex,/*ATTENTION >> %s is spectating room!*/XorStr<0x2C,36,0x4B99FFE8>("\x6D\x79\x7A\x6A\x7E\x65\x7B\x7C\x7A\x15\x08\x09\x18\x1C\x49\x1B\x55\x4E\x1E\x4C\x30\x24\x21\x37\x25\x31\x2F\x29\x2F\x69\x38\x24\x23\x20\x6F"+0x4B99FFE8).s,ADR_GMALERTNAME,ADR_GMALERTIP);
                    PrintText((int*)0x0,(int*)0x1,GMWarnMex,(BYTE*)0xFF,(BYTE*)0x00,(BYTE*)0x00);//Red
			}
		}
        // == GM ALERT LOBBY
		if ( hacks.GMALERT  == 2 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);	
			if ( strlen(GMName) > 2   ) 
			{
				 GETBACKLOBBY();
			}
		}
        // == GM ALERT CRASH
		if ( hacks.GMALERT  == 3 )
		{
			char *GMName = (char*)(ADR_GMALERTNAME);		
			if ( strlen(GMName) > 2  ) 
			{
				 ExitProcess(TRUE);
			}
		}
		// == Room Master
		if ( hacks.ROOMMASTER == 1 )
		{
			DWORD  *PLSLOT; 
			DWORD  *RMSLOT; 
			PLSLOT =(DWORD *)((dwServer)+ OFS_PLAYERSLOT); 
			RMSLOT =(DWORD *)((dwServer)+ OFS_ROOMMASTER); 
			*RMSLOT = *PLSLOT;
		} 
		// == SUPER MASTER
		if ( hacks.SUPERMASTER == 1 )
		{
			if ( cSuperMaster == true )
			{
				 SuperMaster =  *(long*)(dwServer+OFS_SUPERMASTER);
			    *(long*)(dwServer+OFS_SUPERMASTER) = 1;
			    cSuperMaster = false;
			}
		}else{

			if ( cSuperMaster == false )
			{
                *(long*)(dwServer+OFS_SUPERMASTER) = SuperMaster;
				 cSuperMaster = true;
			}


		}
		// == ALL SLOT
		if ( hacks.SLOTS == 1  )
		{ 
				if ( cSlot == true )
				{
					Slot5 = *(BYTE*)(dwServer+OFS_SLOTS); 
					Slot6 = *(BYTE*)(dwServer+OFS_SLOTS+0x1); 
					Slot7 = *(BYTE*)(dwServer+OFS_SLOTS+0x2);  
					Slot8 = *(BYTE*)(dwServer+OFS_SLOTS+0x3); 
					// ==========================================
					*(BYTE*)(dwServer+OFS_SLOTS)     = 1; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x1) = 1;  
					*(BYTE*)(dwServer+OFS_SLOTS+0x2) = 1;  
					*(BYTE*)(dwServer+OFS_SLOTS+0x3) = 1;
					cSlot = false;
				}
		}else{
				if ( cSlot == false )
				{
					*(BYTE*)(dwServer+OFS_SLOTS)     = Slot5; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x1) = Slot6; 
					*(BYTE*)(dwServer+OFS_SLOTS+0x2) = Slot7;   
					*(BYTE*)(dwServer+OFS_SLOTS+0x3) = Slot8; 
					cSlot = true;	
				}
		}		
		// == WEAPON BINDER
		if ( hacks.CLASS > 0 )
		{
			find_weapons();
			if (hacks.WEAPONSLOT1 >0)
			WPNput(hacks.CLASS - 1, 0, hacks.WEAPONSLOT1-1);
			if (hacks.WEAPONSLOT2 > 0)
			WPNput(hacks.CLASS - 1, 1, hacks.WEAPONSLOT2-1);
			if ( hacks.WEAPONSLOT3 > 0)
			WPNput(hacks.CLASS- 1, 2,  hacks.WEAPONSLOT3-1);
			if ( hacks.WEAPONSLOT4 > 0) 
			WPNput(hacks.CLASS - 1, 3,  hacks.WEAPONSLOT4-1);
			if ( hacks.WEAPONSLOT5 > 0)
			WPNput(hacks.CLASS - 1, 4 , hacks.WEAPONSLOT5-1);
			if ( hacks.WEAPONSLOT6 > 0)
			WPNput(hacks.CLASS - 1, 5,  hacks.WEAPONSLOT6-1);
			if ( hacks.WEAPONSLOT7 > 0) 
			WPNput(hacks.CLASS- 1, 6,  hacks.WEAPONSLOT7-1);
			if ( hacks.WEAPONSLOT8 > 0)
			WPNput(hacks.CLASS - 1, 7,  hacks.WEAPONSLOT8-1);
		}
	}
		// == PLAYER FINDER
		if  ( hacks.PLAYERFIND )
		{
				DWORD Name = NULL;
				DWORD Ip   = NULL;
				int  i = (hacks.PLAYERFIND-1);
				Name       = (ADR_USERNAME      + (ADR_PLAYERSIZE * i));
				Ip         = (ADR_USERIP        + (ADR_PLAYERSIZE * i));
				if ( strlen((char*)Name) >0 )
				{
						sprintf(SNAME,/*%s*/XorStr<0xDE,3,0x8CBF9E26>("\xFB\xAC"+0x8CBF9E26).s,(void*)Name);
						sprintf(SIP,/*%s*/XorStr<0xDE,3,0x8CBF9E26>("\xFB\xAC"+0x8CBF9E26).s,(void*)Ip);	
				}else{
						sprintf(SNAME,/*Empty Slot*/XorStr<0x07,11,0x75D18515>("\x42\x65\x79\x7E\x72\x2C\x5E\x62\x60\x64"+0x75D18515).s);
						sprintf(SIP,/*Empty Slot*/XorStr<0x07,11,0x75D18515>("\x42\x65\x79\x7E\x72\x2C\x5E\x62\x60\x64"+0x75D18515).s);
				}
		}
}


void   cHackvar :: StartAimbot ( void )
{
	DWORD dwPlayerPointer = *(DWORD*)ADR_PLAYERPTR;

	if ( hacks.AIMBOT !=0 && dwPlayerPointer!=0 && IsValid==479 )
	{
		hacks.NORECOIL=1;
		D3DXVECTOR3 wLocal,wPlayer,wTarget,WarAngle;
		float SetDist,PlrDist;
		float SetAngle=9999999;
		int botkey;
		int PLRID = -1;
		CPlayer* MyInfo = g_pBase->local;
					
		switch(hacks.AIMRANGE)
		{
			case 0:SetDist=999999;	break;
			case 1:SetDist=10;		break;
			case 2:SetDist=20;		break;
			case 3:SetDist=30;		break;
			case 4:SetDist=40;		break;
			case 5:SetDist=60;		break;
			case 6:SetDist=80;		break;
			case 7:SetDist=100;		break;
			case 8:SetDist=200;		break;
			case 9:SetDist=300;		break;
			case 10:SetDist=400;	break;
			case 11:SetDist=600;	break;
			case 12:SetDist=1000;	break;
		}
		switch(hacks.AIMKEY)
		{
		    case 0:botkey=02;		break;
			case 1:botkey=02;		break;
			case 2:botkey=01;		break;
			case 3:botkey=04;		break;
			case 4:botkey=160;		break;
			case 5:botkey=162;		break;
		}


		for ( int slot=0 ; slot<32 ; slot++ )	
		{

			CPlayer     *pPlayer    = g_pBase->player[slot];
			CPlayerInfo *pInfo      = GetPlayerInfo(slot);
			CPlayerInfo *pLocalInfo = GetPlayerInfo(g_pBase->local->index);

			if ( MyInfo && pInfo && pPlayer )
			{
               if ( tools->IsValidPlayer(pPlayer,pInfo) )
			   {
					wLocal.x  =  MyInfo->pos.x;
					wLocal.y  =  MyInfo->pos.y;
					wLocal.z  =  MyInfo->pos.z;

					wPlayer.x =  pPlayer->pos.x;
					wPlayer.y =  pPlayer->pos.y;
					wPlayer.z =  pPlayer->pos.z;

					PlrDist = (float)sqrt(pow((wPlayer.x-wLocal.x),2)+pow((wPlayer.y-wLocal.y),2)+pow((wPlayer.z-wLocal.z),2))/10;
					if ( PlrDist < SetDist && pInfo->team != pLocalInfo->team && pInfo->health > 0 && pInfo->name > 0  )
					{
						SetDist = PlrDist;
						PLRID   = slot;
						cAimBot->AimCorrection(hacks.AIMAT,pPlayer,wPlayer,wTarget);
					}
			   }
			}
				if ( PLRID != -1 )
				{
					if ( hacks.AIMBOT==2 )
					{
						cAimBot->TargetAngle(wTarget,wLocal,WarAngle);
						cAimBot->AimToPoint(WarAngle[0],WarAngle[2]);
					}
					if ( hacks.AIMBOT==1 )
					{
						if(GetAsyncKeyState(botkey))
						{
							cAimBot->TargetAngle(wTarget,wLocal,WarAngle);
							cAimBot->AimToPoint(WarAngle[0],WarAngle[2]);
						}
					}
				}
		}

	}
}



void  cHackvar :: D3DESP ( LPDIRECT3DDEVICE9 pDevice )
{
  for ( int i = 0; i < 32; i++ )
  {
		if ( !g_pBase->player || !g_pBase->local)break; 
		CPlayer		*spPlayer;
		CPlayerInfo *spInfo;
		spPlayer    = g_pBase->player[i];
		spInfo	    = GetPlayerInfo(i);


	if ( spInfo && spPlayer )
	{
		CPlayerInfo *spLocalInfo = GetPlayerInfo(g_pBase->local->index);
		if (hacks.NAMEESP || hacks.HEALTESP || hacks.IPESP || hacks.TEAMESP || hacks.DISTANCEESP )
		{
				D3DXVECTOR3 g_pPlayer(spPlayer->pos.x, spPlayer->pos.z, spPlayer->pos.y), g_vView; 
				if ( tools->IsValidPlayer(spPlayer, spInfo) && d3d->GetScreenCoordFromWorld ( pDevice, g_vView, g_pPlayer) )
				{
                          float foffset =  g_vView.y-30;

							// == Enemy Only
									if  (hacks.ENEMYONLY == 1 && spInfo->team != spLocalInfo->team && spInfo->health > 0 && spInfo->name > 0 )
									{

										if (hacks.NAMEESP == 1 )
										{  
											font->DrawText( g_vView.x, foffset,TextRed, spInfo->name,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if( hacks.HEALTESP == 1  )
										{	
											d3d->ShowHealt(pDevice, g_vView.x+18,foffset+10,spInfo->health);
											foffset += 10;
										}
										if( hacks.HEALTESP == 2 )
										{
											int  Red1,Green1;
											Red1   =	255-((spInfo->health/10)*2.55);
											Green1 =	(spInfo->health/10)*2.55;
											sprintf(szhealth,/*%d %*/XorStr<0x63,5,0x678090F9>("\x46\x00\x45\x43"+0x678090F9).s,(int)spInfo->health/10);
											font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB( 255, Red1, Green1, 0), szhealth, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										/*
										if ( hacks.WEAPONESP == 1 )
										{
											font->DrawText( g_vView.x,foffset,UrbaESP,EspWeapons[(int)spPlayer->weapon], D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										*/
										if ( hacks.IPESP == 1 )
										{   
											font->DrawText( g_vView.x,foffset,TextRed, spInfo->ip,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										
										if(hacks.TEAMESP )
										{
											if ( GetPlayerInfo(i)->team == 1 )
											{
													font->DrawText(g_vView.x,foffset,D3DCOLOR_ARGB(255,0,255,0),/*N.I.U*/XorStr<0x20,6,0x4A8A24B3>("\x6E\x0F\x6B\x0D\x71"+0x4A8A24B3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
													foffset += 10;
											}else{
													font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB(255,255,255,0),/*Derberan*/XorStr<0x5D,9,0x5AE559A3>("\x19\x3B\x2D\x02\x04\x10\x02\x0A"+0x5AE559A3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
													foffset += 10;
											}
										}
										if( hacks.DISTANCEESP == 1 )
										{
											sprintf(szDistance,/*%.2f m*/XorStr<0x27,7,0xC1C454F0>("\x02\x06\x1B\x4C\x0B\x41"+0xC1C454F0).s,tools->GetDistance(g_pBase->local, spPlayer)/60);
											font->DrawText( g_vView.x,foffset, TextOrange, szDistance,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC); 
											foffset += 10;
										}
								}
								if (  hacks.ENEMYONLY == 2 && spInfo->health > 0 )
								{
										if ( spLocalInfo->team == spInfo->team )
										{
											UrbaESP =  D3DCOLOR_ARGB(255,235,235,235);
											}else{
											UrbaESP = D3DCOLOR_ARGB(255,255,000,000);
										}
										if ( hacks.NAMEESP == 1 )
										{    	
											font->DrawText( g_vView.x,foffset,UrbaESP, spInfo->name,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if( hacks.HEALTESP == 1  )
										{		
											d3d->ShowHealt (pDevice, g_vView.x+18,foffset+10, spInfo->health);
											foffset += 10;
										}
										if ( hacks.HEALTESP == 2 )
										{
											int Red1,Green1;
											Red1   =	255-((spInfo->health/10)*2.55);
											Green1 =	(spInfo->health/10)*2.55;
											sprintf(szhealth,/*%d %*/XorStr<0x63,5,0x678090F9>("\x46\x00\x45\x43"+0x678090F9).s,(int)spInfo->health/10);
											font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB( 255, Red1, Green1, 0), szhealth, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										
										/*
										if ( hacks.WEAPONESP == 1 )
										{
											font->DrawText( g_vView.x,foffset,UrbaESP,EspWeapons[(int)spPlayer->weapon], D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										*/
										if (hacks.IPESP == 1 )
										{    	
											font->DrawText( g_vView.x,foffset,UrbaESP, spInfo->ip,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
										if (hacks.TEAMESP )
										{
											if ( GetPlayerInfo(i)->team == 1 )
											{
												font->DrawText(g_vView.x,foffset,D3DCOLOR_ARGB(255,0,255,0),/*N.I.U*/XorStr<0x20,6,0x4A8A24B3>("\x6E\x0F\x6B\x0D\x71"+0x4A8A24B3).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
												foffset += 10;
											}else{
												font->DrawText( g_vView.x,foffset,D3DCOLOR_ARGB(255,255,255,0),/*Derberan*/XorStr<0xD5,9,0x20273C3C>("\x91\xB3\xA5\xBA\xBC\xA8\xBA\xB2"+0x20273C3C).s,D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
												foffset += 10;
											}
										}
										if(hacks.DISTANCEESP == 1 )
										{
											sprintf(szDistance,/*%.2f m*/XorStr<0x27,7,0xC1C454F0>("\x02\x06\x1B\x4C\x0B\x41"+0xC1C454F0).s,tools->GetDistance(g_pBase->local, spPlayer)/60);
											font->DrawText( g_vView.x,foffset,TextOrange, szDistance, D3DFONT_CENTERED || D3DFONT_ZENABLE || D3DFONT_ITALIC);
											foffset += 10;
										}
								}

				 }
			  }
		}
	}
}


Hellow....Can you give the source code i wanna try and update on WR Papaya <3

Quote:
Originally Posted by Vicous00 View Post
just ask from yazzn or use an packet logger.
Do you have Menu base before?
UR_COD is offline  
Old 03/01/2022, 14:17   #1125
 
elite*gold: 0
Join Date: Feb 2022
Posts: 16
Received Thanks: 2
Quote:
Originally Posted by UR_COD View Post
Hellow....Can you give the source code i wanna try and update on WR Papaya <3



Do you have Menu base before?
No i do not
Vicous00 is offline  
Reply


Similar Threads Similar Threads
[Farmville2]Rock&Wood Cheat.
10/28/2012 - Facebook - 0 Replies
Credits: http://www.pwnthis.net/2012/10/farmville-2-cheats -vanishing-rocks.html 1. Gehe auf deine Farm. 2. Öffne Cheat Engine. 3. Öffne den flash plugin bei Firefox. 4. Ändere den Value type auf Text. 5. Scanne: obstruction_rock. 6. Wähle alle Ergebnisse aus und nutzen dann den roten Pfeil.
Can you help me in Cheat Engine for the rock paper scissor please ?
08/04/2011 - 4Story - 4 Replies
With Cheat Engine 6 I tried to modifie the number of victories: I win one time, I put 1 and do first scan I win twice, I put 2 and I do next scen I win three times and I put 3 and next scan and I found the adress number: 07482200 I modifie for put 15 and I try to leave and he didn't work I repaet operations and I try to continue but didn't work either =( Do you know how make that ?
help war rock cheat
04/14/2008 - Say Hello - 3 Replies
can some 1 give me some cheat for war rock thx. [email protected]:confused:



All times are GMT +1. The time now is 10:56.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.