This commit is contained in:
Nicholas Hastings 2012-08-20 21:56:45 -04:00
commit f6c496717c
8 changed files with 110 additions and 86 deletions

View File

@ -39,11 +39,11 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
// CTFPlayerShared::MakeBleed(CTFPlayer*, CTFWeaponBase*, float)
// CTFPlayerShared::MakeBleed(CTFPlayer*, CTFWeaponBase*, float, int=4)
if(!pWrapper)
{
REGISTER_NATIVE_ADDR("MakeBleed",
PassInfo pass[3]; \
PassInfo pass[4]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(CBaseEntity *); \
pass[0].type = PassType_Basic; \
@ -53,7 +53,10 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
pass[2].flags = PASSFLAG_BYVAL; \
pass[2].size = sizeof(float); \
pass[2].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 3))
pass[3].flags = PASSFLAG_BYVAL; \
pass[3].size = sizeof(int); \
pass[3].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 4))
}
CBaseEntity *pEntity;
@ -80,6 +83,8 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
*(CBaseEntity **)vptr = NULL;
vptr += sizeof(CBaseEntity *);
*(float *)vptr = sp_ctof(params[3]);
vptr += sizeof(float);
*(int *)vptr = 4;
pWrapper->Execute(vstk, NULL);
@ -449,12 +454,16 @@ cell_t TF2_Regenerate(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
//CTFPlayer::Regenerate()
//CTFPlayer::Regenerate( bool=true )
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("Regenerate",
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, NULL, 0));
PassInfo pass[1]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(bool); \
pass[0].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 1))
}
CBaseEntity *pEntity;
@ -462,7 +471,15 @@ cell_t TF2_Regenerate(IPluginContext *pContext, const cell_t *params)
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
pWrapper->Execute(&pEntity, NULL);
unsigned char vstk[sizeof(void *) + sizeof(bool)];
unsigned char *vptr = vstk;
*(void **)vptr = (void *)pEntity;
vptr += sizeof(void *);
*(bool *)vptr = true;
pWrapper->Execute(vstk, NULL);
return 1;
}

View File

@ -18,33 +18,33 @@
{
"GiveNamedItem"
{
"windows" "393"
"linux" "394"
"mac" "394"
"windows" "395"
"linux" "396"
"mac" "396"
}
"RemovePlayerItem"
{
"windows" "265"
"linux" "266"
"mac" "266"
"windows" "266"
"linux" "267"
"mac" "267"
}
"Weapon_GetSlot"
{
"windows" "263"
"linux" "264"
"mac" "264"
"windows" "264"
"linux" "265"
"mac" "265"
}
"Ignite"
{
"windows" "206"
"linux" "207"
"mac" "207"
"windows" "207"
"linux" "208"
"mac" "208"
}
"Extinguish"
{
"windows" "210"
"linux" "211"
"mac" "211"
"windows" "211"
"linux" "212"
"mac" "212"
}
"Teleport"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "431"
"linux" "432"
"mac" "432"
"windows" "433"
"linux" "434"
"mac" "434"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "256"
"linux" "257"
"mac" "257"
"windows" "257"
"linux" "258"
"mac" "258"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "411"
"linux" "412"
"mac" "412"
"windows" "413"
"linux" "414"
"mac" "414"
}
}

View File

@ -18,33 +18,33 @@
{
"GiveNamedItem"
{
"windows" "393"
"linux" "394"
"mac" "394"
"windows" "395"
"linux" "396"
"mac" "396"
}
"RemovePlayerItem"
{
"windows" "265"
"linux" "266"
"mac" "266"
"windows" "266"
"linux" "267"
"mac" "267"
}
"Weapon_GetSlot"
{
"windows" "263"
"linux" "264"
"mac" "264"
"windows" "264"
"linux" "265"
"mac" "265"
}
"Ignite"
{
"windows" "206"
"linux" "207"
"mac" "207"
"windows" "207"
"linux" "208"
"mac" "208"
}
"Extinguish"
{
"windows" "210"
"linux" "211"
"mac" "211"
"windows" "211"
"linux" "212"
"mac" "212"
}
"Teleport"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "432"
"linux" "432"
"mac" "432"
"windows" "434"
"linux" "434"
"mac" "434"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "256"
"linux" "257"
"mac" "257"
"windows" "257"
"linux" "258"
"mac" "258"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "411"
"linux" "412"
"mac" "412"
"windows" "413"
"linux" "414"
"mac" "414"
}
}
}

