diff --git a/extensions/tf2/natives.cpp b/extensions/tf2/natives.cpp index 41e868fc..4af24982 100644 --- a/extensions/tf2/natives.cpp +++ b/extensions/tf2/natives.cpp @@ -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; } diff --git a/gamedata/sdktools.games/game.dod.txt b/gamedata/sdktools.games/game.dod.txt index c41ebd72..9076fb55 100644 --- a/gamedata/sdktools.games/game.dod.txt +++ b/gamedata/sdktools.games/game.dod.txt @@ -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" } } diff --git a/gamedata/sdktools.games/game.hl2mp.txt b/gamedata/sdktools.games/game.hl2mp.txt index 365307ad..3de33ada 100644 --- a/gamedata/sdktools.games/game.hl2mp.txt +++ b/gamedata/sdktools.games/game.hl2mp.txt @@ -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" } } } diff --git a/gamedata/sdktools.games/game.tf.txt b/gamedata/sdktools.games/game.tf.txt index 072ec429..7d71681b 100644 --- a/gamedata/sdktools.games/game.tf.txt +++ b/gamedata/sdktools.games/game.tf.txt @@ -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" } } diff --git a/gamedata/sm-tf2.games.txt b/gamedata/sm-tf2.games.txt index 9193d91d..9eb3c981 100644 --- a/gamedata/sm-tf2.games.txt +++ b/gamedata/sm-tf2.games.txt @@ -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" } } } diff --git a/plugins/include/sdktools_gamerules.inc b/plugins/include/sdktools_gamerules.inc index 590d6f82..68b42440 100644 --- a/plugins/include/sdktools_gamerules.inc +++ b/plugins/include/sdktools_gamerules.inc @@ -66,6 +66,9 @@ enum RoundState { //Game is over, doing bonus round stuff RoundState_Bonus, + + //Between rounds + RoundState_BetweenRounds, }; /** diff --git a/plugins/include/tf2_stocks.inc b/plugins/include/tf2_stocks.inc index fd71ef49..f6716fcb 100644 --- a/plugins/include/tf2_stocks.inc +++ b/plugins/include/tf2_stocks.inc @@ -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 diff --git a/pushbuild.txt b/pushbuild.txt index 9030c686..953323af 100644 --- a/pushbuild.txt +++ b/pushbuild.txt @@ -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. \ No newline at end of file