All pastes #539201 Raw Edit

Something

public text v1 · immutable
·published 2007-06-05 06:35 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xE52525AA
//#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define PocketMoney 50000 // Amount player recieves on spawn.
#define INACTIVE_PLAYER_ID 255
#define GIVECASH_DELAY 5000 // Time in ms between /givecash commands.

#define NUMVALUES 4

forward MoneyGrubScoreUpdate();
forward Givecashdelaytimer(playerid);
//forward GrubModeReset();
forward SetPlayerRandomSpawn(playerid);
forward SetupPlayerForClassSelection(playerid);
forward GameModeExitFunc();
#define MAX_RACES_ID 10
#define MAX_CHECKPOINTS 256
new RACEADMIN_PASS[256] = "test";

new racename[MAX_RACES_ID][256];
new freeraceidcheck[MAX_RACES_ID];
new driver1id[MAX_RACES_ID] = -1;
new driver2id[MAX_RACES_ID] = -1;
new drivercheck[MAX_RACES_ID] =1;
new playerraceid[MAX_PLAYERS] = -1;
new PlayerRaceStatus[MAX_PLAYERS] = -1;
new Float: RCPx[MAX_CHECKPOINTS][MAX_RACES_ID];
new Float: RCPy[MAX_CHECKPOINTS][MAX_RACES_ID];
new Float: RCPz[MAX_CHECKPOINTS][MAX_RACES_ID];
new Float: RCPx2[MAX_CHECKPOINTS][MAX_RACES_ID];
new Float: RCPy2[MAX_CHECKPOINTS][MAX_RACES_ID];
new Float: RCPz2[MAX_CHECKPOINTS][MAX_RACES_ID];
new prizemoney[MAX_RACES_ID];
new maxCP[MAX_RACES_ID];
//new Float: RSangle[MAX_RACES_ID];
//new Float: RSangle2[MAX_RACES_ID];
new raceidtimer = -1;
new startcheck[MAX_RACES_ID] = 0;
new nameofrace[256];
new racecreation;
new raceadminid = -1;


//------------------------------------------------------------------------------------------------------

new CashScoreOld;
new iSpawnSet[MAX_PLAYERS];

new Float:gRandomPlayerSpawns[10][3] = {
{2494.8337,-1687.3263,13.5147},
{2095.3533,-1145.2101,26.5929},
{1685.2394,-2102.5601,13.5543},
{2730.9685,-1831.5707,11.4745},
{-2158.0928,655.7538,52.3707},
{-2627.2009,1407.8497,7.0938},
{-1586.2576,40.5064,17.3358},
{2297.0176,2451.3623,10.8203},
{2193.4041,1676.9398,12.3672},
{213.2122,1876.4629,13.1400}
};

new Float:gCopPlayerSpawns[10][3] = {
{2494.8337,-1687.3263,13.5147},
{2095.3533,-1145.2101,26.5929},
{1685.2394,-2102.5601,13.5543},
{2730.9685,-1831.5707,11.4745},
{-2158.0928,655.7538,52.3707},
{-2627.2009,1407.8497,7.0938},
{-1586.2576,40.5064,17.3358},
{2297.0176,2451.3623,10.8203},
{2193.4041,1676.9398,12.3672},
{213.2122,1876.4629,13.1400}
};

//Round code stolen from mike's Manhunt :P
//new gRoundTime = 3600000;                   // Round time - 1 hour
//new gRoundTime = 1200000;					// Round time - 20 mins
//new gRoundTime = 900000;					// Round time - 15 mins
//new gRoundTime = 600000;					// Round time - 10 mins
//new gRoundTime = 300000;					// Round time - 5 mins
//new gRoundTime = 120000;					// Round time - 2 mins
//new gRoundTime = 60000;					// Round time - 1 min

new gActivePlayers[MAX_PLAYERS];
new gLastGaveCash[MAX_PLAYERS];
new playerColors[100] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};

new playerTransparentColors[100] = {
0xFF8C1300,0xC715FF00,0x20B2AA00,0xDC143C00,0x6495ED00,0xf0e68c00,0x77889900,0xFF149300,0xF4A46000,0xEE82EE00,0xFFD72000,
0x8b451300,0x4949A000,0x148b8b00,0x14ff7f00,0x556b2f00,0x0FD9FA00,0x10DC2900,0x53408100,0x0495CD00,0xEF6CE800,0xBD34DA00,
0x247C1B00,0x0C8E5D00,0x635B0300,0xCB7ED300,0x65ADEB00,0x5C1ACC00,0xF2F85300,0x11F89100,0x7B39AA00,0x53EB1000,0x54137D00,
0x27522200,0xF09F5B00,0x3D0A4F00,0x22F76700,0xD6303400,0x9A698000,0xDFB93500,0x3793FA00,0x90239D00,0xE9AB2F00,0xAF2FF300,
0x057F9400,0xB9851900,0x388EEA00,0x02815100,0xA5504300,0x0DE01800,0x93AB1C00,0x95BAF000,0x36997600,0x18F71F00,0x4B898700,
0x491B9E00,0x829DC700,0xBCE63500,0xCEA6DF00,0x20D4AD00,0x2D74FD00,0x3C1C0D00,0x12D6D400,0x48C00000,0x2A51E200,0xE3AC1200,
0xFC42A800,0x2FC82700,0x1A30BF00,0xB740C200,0x42ACF500,0x2FD9DE00,0xFAFB7100,0x05D1CD00,0xC471BD00,0x94436E00,0xC1F7EC00,
0xCE79EE00,0xBD1EF200,0x93B7E400,0x3214AA00,0x184D3B00,0xAE4B9900,0x7E49D700,0x4C436E00,0xFA24CC00,0xCE76BE00,0xA04E0A00,
0x9F945C00,0xDCDE3D00,0x10C9C500,0x70524D00,0x0BE47200,0x8A2CD700,0x6152C200,0xCF72A900,0xE5933800,0xEEDC2D00,0xD8C76200,
0x3FE65C00
};
//------------------------------------------------------------------------------------------------------

main()
{
		print("\n----------------------------------");
		print("  Racing Mode 0.2b\n");
		print("  and Money Grub                     ");
		print("----------------------------------\n");
}

//------------------------------------------------------------------------------------------------------

public MoneyGrubScoreUpdate()
{
	new CashScore;
	new name[MAX_PLAYER_NAME];
	//new string[256];
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if (IsPlayerConnected(i))
		{
			GetPlayerName(i, name, sizeof(name));
   			CashScore = GetPlayerMoney(i);
			SetPlayerScore(i, CashScore);
			if (CashScore > CashScoreOld)
			{
				CashScoreOld = CashScore;
				//format(string, sizeof(string), "$$$ %s is now in the lead $$$", name);
				//SendClientMessageToAll(COLOR_YELLOW, string);
			}
		}
	}
}

//------------------------------------------------------------------------------------------------------

/*public GrubModeReset()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if (IsPlayerConnected(i))
		{
			SetPlayerScore(i, PocketMoney);
			SetPlayerRandomSpawn(i, classid);
		}
	}

}*/

//------------------------------------------------------------------------------------------------------

public OnPlayerConnect(playerid)
{
	GameTextForPlayer(playerid,"Racing all over San Andreas",5000,5);
	gActivePlayers[playerid]++;
	gLastGaveCash[playerid] = GetTickCount();
	return 1;
}

//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
	gActivePlayers[playerid]--;
}
//------------------------------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
	new string[256];
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new cmd[256];
	new giveplayerid, moneys, idx;
	new Ang;
	cmd = strtok(cmdtext, idx);



if(strcmp(cmdtext, "/me", true, 3)==0) {
new pname[24];
GetPlayerName(playerid, pname, 24);
format(string, 256, "* %s %s", pname, cmdtext[4]);
SendClientMessageToAll(COLOR_GREEN, string);
return 1;
}



if(strcmp(cmdtext, "/away", true) == 0 && IsPlayerAdmin(playerid)==1)
	    {
	SetPlayerInterior(playerid,3);
	SetPlayerPos(playerid,198.3797,160.8905,1003.0300);
	SetPlayerFacingAngle(playerid,177.0350);
	SetCameraBehindPlayer(playerid);
	PlayerPlaySound(playerid,1082,198.3797,160.8905,1003.0300);
	TogglePlayerControllable(playerid,0);
             new away[MAX_PLAYER_NAME];
             GetPlayerName(playerid, away, MAX_PLAYER_NAME);
             format(string, sizeof(string), "%s &#1086;&#1090;&#1086;&#1096;&#1086;&#1083; &#1085;&#1077; &#1085;&#1072; &#1076;&#1086;&#1083;&#1075;&#1086;!", away);
             SendClientMessageToAll(COLOR_GREEN, string);
        return 1;
        }



        if(strcmp(cmdtext, "/back", true) == 0 && IsPlayerAdmin(playerid)==1)
	    {
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,2402.1877,-1719.0936,13.6194);
TogglePlayerControllable(playerid,1);
             new back[MAX_PLAYER_NAME];
             GetPlayerName(playerid, back, MAX_PLAYER_NAME);
             format(string, sizeof(string), "%s &#1074;&#1077;&#1088;&#1085;&#1091;&#1083;&#1089;&#1103;!", back);
             SendClientMessageToAll(COLOR_GREEN, string);
        return 1;
        }



