Fix MakeBleed native call (add damage custom param)..
This commit is contained in:
parent
a5c213ae7d
commit
5cf6a0c875
@ -45,7 +45,7 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
|
|||||||
if(!pWrapper)
|
if(!pWrapper)
|
||||||
{
|
{
|
||||||
REGISTER_NATIVE_ADDR("MakeBleed",
|
REGISTER_NATIVE_ADDR("MakeBleed",
|
||||||
PassInfo pass[5]; \
|
PassInfo pass[6]; \
|
||||||
pass[0].flags = PASSFLAG_BYVAL; \
|
pass[0].flags = PASSFLAG_BYVAL; \
|
||||||
pass[0].size = sizeof(CBaseEntity *); \
|
pass[0].size = sizeof(CBaseEntity *); \
|
||||||
pass[0].type = PassType_Basic; \
|
pass[0].type = PassType_Basic; \
|
||||||
@ -61,7 +61,10 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
|
|||||||
pass[4].flags = PASSFLAG_BYVAL; \
|
pass[4].flags = PASSFLAG_BYVAL; \
|
||||||
pass[4].size = sizeof(bool); \
|
pass[4].size = sizeof(bool); \
|
||||||
pass[4].type = PassType_Basic; \
|
pass[4].type = PassType_Basic; \
|
||||||
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 5))
|
pass[5].flags = PASSFLAG_BYVAL; \
|
||||||
|
pass[5].size = sizeof(int); \
|
||||||
|
pass[5].type = PassType_Basic; \
|
||||||
|
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 6))
|
||||||
}
|
}
|
||||||
|
|
||||||
CBaseEntity *pEntity;
|
CBaseEntity *pEntity;
|
||||||
@ -78,7 +81,7 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
|
|||||||
|
|
||||||
void *obj = (void *)((uint8_t *)pEntity + playerSharedOffset->actual_offset);
|
void *obj = (void *)((uint8_t *)pEntity + playerSharedOffset->actual_offset);
|
||||||
|
|
||||||
unsigned char vstk[sizeof(void *) + 2*sizeof(CBaseEntity *) + sizeof(float) + sizeof(int) + sizeof(bool)];
|
unsigned char vstk[sizeof(void *) + 2*sizeof(CBaseEntity *) + sizeof(float) + sizeof(int) + sizeof(bool) + sizeof(int)];
|
||||||
unsigned char *vptr = vstk;
|
unsigned char *vptr = vstk;
|
||||||
|
|
||||||
*(void **)vptr = obj;
|
*(void **)vptr = obj;
|
||||||
@ -89,9 +92,11 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
|
|||||||
vptr += sizeof(CBaseEntity *);
|
vptr += sizeof(CBaseEntity *);
|
||||||
*(float *)vptr = sp_ctof(params[3]);
|
*(float *)vptr = sp_ctof(params[3]);
|
||||||
vptr += sizeof(float);
|
vptr += sizeof(float);
|
||||||
*(int *)vptr = 4;
|
*(int *)vptr = 4; // Damage amount
|
||||||
vptr += sizeof(int);
|
vptr += sizeof(int);
|
||||||
*(bool *)vptr = false;
|
*(bool *)vptr = false; // Permanent
|
||||||
|
vptr += sizeof(bool);
|
||||||
|
*(int *)vptr = 34; // Custom Damage type (bleeding)
|
||||||
|
|
||||||
pWrapper->Execute(vstk, NULL);
|
pWrapper->Execute(vstk, NULL);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user