Files
SMScripts/scripting/include/fcc_helper.inc
2025-04-15 22:27:20 -04:00

264 lines
9.3 KiB
SourcePawn

//Helper for Fartsy's Clockwork Chaos
bool BLC = false; //Blu captured intermediate point, set by OnOwnerChangedToTeam3
bool REC = false; //Red captured intermediate point, set by OnOwnerChangeToTeam2
bool isMatch = false; //Is it a match?
bool RECEDE = false; //PL receding
bool PLM; //Payload is moving
char LoggerDbg[512];
char LoggerInfo[256];
char PLT[16] = "N/A"; //Team that is currently pushing the payload
int PLB = 0; //Payload blu progress
int PLL = 0; //Payload location. 0 = neutral, 1 = red, 2 = blu
int PLR = 0; //Payload red progress
int PLRL = 20; //Payload real location, 40 = red base, 20 = neutral, 0 = blu base
Handle RecedeTimer = INVALID_HANDLE; //Recede timer, restart it by killing it and starting a new one.
//PL Hud
enum struct CCHUD {
char RED[128];
char BLU[128];
char IDLE[128];
char NEUTRAL[128];
}
CCHUD CCH[42];
//Reference lookup for payload position
int PLPOS[] = {
100,
95,
90,
85,
80,
75,
70,
65,
60,
55,
50,
45,
40,
35,
30,
25,
20,
15,
10,
5,
0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100,
100
};
//Register and precache all sounds
void RegisterAndPrecacheAllFiles(){
LogMessage("[ERROR] RegisterAndPRecacheAllFiles is not implemented!");
}
//Register all commands
void RegisterAllCommands(){
FccLogger(1, "Registering commands...");
RegServerCmd("fcc_operator", Command_Operator, "Serverside only. Does nothing when executed as client.");
}
//Setup core map data
void SetupCoreData(){
FccLogger(1, "Setting up core data...");
CCH[0].BLU = "hud/cconflict/cc_bluFF"; // Blu payload at their spawn being pushed by blu
CCH[1].BLU = "hud/cconflict/cc_bluFE";
CCH[2].BLU = "hud/cconflict/cc_bluFD";
CCH[3].BLU = "hud/cconflict/cc_bluFC";
CCH[4].BLU = "hud/cconflict/cc_bluFB";
CCH[5].BLU = "hud/cconflict/cc_bluFA";
CCH[6].BLU = "hud/cconflict/cc_bluF9";
CCH[7].BLU = "hud/cconflict/cc_bluF8";
CCH[8].BLU = "hud/cconflict/cc_bluF7";
CCH[9].BLU = "hud/cconflict/cc_bluF6";
CCH[10].BLU = "hud/cconflict/cc_bluF5";
CCH[11].BLU = "hud/cconflict/cc_bluF4";
CCH[12].BLU = "hud/cconflict/cc_bluF3";
CCH[13].BLU = "hud/cconflict/cc_bluF2";
CCH[14].BLU = "hud/cconflict/cc_bluF1";
CCH[15].BLU = "hud/cconflict/cc_bluF0";
CCH[16].BLU = "hud/cconflict/cc_bluEF";
CCH[17].BLU = "hud/cconflict/cc_bluEE";
CCH[18].BLU = "hud/cconflict/cc_bluED";
CCH[19].BLU = "hud/cconflict/cc_bluEC";
CCH[20].BLU = "hud/cconflict/cc_blu00";
CCH[21].BLU = "hud/cconflict/cc_blu01";
CCH[22].BLU = "hud/cconflict/cc_blu02";
CCH[23].BLU = "hud/cconflict/cc_blu03";
CCH[24].BLU = "hud/cconflict/cc_blu04";
CCH[25].BLU = "hud/cconflict/cc_blu05";
CCH[26].BLU = "hud/cconflict/cc_blu06";
CCH[27].BLU = "hud/cconflict/cc_blu07";
CCH[28].BLU = "hud/cconflict/cc_blu08";
CCH[29].BLU = "hud/cconflict/cc_blu09";
CCH[30].BLU = "hud/cconflict/cc_blu0A";
CCH[31].BLU = "hud/cconflict/cc_blu0C";
CCH[32].BLU = "hud/cconflict/cc_blu0D";
CCH[33].BLU = "hud/cconflict/cc_blu0E";
CCH[34].BLU = "hud/cconflict/cc_blu0F";
CCH[35].BLU = "hud/cconflict/cc_blu10";
CCH[36].BLU = "hud/cconflict/cc_blu11";
CCH[37].BLU = "hud/cconflict/cc_blu12";
CCH[38].BLU = "hud/cconflict/cc_blu13";
CCH[39].BLU = "hud/cconflict/cc_blu14";
CCH[40].BLU = "hud/cconflict/cc_blu15";
CCH[0].RED = "hud/cconflict/cc_red2A"; // Red payload at Blu spawn
CCH[1].RED = "hud/cconflict/cc_red29";
CCH[2].RED = "hud/cconflict/cc_red28";
CCH[3].RED = "hud/cconflict/cc_red27";
CCH[4].RED = "hud/cconflict/cc_red26";
CCH[5].RED = "hud/cconflict/cc_red25";
CCH[6].RED = "hud/cconflict/cc_red24";
CCH[7].RED = "hud/cconflict/cc_red23";
CCH[8].RED = "hud/cconflict/cc_red22";
CCH[9].RED = "hud/cconflict/cc_red21";
CCH[10].RED = "hud/cconflict/cc_red1F";
CCH[11].RED = "hud/cconflict/cc_red1E";
CCH[12].RED = "hud/cconflict/cc_red1D";
CCH[13].RED = "hud/cconflict/cc_red1C";
CCH[14].RED = "hud/cconflict/cc_red1B";
CCH[15].RED = "hud/cconflict/cc_red1A";
CCH[16].RED = "hud/cconflict/cc_red19";
CCH[17].RED = "hud/cconflict/cc_red18";
CCH[18].RED = "hud/cconflict/cc_red17";
CCH[19].RED = "hud/cconflict/cc_red16";
CCH[20].RED = "hud/cconflict/cc_red15";
CCH[21].RED = "hud/cconflict/cc_redEC";
CCH[22].RED = "hud/cconflict/cc_redED";
CCH[23].RED = "hud/cconflict/cc_redEE";
CCH[24].RED = "hud/cconflict/cc_redEF";
CCH[25].RED = "hud/cconflict/cc_redF0";
CCH[26].RED = "hud/cconflict/cc_redF1";
CCH[27].RED = "hud/cconflict/cc_redF2";
CCH[28].RED = "hud/cconflict/cc_redF3";
CCH[29].RED = "hud/cconflict/cc_redF4";
CCH[30].RED = "hud/cconflict/cc_redF5";
CCH[31].RED = "hud/cconflict/cc_redF6";
CCH[32].RED = "hud/cconflict/cc_redF7";
CCH[33].RED = "hud/cconflict/cc_redF8";
CCH[34].RED = "hud/cconflict/cc_redF9";
CCH[35].RED = "hud/cconflict/cc_redFA";
CCH[36].RED = "hud/cconflict/cc_redFB";
CCH[37].RED = "hud/cconflict/cc_redFC";
CCH[38].RED = "hud/cconflict/cc_redFD";
CCH[39].RED = "hud/cconflict/cc_redFE";
CCH[40].RED = "hud/cconflict/cc_redFF";
CCH[0].NEUTRAL = "hud/cconflict/cc_neutralFF"; // Receding payload at their spawn
CCH[1].NEUTRAL = "hud/cconflict/cc_neutralFE";
CCH[2].NEUTRAL = "hud/cconflict/cc_neutralFD";
CCH[3].NEUTRAL = "hud/cconflict/cc_neutralFC";
CCH[4].NEUTRAL = "hud/cconflict/cc_neutralFB";
CCH[5].NEUTRAL = "hud/cconflict/cc_neutralFA";
CCH[6].NEUTRAL = "hud/cconflict/cc_neutralF9";
CCH[7].NEUTRAL = "hud/cconflict/cc_neutralF8";
CCH[8].NEUTRAL = "hud/cconflict/cc_neutralF7";
CCH[9].NEUTRAL = "hud/cconflict/cc_neutralF6";
CCH[10].NEUTRAL = "hud/cconflict/cc_neutralF5";
CCH[11].NEUTRAL = "hud/cconflict/cc_neutralF4";
CCH[12].NEUTRAL = "hud/cconflict/cc_neutralF3";
CCH[13].NEUTRAL = "hud/cconflict/cc_neutralF2";
CCH[14].NEUTRAL = "hud/cconflict/cc_neutralF1";
CCH[15].NEUTRAL = "hud/cconflict/cc_neutralF0";
CCH[16].NEUTRAL = "hud/cconflict/cc_neutralEF";
CCH[17].NEUTRAL = "hud/cconflict/cc_neutralEE";
CCH[18].NEUTRAL = "hud/cconflict/cc_neutralED";
CCH[19].NEUTRAL = "hud/cconflict/cc_neutralEC";
CCH[20].NEUTRAL = "hud/cconflict/cc_neutral00";
CCH[21].NEUTRAL = "hud/cconflict/cc_neutral01";
CCH[22].NEUTRAL = "hud/cconflict/cc_neutral02";
CCH[23].NEUTRAL = "hud/cconflict/cc_neutral03";
CCH[24].NEUTRAL = "hud/cconflict/cc_neutral04";
CCH[25].NEUTRAL = "hud/cconflict/cc_neutral05";
CCH[26].NEUTRAL = "hud/cconflict/cc_neutral06";
CCH[27].NEUTRAL = "hud/cconflict/cc_neutral07";
CCH[28].NEUTRAL = "hud/cconflict/cc_neutral08";
CCH[29].NEUTRAL = "hud/cconflict/cc_neutral09";
CCH[30].NEUTRAL = "hud/cconflict/cc_neutral0A";
CCH[31].NEUTRAL = "hud/cconflict/cc_neutral0C";
CCH[32].NEUTRAL = "hud/cconflict/cc_neutral0D";
CCH[33].NEUTRAL = "hud/cconflict/cc_neutral0E";
CCH[34].NEUTRAL = "hud/cconflict/cc_neutral0F";
CCH[35].NEUTRAL = "hud/cconflict/cc_neutral10";
CCH[36].NEUTRAL = "hud/cconflict/cc_neutral11";
CCH[37].NEUTRAL = "hud/cconflict/cc_neutral12";
CCH[38].NEUTRAL = "hud/cconflict/cc_neutral13";
CCH[39].NEUTRAL = "hud/cconflict/cc_neutral14";
CCH[40].NEUTRAL = "hud/cconflict/cc_neutral15";
CCH[0].IDLE = "hud/cconflict/cc_idleFF";
CCH[1].IDLE = "hud/cconflict/cc_idleFE";
CCH[2].IDLE = "hud/cconflict/cc_idleFD";
CCH[3].IDLE = "hud/cconflict/cc_idleFC";
CCH[4].IDLE = "hud/cconflict/cc_idleFB";
CCH[5].IDLE = "hud/cconflict/cc_idleFA";
CCH[6].IDLE = "hud/cconflict/cc_idleF9";
CCH[7].IDLE = "hud/cconflict/cc_idleF8";
CCH[8].IDLE = "hud/cconflict/cc_idleF7";
CCH[9].IDLE = "hud/cconflict/cc_idleF6";
CCH[10].IDLE = "hud/cconflict/cc_idleF5";
CCH[11].IDLE = "hud/cconflict/cc_idleF4";
CCH[12].IDLE = "hud/cconflict/cc_idleF3";
CCH[13].IDLE = "hud/cconflict/cc_idleF2";
CCH[14].IDLE = "hud/cconflict/cc_idleF1";
CCH[15].IDLE = "hud/cconflict/cc_idleF0";
CCH[16].IDLE = "hud/cconflict/cc_idleEF";
CCH[17].IDLE = "hud/cconflict/cc_idleEE";
CCH[18].IDLE = "hud/cconflict/cc_idleED";
CCH[19].IDLE = "hud/cconflict/cc_idleEC";
CCH[20].IDLE = "hud/cconflict/cc_idle00";
CCH[21].IDLE = "hud/cconflict/cc_idle01";
CCH[22].IDLE = "hud/cconflict/cc_idle02";
CCH[23].IDLE = "hud/cconflict/cc_idle03";
CCH[24].IDLE = "hud/cconflict/cc_idle04";
CCH[25].IDLE = "hud/cconflict/cc_idle05";
CCH[26].IDLE = "hud/cconflict/cc_idle06";
CCH[27].IDLE = "hud/cconflict/cc_idle07";
CCH[28].IDLE = "hud/cconflict/cc_idle08";
CCH[29].IDLE = "hud/cconflict/cc_idle09";
CCH[30].IDLE = "hud/cconflict/cc_idle0A";
CCH[31].IDLE = "hud/cconflict/cc_idle0C";
CCH[32].IDLE = "hud/cconflict/cc_idle0D";
CCH[33].IDLE = "hud/cconflict/cc_idle0E";
CCH[34].IDLE = "hud/cconflict/cc_idle0F";
CCH[35].IDLE = "hud/cconflict/cc_idle10";
CCH[36].IDLE = "hud/cconflict/cc_idle11";
CCH[37].IDLE = "hud/cconflict/cc_idle12";
CCH[38].IDLE = "hud/cconflict/cc_idle13";
CCH[39].IDLE = "hud/cconflict/cc_idle14";
CCH[40].IDLE = "hud/cconflict/cc_idle15";
}
//Check if the client is valid
stock bool IsValidClient(int client) {
return (0 < client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client));
}
// Show overlay to all clients with lifetime | 0.0 = no auto remove
stock void ShowOverlayAll(char[] path)
{
for (int i = 1; i <= MaxClients; i++)
{
if (!IsClientInGame(i) || IsFakeClient(i) || IsClientSourceTV(i) || IsClientReplay(i))
continue;
ClientCommand(i, "r_screenoverlay \"%s.vtf\"", path);
}
}