if(strcmp(cmd, "/ls", true) == 0) {
        new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
        if(z > 966) {
SendPlayerFormattedText(playerid," &#1057;&#1085;&#1072;&#1095;&#1072;&#1083;&#1072; &#1074;&#1099;&#1081;&#1076;&#1080; &#1086;&#1090;&#1089;&#1102;&#1076;&#1072;...",0);
SendPlayerFormattedText(playerid,"Get outta here first...",0);
          }
else if(IsPlayerInAnyVehicle(playerid)) {
            new car;
              car = GetPlayerVehicleID(playerid);
               SetVehiclePos(car,2460.8638,-1687.4751,13.5334);
               SetVehicleZAngle(car,270.0000);
               SetPlayerFacingAngle(playerid,270.0000);
               SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1051;&#1086;&#1089; &#1057;&#1072;&#1085;&#1090;&#1086;&#1089;!",0);
               SendPlayerFormattedText(playerid,"Welcome to Los Santos!",0);
          }
else {
SetPlayerPos(playerid,2460.8638,-1687.4751,13.5334);
  SetPlayerFacingAngle(playerid,270.0000);
    SetCameraBehindPlayer(playerid);
      SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1051;&#1086;&#1089; &#1089;&#1072;&#1085;&#1090;&#1086;&#1089;!",0);
      SendPlayerFormattedText(playerid,"Welcome to Los Santos!",0);
      }return 1;
}

if(strcmp(cmd, "/sanf", true) == 0) {
        new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
        if(z > 966) {
SendPlayerFormattedText(playerid," &#1057;&#1085;&#1072;&#1095;&#1072;&#1083;&#1072; &#1074;&#1099;&#1081;&#1076;&#1080; &#1086;&#1090;&#1089;&#1102;&#1076;&#1072;...",0);
SendPlayerFormattedText(playerid,"Get outta here first...",0);
          }
else if(IsPlayerInAnyVehicle(playerid)) {
            new car;
              car = GetPlayerVehicleID(playerid);
               SetVehiclePos(car,-2016.7544,153.5285,27.6990);
               SetVehicleZAngle(car,270.0000);
               SetPlayerFacingAngle(playerid,270.0000);
               SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; C&#1072;&#1085; &#1060;&#1080;&#1077;&#1088;&#1088;&#1086;!",0);
               SendPlayerFormattedText(playerid,"Welcome to San Fierro!",0);
          }
else {
SetPlayerPos(playerid,-2016.7544,153.5285,27.6990);
  SetPlayerFacingAngle(playerid,270.0000);
    SetCameraBehindPlayer(playerid);
      SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1057;&#1072;&#1085; &#1060;&#1080;&#1077;&#1088;&#1088;&#1086;!",0);
      SendPlayerFormattedText(playerid,"Welcome to San Fierro!",0);
      }return 1;
}

if(strcmp(cmd, "/lv", true) == 0) {
        new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
        if(z > 966) {
SendPlayerFormattedText(playerid," &#1057;&#1085;&#1072;&#1095;&#1072;&#1083;&#1072; &#1074;&#1099;&#1081;&#1076;&#1080; &#1086;&#1090;&#1089;&#1102;&#1076;&#1072;...",0);
SendPlayerFormattedText(playerid,"Get outta here first...",0);
          }
else if(IsPlayerInAnyVehicle(playerid)) {
            new car;
              car = GetPlayerVehicleID(playerid);
               SetVehiclePos(car,2028.0686,1011.4006,10.8203);
               SetVehicleZAngle(car,270.0000);
               SetPlayerFacingAngle(playerid,270.0000);
               SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1051;&#1072;&#1089; &#1042;&#1077;&#1085;&#1090;&#1091;&#1088;&#1072;&#1089;!",0);
               SendPlayerFormattedText(playerid,"Welcome to Las Venturas!",0);
          }
else {
SetPlayerPos(playerid,2028.0686,1011.4006,10.8203);
  SetPlayerFacingAngle(playerid,270.0000);
    SetCameraBehindPlayer(playerid);
       SendPlayerFormattedText(playerid," &#1044;&#1086;&#1073;&#1088;&#1086; &#1087;&#1086;&#1078;&#1072;&#1083;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1051;&#1072;&#1089; &#1042;&#1077;&#1085;&#1090;&#1091;&#1088;&#1072;&#1089;!",0);
               SendPlayerFormattedText(playerid,"Welcome to Las Venturas!",0);
      }return 1;
}


	if(strcmp(cmd, "/invisible", true) == 0) {
  			SetPlayerColor(playerid, playerTransparentColors[playerid]);
		    SendClientMessage(playerid, COLOR_WHITE, " T&#1099; &#1085;&#1077;&#1074;&#1080;&#1076;&#1080;&#1084;&#1082;&#1072;!");
		    return 1;
			}

		else if(strcmp(cmd, "/visible", true) == 0) {
  			SetPlayerColor(playerid, playerColors[playerid]);
		    SendClientMessage(playerid, COLOR_GREEN, " &#1058;&#1077;&#1087;&#1077;&#1088;&#1100; &#1090;&#1099; &#1074;&#1080;&#1076;&#1077;&#1084;&#1099;&#1081;!");
		    return 1;
			}


if (strcmp(cmdtext, "/health", true)==0 && IsPlayerAdmin(playerid)==1)
{
if(GetPlayerMoney(playerid) > 1){
GivePlayerMoney(playerid, GetPlayerMoney(playerid) + 1);
SetPlayerHealth(playerid,100);
}
else{
SendClientMessage(playerid,COLOR_RED," &#1053;&#1077; &#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1076;&#1077;&#1085;&#1077;&#1075;.");
}
return 1;
}


	
if (strcmp(cmdtext, "/sound", true) == 0) {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerPlaySound(playerid,1147, X, Y, Z);

return 1;
}



	
if(strcmp(cmdtext,"/clearchat",true)==0 && IsPlayerAdmin(playerid)==1) // Chat window is gone, fomg!
		{
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
			SendClientMessage(playerid,COLOR_GREY," ");
                        SendClientMessage(playerid,COLOR_GREY," ");
		return 1;
		}

	if (strcmp(cmdtext, "/lock", true)==0)
		{
			if(IsPlayerInAnyVehicle(playerid))
			{
				new State=GetPlayerState(playerid);
				if(State!=PLAYER_STATE_DRIVER)
				{
					SendClientMessage(playerid,0xFFFF00AA," &#1058;&#1099; &#1085;&#1077; &#1074;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1100;.");
					return 1;
				}
				new i;
				for(i=0;i<MAX_PLAYERS;i++)
				{
					if(i != playerid)
					{
						SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
					}
				}
				SendClientMessage(playerid, 0xFFFF00AA, " &#1052;&#1072;&#1096;&#1080;&#1085;&#1072; &#1079;&#1072;&#1082;&#1088;&#1099;&#1090;&#1072;!");
		    	new Float:pX, Float:pY, Float:pZ;
				GetPlayerPos(playerid,pX,pY,pZ);
				PlayerPlaySound(playerid,1056,pX,pY,pZ);
			}
			else
			{
				SendClientMessage(playerid, 0xFFFF00AA, " &#1058;&#1099; &#1085;&#1077; &#1074; &#1084;&#1072;&#1096;&#1080;&#1085;&#1077;!");
			}
		return 1;
		}


if (strcmp(cmdtext, "/unlock", true)==0)
	{
		if(IsPlayerInAnyVehicle(playerid))
		{
			new State=GetPlayerState(playerid);
			if(State!=PLAYER_STATE_DRIVER)
			{
				SendClientMessage(playerid,0xFFFF00AA," &#1058;&#1099; &#1085;&#1077; &#1074;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1100;.");
				return 1;
			}
			new i;
			for(i=0;i<MAX_PLAYERS;i++)
			{
				SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
			}
			SendClientMessage(playerid, 0xFFFF00AA, " &#1052;&#1072;&#1096;&#1080;&#1085;&#1072; &#1086;&#1090;&#1082;&#1088;&#1099;&#1090;&#1072;!");
			new Float:pX, Float:pY, Float:pZ;
			GetPlayerPos(playerid,pX,pY,pZ);
			PlayerPlaySound(playerid,1057,pX,pY,pZ);
		}
		else
		{
			SendClientMessage(playerid, 0xFFFF00AA, "  &#1058;&#1099; &#1085;&#1077; &#1074; &#1084;&#1072;&#1096;&#1080;&#1085;&#1077;!");
		}
	return 1;
	}



