Disabling terrorist spawnpoint stuff.

This commit is contained in:
h4sard 2020-01-23 21:24:25 +01:00
parent 303132ef42
commit 5445835070

View File

@ -118,21 +118,21 @@ static struct SrcdsPatch
0, 0, 0, false 0, 0, 0, false
}, },
// 2: only select CT spawnpoints // 2: only select CT spawnpoints
{ // {
"_ZN9CCSPlayer19EntSelectSpawnPointEv", // "_ZN9CCSPlayer19EntSelectSpawnPointEv",
(unsigned char *)"\x89\x1C\x24\xE8\x00\x00\x00\x00\x83\xF8\x03\x74\x4B", // (unsigned char *)"\x89\x1C\x24\xE8\x00\x00\x00\x00\x83\xF8\x03\x74\x4B",
"xxxx????xxxxx", // "xxxx????xxxxx",
(unsigned char *)"\x89\x1C\x24\x90\x90\x90\x90\x90\x90\x90\x90\xEB\x4B", // (unsigned char *)"\x89\x1C\x24\x90\x90\x90\x90\x90\x90\x90\x90\xEB\x4B",
0, 0, 0, false // 0, 0, 0, false
}, // },
// 3: don't check if we have T spawns // 3: don't check if we have T spawns
{ // {
"_ZN12CCSGameRules18NeededPlayersCheckERb", // "_ZN12CCSGameRules18NeededPlayersCheckERb",
(unsigned char *)"\x74\x0E\x8B\x83\x80\x02\x00\x00\x85\xC0\x0F\x85\x9E\x00\x00\x00\xC7\x04\x24\xAC\xF7\x87\x00\xE8\xC2\x82\x91\x00", // (unsigned char *)"\x74\x0E\x8B\x83\x80\x02\x00\x00\x85\xC0\x0F\x85\x9E\x00\x00\x00\xC7\x04\x24\xAC\xF7\x87\x00\xE8\xC2\x82\x91\x00",
"xxxxxxxxxxxxxxxx????????????", // "xxxxxxxxxxxxxxxx????????????",
(unsigned char *)"\x0F\x85\xA8\x00\x00\x00\x8B\x83\x80\x02\x00\x00\x85\xC0\x0F\x85\x9A\x00\x00\x00\x90\x90\x90\x90\x90\x90\x90\x90", // (unsigned char *)"\x0F\x85\xA8\x00\x00\x00\x8B\x83\x80\x02\x00\x00\x85\xC0\x0F\x85\x9A\x00\x00\x00\x90\x90\x90\x90\x90\x90\x90\x90",
0, 0, 0, false // 0, 0, 0, false
}, // },
// 5: disable alive check in point_viewcontrol->Disable // 5: disable alive check in point_viewcontrol->Disable
{ {
"_ZN14CTriggerCamera7DisableEv", "_ZN14CTriggerCamera7DisableEv",
@ -236,8 +236,8 @@ DETOUR_DECL_MEMBER1(DETOUR_PostConstructor, void, const char *, szClassname)
*(uint32 *)((intptr_t)pEntity + td->fieldOffset[TD_OFFSET_NORMAL]) |= (1<<9); // EFL_SERVER_ONLY *(uint32 *)((intptr_t)pEntity + td->fieldOffset[TD_OFFSET_NORMAL]) |= (1<<9); // EFL_SERVER_ONLY
// Only CT spawnpoints // Only CT spawnpoints
if(strcasecmp(szClassname, "info_player_terrorist") == 0) // if(strcasecmp(szClassname, "info_player_terrorist") == 0)
szClassname = "info_player_counterterrorist"; // szClassname = "info_player_counterterrorist";
} }
DETOUR_MEMBER_CALL(DETOUR_PostConstructor)(szClassname); DETOUR_MEMBER_CALL(DETOUR_PostConstructor)(szClassname);
@ -249,21 +249,21 @@ DETOUR_DECL_MEMBER2(DETOUR_KeyValue, bool, const char *, szKeyName, const char *
if(strcasecmp(szKeyName, "angle") == 0) if(strcasecmp(szKeyName, "angle") == 0)
szKeyName = "angles"; szKeyName = "angles";
else if(strcasecmp(szKeyName, "classname") == 0 && // else if(strcasecmp(szKeyName, "classname") == 0 &&
strcasecmp(szValue, "info_player_terrorist") == 0) // strcasecmp(szValue, "info_player_terrorist") == 0)
{ // {
// Only CT spawnpoints // Only CT spawnpoints
szValue = "info_player_counterterrorist"; // szValue = "info_player_counterterrorist";
} // }
else if(strcasecmp(szKeyName, "teamnum") == 0 || strcasecmp(szKeyName, "teamnum") == 0 ) // else if(strcasecmp(szKeyName, "teamnum") == 0 || strcasecmp(szKeyName, "teamnum") == 0 )
{ // {
CBaseEntity *pEntity = (CBaseEntity *)this; // CBaseEntity *pEntity = (CBaseEntity *)this;
const char *pClassname = gamehelpers->GetEntityClassname(pEntity); // const char *pClassname = gamehelpers->GetEntityClassname(pEntity);
//
// All buyzones should be CT buyzones // All buyzones should be CT buyzones
if(pClassname && strcasecmp(pClassname, "func_buyzone") == 0) // if(pClassname && strcasecmp(pClassname, "func_buyzone") == 0)
szValue = "3"; // szValue = "3";
} // }
return DETOUR_MEMBER_CALL(DETOUR_KeyValue)(szKeyName, szValue); return DETOUR_MEMBER_CALL(DETOUR_KeyValue)(szKeyName, szValue);
} }