#include #include #define TEAM_1 1 #define TEAM_2 2 #define TEAM_3 3 #define TEAM_4 4 #define TEAM_5 5 #define TEAM_6 6 #pragma unused ret_memcpy #define COLOR_GRAD5 0xE3E3E3FF #define COLOR_GRAD1 0xB4B5B7FF #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA333300 #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_BLUE 0x0000BBAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #define COLOR_PINK 0xFF66FFAA #define COLOR_DARKRED 0x660000AA #define SPEC_TYPE_NONE 0 #define SPEC_TYPE_PLAYER 1 #define SPEC_TYPE_VEHICLE 2 #define STR MAX_STRING #define Statuscolor 0xC8BEBEFF new team1; new team2; new team3; new team4; new team5; new team6; new Text:Text[MAX_PLAYERS]; new gTeam[MAX_PLAYERS]; new pSpectateID[MAX_PLAYERS]; new pSpectateType[MAX_PLAYERS]; new Count=5; new CountText[5][30] ={ "~w~count~n~~r~~h~1", "~w~count~n~~r~2", "~w~count~n~~y~3", "~w~count~n~~b~4", "~w~count~n~~b~~h~5" }; forward CountDown(); forward MainTimer(); forward CountDown2(); forward CountDown1(); forward CountDownGO(playerid); stock SwhowSpectateText(playerid) { new string[256]; if(gTeam[playerid] == TEAM_1||TEAM_2){ format(string, sizeof(string), "Army %d Terror %d", team1, team2);} if(gTeam[playerid] == TEAM_3||TEAM_4){ format(string, sizeof(string), "Swat %d Mafia %d", team3, team4);} if(gTeam[playerid] == TEAM_5||TEAM_6){ format(string, sizeof(string), "Grove %d Ballas %d", team5, team6);} TextDrawDestroy(Text[playerid]); Text[playerid] = TextDrawCreate(0.0, 380.0, string); TextDrawFont(Text[playerid], 1); TextDrawSetShadow(Text[playerid], 0); TextDrawSetOutline(Text[playerid], 1); TextDrawBackgroundColor(Text[playerid], 0x000000FF); TextDrawColor(Text[playerid], 0xFFFFFFFF); TextDrawShowForPlayer(playerid, Text[playerid]); } stock IsSpectatePlayer(playerid, spectateid) { if(IsPlayerConnected(spectateid) == 1 && ((GetPlayerTeam(spectateid) != GetPlayerTeam(playerid)) || (IsPlayerAdmin(playerid) == 1)) && pSpectateType[spectateid] == SPEC_TYPE_NONE && spectateid != playerid) return 1; return 0; } public OnGameModeInit() { UsePlayerPedAnims(); SetGameModeText("CWaT"); AddPlayerClass(102,214.6001,1912.2961,17.6406,182.7143, 31, 250, 24, 30, 17, 3); // army AddPlayerClass(103,247.8370,1799.3688,7.4141,358.0378, 31, 250, 24, 30, 17, 3); // terror AddPlayerClass(105,-1470.1534,1489.8986,8.2578,275.1645, 25, 100, 29, 200, 17, 2); // swat AddPlayerClass(104,-1435.2213,1486.1368,1.8672,271.4843, 25, 100, 29, 200, 17, 2); // mafia AddPlayerClass(106,2059.2551,-1200.6995,23.9115,90.4353,34, 50, 23, 70, 16, 2); // grove AddPlayerClass(107,1874.4486,-1190.1383,22.8004,264.7919,34, 50, 23, 70, 16, 2); // ballas SetTimer("MarkerStealthTimer",1000,1); return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 2172.6130,1285.7351,24.4744); SetPlayerCameraPos(playerid, 2157.6577,1285.6565,29.9584); SetPlayerCameraLookAt(playerid, 2172.6130,1285.7351,24.4744); SetPlayerFacingAngle(playerid, 106.4344); if(classid == 0){ gTeam[playerid] = TEAM_1; GameTextForPlayer(playerid, "~w~army", 1000, 3);} else if(classid == 1){ gTeam[playerid] = TEAM_2; GameTextForPlayer(playerid, "~w~terror", 1000, 3);} else if(classid == 2){ gTeam[playerid] = TEAM_3; GameTextForPlayer(playerid, "~w~swat", 1000, 3);} else if(classid == 3){ gTeam[playerid] = TEAM_1; GameTextForPlayer(playerid, "~w~mafia", 1000, 3);} else if(classid == 4){ gTeam[playerid] = TEAM_2; GameTextForPlayer(playerid, "~w~grove", 1000, 3);} else if(classid == 5){ gTeam[playerid] = TEAM_3; GameTextForPlayer(playerid, "~w~ballas", 1000, 3);} return 1; } public OnPlayerSpawn(playerid) { TogglePlayerControllable(playerid, 0); return 1; } public OnPlayerConnect(playerid) { new GPlayerName[32]; new str[256]; GetPlayerName(playerid,GPlayerName,sizeof(GPlayerName)); format(str, 256, " %s ", GPlayerName); SendClientMessageToAll(0xFF9900AA, str); return 1; } public OnPlayerDeath(playerid, killerid, reason) { new string[STR]; format(string,STR," %s .",Playername(playerid)); SendClientMessageToAll(COLOR_YELLOW, string); if(GetCountInTeam(GetPlayerTeam(playerid)) > 1) { do { pSpectateID[playerid]++; pSpectateID[playerid]%=MAX_PLAYERS; } while(IsSpectatePlayer(playerid, pSpectateID[playerid]) != 1); if(IsPlayerInAnyVehicle(pSpectateID[playerid])) { TogglePlayerSpectating(playerid, 1); pSpectateType[playerid] = SPEC_TYPE_VEHICLE; PlayerSpectateVehicle(playerid, GetPlayerVehicleID(pSpectateID[playerid])); } else { TogglePlayerSpectating(playerid, 1); pSpectateType[playerid] = SPEC_TYPE_PLAYER; PlayerSpectatePlayer(playerid, pSpectateID[playerid]); SetPlayerInterior(playerid, GetPlayerInterior(pSpectateID[playerid])); } //SwhowSpectateText(playerid); } if(gTeam[playerid] == TEAM_1){ team1--; format(string,STR," * Army %d .", team1); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[playerid] == TEAM_2){ team2--; format(string,STR," * Terror %d .", team2); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[playerid] == TEAM_3){ team3--; format(string,STR," * Swat %d .", team3); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[playerid] == TEAM_4){ team4--; format(string,STR,"* Mafia %d .", team4); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[playerid] == TEAM_5){ team5--; format(string,STR," * Grove %d .", team5); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[playerid] == TEAM_6){ team6 --; format(string,STR," * Ballas %d .", team6); SendClientMessageToAll(COLOR_YELLOW, string);} if(gTeam[killerid] != gTeam[playerid]) { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); } else { new warning[256]; format(warning, sizeof(warning), " ! !"); SendClientMessage(killerid, 0xFFFF00AA, warning); SendDeathMessage(killerid,playerid,reason); SetPlayerHealth(killerid, 20); SetPlayerScore(killerid, GetPlayerScore(killerid) - 1); return 1; } if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); SetPlayerScore(playerid, GetPlayerScore(playerid)-1); } SetPlayerColor(playerid, COLOR_WHITE); return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { new string[256], keys, updown, leftright; GetPlayerKeys(playerid, keys, updown, leftright); format(string, sizeof(string), " Playerid => %d, newkeys => %d, oldkeys => %d, updown => %d, leftright => %d", playerid, newkeys, oldkeys, updown, leftright); SendClientMessageToAll(COLOR_YELLOW, string); if((newkeys == 8192 || newkeys == 16384) && pSpectateType[playerid] != SPEC_TYPE_NONE) { if(GetCountInTeam(GetPlayerTeam(playerid)) > 1) { do { if(newkeys == 8192) pSpectateID[playerid]--; else if(newkeys == 16384) pSpectateID[playerid]++; pSpectateID[playerid]%=MAX_PLAYERS; } while(IsSpectatePlayer(playerid, pSpectateID[playerid]) != 1); if(IsPlayerInAnyVehicle(pSpectateID[playerid])) { TogglePlayerSpectating(playerid, 1); pSpectateType[playerid] = SPEC_TYPE_VEHICLE; PlayerSpectateVehicle(playerid, GetPlayerVehicleID(pSpectateID[playerid])); } else { TogglePlayerSpectating(playerid, 1); pSpectateType[playerid] = SPEC_TYPE_PLAYER; PlayerSpectatePlayer(playerid, pSpectateID[playerid]); SetPlayerInterior(playerid, GetPlayerInterior(pSpectateID[playerid])); } //SwhowSpectateText(playerid); } else { //TextDrawDestroy(Text[playerid]); TogglePlayerSpectating(playerid, 0); pSpectateID[playerid] = INVALID_PLAYER_ID; pSpectateType[playerid] = SPEC_TYPE_NONE; } } } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/start", cmdtext, true, 10) == 0) { if(IsPlayerAdmin(playerid)) { for(new i = 0; i < MAX_PLAYERS; i++) SpawnPlayer(i); for(new i = 0; i < MAX_PLAYERS; i++) TextDrawDestroy(Text[i]); for(new i = 0; i < MAX_PLAYERS; i++) TogglePlayerSpectating(i, 0); for(new i = 0; i < MAX_PLAYERS; i++) pSpectateID[i] = INVALID_PLAYER_ID; for(new i = 0; i < MAX_PLAYERS; i++) pSpectateType[i] = SPEC_TYPE_NONE; team1=0; team2=0; team3=0; team4=0; team5=0; team6=0; if(gTeam[playerid] == TEAM_1){ team1++;} if(gTeam[playerid] == TEAM_2){ team2++;} if(gTeam[playerid] == TEAM_3){ team3++;} if(gTeam[playerid] == TEAM_4){ team4++;} if(gTeam[playerid] == TEAM_5){ team5++;} if(gTeam[playerid] == TEAM_6){ team6++;} SetTimer("CountDown2",1000,0); GameTextForAll("~w~3",2500,3); } return 1; } if (strcmp("/kill", cmdtext, true, 10) == 0) { SetPlayerHealth(playerid, 0); return 1; } return 0; } public CountDown2() { SetTimer("CountDown1",1000,0); GameTextForAll("~w~2",2500,3); } public CountDown1() { SetTimer("CountDownGO",1000,0); GameTextForAll("~w~1",2500,3); } public CountDownGO(playerid) { GameTextForAll("~g~GOGOGO!!!",2500,3); for(new i = 0; i < MAX_PLAYERS; i++) TogglePlayerControllable(i, 1); if(gTeam[playerid] == TEAM_1){ SetPlayerColor(playerid, COLOR_GREEN);} else if(gTeam[playerid] == TEAM_2){ SetPlayerColor(playerid, COLOR_YELLOW);} else if(gTeam[playerid] == TEAM_3){ SetPlayerColor(playerid, COLOR_BLUE);} else if(gTeam[playerid] == TEAM_4){ SetPlayerColor(playerid, COLOR_ORANGE);} else if(gTeam[playerid] == TEAM_5){ SetPlayerColor(playerid, COLOR_LIGHTBLUE);} else if(gTeam[playerid] == TEAM_6){ SetPlayerColor(playerid, COLOR_DARKRED);} } public OnPlayerDisconnect(playerid, reason) { new message[127]; GetPlayerName(playerid, message, sizeof(message)); format(message,sizeof(message), " %s (ID: %d) ", message, playerid); switch(reason) { case 0: format(message,sizeof(message), " %s. ()", message); case 1: format(message,sizeof(message), " %s. ()", message); case 2: format(message,sizeof(message), " %s. ()", message); } for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && playerid != i) { SendClientMessage(i, Statuscolor, message); } } return 1; } public CountDown() { if (Count > 0) { GameTextForAll(CountText[Count-1],2500,3); Count--; SetTimer("CountDown",1000,0); } else { new var2 = 0; while(++var2 < 200) TogglePlayerControllable(var2, true); GameTextForAll("~g~~h~!!! GoGoGo !!!",2500,3); Count = 5; } return 1; } forward MarkerStealthTimer(); public MarkerStealthTimer() { new i; for(i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { MarkerStealth(i); } } } forward MarkerStealth(playerid); public MarkerStealth(playerid) { new x; for (x=0;x