if(strcmp(cmd, "/bigfall", true) == 0) {
				if(IsPlayerInAnyVehicle(playerid)) {
				        new Float:X;
					new Float:Y;
					new Float:Z;
				        new VehicleID;
				        GetPlayerPos(playerid, X, Y, Z);
				        VehicleID = GetPlayerVehicleID(playerid);
					SetVehiclePos(VehicleID, X, Y, Z + 800.00);
					SetPlayerFacingAngle(playerid,Ang);
					GivePlayerWeapon(playerid,46,1);
				} else {
					new Float:X;
					new Float:Y;
					new Float:Z;
					GetPlayerPos(playerid, X, Y, Z);
					SetPlayerPos(playerid, X, Y, Z + 800.00);
					SetPlayerFacingAngle(playerid,Ang);
					GivePlayerWeapon(playerid,46,1);
					GameTextForPlayer(playerid, "~w~Weeeeeeeeeeeeeeeeee!!",8000,5);
  				}
			return 1;
		}


    if(strcmp(cmd, "/startrace", true) == 0) {
	new name[256];
		name = strtok(cmdtext, idx);


	
	if(fexist(name)){
     new id;

	 new test[256];
	 new sost = 1;
	 while(id <= 9&&sost == 1){
	 test = racename[id];
	 if(checktext(name,test)){
     sost = 0;}else{
	 id++;

	 }
	 }
	if(sost == 0){
	 PlayerJoinRace(playerid,racenametoid(name));
	 }
	 if(sost == 1){
	 if(StartNewRace(name)>= 0){
  PlayerJoinRace(playerid,racenametoid(name));
	 }

}


	}else{
	SendClientMessage(playerid, COLOR_RED, " &#1053;&#1077;&#1087;&#1088;&#1072;&#1074;&#1077;&#1083;&#1100;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103; &#1075;&#1086;&#1085;&#1082;&#1080;!");
	}
	return 1;
	}


	if(strcmp(cmd, "/test", true) == 0) {

	return 1;
	}

if(strcmp(cmd, "/raceadmin", true) == 0) {
new pass[256];
pass = strtok(cmdtext, idx);
if(checktext(pass,RACEADMIN_PASS)){
if(raceadminid == -1){
raceadminid = playerid;
}else{SendClientMessage(playerid, COLOR_RED, "Another race admin is now here, you cant use race admin functions now!");}

}else{SendClientMessage(playerid, COLOR_RED, "&#1058;&#1099; &#1085;&#1077; &#1072;&#1076;&#1084;&#1080;&#1085;!");}
	return 1;
	}
