264 lines
9.3 KiB
SourcePawn
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);
|
|
}
|
|
} |