mirror of
https://github.com/qwertyuiop3/Storm.git
synced 2025-06-08 02:29:41 +08:00
fix 'cheap' smokecloud
This commit is contained in:
parent
562a6d760e
commit
6c8f182ebe
@ -4,7 +4,5 @@ void __thiscall Redirected_Calculate_View(void* Player, void* Unknown_Parameter_
|
|||||||
{
|
{
|
||||||
(decltype(&Redirected_Calculate_View)(Original_Calculate_View_Caller))(Player, Unknown_Parameter_1, Angles, Unknown_Parameter_2);
|
(decltype(&Redirected_Calculate_View)(Original_Calculate_View_Caller))(Player, Unknown_Parameter_1, Angles, Unknown_Parameter_2);
|
||||||
|
|
||||||
using Get_Eye_Angles_Type = float*(__thiscall*)(void* Entity);
|
Byte_Manager::Copy_Bytes(1, Angles, sizeof(float[3]), (float*)((unsigned __int32)Player + 4996));
|
||||||
|
|
||||||
Byte_Manager::Copy_Bytes(1, Angles, sizeof(float[3]), Get_Eye_Angles_Type((unsigned __int32)Client_Module + 2237296)(Player));
|
|
||||||
}
|
}
|
@ -22,7 +22,7 @@ void* Get_Studio_Header(void* Entity)
|
|||||||
|
|
||||||
void* Get_Hitbox_Set(Target_Structure* Target, float(*Bones)[3][4], float Time)
|
void* Get_Hitbox_Set(Target_Structure* Target, float(*Bones)[3][4], float Time)
|
||||||
{
|
{
|
||||||
using Setup_Bones_Type = __int8(__thiscall*)(void* Entity, void* Bones, __int32 Maximum_Bones, __int32 Mask, float Current_Time);
|
using Setup_Bones_Type = __int8(__thiscall*)(void* Entity, void* Bones, __int32 Maximum_Bones, __int32 Mask, float Time);
|
||||||
|
|
||||||
if (Setup_Bones_Type((unsigned __int32)Client_Module + 246656)((void*)((unsigned __int32)Target->Self + 4), Bones, 128, 524032, Time) == 1)
|
if (Setup_Bones_Type((unsigned __int32)Client_Module + 246656)((void*)((unsigned __int32)Target->Self + 4), Bones, 128, 524032, Time) == 1)
|
||||||
{
|
{
|
||||||
@ -93,7 +93,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
if ((Command->Buttons & 2) + *(__int8*)((unsigned __int32)Local_Player + 324) == 4)
|
if ((Command->Buttons & 2) + *(__int8*)((unsigned __int32)Local_Player + 324) == 4)
|
||||||
{
|
{
|
||||||
Command->Move[0] = 0;
|
Command->Move[0] = 0.f;
|
||||||
|
|
||||||
if (*(void**)((unsigned __int32)Local_Player + 316) == INVALID_HANDLE_VALUE)
|
if (*(void**)((unsigned __int32)Local_Player + 316) == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
@ -269,11 +269,9 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
{
|
{
|
||||||
if (*(void**)((unsigned __int32)Local_Player + 10008) == INVALID_HANDLE_VALUE)
|
if (*(void**)((unsigned __int32)Local_Player + 10008) == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
__int8 Is_Jockey_Victim = *(void**)((unsigned __int32)Local_Player + 10056) != INVALID_HANDLE_VALUE;
|
if ((*(void**)((unsigned __int32)Local_Player + 10012) != INVALID_HANDLE_VALUE) + (*(void**)((unsigned __int32)Local_Player + 10024) != INVALID_HANDLE_VALUE) + (*(void**)((unsigned __int32)Local_Player + 10056) != INVALID_HANDLE_VALUE) != 0)
|
||||||
|
|
||||||
if ((*(void**)((unsigned __int32)Local_Player + 10012) != INVALID_HANDLE_VALUE) + (*(void**)((unsigned __int32)Local_Player + 10024) != INVALID_HANDLE_VALUE) + Is_Jockey_Victim != 0)
|
|
||||||
{
|
{
|
||||||
Command->Buttons |= Is_Jockey_Victim * 2;
|
Command->Buttons |= (*(void**)((unsigned __int32)Local_Player + 10056) != INVALID_HANDLE_VALUE) * 2;
|
||||||
|
|
||||||
Disable_Clock_Correction(Interface_Extra_Commands_Action.Integer);
|
Disable_Clock_Correction(Interface_Extra_Commands_Action.Integer);
|
||||||
}
|
}
|
||||||
@ -351,7 +349,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
__int8 Cancelable_Shove = 1 + (*(float*)((unsigned __int32)Local_Player + 7336) < Global_Variables->Current_Time) * (*(float*)((unsigned __int32)Weapon + 2404) <= Global_Variables->Current_Time);
|
__int8 Cancelable_Shove = 1 + (*(float*)((unsigned __int32)Local_Player + 7336) < Global_Variables->Time) * (*(float*)((unsigned __int32)Weapon + 2404) <= Global_Variables->Time);
|
||||||
|
|
||||||
__int32 Weapon_Identifier = Get_Identifier(Weapon, 1, 0);
|
__int32 Weapon_Identifier = Get_Identifier(Weapon, 1, 0);
|
||||||
|
|
||||||
@ -369,9 +367,9 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
Cancelable_Shove = min(1 + (*(float*)((unsigned __int32)Weapon + 3312) == -1.f), Cancelable_Shove);
|
Cancelable_Shove = min(1 + (*(float*)((unsigned __int32)Weapon + 3312) == -1.f), Cancelable_Shove);
|
||||||
}
|
}
|
||||||
|
|
||||||
__int8 In_Shove = Global_Variables->Current_Time >= *(float*)((unsigned __int32)Local_Player + 7904);
|
__int8 In_Shove = Global_Variables->Time >= *(float*)((unsigned __int32)Local_Player + 7904);
|
||||||
|
|
||||||
if (Global_Variables->Current_Time >= *(float*)((unsigned __int32)Weapon + 2704))
|
if (Global_Variables->Time >= *(float*)((unsigned __int32)Weapon + 2704))
|
||||||
{
|
{
|
||||||
In_Shove = *(__int8*)((unsigned __int32)Weapon + 2720);
|
In_Shove = *(__int8*)((unsigned __int32)Weapon + 2720);
|
||||||
}
|
}
|
||||||
@ -396,11 +394,11 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Can_Attack = (*(float*)((unsigned __int32)Weapon + 2400) <= Global_Variables->Current_Time) * (Ammo > 0 - Is_Melee * 2) * (Reloading ^ 1);
|
Can_Attack = (*(float*)((unsigned __int32)Weapon + 2400) <= Global_Variables->Time) * (Ammo > 0 - Is_Melee * 2) * (Reloading ^ 1);
|
||||||
|
|
||||||
if ((*(double*)((unsigned __int32)Weapon + 3392) == 0.) * Weapon_Identifier == 153)
|
if ((*(double*)((unsigned __int32)Weapon + 3392) == 0.) * Weapon_Identifier == 153)
|
||||||
{
|
{
|
||||||
Can_Attack *= *(float*)((unsigned __int32)Weapon + 3400) <= Global_Variables->Current_Time;
|
Can_Attack *= *(float*)((unsigned __int32)Weapon + 3400) <= Global_Variables->Time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,24 +480,17 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Target_List_Sort_Prepare = [](Target_Structure& X, Target_Structure& Y) -> __int8
|
auto Target_List_Sort = [](Target_Structure& X, Target_Structure& Y) -> __int8
|
||||||
{
|
{
|
||||||
return X.Priority < Y.Priority;
|
if (X.Priority == Y.Priority)
|
||||||
};
|
|
||||||
|
|
||||||
std::sort(Sorted_Target_List.begin(), Sorted_Target_List.end(), Target_List_Sort_Prepare);
|
|
||||||
|
|
||||||
auto Target_List_Sort_Finish = [](Target_Structure& X, Target_Structure& Y) -> __int8
|
|
||||||
{
|
|
||||||
if (X.Priority > Y.Priority)
|
|
||||||
{
|
{
|
||||||
return 1;
|
return X.Distance < Y.Distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
return X.Distance < Y.Distance;
|
return X.Priority > Y.Priority;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::sort(Sorted_Target_List.begin(), Sorted_Target_List.end(), Target_List_Sort_Finish);
|
std::sort(Sorted_Target_List.begin(), Sorted_Target_List.end(), Target_List_Sort);
|
||||||
|
|
||||||
size_t Target_Number = 0;
|
size_t Target_Number = 0;
|
||||||
|
|
||||||
@ -544,7 +535,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
using Get_Deploy_Activity_Type = __int32(__thiscall**)(void* Weapon);
|
using Get_Deploy_Activity_Type = __int32(__thiscall**)(void* Weapon);
|
||||||
|
|
||||||
Holstering = (min(*(float*)((unsigned __int32)Local_Player + 3872), *(float*)((unsigned __int32)Weapon + 2412)) + Get_Sequence_Duration_Type((unsigned __int32)Client_Module + 180400)(Weapon, Get_Studio_Header(Weapon), Select_Sequence_Type((unsigned __int32)Client_Module + 202896)(Weapon, (*Translate_Activity_Type(*(unsigned __int32*)Weapon + 1692))(Weapon, (*Get_Deploy_Activity_Type(*(unsigned __int32*)Weapon + 1600))(Weapon)))) > Global_Variables->Current_Time) * (Can_Attack ^ 1);
|
Holstering = (min(*(float*)((unsigned __int32)Local_Player + 3872), *(float*)((unsigned __int32)Weapon + 2412)) + Get_Sequence_Duration_Type((unsigned __int32)Client_Module + 180400)(Weapon, Get_Studio_Header(Weapon), Select_Sequence_Type((unsigned __int32)Client_Module + 202896)(Weapon, (*Translate_Activity_Type(*(unsigned __int32*)Weapon + 1692))(Weapon, (*Get_Deploy_Activity_Type(*(unsigned __int32*)Weapon + 1600))(Weapon)))) > Global_Variables->Time) * (Can_Attack ^ 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -620,7 +611,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
if (Cancelable_Shove == 1)
|
if (Cancelable_Shove == 1)
|
||||||
{
|
{
|
||||||
float Shove_Multiplier = min((Global_Variables->Current_Time - *(float*)((unsigned __int32)Weapon + 2704) + *(float*)((unsigned __int32)Weapon + 2700)) / *(float*)((unsigned __int32)Weapon + 2700), 1.f);
|
float Shove_Multiplier = min((Global_Variables->Time - *(float*)((unsigned __int32)Weapon + 2704) + *(float*)((unsigned __int32)Weapon + 2700)) / *(float*)((unsigned __int32)Weapon + 2700), 1.f);
|
||||||
|
|
||||||
Command->Angles[1] += -45.f * Shove_Multiplier + 45.f * (1.f - Shove_Multiplier);
|
Command->Angles[1] += -45.f * Shove_Multiplier + 45.f * (1.f - Shove_Multiplier);
|
||||||
}
|
}
|
||||||
@ -723,7 +714,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
float Bones[128][3][4];
|
float Bones[128][3][4];
|
||||||
|
|
||||||
void* Hitbox_Set = Get_Hitbox_Set(Target, Bones, Global_Variables->Current_Time);
|
void* Hitbox_Set = Get_Hitbox_Set(Target, Bones, Global_Variables->Time);
|
||||||
|
|
||||||
if (Hitbox_Set != nullptr)
|
if (Hitbox_Set != nullptr)
|
||||||
{
|
{
|
||||||
@ -733,7 +724,7 @@ void __thiscall Redirected_Copy_Command(void* Unknown_Parameter, Command_Structu
|
|||||||
|
|
||||||
__int32 Bullets = *(__int32*)((unsigned __int32)Weapon_Data + 2520);
|
__int32 Bullets = *(__int32*)((unsigned __int32)Weapon_Data + 2520);
|
||||||
|
|
||||||
if (Interface_Penetration_Damage.Floating_Point == 0)
|
if (Interface_Penetration_Damage.Floating_Point == 0.f)
|
||||||
{
|
{
|
||||||
*(__int32*)((unsigned __int32)Weapon_Data + 2520) = 1;
|
*(__int32*)((unsigned __int32)Weapon_Data + 2520) = 1;
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,9 @@ void* Original_Draw_Effect_Caller;
|
|||||||
|
|
||||||
__int8 __thiscall Redirected_Draw_Effect(void* Effect, void* Unknown_Parameter_1, void* Unknown_Parameter_2)
|
__int8 __thiscall Redirected_Draw_Effect(void* Effect, void* Unknown_Parameter_1, void* Unknown_Parameter_2)
|
||||||
{
|
{
|
||||||
using Get_Effect_Name_Type = char*(__thiscall*)(void* a1);
|
using Get_Effect_Name_Type = char*(__thiscall*)(void* Effect);
|
||||||
|
|
||||||
char* Effect_Name = Get_Effect_Name_Type((unsigned __int32)Client_Module + 1423120)((void*)((unsigned __int32)Effect - 8));
|
if (__builtin_strstr(Get_Effect_Name_Type((unsigned __int32)Client_Module + 1423120)((void*)((unsigned __int32)Effect - 8)), "ecloud_ca") == nullptr)
|
||||||
|
|
||||||
if (__builtin_strstr(Effect_Name, "ecloud_") == nullptr)
|
|
||||||
{
|
{
|
||||||
return (decltype(&Redirected_Draw_Effect)(Original_Draw_Effect_Caller))(Effect, Unknown_Parameter_1, Unknown_Parameter_2);
|
return (decltype(&Redirected_Draw_Effect)(Original_Draw_Effect_Caller))(Effect, Unknown_Parameter_1, Unknown_Parameter_2);
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
#include <TlHelp32.h>
|
#include <TlHelp32.h>
|
||||||
|
|
||||||
#include <cstdio>
|
|
||||||
|
|
||||||
#include "Byte_Manager/Byte_Manager.hpp"
|
#include "Byte_Manager/Byte_Manager.hpp"
|
||||||
|
|
||||||
#include "Redirection_Manager/Redirection_Manager.hpp"
|
#include "Redirection_Manager/Redirection_Manager.hpp"
|
||||||
@ -22,10 +20,6 @@ void* Client_Module;
|
|||||||
|
|
||||||
#include "Update_Animations.hpp"
|
#include "Update_Animations.hpp"
|
||||||
|
|
||||||
#include <unordered_set>
|
|
||||||
|
|
||||||
#include <unordered_map>
|
|
||||||
|
|
||||||
#include "Estimate_Velocity.hpp"
|
#include "Estimate_Velocity.hpp"
|
||||||
|
|
||||||
#include "Spawn_Grenade.hpp"
|
#include "Spawn_Grenade.hpp"
|
||||||
@ -38,8 +32,6 @@ void* Client_Module;
|
|||||||
|
|
||||||
#include "Play_Footstep_Sound.hpp"
|
#include "Play_Footstep_Sound.hpp"
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
#include "Finish_Move.hpp"
|
#include "Finish_Move.hpp"
|
||||||
|
|
||||||
#include "Item_Post_Frame.hpp"
|
#include "Item_Post_Frame.hpp"
|
||||||
@ -54,8 +46,6 @@ void* Client_Module;
|
|||||||
|
|
||||||
#include "Send_Move.hpp"
|
#include "Send_Move.hpp"
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "Copy_Command.hpp"
|
#include "Copy_Command.hpp"
|
||||||
|
|
||||||
#include "Calculate_View.hpp"
|
#include "Calculate_View.hpp"
|
||||||
@ -187,7 +177,7 @@ __int32 __stdcall DllMain(HMODULE This_Module, unsigned __int32 Call_Reason, voi
|
|||||||
|
|
||||||
Original_Estimate_Velocity_Caller = Redirection_Manager::Redirect_Function(0, (void*)((unsigned __int32)Client_Module + 311856), (void*)Redirected_Estimate_Velocity);
|
Original_Estimate_Velocity_Caller = Redirection_Manager::Redirect_Function(0, (void*)((unsigned __int32)Client_Module + 311856), (void*)Redirected_Estimate_Velocity);
|
||||||
|
|
||||||
unsigned __int8 Maintain_Sequence_Transitions_Bytes[3] = { 194, 24, 0 };
|
unsigned __int8 Maintain_Sequence_Transitions_Bytes[3] = { 194, 24 };
|
||||||
|
|
||||||
Byte_Manager::Copy_Bytes(0, (void*)((unsigned __int32)Client_Module + 245232), sizeof(Maintain_Sequence_Transitions_Bytes), Maintain_Sequence_Transitions_Bytes);
|
Byte_Manager::Copy_Bytes(0, (void*)((unsigned __int32)Client_Module + 245232), sizeof(Maintain_Sequence_Transitions_Bytes), Maintain_Sequence_Transitions_Bytes);
|
||||||
|
|
||||||
|
2
Move.hpp
2
Move.hpp
@ -24,7 +24,7 @@ void Redirected_Move(float Unknown_Parameter, __int8 Final)
|
|||||||
|
|
||||||
Fire_Events_Type((unsigned __int32)Engine_Module + 521648)();
|
Fire_Events_Type((unsigned __int32)Engine_Module + 521648)();
|
||||||
|
|
||||||
Update_Animation_Time = (*(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744))->Current_Time;
|
Update_Animation_Time = (*(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744))->Time;
|
||||||
|
|
||||||
Update_Animation_Type = 1;
|
Update_Animation_Type = 1;
|
||||||
|
|
||||||
|
@ -77,13 +77,13 @@ void __thiscall Redirected_Paint(void* Panel)
|
|||||||
{
|
{
|
||||||
Target_Structure* Target = &Sorted_Target_List.at(Target_Number);
|
Target_Structure* Target = &Sorted_Target_List.at(Target_Number);
|
||||||
|
|
||||||
float Bounds[4] = { __builtin_inff(), -__builtin_inff(), __builtin_inff(), -__builtin_inff()};
|
float Bounds[4] = { __builtin_inff(), -__builtin_inff(), __builtin_inff(), -__builtin_inff() };
|
||||||
|
|
||||||
auto Get_Bounds = [&]() -> __int8
|
auto Get_Bounds = [&]() -> __int8
|
||||||
{
|
{
|
||||||
float Bones[128][3][4];
|
float Bones[128][3][4];
|
||||||
|
|
||||||
void* Hitbox_Set = Get_Hitbox_Set(Target, Bones, (*(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744))->Current_Time);
|
void* Hitbox_Set = Get_Hitbox_Set(Target, Bones, (*(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744))->Time);
|
||||||
|
|
||||||
if (Hitbox_Set != nullptr)
|
if (Hitbox_Set != nullptr)
|
||||||
{
|
{
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
void __thiscall Perform_Shove_Trace(void* Stack)
|
void __thiscall Perform_Shove_Trace(void* Stack)
|
||||||
{
|
{
|
||||||
void* Entity = *(void**)((unsigned __int32)Stack + 332);
|
if (*(void**)((unsigned __int32)Stack + 332) == Perform_Trace_Target)
|
||||||
|
|
||||||
if (Entity == Perform_Trace_Target)
|
|
||||||
{
|
{
|
||||||
Perform_Trace_Damage = 1;
|
Perform_Trace_Damage = 1.f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
|
|
||||||
auto Compute_Damage = [&]() -> void
|
auto Compute_Damage = [&]() -> void
|
||||||
{
|
{
|
||||||
if (Interface_Penetration_Damage.Integer == 0)
|
if (Interface_Penetration_Damage.Floating_Point == 0.f)
|
||||||
{
|
{
|
||||||
Perform_Trace_Damage = 1.f;
|
Perform_Trace_Damage = 1.f;
|
||||||
}
|
}
|
||||||
@ -140,7 +140,7 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
|
|
||||||
float Distance = Calculate_Distance_Type((unsigned __int32)Client_Module + 878608)((void*)((unsigned __int32)Local_Player + 540), Bounds);
|
float Distance = Calculate_Distance_Type((unsigned __int32)Client_Module + 878608)((void*)((unsigned __int32)Local_Player + 540), Bounds);
|
||||||
|
|
||||||
if (Distance < 100)
|
if (Distance < 100.f)
|
||||||
{
|
{
|
||||||
Damage += 4.f * Damage * __builtin_powf(1.f - Distance / 100.f, 2.f);
|
Damage += 4.f * Damage * __builtin_powf(1.f - Distance / 100.f, 2.f);
|
||||||
}
|
}
|
||||||
@ -164,27 +164,15 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
{
|
{
|
||||||
Apply_Shotgun_Scaling();
|
Apply_Shotgun_Scaling();
|
||||||
|
|
||||||
__int8 Is_Sniper_Rifle = (Bullet_Type - 8) > 0;
|
__int8 Is_Sniper_Rifle = Bullet_Type > 8;
|
||||||
|
|
||||||
if (Group == 1)
|
if (Group == 1)
|
||||||
{
|
{
|
||||||
if (Gender == 14)
|
if (Gender == 14)
|
||||||
{
|
{
|
||||||
auto Is_Neutral = [&]() -> __int8
|
static std::unordered_set<__int32> Neutrals = { 563, 567, 592, 600, 648 };
|
||||||
{
|
|
||||||
__int32 Sequence_Activity = *(__int32*)((unsigned __int32)Entity + 4688);
|
|
||||||
|
|
||||||
unsigned __int32 Absolute_Sequence_Activity = Sequence_Activity - 563;
|
if (Neutrals.contains(*(__int32*)((unsigned __int32)Entity + 4688)) == 1)
|
||||||
|
|
||||||
if (Absolute_Sequence_Activity <= 29)
|
|
||||||
{
|
|
||||||
return (536870929 & (1 << (Absolute_Sequence_Activity & 31))) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (Sequence_Activity == 600) + (Sequence_Activity == 648);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (Is_Neutral() == 1)
|
|
||||||
{
|
{
|
||||||
Damage = __builtin_inff();
|
Damage = __builtin_inff();
|
||||||
}
|
}
|
||||||
@ -213,7 +201,7 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
{
|
{
|
||||||
if (Is_Sniper_Rifle * Realism == 0)
|
if (Is_Sniper_Rifle * Realism == 0)
|
||||||
{
|
{
|
||||||
Damage = 450;
|
Damage = 450.f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -265,7 +253,7 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
{
|
{
|
||||||
if (*(void**)((unsigned __int32)Entity + 8040) != INVALID_HANDLE_VALUE)
|
if (*(void**)((unsigned __int32)Entity + 8040) != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
if (Damage > 50)
|
if (Damage > 50.f)
|
||||||
{
|
{
|
||||||
__int8 Competitive = ('v' - Mode[0] ^ Mode[0] - 's') == 3;
|
__int8 Competitive = ('v' - Mode[0] ^ Mode[0] - 's') == 3;
|
||||||
|
|
||||||
@ -285,7 +273,7 @@ void __thiscall Perform_Trace(void* Stack)
|
|||||||
|
|
||||||
if (Damage != __builtin_inff())
|
if (Damage != __builtin_inff())
|
||||||
{
|
{
|
||||||
Damage = (__int32)(Damage + 1.f * (Damage < 1));
|
Damage = (__int32)(Damage + 1.f * (Damage < 1.f));
|
||||||
|
|
||||||
if (Raw_Identifier == 276)
|
if (Raw_Identifier == 276)
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,8 @@ void* Original_Play_Footstep_Sound_Caller;
|
|||||||
|
|
||||||
void __thiscall Redirected_Play_Footstep_Sound(void* Unknown_Parameter_1, void* Unknown_Parameter_2, void* Unknown_Parameter_3, void* Unknown_Parameter_4, void* Unknown_Parameter_5, void* Unknown_Parameter_6)
|
void __thiscall Redirected_Play_Footstep_Sound(void* Unknown_Parameter_1, void* Unknown_Parameter_2, void* Unknown_Parameter_3, void* Unknown_Parameter_4, void* Unknown_Parameter_5, void* Unknown_Parameter_6)
|
||||||
{
|
{
|
||||||
void* Prediction = (void*)((unsigned __int32)Client_Module + 8072728);
|
if (*(__int8*)((unsigned __int32)Client_Module + 8072736) <= *(__int8*)((unsigned __int32)Client_Module + 8072752))
|
||||||
|
|
||||||
if (*(__int8*)((unsigned __int32)Prediction + 8) > *(__int8*)((unsigned __int32)Prediction + 24))
|
|
||||||
{
|
{
|
||||||
return;
|
(decltype(&Redirected_Play_Footstep_Sound)(Original_Play_Footstep_Sound_Caller))(Unknown_Parameter_1, Unknown_Parameter_2, Unknown_Parameter_3, Unknown_Parameter_4, Unknown_Parameter_5, Unknown_Parameter_6);
|
||||||
}
|
}
|
||||||
|
|
||||||
(decltype(&Redirected_Play_Footstep_Sound)(Original_Play_Footstep_Sound_Caller))(Unknown_Parameter_1, Unknown_Parameter_2, Unknown_Parameter_3, Unknown_Parameter_4, Unknown_Parameter_5, Unknown_Parameter_6);
|
|
||||||
}
|
}
|
@ -42,6 +42,6 @@ void __thiscall Redirected_Run_Command(void* Prediction, void* Player, Command_S
|
|||||||
|
|
||||||
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
||||||
|
|
||||||
Global_Variables->Current_Time = (*(__int32*)((unsigned __int32)Player + 5324) - 1) * Global_Variables->Interval_Per_Tick;
|
Global_Variables->Time = (*(__int32*)((unsigned __int32)Player + 5324) - 1) * Global_Variables->Interval_Per_Tick;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,23 +4,9 @@ void __thiscall Redirected_Spawn_Grenade(void* Entity)
|
|||||||
{
|
{
|
||||||
using Set_Size_Type = void(__thiscall*)(void* Entity, float* Minimum, float* Maximum);
|
using Set_Size_Type = void(__thiscall*)(void* Entity, float* Minimum, float* Maximum);
|
||||||
|
|
||||||
float Minimum[3] =
|
float Minimum[3] = { -16.f, -16.f, -16.f };
|
||||||
{
|
|
||||||
-16.f,
|
|
||||||
|
|
||||||
-16.f,
|
float Maximum[3] = { 16.f, 16.f, 16.f };
|
||||||
|
|
||||||
-16.f
|
|
||||||
};
|
|
||||||
|
|
||||||
float Maximum[3] =
|
|
||||||
{
|
|
||||||
16.f,
|
|
||||||
|
|
||||||
16.f,
|
|
||||||
|
|
||||||
16.f
|
|
||||||
};
|
|
||||||
|
|
||||||
Set_Size_Type((unsigned __int32)Client_Module + 281664)(Entity, Minimum, Maximum);
|
Set_Size_Type((unsigned __int32)Client_Module + 281664)(Entity, Minimum, Maximum);
|
||||||
|
|
||||||
|
225
Storm.vcxproj
225
Storm.vcxproj
@ -1,113 +1,114 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<ProjectGuid>{9e56cc0a-5a40-4957-8031-ab3cc4108170}</ProjectGuid>
|
<ProjectGuid>{9e56cc0a-5a40-4957-8031-ab3cc4108170}</ProjectGuid>
|
||||||
<RootNamespace>Storm</RootNamespace>
|
<RootNamespace>Storm</RootNamespace>
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>ClangCL</PlatformToolset>
|
<PlatformToolset>ClangCL</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings" />
|
<ImportGroup Label="ExtensionSettings" />
|
||||||
<ImportGroup Label="Shared">
|
<ImportGroup Label="Shared">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<GenerateManifest>false</GenerateManifest>
|
<GenerateManifest>false</GenerateManifest>
|
||||||
<TargetExt>.cpl</TargetExt>
|
<TargetExt>.cpl</TargetExt>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Vcpkg">
|
<PropertyGroup Label="Vcpkg">
|
||||||
<VcpkgEnabled>false</VcpkgEnabled>
|
<VcpkgEnabled>false</VcpkgEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DebugInformationFormat>None</DebugInformationFormat>
|
<DebugInformationFormat>None</DebugInformationFormat>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<OmitFramePointers>true</OmitFramePointers>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
<FloatingPointModel>Fast</FloatingPointModel>
|
<FloatingPointModel>Fast</FloatingPointModel>
|
||||||
<AdditionalOptions>/Zc:threadSafeInit- /clang:-fno-unwind-tables -Wno-multichar -Wno-microsoft-goto %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zc:threadSafeInit- /clang:-fno-unwind-tables -Wno-microsoft-goto %(AdditionalOptions)</AdditionalOptions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<ControlFlowGuard>false</ControlFlowGuard>
|
<ControlFlowGuard>false</ControlFlowGuard>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
||||||
</ClCompile>
|
<ForcedIncludeFiles>__msvc_all_public_headers.hpp</ForcedIncludeFiles>
|
||||||
<Link>
|
</ClCompile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<Link>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<SubSystem>Windows</SubSystem>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<StackReserveSize>
|
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||||
</StackReserveSize>
|
<StackReserveSize>
|
||||||
<StackCommitSize>
|
</StackReserveSize>
|
||||||
</StackCommitSize>
|
<StackCommitSize>
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
</StackCommitSize>
|
||||||
<DataExecutionPrevention>false</DataExecutionPrevention>
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
</Link>
|
<DataExecutionPrevention>false</DataExecutionPrevention>
|
||||||
</ItemDefinitionGroup>
|
</Link>
|
||||||
<ItemGroup>
|
</ItemDefinitionGroup>
|
||||||
<ClCompile Include="Entry_Point.cpp" />
|
<ItemGroup>
|
||||||
</ItemGroup>
|
<ClCompile Include="Entry_Point.cpp" />
|
||||||
<ItemGroup>
|
</ItemGroup>
|
||||||
<ClInclude Include="Calculate_View.hpp" />
|
<ItemGroup>
|
||||||
<ClInclude Include="Process_Movement.hpp" />
|
<ClInclude Include="Calculate_View.hpp" />
|
||||||
<ClInclude Include="Set_Move_Type.hpp" />
|
<ClInclude Include="Process_Movement.hpp" />
|
||||||
<ClInclude Include="Update.hpp" />
|
<ClInclude Include="Set_Move_Type.hpp" />
|
||||||
<ClInclude Include="Send_Move.hpp" />
|
<ClInclude Include="Update.hpp" />
|
||||||
<ClInclude Include="Spawn_Grenade.hpp" />
|
<ClInclude Include="Send_Move.hpp" />
|
||||||
<ClInclude Include="Run_Command.hpp" />
|
<ClInclude Include="Spawn_Grenade.hpp" />
|
||||||
<ClInclude Include="Draw_Crosshair.hpp" />
|
<ClInclude Include="Run_Command.hpp" />
|
||||||
<ClInclude Include="Draw_Effect.hpp" />
|
<ClInclude Include="Draw_Crosshair.hpp" />
|
||||||
<ClInclude Include="Extended_Interface.hpp" />
|
<ClInclude Include="Draw_Effect.hpp" />
|
||||||
<ClInclude Include="Estimate_Velocity.hpp" />
|
<ClInclude Include="Extended_Interface.hpp" />
|
||||||
<ClInclude Include="Get_Glow_Color.hpp" />
|
<ClInclude Include="Estimate_Velocity.hpp" />
|
||||||
<ClInclude Include="Interpolate.hpp" />
|
<ClInclude Include="Get_Glow_Color.hpp" />
|
||||||
<ClInclude Include="Finish_Move.hpp" />
|
<ClInclude Include="Interpolate.hpp" />
|
||||||
<ClInclude Include="Move.hpp" />
|
<ClInclude Include="Finish_Move.hpp" />
|
||||||
<ClInclude Include="Copy_Command.hpp" />
|
<ClInclude Include="Move.hpp" />
|
||||||
<ClInclude Include="Paint.hpp" />
|
<ClInclude Include="Copy_Command.hpp" />
|
||||||
<ClInclude Include="Perform_Trace.hpp" />
|
<ClInclude Include="Paint.hpp" />
|
||||||
<ClInclude Include="Post_Network_Data_Received.hpp" />
|
<ClInclude Include="Perform_Trace.hpp" />
|
||||||
<ClInclude Include="Item_Post_Frame.hpp" />
|
<ClInclude Include="Post_Network_Data_Received.hpp" />
|
||||||
<ClInclude Include="Read_Packets.hpp" />
|
<ClInclude Include="Item_Post_Frame.hpp" />
|
||||||
<ClInclude Include="Play_Footstep_Sound.hpp" />
|
<ClInclude Include="Read_Packets.hpp" />
|
||||||
<ClInclude Include="Perform_Shove_Trace.hpp" />
|
<ClInclude Include="Play_Footstep_Sound.hpp" />
|
||||||
<ClInclude Include="Update_Animations.hpp" />
|
<ClInclude Include="Perform_Shove_Trace.hpp" />
|
||||||
<ClInclude Include="Write_Texture.hpp" />
|
<ClInclude Include="Update_Animations.hpp" />
|
||||||
</ItemGroup>
|
<ClInclude Include="Write_Texture.hpp" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
</ItemGroup>
|
||||||
<ImportGroup Label="ExtensionTargets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets" />
|
||||||
</Project>
|
</Project>
|
@ -2,7 +2,7 @@ struct Global_Variables_Structure
|
|||||||
{
|
{
|
||||||
__int8 Additional_Bytes_1[12];
|
__int8 Additional_Bytes_1[12];
|
||||||
|
|
||||||
float Current_Time;
|
float Time;
|
||||||
|
|
||||||
float Frame_Time;
|
float Frame_Time;
|
||||||
|
|
||||||
@ -19,9 +19,9 @@ void Redirected_Update_Animations()
|
|||||||
{
|
{
|
||||||
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
Global_Variables_Structure* Global_Variables = *(Global_Variables_Structure**)((unsigned __int32)Client_Module + 7096744);
|
||||||
|
|
||||||
float Previous_Current_Time = Global_Variables->Current_Time;
|
float Previous_Time = Global_Variables->Time;
|
||||||
|
|
||||||
Global_Variables->Current_Time = Update_Animation_Time;
|
Global_Variables->Time = Update_Animation_Time;
|
||||||
|
|
||||||
float Previous_Frame_Time = Global_Variables->Frame_Time;
|
float Previous_Frame_Time = Global_Variables->Frame_Time;
|
||||||
|
|
||||||
@ -54,5 +54,5 @@ void Redirected_Update_Animations()
|
|||||||
|
|
||||||
Global_Variables->Frame_Time = Previous_Frame_Time;
|
Global_Variables->Frame_Time = Previous_Frame_Time;
|
||||||
|
|
||||||
Global_Variables->Current_Time = Previous_Current_Time;
|
Global_Variables->Time = Previous_Time;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user