if(raceadminid == playerid){
		if(strcmp(cmd, "/createrace", true) == 0) {
if(racecreation == 0){
	    new name[256];
        nameofrace = name;
		name = strtok(cmdtext, idx);
		if(!fexist(name)){
		new File: file = fopen(name,io_readwrite);
        nameofrace = name;
        racecreation = 1;
		SendClientMessage(playerid, COLOR_WHITE, " &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /setprize [money] &#1076;&#1083;&#1103; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1080;&#1103; &#1074;&#1099;&#1081;&#1075;&#1088;&#1099;&#1096;&#1072; ");
  fclose(file);
  }else{SendClientMessage(playerid, COLOR_RED, " &#1058;&#1072;&#1082;&#1072;&#1103; &#1075;&#1086;&#1085;&#1082;&#1072; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090; &#1087;&#1086;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081; &#1074;&#1074;&#1077;&#1089;&#1090;&#1080; &#1076;&#1088;&#1091;&#1075;&#1086;&#1077; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077;!!");}
}else{
SendClientMessage(playerid, COLOR_RED, " &#1057;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077; &#1075;&#1086;&#1085;&#1082;&#1080; &#1091;&#1078;&#1077; &#1085;&#1072;&#1095;&#1072;&#1083;&#1086;&#1089;&#1100;!");
}
	return 1;
	}
	if(strcmp(cmd, "/setprize", true) == 0) {
if(racecreation == 1){
	new money[256];
	money = strtok(cmdtext, idx);
    new File: file = fopen(nameofrace,io_append);
//new test[256];
format(money,sizeof(money),"%s \n",money);
racecreation = 2;
fwrite(file,money);
	fclose(file);
	SendClientMessage(playerid, COLOR_WHITE, " &#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1089;&#1090;&#1072;&#1088;&#1090;&#1086;&#1074;&#1091;&#1102; &#1087;&#1086;&#1079;&#1080;&#1094;&#1080;&#1102; 1 &#1074;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1103;!( /savecp )");
}else{
SendClientMessage(playerid, COLOR_RED, " &#1042;&#1099; &#1085;&#1077; &#1091;&#1082;&#1072;&#1079;&#1072;&#1083;&#1080; &#1074;&#1099;&#1081;&#1075;&#1088;&#1099;&#1096;!");
}
	return 1;
	}
		if(strcmp(cmd, "/savecp", true) == 0) {
if(racecreation == 2){
new position[256];
new Float:x, Float:y, Float:z;

GetPlayerPos(playerid,x,y,z);
format(position,sizeof(position),"%f %f %f ",x,y,z);
new File: file = fopen(nameofrace,io_append);
fwrite(file,position);
	fclose(file);
SendClientMessage(playerid, COLOR_GREEN, " &#1057;&#1090;&#1072;&#1088;&#1090;&#1086;&#1074;&#1072;&#1103; &#1087;&#1086;&#1079;&#1080;&#1094;&#1080;&#1103; 1 &#1080;&#1075;&#1088;&#1086;&#1082;&#1072; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1072;!!!");
SendClientMessage(playerid, COLOR_GREEN, position);
racecreation = 3;
}else if(racecreation == 3){
new position[256];
new Float:x, Float:y, Float:z;

GetPlayerPos(playerid,x,y,z);
format(position,sizeof(position),"%f %f %f\n",x,y,z);
new File: file = fopen(nameofrace,io_append);
fwrite(file,position);
	fclose(file);
SendClientMessage(playerid, COLOR_GREEN, " &#1057;&#1090;&#1072;&#1088;&#1090;&#1086;&#1074;&#1072;&#1103; &#1087;&#1086;&#1079;&#1080;&#1094;&#1080;&#1103; 2 &#1080;&#1075;&#1088;&#1086;&#1082;&#1072; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1077;&#1085;&#1072;!!!");
SendClientMessage(playerid, COLOR_WHITE, " &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /finish &#1095;&#1090;&#1086;&#1073;&#1099; &#1079;&#1072;&#1082;&#1086;&#1085;&#1095;&#1080;&#1090;&#1100; &#1089;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077; &#1075;&#1086;&#1085;&#1082;&#1080;.");
SendClientMessage(playerid, COLOR_GREEN, position);
racecreation = 4;

}else if(racecreation == 4){
new position[256];
new Float:x, Float:y, Float:z;

GetPlayerPos(playerid,x,y,z);
format(position,sizeof(position),"%f %f %f\n",x,y,z);
new File: file = fopen(nameofrace,io_append);
fwrite(file,position);
	fclose(file);
SendClientMessage(playerid, COLOR_GREEN, " &#1063;&#1077;&#1082;&#1087;&#1086;&#1081;&#1085;&#1090; &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1105;&#1085;!!!");
SendClientMessage(playerid, COLOR_GREEN, position);
}
return 1;
	}
		if(strcmp(cmd, "/finish", true) == 0) {
nameofrace[0] = 0;
nameofrace[1] = 0;
nameofrace[2] = 0;
nameofrace[3] = 0;
racecreation = 0;
SendClientMessage(playerid, COLOR_GREEN, " &#1057;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077; &#1075;&#1086;&#1085;&#1082;&#1080; &#1079;&#1072;&#1074;&#1077;&#1088;&#1096;&#1077;&#1085;&#1086;!!!");
	return 1;
	}
	}
	if(strcmp(cmd, "/help", true) == 0) {
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
		SendPlayerFormattedText(playerid,"Raicing all over San andreas.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /commands &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1076;&#1088;&#1086;&#1073;&#1085;&#1077;&#1077; &#1091;&#1079;&#1085;&#1072;&#1090;&#1100; &#1086; &#1082;&#1086;&#1084;&#1072;&#1085;&#1076;&#1072;&#1093;.", 0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /commandsadmins &#1077;&#1089;&#1083;&#1080; &#1074;&#1099; &#1072;&#1076;&#1084;&#1080;&#1085;  :).", 0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /XCOMMANDS &#1095;&#1090;&#1086;&#1073;&#1099; &#1091;&#1079;&#1085;&#1072;&#1090;&#1100; &#1086; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1077; &#1072;&#1076;&#1084;&#1080;&#1085;&#1077;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /raceinfo &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1076;&#1088;&#1086;&#1073;&#1085;&#1077;&#1077; &#1091;&#1079;&#1085;&#1072;&#1090;&#1100; &#1086; &#1075;&#1086;&#1085;&#1082;&#1072;&#1093;",0);
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
	return 1;
	}
	
	if(strcmp(cmd, "/raceinfo", true) == 0) {
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /startrace (&#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077; &#1075;&#1086;&#1085;&#1082;&#1080;) &#1095;&#1090;&#1086;&#1073;&#1099; &#1085;&#1072;&#1095;&#1072;&#1090;&#1100; &#1075;&#1086;&#1085;&#1082;&#1091; .",0);
		SendPlayerFormattedText(playerid," &#1042;&#1089;&#1077;&#1075;&#1086; &#1077;&#1089;&#1090;&#1100; 18 &#1075;&#1086;&#1085;&#1086;&#1082;",0);
		SendPlayerFormattedText(playerid," lscs, lscanals, lssf, lvur, lvairport, megasprint,.",0);
		SendPlayerFormattedText(playerid," sels, sfairport, sfbridge, sfbridge2, sflsl, sflvl, sfur.",0);
		SendPlayerFormattedText(playerid," cont, clip, fr, rl, race.",0);
		SendPlayerFormattedText(playerid," &#1058;&#1072;&#1082;&#1078;&#1077; &#1072;&#1076;&#1084;&#1080;&#1085; &#1084;&#1086;&#1078;&#1077;&#1090; &#1089;&#1086;&#1079;&#1076;&#1086;&#1074;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1077; &#1075;&#1086;&#1085;&#1082;&#1080;.",0);
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
    return 1;
	}

if(strcmp(cmd, "/Commandsadmins", true) == 0) {
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /clearchat &#1076;&#1083;&#1103; &#1086;&#1095;&#1080;&#1089;&#1090;&#1082;&#1080; &#1095;&#1072;&#1090;&#1072; .",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /health &#1076;&#1083;&#1103; &#1074;&#1086;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; &#1079;&#1076;&#1086;&#1088;&#1086;&#1074;&#1100;&#1103;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /raceadmin &#1087;&#1088;&#1077;&#1078;&#1076;&#1077; &#1095;&#1077;&#1084; &#1089;&#1086;&#1079;&#1076;&#1086;&#1074;&#1072;&#1090;&#1100; &#1089;&#1074;&#1086;&#1102; &#1075;&#1086;&#1085;&#1082;&#1091;.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /createrace &#1095;&#1090;&#1086;&#1073;&#1099; &#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1089;&#1074;&#1086;&#1102; &#1075;&#1086;&#1085;&#1082;&#1091;.",0);
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
   return 1;
	}

	if(strcmp(cmd, "/Commands", true) == 0) {
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /lock &#1080;&#1083;&#1080; /unlock &#1095;&#1090;&#1086;&#1073;&#1099; &#1086;&#1090;&#1082;&#1088;&#1099;&#1090;&#1100; &#1080;&#1083;&#1080; &#1079;&#1072;&#1082;&#1088;&#1099;&#1090;&#1100; &#1076;&#1074;&#1077;&#1088;&#1080;.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /away &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1088;&#1077;&#1076;&#1091;&#1087;&#1088;&#1077;&#1076;&#1080;&#1090;&#1100; &#1074;&#1089;&#1077;&#1093; &#1086; &#1090;&#1086;&#1084; &#1095;&#1090;&#1086; &#1074;&#1099; &#1086;&#1090;&#1086;&#1096;&#1083;&#1080;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /back &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1089;&#1077; &#1079;&#1085;&#1072;&#1083;&#1080; &#1095;&#1090;&#1086; &#1074;&#1099; &#1074;&#1077;&#1088;&#1085;&#1091;&#1083;&#1080;&#1089;&#1100;.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /sound &#1095;&#1090;&#1086;&#1073;&#1099; &#1073;&#1080;&#1073;&#1080;&#1082;&#1085;&#1091;&#1090;&#1100;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /givecash &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1089;&#1083;&#1072;&#1090;&#1100; &#1076;&#1077;&#1085;&#1100;&#1075;&#1080;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /invisible &#1080;&#1083;&#1080; /visible &#1095;&#1090;&#1086;&#1073;&#1091; &#1089;&#1090;&#1072;&#1090;&#1100; &#1085;&#1077;&#1074;&#1080;&#1076;&#1077;&#1084;&#1099;&#1084;/&#1074;&#1080;&#1076;&#1077;&#1084;&#1099;&#1084;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /teleports &#1095;&#1090;&#1086;&#1073;&#1099; &#1091;&#1079;&#1085;&#1072;&#1090;&#1100; &#1086; &#1082;&#1086;&#1084;&#1072;&#1085;&#1076;&#1072;&#1093; &#1090;&#1077;&#1083;&#1077;&#1087;&#1086;&#1088;&#1090;&#1072;", 0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /me &#1076;&#1083;&#1103; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1080;&#1103; &#1090;&#1086;&#1075;&#1086; &#1095;&#1090;&#1086; &#1074;&#1099; &#1076;&#1077;&#1083;&#1072;&#1081;&#1090;&#1077; ",0);
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
    return 1;
	}


		if(strcmp(cmd, "/teleports", true) == 0) {
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /ls &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1087;&#1072;&#1089;&#1090;&#1100; &#1074; &#1051;&#1086;&#1089; &#1057;&#1072;&#1085;&#1090;&#1086;&#1089;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /sanf &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1087;&#1072;&#1089;&#1090;&#1100; &#1074; &#1057;&#1072;&#1085; &#1060;&#1080;&#1077;&#1088;&#1088;&#1086;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /lv &#1095;&#1090;&#1086;&#1073;&#1099; &#1087;&#1086;&#1087;&#1072;&#1089;&#1090;&#1100; &#1074; &#1051;&#1072;&#1089; &#1042;&#1077;&#1085;&#1090;&#1091;&#1088;&#1072;&#1089;",0);
		SendPlayerFormattedText(playerid," &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; /bigfall &#1095;&#1090;&#1086;&#1073;&#1099; &#1091;&#1087;&#1072;&#1089;&#1090;&#1100; &#1089; 500 &#1092;&#1091;&#1090;&#1086;&#1074;&#1086;&#1081; &#1074;&#1099;&#1089;&#1086;&#1090;&#1099; &#1085;&#1072;&#1076; &#1074;&#1072;&#1096;&#1080;&#1084; &#1090;&#1077;&#1082;&#1091;&#1097;&#1080;&#1084; &#1084;&#1077;&#1089;&#1090;&#1086;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077;&#1084;", 0);
		SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0);
	return 1;
	}
	
	if(strcmp(cmd, "/givecash", true) == 0) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, " &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: /givecash [playerid] [amount]");
			return 1;
		}
		giveplayerid = strval(tmp);
		
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, " &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;: /givecash [playerid] [amount]");
			return 1;
		}
 		moneys = strval(tmp);
		
		//printf("givecash_command: %d %d",giveplayerid,moneys);

		
		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			playermoney = GetPlayerMoney(playerid);
			if (moneys > 0 && playermoney >= moneys) {
				GivePlayerMoney(playerid, (0 - moneys));
				GivePlayerMoney(giveplayerid, moneys);
				format(string, sizeof(string), " &#1042;&#1099; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080; %s(&#1080;&#1075;&#1088;&#1086;&#1082;&#1091;: %d), $%d.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), " &#1042;&#1099; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1083;&#1080; $%d &#1086;&#1090; %s(player: %d).", moneys, sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
				printf("%s(playerid:%d) &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; %d &#1082; %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "&#1053;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086;.");
			}
		}
		else {
				format(string, sizeof(string), "%d &#1085;&#1077; &#1080;&#1075;&#1088;&#1072;&#1077;&#1090;.", giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}
		return 1;
	}
	
	// PROCESS OTHER COMMANDS
	
	
	return 0;
}

//------------------------------------------------------------------------------------------------------

