Fix CS_OnCSWeaponDrop after latest CSGO update (21/10/21) (#1602)
This commit is contained in:
parent
64b897822f
commit
8ae3be7185
@ -100,7 +100,7 @@ bool CStrike::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
|||||||
g_pHandleBuyForward = forwards->CreateForward("CS_OnBuyCommand", ET_Event, 2, NULL, Param_Cell, Param_String);
|
g_pHandleBuyForward = forwards->CreateForward("CS_OnBuyCommand", ET_Event, 2, NULL, Param_Cell, Param_String);
|
||||||
g_pPriceForward = forwards->CreateForward("CS_OnGetWeaponPrice", ET_Event, 3, NULL, Param_Cell, Param_String, Param_CellByRef);
|
g_pPriceForward = forwards->CreateForward("CS_OnGetWeaponPrice", ET_Event, 3, NULL, Param_Cell, Param_String, Param_CellByRef);
|
||||||
g_pTerminateRoundForward = forwards->CreateForward("CS_OnTerminateRound", ET_Event, 2, NULL, Param_FloatByRef, Param_CellByRef);
|
g_pTerminateRoundForward = forwards->CreateForward("CS_OnTerminateRound", ET_Event, 2, NULL, Param_FloatByRef, Param_CellByRef);
|
||||||
g_pCSWeaponDropForward = forwards->CreateForward("CS_OnCSWeaponDrop", ET_Event, 2, NULL, Param_Cell, Param_Cell);
|
g_pCSWeaponDropForward = forwards->CreateForward("CS_OnCSWeaponDrop", ET_Event, 3, NULL, Param_Cell, Param_Cell, Param_Cell);
|
||||||
|
|
||||||
|
|
||||||
m_TerminateRoundDetourEnabled = false;
|
m_TerminateRoundDetourEnabled = false;
|
||||||
|
@ -216,12 +216,20 @@ DETOUR_DECL_MEMBER3(DetourTerminateRound, void, int, reason, int, unknown, int,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE == SE_CSGO
|
||||||
|
DETOUR_DECL_MEMBER3(DetourCSWeaponDrop, void, CBaseEntity *, weapon, bool, bThrowForward, bool, bDonated)
|
||||||
|
#else
|
||||||
DETOUR_DECL_MEMBER2(DetourCSWeaponDrop, void, CBaseEntity *, weapon, bool, bThrowForward)
|
DETOUR_DECL_MEMBER2(DetourCSWeaponDrop, void, CBaseEntity *, weapon, bool, bThrowForward)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (g_pIgnoreCSWeaponDropDetour)
|
if (g_pIgnoreCSWeaponDropDetour)
|
||||||
{
|
{
|
||||||
g_pIgnoreCSWeaponDropDetour = false;
|
g_pIgnoreCSWeaponDropDetour = false;
|
||||||
|
#if SOURCE_ENGINE == SE_CSGO
|
||||||
|
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward, bDonated);
|
||||||
|
#else
|
||||||
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward);
|
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward);
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,12 +239,21 @@ DETOUR_DECL_MEMBER2(DetourCSWeaponDrop, void, CBaseEntity *, weapon, bool, bThro
|
|||||||
cell_t result = Pl_Continue;
|
cell_t result = Pl_Continue;
|
||||||
g_pCSWeaponDropForward->PushCell(client);
|
g_pCSWeaponDropForward->PushCell(client);
|
||||||
g_pCSWeaponDropForward->PushCell(weaponIndex);
|
g_pCSWeaponDropForward->PushCell(weaponIndex);
|
||||||
|
#if SOURCE_ENGINE == SE_CSGO
|
||||||
|
g_pCSWeaponDropForward->PushCell(bDonated);
|
||||||
|
#else
|
||||||
|
g_pCSWeaponDropForward->PushCell(false);
|
||||||
|
#endif
|
||||||
g_pCSWeaponDropForward->Execute(&result);
|
g_pCSWeaponDropForward->Execute(&result);
|
||||||
|
|
||||||
|
|
||||||
if (result == Pl_Continue)
|
if (result == Pl_Continue)
|
||||||
{
|
{
|
||||||
|
#if SOURCE_ENGINE == SE_CSGO
|
||||||
|
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward, bDonated);
|
||||||
|
#else
|
||||||
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward);
|
DETOUR_MEMBER_CALL(DetourCSWeaponDrop)(weapon, bThrowForward);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -196,8 +196,10 @@ forward Action CS_OnBuyCommand(int client, const char[] weapon);
|
|||||||
*
|
*
|
||||||
* @param client Client index
|
* @param client Client index
|
||||||
* @param weaponIndex Weapon index
|
* @param weaponIndex Weapon index
|
||||||
|
* @param donated Was weapon donated (Bought from a buy menu while ctrl was pressed)
|
||||||
|
* (Note: This param is for CS:GO only, will be false on other games)
|
||||||
*/
|
*/
|
||||||
forward Action CS_OnCSWeaponDrop(int client, int weaponIndex);
|
forward Action CS_OnCSWeaponDrop(int client, int weaponIndex, bool donated);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when game retrieves a weapon's price for a player.
|
* Called when game retrieves a weapon's price for a player.
|
||||||
|
Loading…
Reference in New Issue
Block a user