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; static ICallWrapper *pWrapper = NULL;
// CTFPlayerShared::MakeBleed(CTFPlayer*, CTFWeaponBase*, float) // CTFPlayerShared::MakeBleed(CTFPlayer*, CTFWeaponBase*, float, int=4)
if(!pWrapper) if(!pWrapper)
{ {
REGISTER_NATIVE_ADDR("MakeBleed", REGISTER_NATIVE_ADDR("MakeBleed",
PassInfo pass[3]; \ PassInfo pass[4]; \
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; \
@ -53,7 +53,10 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
pass[2].flags = PASSFLAG_BYVAL; \ pass[2].flags = PASSFLAG_BYVAL; \
pass[2].size = sizeof(float); \ pass[2].size = sizeof(float); \
pass[2].type = PassType_Basic; \ 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; CBaseEntity *pEntity;
@ -80,6 +83,8 @@ cell_t TF2_MakeBleed(IPluginContext *pContext, const cell_t *params)
*(CBaseEntity **)vptr = NULL; *(CBaseEntity **)vptr = NULL;
vptr += sizeof(CBaseEntity *); vptr += sizeof(CBaseEntity *);
*(float *)vptr = sp_ctof(params[3]); *(float *)vptr = sp_ctof(params[3]);
vptr += sizeof(float);
*(int *)vptr = 4;
pWrapper->Execute(vstk, NULL); pWrapper->Execute(vstk, NULL);
@ -449,12 +454,16 @@ cell_t TF2_Regenerate(IPluginContext *pContext, const cell_t *params)
{ {
static ICallWrapper *pWrapper = NULL; static ICallWrapper *pWrapper = NULL;
//CTFPlayer::Regenerate() //CTFPlayer::Regenerate( bool=true )
if (!pWrapper) if (!pWrapper)
{ {
REGISTER_NATIVE_ADDR("Regenerate", 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; 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]); 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; return 1;
} }

View File

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

View File

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

View File

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

View File

@ -60,9 +60,9 @@
"Regenerate" "Regenerate"
{ {
"library" "server" "library" "server"
"windows" "\x55\x8B\xEC\x83\xEC\x2A\xF3\x0F\x10\x05\x2A\x2A\x2A\x2A\x53\x56\x8B\xF1\x8B\x86" "windows" "\x55\x8B\xEC\x83\xEC\x2A\xF3\x0F\x2A\x2A\x2A\x2A\x2A\x2A\x53\x56\x8B\xF1\x8B"
"linux" "@_ZN9CTFPlayer10RegenerateEv" "linux" "@_ZN9CTFPlayer10RegenerateEb"
"mac" "@_ZN9CTFPlayer10RegenerateEv" "mac" "@_ZN9CTFPlayer10RegenerateEb"
} }
"AddCondition" "AddCondition"
{ {
@ -110,8 +110,8 @@
{ {
"library" "server" "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" "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" "linux" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefi"
"mac" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasef" "mac" "@_ZN15CTFPlayerShared9MakeBleedEP9CTFPlayerP13CTFWeaponBasefi"
} }
"IsPlayerInDuel" "IsPlayerInDuel"
{ {
@ -125,9 +125,9 @@
{ {
"ForceRespawn" "ForceRespawn"
{ {
"windows" "320" "windows" "321"
"linux" "321" "linux" "322"
"mac" "321" "mac" "322"
} }
} }
} }

View File

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

View File

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

View File

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