View File

@ -18,33 +18,33 @@
{
"GiveNamedItem"
{
"windows" "393"
"linux" "394"
"mac" "394"
"windows" "395"
"linux" "396"
"mac" "396"
}
"RemovePlayerItem"
{
"windows" "265"
"linux" "266"
"mac" "266"
"windows" "266"
"linux" "267"
"mac" "267"
}
"Weapon_GetSlot"
{
"windows" "263"
"linux" "264"
"mac" "264"
"windows" "264"
"linux" "265"
"mac" "265"
}
"Ignite"
{
"windows" "206"
"linux" "207"
"mac" "207"
"windows" "207"
"linux" "208"
"mac" "208"
}
"Extinguish"
{
"windows" "210"
"linux" "211"
"mac" "211"
"windows" "211"
"linux" "212"
"mac" "212"
}
"Teleport"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "434"
"linux" "434"
"mac" "434"
"windows" "436"
"linux" "436"
"mac" "436"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "256"
"linux" "257"
"mac" "257"
"windows" "257"
"linux" "258"
"mac" "258"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "411"
"linux" "412"
"mac" "412"
"windows" "413"
"linux" "414"
"mac" "414"
}
}

View File

@ -60,9 +60,9 @@
"Regenerate"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x2A\xF3\x0F\x10\x05\x2A\x2A\x2A\x2A\x53\x56\x8B\xF1\x8B\x86"
"linux" "@_ZN9CTFPlayer10RegenerateEv"
"mac" "@_ZN9CTFPlayer10RegenerateEv"
"windows" "\x55\x8B\xEC\x83\xEC\x2A\xF3\x0F\x2A\x2A\x2A\x2A\x2A\x2A\x53\x56\x8B\xF1\x8B"
"linux" "@_ZN9CTFPlayer10RegenerateEb"
"mac" "@_ZN9CTFPlayer10RegenerateEb"
}
"AddCondition"
{
@ -110,8 +110,8 @@
{
"library" "server"
"windows" "\x55\x8B\xEC\x51\x56\x8B\xF1\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x01\x8B\x2A\x2A\x2A\x2A\x2A\xFF\xD2\x84\xC0\x0F\x2A\x2A\x2A\x2A\x2A\x6A\x19"
"linux" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasef"
"mac" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasef"
"linux" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefi"
"mac" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefi"
}
"IsPlayerInDuel"
{
@ -125,9 +125,9 @@
{
"ForceRespawn"
{
"windows" "320"
"linux" "321"
"mac" "321"
"windows" "321"
"linux" "322"
"mac" "322"
}
}
}

View File

@ -66,6 +66,9 @@ enum RoundState {
//Game is over, doing bonus round stuff
RoundState_Bonus,
//Between rounds
RoundState_BetweenRounds,
};
/**

View File

@ -133,6 +133,8 @@ enum {
TF_CUSTOM_PRACTICE_STICKY,
TF_CUSTOM_EYEBALL_ROCKET,
TF_CUSTOM_HEADSHOT_DECAPITATION,
TF_CUSTOM_TAUNT_ARMAGEDDON,
TF_CUSTOM_FLARE_PELLET,
TF_CUSTOM_CLEAVER,
TF_CUSTOM_CLEAVER_CRIT,
TF_CUSTOM_SAPPER_RECORDER_DEATH,
@ -229,6 +231,7 @@ enum {
TF_WEAPON_PEP_BRAWLER_BLASTER,
TF_WEAPON_CLEAVER,
TF_WEAPON_GRENADE_CLEAVER,
TF_WEAPON_ROCKETPACK,
};
// TF2 Weapon Slots for GetPlayerWeaponSlot

View File

@ -51,3 +51,4 @@ clobstermonkey
that thing
clobber build because amx.h changed (sigh)
a dead fish
BuildBot is very well-written, stable, enterprise software.