public OnPlayerSpawn(playerid)
{
	GivePlayerMoney(playerid, PocketMoney);
	SetPlayerInterior(playerid,0);
	SetPlayerRandomSpawn(playerid);
	SetPlayerColor(playerid, playerColors[playerid]);
	return 1;
}

public SetPlayerRandomSpawn(playerid)
{
	if (iSpawnSet[playerid] == 1)
	{
		new rand = random(sizeof(gCopPlayerSpawns));
		SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
		SetPlayerFacingAngle(playerid, 270.0);
    }
    else if (iSpawnSet[playerid] == 0)
    {
		new rand = random(sizeof(gRandomPlayerSpawns));
		SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
	}
	return 1;
}

//------------------------------------------------------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
    new playercash;
	if(killerid == INVALID_PLAYER_ID) {
        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
        ResetPlayerMoney(playerid);
	} else {
	    	SendDeathMessage(killerid,playerid,reason);
			SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
			playercash = GetPlayerMoney(playerid);
			if (playercash > 0)  {
				GivePlayerMoney(killerid, playercash);
				ResetPlayerMoney(playerid);
			}
			else
			{
			}
     	}
 	return 1;
}

/* public OnPlayerDeath(playerid, killerid, reason)
{   haxed by teh mike
	new name[MAX_PLAYER_NAME];
	new string[256];
	new deathreason[20];
	new playercash;
	GetPlayerName(playerid, name, sizeof(name));
	GetWeaponName(reason, deathreason, 20);
	if (killerid == INVALID_PLAYER_ID) {
	    switch (reason) {
			case WEAPON_DROWN:
			{
                format(string, sizeof(string), "*** %s drowned.)", name);
			}
			default:
			{
			    if (strlen(deathreason) > 0) {
					format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
				} else {
				    format(string, sizeof(string), "*** %s died.", name);
				}
			}
		}
	}
	else {
	new killer[MAX_PLAYER_NAME];
	GetPlayerName(killerid, killer, sizeof(killer));
	if (strlen(deathreason) > 0) {
		format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason);
		} else {
				format(string, sizeof(string), "*** %s killed %s.", killer, name);
			}
		}
	SendClientMessageToAll(COLOR_RED, string);
		{
		playercash = GetPlayerMoney(playerid);
		if (playercash > 0)
		{
			GivePlayerMoney(killerid, playercash);
			ResetPlayerMoney(playerid);
		}
		else
		{
		}
	}
 	return 1;
}*/

//------------------------------------------------------------------------------------------------------

public OnPlayerRequestClass(playerid, classid)
{
	if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6)
	{
		iSpawnSet[playerid] = 1;
	}
	else
	{
		iSpawnSet[playerid] = 0;
	}
	SetupPlayerForClassSelection(playerid);
	return 1;
}

public SetupPlayerForClassSelection(playerid)
{
 	SetPlayerInterior(playerid,14);
	SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
	SetPlayerFacingAngle(playerid, 270.0);
	SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
	SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}

public GameModeExitFunc()
{
	GameModeExit();
}

