All pastes #932545 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-07 20:24 UTC
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;
}