rendered paste body#include <a_samp>
#include <Dini>
#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<MAX_PLAYERS;x++)
{
if (gTeam[playerid]==gTeam[x])
{
SetPlayerMarkerForPlayer(x,playerid,COLOR_GREEN);
SetPlayerMarkerForPlayer(playerid,x,COLOR_GREEN);
}
else
{
SetPlayerMarkerForPlayer(x,playerid,COLOR_RED);
SetPlayerMarkerForPlayer(playerid,x,COLOR_RED);
}
}
SetPlayerMarkerForPlayer(playerid,playerid,COLOR_GREEN);
}
Playername(playerid)
{
new pname[STR];
GetPlayerName(playerid,pname,STR);
return pname;
}
stock PlayerName(playerid)
{
new name[256];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock GetCountInTeam(teamid)
{
new count;
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && GetPlayerTeam(i) == teamid)
{ count++;}
}
return count;
}