public OnGameModeInit()
{
	SetGameModeText("Racing script 0.2b");
    
	ShowPlayerMarkers(1);
	ShowNameTags(1);

	// Player Class's

	AddPlayerClassEx(0,105,2494.8337,-1687.3263,13.5147,0.0,24,500,31,500,29,180); // Grove
	AddPlayerClassEx(1,102,2095.3533,-1145.2101,26.5929,90.0,24,500,31,500,29,180); // Ballas
	AddPlayerClassEx(2,114,1685.2394,-2102.5601,13.5543,180.0,24,500,31,500,29,180); // Varrios
	AddPlayerClassEx(3,108,2730.9685,-1831.5707,11.4745,170.0,24,500,31,500,29,180); // Vagos
    AddPlayerClassEx(4,117,-2158.0928,655.7538,52.3707,270.0,24,500,31,500,29,180); // Triad
	AddPlayerClassEx(5,173,-2627.2009,1407.8497,7.0938,230.0,24,500,31,500,29,180); // Rifa
    AddPlayerClassEx(6,121,-1586.2576,40.5064,17.3358,315.0,24,500,31,500,29,180); // Da Nang Boy
    AddPlayerClassEx(7,280,2297.0176,2451.3623,10.8203,100.0,24,500,31,500,29,180); // Police
    AddPlayerClassEx(8,163,2193.4041,1676.9398,12.3672,90.0,24,500,31,500,29,180); // Leones
    AddPlayerClassEx(9,287,213.2122,1876.4629,13.1406,0.0,24,500,31,500,29,180); // Millitary
	// Car Spawns

	// Vehicle Spawn
//groove
	AddStaticVehicle(402,2085.5286,-1194.5800,23.6004,92.4156,5,5); //
	AddStaticVehicle(411,2511.0706,-1672.3441,13.2267,345.0,16,16); // 1
	AddStaticVehicle(411,2473.3000,-1697.2832,13.2442,359.3442,16,16); //
	AddStaticVehicle(412,2443.6106,-1645.0681,13.1968,179.0919,16,16); //
	AddStaticVehicle(412 ,2404.0142,-1642.5394,13.2739,180.2181,16,16); //
	AddStaticVehicle(415,2426.5190,-1638.3356,13.1819,221.4290,16,16); //
	AddStaticVehicle(415,2298.3774,-1634.5178,14.3418,208.8871,16,16); //
	AddStaticVehicle(429,2271.6147,-1643.1346,15.0188,178.4411,16,16); //
	AddStaticVehicle(429,2236.7881,-1637.3652,15.2593,159.2014,16,16); //
	AddStaticVehicle(434,2329.0554,-1677.3839,14.1475,270.0533,16,16); //
	AddStaticVehicle(451,2377.1003,-1927.9526,13.7334,359.7440,16,16); // 10
	AddStaticVehicle(451,2172.5720,-1670.4357,15.4233,309.3615,16,16); //
	AddStaticVehicle(471,2062.3091,-1903.2581,13.8960,179.5883,16,16); //
	AddStaticVehicle(474,2096.3545,-1800.1742,13.7376,89.3299,16,16); //
	AddStaticVehicle(477,2067.6787,-1694.2869,13.9012,270.2635,16,16); //
	AddStaticVehicle(481,1936.4944,-1571.7502,13.9427,182.1543,16,16); //
	AddStaticVehicle(508,2015.5929,-1707.5674,13.1719,88.5278,16,16); //
	AddStaticVehicle(522,2530.7070,-2008.3711,13.1720,118.3724,16,16); //
	AddStaticVehicle(541,2434.6963,-2100.4607,13.1714,28.8492,16,16); //
	AddStaticVehicle(567,2610.8259,-2238.2141,13.1653,57.4003,16,16); //
	AddStaticVehicle(602,2721.3938,-2405.7874,13.0860,87.4526,16,16); // 20
// Ballas
	AddStaticVehicle(402,1954.2985,-1157.3312,20.7493,90.9907,5,5); // 1
	AddStaticVehicle(411,1996.5847,-1275.1052,23.5567,179.3485,5,5); //
	AddStaticVehicle(415,2085.5286,-1194.5800,23.6004,92.4156,5,5); //
	AddStaticVehicle(415,2083.8167,-1170.0155,24.1319,89.3909,5,5); //
	AddStaticVehicle(429,2051.3804,-1121.5339,24.2937,179.4293,5,5); //
	AddStaticVehicle(451,2089.4873,-1261.0068,23.7729,90.3048,5,5); //
	AddStaticVehicle(451,2102.5933,-1274.5662,25.2724,179.5892,5,5); //
	AddStaticVehicle(461,2096.1055,-1316.5856,24.4537,359.2013,5,5); //
	AddStaticVehicle(467,2137.4973,-1282.4109,24.7203,178.2747,5,5); //
	AddStaticVehicle(471,2196.7434,-1284.2579,24.0714,180.9758,5,5); // 10
	AddStaticVehicle(477,2225.9309,-1328.8036,23.7662,152.6810,5,5); //
	AddStaticVehicle(480,1998.2502,-1317.3085,22.0014,179.2567,5,5); //
	AddStaticVehicle(481,1877.8019,-1362.2816,14.4224,179.6212,5,5); //
	AddStaticVehicle(481,2391.5991,-1487.5693,23.5483,270.6651,5,5); //
	AddStaticVehicle(481,2315.9009,-1530.2844,25.0639,301.2186,5,5); //
	AddStaticVehicle(508,2322.6960,-1450.9675,20.7251,358.7891,5,5); //
	AddStaticVehicle(522,2189.9624,-1465.7899,25.2609,268.9864,5,5); //
	AddStaticVehicle(602,2130.8291,-1491.5183,23.5330,359.6362,5,5); //
	AddStaticVehicle(602,2350.1077,-1595.9366,22.9965,0.9656,5,5); //
	AddStaticVehicle(603,1903.6066,-1625.6567,13.1416,270.5156,5,5); // 20
// Varrios
	AddStaticVehicle(402,1834.7645,-1871.5505,13.0475,1.0172,7,7); // 1
	AddStaticVehicle(411,1798.0601,-1933.3829,13.0546,359.7202,7,7); //
	AddStaticVehicle(411,1732.6206,-1750.9635,13.6074,267.5924,7,7); //
	AddStaticVehicle(412 ,1792.4584,-1864.0472,13.6666,0.8031,7,7); //
	AddStaticVehicle(412 ,1911.4008,-1766.0862,13.4751,0.2203,7,7); //
	AddStaticVehicle(429,1981.0421,-1995.0359,13.6463,0.3472,7,7); //
	AddStaticVehicle(434,1931.2611,-2067.3394,13.6392,90.2177,7,7); //
	AddStaticVehicle(434,1906.7015,-2018.9614,13.6392,358.9063,7,7); //
	AddStaticVehicle(451,1762.1198,-2061.4263,13.6944,254.9939,7,7); //
	AddStaticVehicle(451,1794.2716,-2120.7271,13.6463,359.0607,7,7); // 10
	AddStaticVehicle(461,1772.9528,-2098.3706,13.6392,179.7007,7,7); //
	AddStaticVehicle(467,1724.7622,-2099.6172,13.6391,180.0192,7,7); //
	AddStaticVehicle(471,1664.7994,-2114.5186,13.6392,296.0936,7,7); //
	AddStaticVehicle(474,1560.4167,-2251.0444,13.6399,90.8489,7,7); //
	AddStaticVehicle(535,1539.6766,-2361.4814,13.6470,1.0724,7,7); //
	AddStaticVehicle(549,1134.1930,-2037.1962,69.1001,0.6951,7,7); //
	AddStaticVehicle(567,1556.6239,-1790.2694,13.6393,359.7568,7,7); //
	AddStaticVehicle(602,1698.6650,-2094.2361,13.3177,179.4747,7,7); //
	AddStaticVehicle(603,1705.3331,-2128.8706,13.3178,0.0861,7,7); //
	AddStaticVehicle(603,1938.6859,-2086.4724,13.3335,270.1394,7,7); // 20
// Vagos
	AddStaticVehicle(402,2657.6633,-1797.0994,8.9251,271.8175,6,6); // 1
	AddStaticVehicle(411,2663.4729,-1834.2184,8.9390,291.0778,6,6); //
	AddStaticVehicle(412 ,2706.8704,-1843.4850,9.1205,158.9486,6,6); //
	AddStaticVehicle(429,2742.7363,-1875.9182,9.2649,0.9980,6,6); //
	AddStaticVehicle(434,2776.1387,-1839.1733,9.3994,201.1358,6,6); //
	AddStaticVehicle(461,2810.1821,-1822.3431,9.5494,88.2246,6,6); //
	AddStaticVehicle(467,2831.4692,-1694.8787,9.6282,72.9313,6,6); //
	AddStaticVehicle(467,2813.0349,-1671.3529,9.5649,179.1280,6,6); //
	AddStaticVehicle(471,2821.5540,-1548.5160,10.8163,90.3384,6,6); //
	AddStaticVehicle(474,2804.3892,-1441.3856,16.1357,193.6773,6,6); // 10
	AddStaticVehicle(477,2805.7202,-1439.5631,39.9404,178.7636,6,6); //
	AddStaticVehicle(508,2757.9182,-1944.3907,13.4466,273.2907,6,6); //
	AddStaticVehicle(541,2784.8477,-2021.0326,13.4535,1.1056,6,6); //
	AddStaticVehicle(541,2750.9260,-2080.4844,12.4514,32.4752,6,6); //
	AddStaticVehicle(549,2754.2859,-1378.8489,36.7298,88.1615,6,6); //
	AddStaticVehicle(567,2705.0115,-1275.7405,57.7801,314.7381,6,6); //
	AddStaticVehicle(602,2752.9253,-1176.8792,69.2986,90.4589,6,6); //
	AddStaticVehicle(602,2325.5049,-1243.6862,22.3965,269.6014,6,6); //
	AddStaticVehicle(603,2147.5706,-1180.7007,23.7146,269.5149,6,6); //
	AddStaticVehicle(603,2161.3853,-1144.2428,24.6890,90.1475,6,6); // 20}
// Triad
	AddStaticVehicle(402,-2160.0520,650.0266,51.9848,358.2317,0,0); // 1
	AddStaticVehicle(411,-2125.1897,658.6256,52.1969,93.7947,0,0); //
	AddStaticVehicle(429,-2153.9395,716.6980,69.2896,181.0278,0,0); //
	AddStaticVehicle(461,-2153.8486,584.8267,37.3381,359.0038,0,0); //
	AddStaticVehicle(471,-2183.1584,606.8737,34.8929,74.3181,0,0); //
	AddStaticVehicle(475,-2212.4238,617.7517,34.8911,178.3585,0,0); //
	AddStaticVehicle(508,-2206.5601,679.3579,49.1646,180.4676,0,0); //
	AddStaticVehicle(522,-2207.2734,628.1985,49.1653,356.9910,0,0); //
	AddStaticVehicle(522,-2095.6738,713.7725,69.2896,178.4648,0,0); //
	AddStaticVehicle(589,-1980.7981,429.1391,24.7095,2.1240,0,0); // 10
	AddStaticVehicle(589,-2307.1941,729.4024,49.1707,90.1823,0,0); //
	AddStaticVehicle(541,-2131.5771,181.9307,34.9184,271.3169,0,0); //
	AddStaticVehicle(558,-2035.8506,174.5800,28.5630,357.8284,0,0); //
	AddStaticVehicle(558,-1949.2273,258.8652,40.7774,63.3550,0,0); //
	AddStaticVehicle(559,-1944.9830,271.7980,40.7773,132.4681,0,0); //
	AddStaticVehicle(559,-1950.9312,259.8246,35.1973,54.3575,0,0); //
	AddStaticVehicle(560,-1966.3383,137.8016,27.4163,90.8835,0,0); //
	AddStaticVehicle(562,-2264.9558,192.5807,34.8911,89.8525,0,0); //
	AddStaticVehicle(562,-2410.9897,329.2556,34.6958,147.6938,0,0); //
	AddStaticVehicle(565,-2057.7781,228.8418,35.3034,183.4980,0,0); // 20
// Rifa
	AddStaticVehicle(402,-2645.7764,1332.9199,6.8967,270.0864,10,10); // 1
	AddStaticVehicle(411,-2645.1843,1379.2682,6.9466,269.6435,10,10); //
	AddStaticVehicle(429,-2617.3955,1345.4285,6.9771,0.7234,10,10); //
	AddStaticVehicle(434,-2518.1426,1396.4653,6.9693,268.2816,10,10); //
	AddStaticVehicle(461,-2473.8054,1314.4774,15.0398,267.7490,10,10); //
	AddStaticVehicle(461,-2522.1428,1229.4055,37.2101,215.0523,10,10); //
	AddStaticVehicle(471,-2512.7444,1205.4371,37.2037,269.7688,10,10); //
	AddStaticVehicle(471,-2568.2361,1146.5933,55.5084,159.7118,10,10); //
	AddStaticVehicle(475,-2668.4382,1467.5214,6.9693,270.3562,10,10); //
	AddStaticVehicle(506,-2899.9768,1161.7345,13.2521,271.9518,10,10); // 10
	AddStaticVehicle(602,-2894.6367,1070.1356,31.4620,269.7186,10,10); //
	AddStaticVehicle(402,-2818.9644,1075.5442,27.5257,1.7581,10,10); //
	AddStaticVehicle(402,-2805.2976,1170.3589,18.9165,263.0057,10,10); //
	AddStaticVehicle(411,-2153.6038,1227.4850,33.7500,270.1483,10,10); //
	AddStaticVehicle(411,-1979.8710,1225.9148,31.4663,95.0639,10,10); //
	AddStaticVehicle(415,-1856.4308,1426.0594,6.9981,172.7177,10,10); //
	AddStaticVehicle(415,-1703.9082,1370.6780,6.9968,45.0552,10,10); //
	AddStaticVehicle(439,-1661.2917,1214.0145,7.0675,282.0697,10,10); //
	AddStaticVehicle(439,-1661.8395,1210.0150,21.1563,313.3948,10,10); //
	AddStaticVehicle(439,-1706.6305,1221.6804,29.8920,357.0593,10,10); // 20
// Da Nang Boy
	AddStaticVehicle(402,-1593.6578,49.8185,17.0948,313.4933,3,3); // 1
	AddStaticVehicle(411,-1577.4628,33.7017,17.0947,7.0116,3,3); //
	AddStaticVehicle(429,-1482.4243,141.9665,18.7734,89.8411,3,3); //
	AddStaticVehicle(434,-1515.2684,108.0434,17.0948,56.5748,3,3); //
	AddStaticVehicle(461,-1544.9886,124.6858,3.3922,133.1510,3,3); //
	AddStaticVehicle(471,-1624.3514,146.0115,-7.3935,135.0009,3,3); //
	AddStaticVehicle(522,-1705.3956,2.7556,3.3892,325.6536,3,3); //
	AddStaticVehicle(522,-1718.8303,14.4570,3.4317,284.7556,3,3); //
	AddStaticVehicle(589,-1671.8347,-7.8881,3.3903,45.7057,3,3); //
	AddStaticVehicle(589,-1693.5857,-36.1624,3.3928,42.6544,3,3); // 10
	AddStaticVehicle(560,-1688.9467,-105.4865,3.3934,40.7605,3,3); //
	AddStaticVehicle(402,-1721.3584,-122.7660,3.3869,45.1083,3,3); //
	AddStaticVehicle(411,-1678.9474,422.2829,7.0178,134.4716,3,3); //
	AddStaticVehicle(415,-1528.9432,486.5542,7.0178,1.4889,3,3); //
	AddStaticVehicle(589,-1839.8505,-12.8696,14.9558,269.2632,3,3); //
	AddStaticVehicle(589,-1764.1281,-170.6011,3.3929,325.5325,3,3); //
	AddStaticVehicle(565,-1811.7833,-139.7660,6.0912,1.8642,3,3); //
	AddStaticVehicle(565,-1883.6063,-201.3599,15.8763,268.8539,3,3); //
	AddStaticVehicle(475,-1975.2935,174.3101,27.5253,89.2328,3,3); //
	AddStaticVehicle(475,-1918.4534,295.7694,40.8842,177.4945,3,3); // 20
// Police
	AddStaticVehicle(402,2282.4290,2442.5703,10.4082,358.8146,0,1); // 1
	AddStaticVehicle(411,2256.2878,2477.8113,10.4081,178.1515,0,1); //
	AddStaticVehicle(415,2201.4097,2471.6169,10.4081,175.0816,0,1); //
	AddStaticVehicle(415,2385.4373,2469.3020,10.4094,178.5469,0,1); //
	AddStaticVehicle(429,2360.9275,2398.4810,10.4074,359.6178,0,1); //
	AddStaticVehicle(439,2414.0205,2392.3489,10.4057,270.2823,0,1); //
	AddStaticVehicle(439,2127.0518,2371.6733,10.4080,139.1733,0,1); //
	AddStaticVehicle(471,2192.0410,2502.4272,10.3987,181.3236,0,1); //
	AddStaticVehicle(475,2298.8450,2460.0020,2.8499,271.5228,0,1); //
	AddStaticVehicle(522,2268.1130,2473.3088,2.8606,355.0423,0,1); // 10
	AddStaticVehicle(560,2229.2988,2462.2476,-7.8635,231.4320,0,1); //
	AddStaticVehicle(560,2277.2761,2473.2703,-7.8767,357.2464,0,1); //
	AddStaticVehicle(402,2314.0347,2355.4065,10.4337,131.0480,0,1); //
	AddStaticVehicle(402,2444.4609,2289.9016,10.5885,89.5112,0,1); //
	AddStaticVehicle(411,2437.6101,2376.2678,10.5893,177.7538,0,1); //
	AddStaticVehicle(415,2509.7583,2512.6001,10.5907,90.8923,0,1); //
	AddStaticVehicle(522,2460.3118,2529.4822,21.6433,357.6746,0,1); //
	AddStaticVehicle(522,2525.1323,2368.4497,3.9789,269.7834,0,1); //
	AddStaticVehicle(471,2057.4485,2479.6035,10.7113,178.4415,0,1); //
	AddStaticVehicle(471,2104.6890,2404.6619,15.0107,272.0666,0,1); // 20
// Leones
    AddStaticVehicle(402,2187.5835,1676.1075,11.0024,178.8692,11,11); // 1
	AddStaticVehicle(411,2310.2605,1686.6750,10.4764,184.1916,11,11); //
	AddStaticVehicle(415,2289.5957,1563.7983,10.4767,220.9178,11,11); //
	AddStaticVehicle(429,2171.1326,1568.4297,10.4766,91.4295,11,11); //
	AddStaticVehicle(439,2074.5515,1679.6116,10.3282,2.6004,11,11); //
	AddStaticVehicle(471,2117.8235,1790.2472,10.3282,334.5344,11,11); //
	AddStaticVehicle(542,2207.8320,1787.4207,10.4766,2.1320,11,11); //
	AddStaticVehicle(542,2167.6982,1800.0840,10.4767,179.2204,11,11); //
	AddStaticVehicle(402,2148.7410,1812.5338,10.4767,243.1523,11,11); // 10
	AddStaticVehicle(402,1872.1656,1989.4192,7.2509,181.1361,11,11); //
	AddStaticVehicle(402,2103.5046,2066.3633,10.4767,91.0233,11,11); //
	AddStaticVehicle(402,1945.6732,2067.5676,10.4766,359.7643,11,11); //
	AddStaticVehicle(411,2104.0540,2079.1438,10.4767,90.9541,11,11); //
	AddStaticVehicle(411,2000.6991,1540.4050,13.2656,2.2410,11,11); //
	AddStaticVehicle(411,2208.1553,1287.0316,10.5000,38.4213,11,11); //
	AddStaticVehicle(415,2331.9812,1412.1627,10.4999,91.5221,11,11); //
	AddStaticVehicle(562,2299.0894,1517.5955,16.8984,181.0582,11,11); // 20
	AddStaticVehicle(562,2039.5123,1008.9386,10.3516,179.3720,11,11); //
	AddStaticVehicle(477,2162.3015,1019.4582,10.5000,90.0848,11,11); //
	AddStaticVehicle(508,2131.4783,1142.2301,13.1878,61.0067,11,11); // 25
// Military
	AddStaticVehicle(402,204.0224,1862.7463,13.2329,0.9529,123,123); // 1
	AddStaticVehicle(411,221.9049,1854.7625,13.0017,83.6844,123,123); //
	AddStaticVehicle(429,216.5410,1912.5264,17.7330,95.5712,123,123); //
	AddStaticVehicle(429,126.6014,1876.4489,17.9283,356.7805,123,123); //
	AddStaticVehicle(439,164.4103,1831.9124,17.7404,225.7463,123,123); //
	AddStaticVehicle(439,270.0884,1883.8903,17.5680,72.2450,123,123); //
	AddStaticVehicle(471,280.4372,1821.1965,17.7330,89.3907,123,123); //
	AddStaticVehicle(542,14.5672,1744.1843,17.6592,93.9979,123,123); //
	AddStaticVehicle(542,291.2132,1821.4076,17.7330,2.4985,123,123); //
	AddStaticVehicle(402,283.1913,1953.3414,17.7330,333.3184,123,123); // 10
	AddStaticVehicle(402 ,279.4525,1988.9608,17.7329,324.2308,123,123); //
	AddStaticVehicle(411,281.4107,2023.1282,17.7329,315.1505,123,123); //
	AddStaticVehicle(411,183.8120,2079.2166,22.7346,220.4417,123,123); //
	AddStaticVehicle(415,282.6017,1794.1698,17.7329,280.7184,123,123); //
	AddStaticVehicle(562,104.6859,1934.9310,18.5766,161.0107,123,123); //
	AddStaticVehicle(562,-84.5359,1221.1758,19.5479,179.1635,123,123); //
	AddStaticVehicle(477,-44.5122,1166.5894,19.3618,359.5399,123,123); //
	AddStaticVehicle(461,-22.9767,2329.5803,23.9429,306.8320,123,123); //
	AddStaticVehicle(508,323.2498,2541.0837,16.6129,181.9801,123,123); //
	AddStaticVehicle(508,292.4670,2539.1501,16.6250,181.6758,123,123); // 20
	SetTimer("MoneyGrubScoreUpdate", 1000, 1);
	//SetTimer("GameModeExitFunc", gRoundTime, 0);

	return 1;
}

public SendPlayerFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessage(playerid, 0xFFFF00AA, tmpbuf);
}

public SendAllFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessageToAll(0xFFFF00AA, tmpbuf);
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

//RACE TOOLS
 split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;

while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
        len = strmid(strdest[aNum], strsrc, li, i, 128);
        strdest[aNum][len] = 0;
        li = i+1;
        aNum++;
}
i++;
}

return 1;
}

 

public Freadstr (filename[] , stringnum ) {
new File: fo = fopen(filename,io_read);
new filebuf[256];
new loops;
while (loops < stringnum){
fread(fo, filebuf);
loops = loops +1; }
return filebuf;
 }
public checktext(text1[],text2[]){  
new maxsize = 256;
new i;
new sost =1;
new b = 0;
while(i < maxsize , sost != 0, b == 0, i < 250){
if(text1[i] == 0, text2[i] == 0 ){b = 1; }
if(text1[i] == text2[i]){
i++;
}else{
sost = 0;
i = 250;
}
}
return sost;
}

public racenametoid(name[]){
new id;
//new sost;
while((!checktext(name,racename[id]))&&(id <= 9)){ id++;
}
return id;

}
public StartNewRace(name[256]){
new sost =1;
new id;
while((freeraceidcheck[id] != 0)&&(id<=9)){
id++;
}
if(id >= 9){ id = -1; sost = 0;}
if((freeraceidcheck[id] == 0)&&(sost == 1)){
racename[id] = name;
new text[256];
format(text, sizeof(text), "Race started '' %s ''",name);
SendClientMessageToAll( COLOR_GREEN,text);
freeraceidcheck[id] = 1;
}
new line = 1;


while(line <= 256){
new linebuf[256];
linebuf = Freadstr(name,line);
if(linebuf[0]== 0 ){
maxCP[id] = line - 2;
line = 257;}
else if(line == 1){
prizemoney[id] = strval(linebuf);
}
else{
new splitbuf[10][256];
split(linebuf, splitbuf, ' ');
RCPx[line - 1][id] = floatstr(splitbuf[0]);
RCPy[line - 1][id] = floatstr(splitbuf[1]);
RCPz[line - 1][id] = floatstr(splitbuf[2]);
if(line == 2){

RCPx2[line - 1][id] = floatstr(splitbuf[3]);
RCPy2[line - 1][id] = floatstr(splitbuf[4]);
RCPz2[line - 1][id] = floatstr(splitbuf[5]);

}
}


line++;
SendClientMessage(0, COLOR_GREEN, "line readed!");
}

return id;
}
public PlayerJoinRace(playerid,raceid2){
switch(drivercheck[raceid2]){
case 1:{driver1id[raceid2] = playerid;
SendClientMessage(playerid, COLOR_GREEN, "You join the race!");
drivercheck[raceid2] = 2;
playerraceid[playerid] = raceid2;
PlayerRaceStatus[playerid] = 0;
UpdatePlayerRaceCP(playerid,playerraceid[playerid]);
}
case 2:{driver2id[raceid2] = playerid;
drivercheck[raceid2] =-1;
SendClientMessage(playerid, COLOR_GREEN, "You join the race!");
playerraceid[playerid] = raceid2;
PlayerRaceStatus[playerid] = 0;
UpdatePlayerRaceCP(playerid,playerraceid[playerid]);
}
case -1:{SendClientMessage(playerid, COLOR_RED, "This race has already started!You can`t join it!");}
}
}

public OnPlayerEnterCheckpoint(playerid){

if(playerraceid[playerid] != -1){
if(IsPlayerInAnyVehicle(playerid)){
UpdatePlayerRaceCP(playerid,playerraceid[playerid]);
printf("Player id %s enter race checkpoint!",playerid);
}else{SendClientMessage(playerid, COLOR_RED, "You must be in a vehicle!");}

}
}
new filebuf2[256];
public Freadstr2 (filename[] , stringnum ) {
new File: fo = fopen(filename,io_read);

//new somevariable[256];
new loops;
while (loops < stringnum){
fread(fo, filebuf2);
loops = loops +1; }
 }
public UpdatePlayerRaceCP(playerid,raceid){
if(PlayerRaceStatus[playerid] == 0){
if(driver1id[raceid] == playerid){
SetPlayerCheckpoint(playerid,RCPx[1][raceid],RCPy[1][raceid],RCPz[1][raceid],5.0);
PlayerRaceStatus[playerid] ++;
}
 if(driver2id[raceid] == playerid){
SetPlayerCheckpoint(playerid,RCPx2[1][raceid],RCPy2[1][raceid],RCPz2[1][raceid],5.0);
PlayerRaceStatus[playerid] ++;
}
}
else if(PlayerRaceStatus[playerid]== 1){

SetPlayerCheckpoint(playerid,RCPx[PlayerRaceStatus[playerid] +1][raceid],RCPy[PlayerRaceStatus[playerid] +1 ][raceid],RCPz[PlayerRaceStatus[playerid] + 1][raceid],10.0);
PlayerRaceStatus[playerid] ++;
if(startcheck[raceid] == 0){SendClientMessage(playerid, COLOR_GREEN, "Waiting for opponent.");
TogglePlayerControllable(playerid,0);
startcheck[raceid] = 1;
}
else if(startcheck[raceid] == 1){
TogglePlayerControllable(playerid,0);
SetTimer("StartRace",2500,0);
raceidtimer = raceid;
}
}

else  if((PlayerRaceStatus[playerid] > 1)&&(PlayerRaceStatus[playerid] < maxCP[raceid])){
SetPlayerCheckpoint(playerid,RCPx[PlayerRaceStatus[playerid] +1][raceid],RCPy[PlayerRaceStatus[playerid] +1 ][raceid],RCPz[PlayerRaceStatus[playerid] + 1][raceid],10.0);
PlayerRaceStatus[playerid] ++;
}
else if(PlayerRaceStatus[playerid] == maxCP[raceid]){
GivePlayerMoney(playerid,prizemoney[raceid]);
DisablePlayerCheckpoint(driver1id[raceid]);
DisablePlayerCheckpoint(driver2id[raceid]);
if(playerid == driver1id[raceid]){
GameTextForPlayer(driver1id[raceid],"YOU WIN!",500,5);
GameTextForPlayer(driver2id[raceid],"YOU LOSE!",500,5);
}
if(playerid == driver2id[raceid]){
GameTextForPlayer(driver2id[raceid],"YOU WIN!",500,5);
GameTextForPlayer(driver1id[raceid],"YOU LOSE!",500,5);
}

PlayerRaceStatus[driver1id[raceid]] = -1;
PlayerRaceStatus[driver2id[raceid]] = -1;
playerraceid[driver1id[raceid]] = -1;
playerraceid[driver2id[raceid]] = -1;
racename[raceid][0] = 0;
racename[raceid][1] = 0;
racename[raceid][2] = 0;
racename[raceid][3] = 0;
racename[raceid][4] = 0;
racename[raceid][5] = 0;
racename[raceid][6] = 0;
racename[raceid][7] = 0;
racename[raceid][8] = 0;
racename[raceid][9] = 0;
racename[raceid][10] = 0;
racename[raceid][11] = 0;
racename[raceid][12] = 0;
racename[raceid][13] = 0;
freeraceidcheck[raceid] = 0;
driver1id[raceid] = -1;
driver2id[raceid] = -1;
drivercheck[raceid] =1;
prizemoney[raceid] = 0;
maxCP[raceid] = 0;
raceidtimer = -1;
startcheck[raceid] = 0;

}


return 1;
}
public StartRace(){
if(startcheck[raceidtimer] == 1){
GameTextForPlayer(driver1id[raceidtimer],"3",500,5);
GameTextForPlayer(driver2id[raceidtimer],"3",500,5);
startcheck[raceidtimer] = 2;
SetTimer("StartRace",2000,0);
}else if(startcheck[raceidtimer] == 2){
GameTextForPlayer(driver1id[raceidtimer],"2",500,5);
GameTextForPlayer(driver2id[raceidtimer],"2",500,5);
startcheck[raceidtimer] = 3;
SetTimer("StartRace",2000,0);
}else if(startcheck[raceidtimer] == 3){
GameTextForPlayer(driver1id[raceidtimer],"1",500,5);
GameTextForPlayer(driver2id[raceidtimer],"1",500,5);
startcheck[raceidtimer] = 4;
SetTimer("StartRace",2000,0);
}else if(startcheck[raceidtimer] == 4){
GameTextForPlayer(driver1id[raceidtimer],"GO!",500,5);
GameTextForPlayer(driver2id[raceidtimer],"GO!",500,5);
TogglePlayerControllable(driver1id[raceidtimer],1);
TogglePlayerControllable(driver2id[raceidtimer],1);
raceidtimer = -1;
}
}