All pastes #633220 Raw Edit

Untitled

public text v1 · immutable
#633220 ·published 2007-07-25 15:30 UTC
rendered paste body
//                             Sunday Drivers GM 0.1
//                              Coded by Chiarboss
//                                     ©2007
//                 Dont edit code or part of it without my permission
//                To get permission contact: marco.chiarelli@hotmail.it


#include <a_samp>
#include <DUDB>
#pragma tabsize 0

#define SLOTS 28

  new Float:xdeath;
  new Float:ydeath;
  new Float:zdeath;
  new Float:zangledeath;

  new gBestTime[256];
  new gTime1;
  new gTime2;
  new gTime3;
  new gTimeConfirm;
  new gTimerConfirm;
  new gTimer1;
  new gTimer2;
  new gTimer3;

enum VehicleSpawnInfo {
	Float:VehicleX,
	Float:VehicleY,
	Float:VehicleZ,
	Float:VehicleAngle
}

enum CheckpointSpawnInfo {
	Float:CheckpointX,
	Float:CheckpointY,
	Float:CheckpointZ,
}

enum PlayerSpawnInfo {
	Float:PlayerX,
	Float:PlayerY,
	Float:PlayerZ,
	Float:PlayerAngle
}

enum SavePlayerPosEnum
{
Float:LastX,
Float:LastY,
Float:LastZ
}

new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new UpdateSeconds = 1;
new speedo[MAX_PLAYERS];
new confirmspeedo[MAX_PLAYERS];

new Float:gRandomSpawns1[][PlayerSpawnInfo] =
{
	{2676.937744,-1676.754028,9.395504,180.584396},
	{2681.757568,-1676.853515,9.414299,180.271057},
	{2686.958251,-1676.917968,9.434563,180.271057},
	{2691.945068,-1676.909667,9.460366,180.271057},
	{2696.875732,-1676.905151,9.480960,178.077697}
};

new Float:gRandomSpawns2[][PlayerSpawnInfo] =
{
	{-2136.811035,-434.725463,35.335937,82.600234},
	{-2136.489013,-453.924713,35.335937,89.661941},
	{-2133.929687,-417.722503,35.335937,64.450073},
	{-2133.393798,-470.977630,35.335937,106.002189},
	{-2131.027099,-444.089447,35.335937,91.878692}
};

new Float:gRandomSpawns3[][PlayerSpawnInfo] =
{
	{1106.813598,1599.803222,12.546875,346.204132},
	{1092.991699,1600.526245,12.546875,347.457489},
	{1098.506103,1622.588989,12.472934,182.642593},
	{1101.149658,1619.867553,12.541040,183.895950},
	{1094.546997,1619.659179,12.546875,180.762588}
};

new Float:gCheckpointsForRace2[][CheckpointSpawnInfo] =
{
	{-1470.9136,998.1561,1025.7649},
	{-1400.8170,963.2554,1024.9896},
	{-1402.8594,1025.9514,1025.8073},
	{-1329.1379,996.8182,1025.2683},
	{-1390.2383,994.8713,1024.0824}
};

new Float:gRandomSpawnsForRace1[][VehicleSpawnInfo] =
{
	{-1396.8491,-246.3267,1043.3564,7.8819},
	{-1390.9253,-245.2419,1043.3894,10.2592},
	{-1392.4800,-236.4703,1043.2261,7.9450},
	{-1398.3811,-236.9867,1043.1925,6.1090},
	{-1399.4519,-229.0525,1043.0984,6.1542},
	{-1393.4663,-228.6423,1043.1230,5.1674},
	{-1394.0245,-221.0631,1043.0620,4.3254},
	{-1400.2006,-221.4413,1043.0475,4.1833},
	{-1400.6215,-214.4108,1043.0013,4.2405},
	{-1394.4856,-214.2294,1043.0110,0.9812},
	{-1394.7896,-206.2953,1042.9962,2.4756},
	{-1400.9303,-206.4480,1042.9899,1.9514}
};

new Float:gRandomSpawnsForRace2[][VehicleSpawnInfo] =
{
	{-1280.1362,1004.3162,1037.1838,95.5025},
	{-1298.6917,1036.1210,1037.7518,133.4157},
	{-1369.9214,1060.1604,1038.2769,180.2394},
	{-1423.4309,1059.2825,1038.3510,183.3923},
	{-1468.9451,1051.0233,1038.2924,203.1746},
	{-1503.6855,1027.9991,1037.9669,223.6128},
	{-1514.7773,977.5159,1037.1515,295.4512},
	{-1462.0406,938.2718,1036.3964,346.7521},
	{-1443.4236,933.2932,1036.2913,350.9616},
	{-1423.9279,931.9630,1036.1986,356.6953},
	{-1328.9915,940.5508,1036.2107,22.7611},
	{-1280.5862,975.8303,1036.7107,68.6068}
};

new Float:gRandomSpawnsForRace3[][VehicleSpawnInfo] =
{
	{-1328.5686,-600.8107,1055.8990,15.7509},
	{-1327.2466,-594.8192,1055.1273,349.1079},
	{-1326.4751,-602.5625,1055.9860,61.6707},
	{-1325.1632,-599.6118,1055.5294,61.1199},
	{-1323.8273,-597.4049,1055.2023,57.3242},
	{-1327.4403,-595.8212,1055.2218,67.5982},
	{-1328.2390,-597.9185,1055.5051,65.7001},
	{-1328.8540,-600.3713,1055.8595,64.6020},
	{-1331.7448,-599.2414,1055.8987,63.9833},
	{-1330.8213,-596.3272,1055.4635,68.2218},
	{-1330.1205,-594.2647,1055.1913,71.5963},
	{-1333.1525,-593.1984,1055.2179,72.4794}
};

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
};

//colori
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x1111AAFF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_RED 0xAA3333AA
#define COLOR_GREENYELLOW 0xADFF2FAA
#define COLOR_YELLOWGREEN 0x9ACD32AA //- like military green
#define NICE_BLUE 0xa0d3ffAA

#define CHECK_INITIAL 1
#define CHECK_INITIAL_DD 2
#define CHECK_INITIAL_DR 3

#define CHECK_DD 1

#define HotRace 1
#define BloodRing 2
#define DirtRace 3
//-------------------------------------------------------------------------
new stringconnect[256];
new checkstatusText[256];
new stringhud2[256];
new stringhud[256];
new gPlayerCheckpointStatus[MAX_PLAYERS];
new gPlayerCheckpointStatusForDD[MAX_PLAYERS];
new kills[MAX_PLAYERS];
new checkrace1[MAX_PLAYERS];
new checkrace3[MAX_PLAYERS];
new confirmdd[MAX_PLAYERS];
new HighestScore;
new HighestScorers[MAX_PLAYERS];
new confirmtext[MAX_PLAYERS];
new status = 1;
new countdown;
new timercountdown;
new timercheckpoint;
new gRoundTimerHud;
new confirm;
new confirmhud[MAX_PLAYERS];
new pidadmin;
new confirmrace[MAX_PLAYERS];
new confirm1[MAX_PLAYERS];
new confirm2[MAX_PLAYERS];
new confirm3[MAX_PLAYERS];
new playerdeath[MAX_PLAYERS];
new restart;
new shop;
new races;
new inarmory[MAX_PLAYERS];
new confirmexit[MAX_PLAYERS];
new Text:www;
new Text:txtObsHelper;
new Text:txtHudStar;
new Text:txtHudProgress;
new players;
new playersindd;
//-------------------------------------------------------------------------
forward GameModeExitFunc();
forward GameModeExitFuncRestart();
forward UpdateSpeed();
forward Podius();
forward ConfirmTimer();
forward ConfirmTimerStatus();
forward ForCountdown();
forward Countdown();
forward Checkpoints();
forward RaceTimer1();
forward RaceTimer2();
forward RaceTimer3();
forward DisableCheckpoint();
forward AfterDD();
forward TextCancel(playerid);
forward GameText(playerid);
forward sd(playerid);
//-------------------------------------------------------------------------
main()
{
        print("\n----------------------------------");
        print("Sunday Drivers GM 0.1 by Chiarboss");
        print("----------------------------------\n");
}
//-------------------------------------------------------------------------
public OnGameModeInit()
{

	shop = 1;
	restart = 1;
	confirm = 0;
	gTime1 = 0;
	gTime2 = 0;
	gTime3 = 0;
	races = HotRace;
	players = 0;
	playersindd = 12;
	UsePlayerPedAnims();
    SetGameModeText("Sunday Drivers GM 0.1");
    ShowPlayerMarkers(0);
    ShowNameTags(1);
    SetTimer("UpdateSpeed", UpdateSeconds*1000, 1);

    AddPlayerClass(0,0.0,0.0,0.0,0.0,0,0,0,0,0,0);

    AddStaticVehicle(494,2857.4268,-1871.0320,10.9988,136.2380,2,16);
    AddStaticVehicle(494,2676.7234,-1672.3975,9.2934,179.9965,2,3);
    AddStaticVehicle(444,2686.7639,-1671.8143,9.8168,179.0177,79,3);
    AddStaticVehicle(494,2657.4302,-1691.9403,9.2098,271.0485,-1,-1);
    AddStaticVehicle(494,2657.4551,-1697.0164,9.2118,269.9745,-1,-1);
    AddStaticVehicle(494,2657.4424,-1701.9327,9.2117,269.7704,-1,-1);
    AddStaticVehicle(494,2657.3088,-1707.0720,9.2127,269.3252,-1,-1);
    AddStaticVehicle(494,2657.8540,-1711.8798,9.2138,269.3959,-1,-1);
    AddStaticVehicle(494,2657.8936,-1797.4159,9.1982,272.6050,-1,-1);
    AddStaticVehicle(494,2657.7500,-1802.7197,9.1962,273.4662,-1,-1);
    AddStaticVehicle(494,2657.8950,-1807.7926,9.1966,274.0525,-1,-1);
    AddStaticVehicle(494,2658.6101,-1812.8348,9.2015,278.5288,-1,-1);
    AddStaticVehicle(494,2659.3052,-1817.7943,9.2036,281.2562,-1,-1);
    AddStaticVehicle(494,2660.2214,-1822.8424,9.2013,281.1157,-1,-1);
    AddStaticVehicle(494,2661.5574,-1828.9178,9.2045,287.7770,-1,-1);
    AddStaticVehicle(494,2664.1047,-1833.9069,9.2121,293.9963,-1,-1);
    AddStaticVehicle(494,2676.1936,-1821.7805,9.2692,128.9249,-1,-1);
    AddStaticVehicle(494,2679.5317,-1825.6537,9.2821,127.6328,-1,-1);
    AddStaticVehicle(494,2682.7834,-1830.0123,9.2981,137.7449,-1,-1);
    AddStaticVehicle(494,2687.1802,-1833.0249,9.3178,145.1366,-1,-1);
    AddStaticVehicle(494,2691.0295,-1836.0249,9.3349,148.2618,-1,-1);
    AddStaticVehicle(494,2695.4365,-1838.0490,9.3515,147.7731,-1,-1);
    AddStaticVehicle(494,2701.0098,-1841.0892,9.3709,158.8108,-1,-1);
    AddStaticVehicle(494,2706.5286,-1843.1526,9.3903,158.8043,-1,-1);
    AddStaticVehicle(494,2711.0559,-1844.8551,9.4055,159.1338,-1,-1);
    AddStaticVehicle(494,2715.9304,-1846.4456,9.4213,161.0680,-1,-1);
    AddStaticVehicle(494,2727.9265,-1876.2178,9.4683,358.9196,-1,-1);
    AddStaticVehicle(494,2732.8816,-1876.2985,9.4911,0.1795,-1,-1);
    AddStaticVehicle(494,2738.1094,-1876.0620,9.5143,358.2287,-1,-1);
    AddStaticVehicle(494,2742.8850,-1875.6405,9.5375,0.2576,-1,-1);
    AddStaticVehicle(494,2747.9968,-1876.4258,9.5578,359.9487,-1,-1);
    AddStaticVehicle(494,2752.9285,-1876.4219,9.5770,359.3030,-1,-1);
    AddStaticVehicle(494,2757.9861,-1876.1254,9.5979,359.9707,-1,-1);
    AddStaticVehicle(494,2762.9438,-1876.1414,9.6180,359.1446,-1,-1);
    AddStaticVehicle(494,2768.1377,-1875.9906,9.6399,359.7998,-1,-1);
    AddStaticVehicle(494,2772.6965,-1876.2081,9.6608,359.0302,-1,-1);
    AddStaticVehicle(494,2777.8113,-1876.5840,9.6861,1.7872,-1,-1);
    AddStaticVehicle(494,2782.9980,-1876.4041,9.7075,0.3765,-1,-1);
    AddStaticVehicle(494,2788.2349,-1875.9457,9.7277,1.2514,-1,-1);
    AddStaticVehicle(494,2793.1633,-1876.3110,9.7481,0.0172,-1,-1);
    AddStaticVehicle(494,2797.9434,-1876.2402,9.7658,0.6759,-1,-1);
    AddStaticVehicle(494,2802.8694,-1876.1327,9.7853,359.9715,-1,-1);
    AddStaticVehicle(494,2741.6460,-1851.1934,9.5361,180.4083,-1,-1);
    AddStaticVehicle(494,2747.7285,-1850.4552,9.5582,192.2457,-1,-1);
    AddStaticVehicle(494,2753.1465,-1848.5200,9.5842,196.8706,-1,-1);
    AddStaticVehicle(494,2757.8652,-1846.7821,9.6049,198.4232,-1,-1);
    AddStaticVehicle(494,2762.1807,-1845.2701,9.6254,198.7941,-1,-1);
    AddStaticVehicle(494,2767.0723,-1843.5389,9.6410,198.9184,-1,-1);
    AddStaticVehicle(494,2771.5100,-1841.7369,9.6560,199.1967,-1,-1);
    AddStaticVehicle(494,2776.3613,-1839.9814,9.6736,200.1438,-1,-1);
    AddStaticVehicle(494,2780.9204,-1838.1604,9.6864,210.2694,-1,-1);
    AddStaticVehicle(494,2784.8201,-1834.9185,9.7090,219.9627,-1,-1);
    AddStaticVehicle(494,2809.7383,-1837.0414,9.8167,88.5468,-1,-1);
    AddStaticVehicle(494,2810.1211,-1832.0221,9.8193,86.9948,-1,-1);
    AddStaticVehicle(494,2810.5938,-1827.1202,9.8215,87.3319,-1,-1);
    AddStaticVehicle(494,2810.7991,-1822.1289,9.8250,87.8446,-1,-1);
    AddStaticVehicle(494,2823.9624,-1723.4052,9.8996,79.0611,-1,-1);
    AddStaticVehicle(494,2825.3611,-1718.7465,9.9023,77.5213,-1,-1);
    AddStaticVehicle(494,2825.8503,-1714.1124,9.9041,77.3868,-1,-1);
    AddStaticVehicle(494,2827.3562,-1709.1260,9.8996,75.7392,-1,-1);
    AddStaticVehicle(494,2828.4224,-1704.2609,9.8952,76.5805,-1,-1);
    AddStaticVehicle(494,2829.2300,-1699.4203,9.8913,76.1593,-1,-1);
    AddStaticVehicle(494,2830.9197,-1694.5520,9.8944,74.6891,-1,-1);
    AddStaticVehicle(494,2831.9480,-1689.8146,9.8931,73.7990,-1,-1);
    AddStaticVehicle(494,2827.8010,-1672.4968,9.8693,179.4928,-1,-1);
    AddStaticVehicle(494,2822.6592,-1672.3254,9.8554,179.7763,-1,-1);
    AddStaticVehicle(494,2817.6580,-1672.1666,9.8419,179.3247,-1,-1);
    AddStaticVehicle(494,2812.9927,-1672.8624,9.8320,181.3207,-1,-1);
    AddStaticVehicle(494,2807.8594,-1671.8036,9.8280,179.4332,-1,-1);
    AddStaticVehicle(494,2802.7737,-1671.6464,9.8197,178.9692,-1,-1);
    AddStaticVehicle(494,2797.7681,-1671.8566,9.8052,180.7539,-1,-1);
    AddStaticVehicle(494,2792.7153,-1671.7783,9.7923,179.9045,-1,-1);
    AddStaticVehicle(494,2787.7898,-1672.0775,9.7700,178.3382,-1,-1);
    AddStaticVehicle(504,-2160.1582,-409.1746,35.1283,230.6400,77,77);
    AddStaticVehicle(504,-2133.5378,-435.0716,35.1284,81.4936,-1,-1);
    AddStaticVehicle(504,-2133.2305,-432.4738,35.1284,82.0117,-1,-1);
    AddStaticVehicle(504,-2132.7981,-429.6905,35.1285,81.9744,-1,-1);
    AddStaticVehicle(504,-2132.4780,-427.1351,35.1279,81.3609,-1,-1);
    AddStaticVehicle(504,-2132.1711,-424.3226,35.1284,82.0235,-1,-1);
    AddStaticVehicle(504,-2131.5835,-421.5876,35.1286,77.6163,-1,-1);
    AddStaticVehicle(504,-2130.6384,-418.8047,35.1281,72.1152,-1,-1);
    AddStaticVehicle(504,-2129.7397,-416.2472,35.1284,71.3947,-1,-1);
    AddStaticVehicle(504,-2128.7610,-413.5724,35.1285,71.4492,-1,-1);
    AddStaticVehicle(504,-2127.9094,-410.8508,35.1285,71.0971,-1,-1);
    AddStaticVehicle(504,-2126.9270,-408.1972,35.1284,69.6979,-1,-1);
    AddStaticVehicle(504,-2125.6807,-405.4483,35.1284,64.0657,-1,-1);
    AddStaticVehicle(504,-2133.1904,-453.5941,35.1284,96.8648,-1,-1);
    AddStaticVehicle(504,-2132.9060,-456.2692,35.1285,96.8977,-1,-1);
    AddStaticVehicle(504,-2132.5034,-459.0496,35.1283,99.0267,-1,-1);
    AddStaticVehicle(504,-2132.0354,-461.7968,35.1295,100.5006,-1,-1);
    AddStaticVehicle(504,-2131.5254,-464.4614,35.1309,102.0812,-1,-1);
    AddStaticVehicle(504,-2130.8616,-467.1248,35.1319,104.6905,-1,-1);
    AddStaticVehicle(504,-2129.9624,-469.9738,35.1315,108.2642,-1,-1);
    AddStaticVehicle(504,-2129.2622,-472.7121,35.1316,109.8431,-1,-1);
    AddStaticVehicle(504,-2128.0283,-475.4022,35.1345,113.9697,-1,-1);
    AddStaticVehicle(504,-2127.0918,-478.4668,35.1355,119.2266,-1,-1);
    AddStaticVehicle(504,-2126.0144,-481.2338,35.1356,114.3974,-1,-1);
    AddStaticVehicle(504,-2124.7444,-483.8293,35.1355,116.3322,-1,-1);
    AddStaticVehicle(573,1092.2767,1612.4164,13.1973,151.3612,3,4);
    AddStaticVehicle(424,1103.4581,1615.7324,12.3282,209.1826,2,3);
    AddStaticVehicle(468,1078.4895,1600.0778,12.2160,27.7301,-1,-1);
    AddStaticVehicle(468,1077.6520,1599.5469,12.2157,35.5050,-1,-1);
    AddStaticVehicle(468,1076.8423,1599.0785,12.2154,34.4441,-1,-1);
    AddStaticVehicle(468,1076.2213,1598.6139,12.2159,39.9685,-1,-1);
    AddStaticVehicle(468,1075.5127,1597.9473,12.2152,44.0492,-1,-1);
    AddStaticVehicle(468,1074.8951,1597.2598,12.2159,49.8840,-1,-1);
    AddStaticVehicle(468,1074.0717,1596.8270,12.2148,47.8889,-1,-1);
    AddStaticVehicle(468,1073.1863,1596.0118,12.2155,44.7564,-1,-1);
    AddStaticVehicle(468,1072.3514,1595.4784,12.2158,41.7029,-1,-1);
    AddStaticVehicle(468,1071.7710,1594.9167,12.2156,47.3763,-1,-1);
    AddStaticVehicle(468,1071.0951,1594.2548,12.2159,42.9456,-1,-1);
    AddStaticVehicle(468,1070.0392,1593.6407,12.2159,36.2484,-1,-1);
    AddStaticVehicle(468,1116.2870,1600.3636,12.2198,333.5197,-1,-1);
    AddStaticVehicle(468,1117.1973,1599.9658,12.2190,334.6485,-1,-1);
    AddStaticVehicle(468,1117.7184,1599.3870,12.2174,334.9947,-1,-1);
    AddStaticVehicle(468,1118.6207,1598.6100,12.2161,322.7865,-1,-1);
    AddStaticVehicle(468,1119.2236,1598.1572,12.2158,318.2094,-1,-1);
    AddStaticVehicle(468,1119.7817,1597.3749,12.2148,323.3851,-1,-1);
    AddStaticVehicle(468,1120.6411,1596.9292,12.2156,335.5393,-1,-1);
    AddStaticVehicle(468,1121.2776,1596.3806,12.2151,325.7973,-1,-1);
    AddStaticVehicle(468,1121.8617,1596.0977,12.2151,330.8820,-1,-1);
    AddStaticVehicle(468,1122.4949,1595.7805,12.2157,324.8096,-1,-1);
    AddStaticVehicle(468,1123.2504,1595.0442,12.2155,317.9193,-1,-1);
    AddStaticVehicle(468,1123.7864,1594.6935,12.2154,326.5702,-1,-1);

    SetWorldTime(12);
    
        www = TextDrawCreate(19.8, 423.0,"~y~www.gta-expert.com ~n~ ~b~Sunday Drivers ~r~GM 0.1");
		TextDrawLetterSize(www,0.5,1.2);
		TextDrawFont(www,1);
		TextDrawBackgroundColor(www,40);

    return 1;
}
//-------------------------------------------------------------------------
public UpdateSpeed(){
new Float:x,Float:y,Float:z;
new Float:distance,value,string[256];
new Text:Clock;
TextDrawDestroy(Clock);
TextDrawHideForAll(Clock);
Clock=TextDrawCreate(549,24,string);
TextDrawLetterSize(Clock,0.55,2);
TextDrawFont(Clock,3);
TextDrawBackgroundColor(Clock,0x000000AA);
TextDrawSetOutline(Clock,2);
for(new i=0; i<SLOTS; i++){
if(IsPlayerConnected(i) && confirm1[i] == 1 || confirm2[i] == 1 || confirm3[i] == 1 && IsPlayerInAnyVehicle(i)){
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));

value = floatround(distance * 3600);
if(UpdateSeconds > 1){
value = floatround(value / UpdateSeconds);
}

if(speedo[i] == 1){
format(string,sizeof(string),"~r~%d MPH",floatround(value/1600));
TextDrawShowForPlayer(i,Clock);
}
else if(speedo[i] == 2) {
format(string,sizeof(string),"~g~%d~b~KM/H",floatround(value/1000));
TextDrawShowForPlayer(i,Clock);
}
SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;
}
}
}
//-------------------------------------------------------------------------
public OnPlayerConnect(playerid) {

    confirmspeedo[playerid] = 1;
	confirmtext[playerid] = 0;
	confirmrace[playerid] = 0;
	inarmory[playerid] = 0;
	confirm1[playerid] = 0;
	confirm2[playerid] = 0;
	confirm3[playerid] = 0;
    checkrace1[playerid] = 0;
    checkrace3[playerid] = 0;
    confirmexit[playerid] = 0;
    SendClientMessage(playerid, 0xFF8A00AA, "Welcome to Sunday Drivers GM 0.1 [coded by Chiarboss]");
    SendClientMessage(playerid, 0xFFFFFFAA, "Type /about if you don't now how this mode work");
    SendClientMessage(playerid, 0xFFFF00AA, "Type /help for knowing the rules of GM");
    SendClientMessage(playerid,COLOR_RED,"Choice a character!");
    new string[256];
    new Pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname, sizeof(Pname));
    format(string, sizeof(string), "%s joined the server", Pname);
    SendClientMessageToAll(COLOR_GREY,string);
    format(stringconnect,sizeof(stringconnect),"~n~Welcome, ~y~%s",Pname);
    txtObsHelper = TextDrawCreate(20.0, 400.0,stringconnect);
	TextDrawUseBox(txtObsHelper, 0);
	TextDrawFont(txtObsHelper, 2);
	TextDrawSetShadow(txtObsHelper,0);
    TextDrawSetOutline(txtObsHelper,1);
    TextDrawBackgroundColor(txtObsHelper,0x000000FF);
    TextDrawColor(txtObsHelper,0xFFFFFFFF);
    TextDrawShowForPlayer(playerid, txtObsHelper);
    SetTimer("TextCancel",5000,0);
    SetTimer("sd",1,1);
    GameTextForPlayer(playerid, "~g~- ~r~Sunday Drivers ~g~-", 6000, 1);
    GivePlayerMoney(playerid, 10000);
    SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
    players++;

	return 1;
}
//-------------------------------------------------------------------------
public sd(playerid) {
TextDrawShowForPlayer(playerid,www);
return 1;
}
//-------------------------------------------------------------------------
public TextCancel(playerid) {
TextDrawHideForPlayer(playerid, txtObsHelper);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerDisconnect(playerid, reason) {
new string[256];
new Pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Pname, sizeof(Pname));
switch(reason) {
case 0: {
format(string, sizeof(string), "%s left the server (TimeOut)", Pname);
SendClientMessageToAll(COLOR_GREY,string);
}
case 1: {
format(string, sizeof(string), "%s left the server (Leaving)", Pname);
SendClientMessageToAll(COLOR_GREY,string);
}
case 2: {
format(string, sizeof(string), "%s left the server (Kicked)", Pname);
SendClientMessageToAll(COLOR_GREY,string);
}
}
players--;
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerText(playerid)
{
printf("OnPlayerText(%d)", playerid);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerInfoChange(playerid)
{
printf("OnPlayerInfoChange(%d)");
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerExitVehicle(playerid,vehicleid) {
if(races == HotRace && confirm1[playerid] == 1 || races == BloodRing && confirm2[playerid] == 1|| races == DirtRace && confirm3[playerid] == 1) {
return 0;
}
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerSpawn(playerid)

{
new Float:x;
new Float:y;
new Float:z;
new Float:zangle;
new randPLAYER1=random(sizeof(gRandomSpawns1));
new randPLAYER2=random(sizeof(gRandomSpawns2));
new randPLAYER3=random(sizeof(gRandomSpawns3));
SetPlayerInterior(playerid,0);
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,zangle);
TextDrawHideForPlayer(playerid,txtHudStar);

if(confirm1[playerid] == 1) {
PutPlayerInVehicle(playerid,CreateVehicle(494,x+5,y,z,zangle,-1,-1,0),0);
SetVehiclePos(GetPlayerVehicleID(playerid),xdeath,ydeath,zdeath);
SetVehicleZAngle(GetPlayerVehicleID(playerid),zangledeath);
LinkVehicleToInterior(GetPlayerVehicleID(playerid),7);
}
else if(confirm2[playerid] == 1) {
PutPlayerInVehicle(playerid,CreateVehicle(504,x+5,y,z,zangle,-1,-1,0),0);
SetVehiclePos(GetPlayerVehicleID(playerid),xdeath,ydeath,zdeath);
SetVehicleZAngle(GetPlayerVehicleID(playerid),zangledeath);
LinkVehicleToInterior(GetPlayerVehicleID(playerid),14);
}
else if(confirm3[playerid] == 1) {
PutPlayerInVehicle(playerid,CreateVehicle(468,x+5,y,z,zangle,-1,-1,0),0);
SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
SetVehicleZAngle(GetPlayerVehicleID(playerid),zangledeath);
LinkVehicleToInterior(GetPlayerVehicleID(playerid),4);
}
if(races == HotRace && confirm1[playerid] == 0) {
SetPlayerCheckpoint(playerid,2695.5122,-1704.6002,11.8438,2.5);
gPlayerCheckpointStatus[playerid] = CHECK_INITIAL;
SetPlayerPos(playerid,gRandomSpawns1[randPLAYER1][PlayerX],gRandomSpawns1[randPLAYER1][PlayerY],gRandomSpawns1[randPLAYER1][PlayerZ]);
SetPlayerFacingAngle(playerid,gRandomSpawns1[randPLAYER1][PlayerAngle]);
}
else if(races == BloodRing && confirm2[playerid] == 0) {
SetPlayerCheckpoint(playerid,-2119.3237,-444.3518,35.5313,2.5);
gPlayerCheckpointStatus[playerid] = CHECK_INITIAL_DD;
SetPlayerPos(playerid,gRandomSpawns2[randPLAYER2][PlayerX],gRandomSpawns2[randPLAYER2][PlayerY],gRandomSpawns2[randPLAYER2][PlayerZ]);
SetPlayerFacingAngle(playerid,gRandomSpawns2[randPLAYER2][PlayerAngle]);
}
else if(races == DirtRace && confirm3[playerid] == 0) {
SetPlayerCheckpoint(playerid,1099.5503,1601.7217,12.5469,2.5);
gPlayerCheckpointStatus[playerid] = CHECK_INITIAL_DR;
SetPlayerPos(playerid,gRandomSpawns3[randPLAYER3][PlayerX],gRandomSpawns3[randPLAYER3][PlayerY],gRandomSpawns3[randPLAYER3][PlayerZ]);
SetPlayerFacingAngle(playerid,gRandomSpawns3[randPLAYER3][PlayerAngle]);
}
if(players < 2) {
GameTextForPlayer(playerid,"~r~Wait ~w~for other ~r~players...",5000,3);
}

return 1;

}
//-------------------------------------------------------------------------
public OnPlayerDeath(playerid,killerid,reason) {
new string[256];
new name[MAX_PLAYER_NAME];
new randPLAYER2=random(sizeof(gRandomSpawns2));
GetPlayerPos(playerid,xdeath,ydeath,zdeath);
GetPlayerFacingAngle(playerid,zangledeath);

if(confirm1[playerid] == 1 || confirm2[playerid] == 1|| confirm3[playerid] == 1) {
GetPlayerPos(playerid,xdeath,ydeath,zdeath);
GetPlayerFacingAngle(playerid,zangledeath);
}

if(races == BloodRing && confirm2[playerid] == 1) {
playerdeath[playerid]++;
if(playerdeath[playerid] == 3) {
playersindd--;
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"%s is out from DD.");
SendClientMessageToAll(0xC10000AA,string);
SetPlayerColor(playerid,playerColors[playerid]);
SetPlayerPos(playerid,gRandomSpawns2[randPLAYER2][PlayerX],gRandomSpawns2[randPLAYER2][PlayerY],gRandomSpawns2[randPLAYER2][PlayerZ]);
SetPlayerFacingAngle(playerid,gRandomSpawns2[randPLAYER2][PlayerAngle]);
}
}

if(killerid == INVALID_PLAYER_ID) {

       SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
   } else {
	if(kills[killerid]>=1)
	{
       	Kick(killerid);
       	GetPlayerName(killerid,name, sizeof(name));
		format(string, sizeof(string), "%s, the n00b killer got kicked! Have a good gaming!",name);
        SendClientMessageToAll(0xFFF600AA, string);
	}
	else
		{
 			GivePlayerMoney(killerid, -50000);
			SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
			SendClientMessage(killerid, 0xC10000AA, "No killing here! Once again and you will be kicked!");
			SendClientMessage(playerid, 0xC10000AA, "Dont worry! One more kill and he/she will be kicked!");
			SendDeathMessage(killerid, playerid, reason);
			kills[killerid]++;
		}
	}
return 1;
}
//-------------------------------------------------------------------------
stock SetupPlayerForClassSelection(playerid) {
SetPlayerPos(playerid,2854.0945,-1872.6759,11.1011);
SetPlayerFacingAngle(playerid, 83.9659);
SetPlayerCameraPos(playerid,2851.1353,-1872.3503,11.0972);
SetPlayerCameraLookAt(playerid,2851.1353,-1872.3503,11.0972);
return;
}
//-------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
printf("OnPlayerRequestClass(%d, %d)", playerid, classid);
SetupPlayerForClassSelection(playerid);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid) {
DisablePlayerCheckpoint(playerid);
   
   switch(gPlayerCheckpointStatusForDD[playerid]) {
   case CHECK_DD: {
   if(GetPlayerMoney(playerid) > 5000) {
   ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
   SetPlayerHealth(GetPlayerVehicleID(playerid),100);
   } else {
   SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle. (MIN. 5000$)");
   }
}
}

return 1;
}
//-------------------------------------------------------------------------
public OnPlayerEnterRaceCheckpoint(playerid) {
new sentence1[256];
new sentence3[256];
new checkstatus1[128];
new checkstatus3[128];
DisablePlayerRaceCheckpoint(playerid);
if(checkrace1[playerid] < 59 || checkrace3[playerid] < 59) {
PlayerPlaySound(playerid,1139,0,0,0);
} else {
PlayerPlaySound(playerid,1137,0,0,0);
}

    txtHudStar = TextDrawCreate(20.0, 400.0,stringhud);
TextDrawUseBox(txtObsHelper, 0);
TextDrawFont(txtObsHelper, 2);
TextDrawSetShadow(txtObsHelper,0);
TextDrawSetOutline(txtObsHelper,1);
TextDrawBackgroundColor(txtObsHelper,0x000000FF);
TextDrawColor(txtObsHelper,0xFFFFFFFF);

    txtHudProgress = TextDrawCreate(20.0, 400.0,stringhud);
TextDrawUseBox(txtObsHelper, 0);
TextDrawFont(txtObsHelper, 2);
TextDrawSetShadow(txtObsHelper,0);
TextDrawSetOutline(txtObsHelper,1);
TextDrawBackgroundColor(txtObsHelper,0x000000FF);
TextDrawColor(txtObsHelper,0xFFFFFFFF);

switch(checkrace1[playerid]) {
case 0: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 1: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 2: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 3: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 4: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 5: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 6: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 7: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 8: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 9: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 10: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 11: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 12: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 13: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 14: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 15: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 16: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 17: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 18: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 19: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 20: {
if(GetPlayerMoney(playerid) >= 3000) {
AddVehicleComponent(GetPlayerVehicleID(playerid),1008);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for install a Nitro5x shoots on your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 21: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 22: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 23: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 24: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 25: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 26: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 27: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 28: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 29: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 30: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 31: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 32: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 33: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 34: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 35: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 36: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 37: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 38: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 39: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 40: {
if(GetPlayerMoney(playerid) >= 3000) {
AddVehicleComponent(GetPlayerVehicleID(playerid),1008);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for install a Nitro5x shoots on your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 41: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 42: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 43: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 44: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 45: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 46: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 47: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 48: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 49: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 50: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 51: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 52: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 53: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 54: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 55: {
SetPlayerRaceCheckpoint(playerid,0,-1529.2603,-186.7520,1050.8276,-1442.5808,-283.6490,1051.0698,5.0);
}
case 56: {
SetPlayerRaceCheckpoint(playerid,0,-1442.5808,-283.6490,1051.0698,-1317.8530,-138.0648,1050.2100,5.0);
}
case 57: {
SetPlayerRaceCheckpoint(playerid,0,-1317.8530,-138.0648,1050.2100,-1342.9248,-282.7149,1046.4097,5.0);
}
case 58: {
SetPlayerRaceCheckpoint(playerid,0,-1342.9248,-282.7149,1046.4097,-1418.4945,-136.2858,1044.7006,5.0);
}
case 59: {
SetPlayerRaceCheckpoint(playerid,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
case 60: {
new name[MAX_PLAYER_NAME];
new Float:fMinutes;
new Minutes;
new Seconds;
    if(status == 1){
    //CheckAgainstHighScore(playerid, gTime1);
    SetPlayerScore(playerid,GetPlayerScore(playerid)+10);
    GivePlayerMoney(playerid, 10000);
    SendClientMessage(playerid,COLOR_YELLOW,"You have arrived 1st! You have received 10000$!!!");
    }
    if(status == 2){
    SetPlayerScore(playerid,GetPlayerScore(playerid)+8);
    GivePlayerMoney(playerid, 5000);
    SendClientMessage(playerid,COLOR_GREENYELLOW,"You have arrived 2nd! You have received 5000$!!!");
    }
    if(status == 3){
    SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
    GivePlayerMoney(playerid, 2000);
    SendClientMessage(playerid,COLOR_YELLOWGREEN,"You have arrived 3rd! You have received 2000$!!!");
    }
  	 if (gTime1 != 0) {
    PlayerPlaySound(playerid, 1183,0,0,0);
    fMinutes = gTime1/60;
    Minutes = floatround(fMinutes, floatround_floor);
    Seconds = gTime1-(Minutes*60);
     GetPlayerName(playerid, name, 256);
     KillTimer(gTimer1);
     if(status == 1 || status == 2 || status == 3) {
	 format(sentence1, 256, "~r~%s ~n~~r~finished ~y~%d'. ~n~~b~%d ~w~min(s) & ~b~%d ~w~sec(s).", name, status, Minutes, Seconds);
	 GameTextForAll(sentence1,5000,6);
	 } else {
	 format(sentence1, 256, "RACENEWS: %s finished %d'. TIME: %d min(s) %d sec(s).", name, status, Minutes, Seconds);
	 SendClientMessageToAll(COLOR_GREEN,sentence1);
	 }
	 }
     status = status + 1;
     SetPlayerColor(playerid,playerColors[playerid]);
     confirmtext[playerid] = 0;
     checkstatusText = "";
     if(status == players || gTimeConfirm >= 600) {
     KillTimer(gTimer1);
     KillTimer(gTimerConfirm);
     KillTimer(gRoundTimerHud);
     gTimeConfirm = 0;
     confirm = 0;
	 races = BloodRing;
	 status = 0;
     for (new i=0; i<MAX_PLAYERS; i++) {
     confirm1[i] = 0;
     playerdeath[i] = 0;
     SpawnPlayer(i);
     }
     } else {
     confirm1[playerid] = 0;
     playerdeath[playerid] = 0;
     SpawnPlayer(playerid);
     }
return 1;
}
}

switch(checkrace3[playerid]) {
case 0: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 1: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 2: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 3: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 4: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 5: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 6: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 7: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 8: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 9: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 10: {
if(GetPlayerMoney(playerid) >= 2500) {
SetPlayerHealth(GetPlayerVehicleID(playerid),1000.0);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 11: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 12: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 13: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 14: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 15: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 16: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 17: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 18: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 19: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 20: {
if(GetPlayerMoney(playerid) >= 2500) {
SetPlayerHealth(GetPlayerVehicleID(playerid),1000.0);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 21: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 22: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 23: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 24: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 25: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 26: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 27: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 28: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 29: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 30: {
if(GetPlayerMoney(playerid) >= 2500) {
SetPlayerHealth(GetPlayerVehicleID(playerid),1000.0);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 31: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 32: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 33: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 34: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 35: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 36: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 37: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 38: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 39: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 40: {
if(GetPlayerMoney(playerid) >= 2500) {
SetPlayerHealth(GetPlayerVehicleID(playerid),1000.0);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 41: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 42: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 43: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 44: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 45: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 46: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 47: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 48: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 49: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 50: {
if(GetPlayerMoney(playerid) >= 2500) {
SetPlayerHealth(GetPlayerVehicleID(playerid),1000.0);
ChangeVehicleColor(GetPlayerVehicleID(playerid),-1,-1);
} else {
SendClientMessage(playerid,COLOR_RED,"You dont have enough money for restore the health of your vehicle!");
}
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 51: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 52: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 53: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 54: {
SetPlayerRaceCheckpoint(playerid,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 55: {
SetPlayerRaceCheckpoint(playerid,0,-1389.4087,-743.1297,1051.6444,-1484.7751,-627.9208,1051.7911,5.0);
}
case 56: {
SetPlayerRaceCheckpoint(playerid,0,-1484.7751,-627.9208,1051.7911,-1411.5774,-720.7286,1056.0182,5.0);
}
case 57: {
SetPlayerRaceCheckpoint(playerid,0,-1411.5774,-720.7286,1056.0182,-1349.2864,-629.5939,1053.6517,5.0);
}
case 58: {
SetPlayerRaceCheckpoint(playerid,0,-1349.2864,-629.5939,1053.6517,-1524.5768,-612.2890,1055.2369,5.0);
}
case 59: {
SetPlayerRaceCheckpoint(playerid,1,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
case 60: {
new name[MAX_PLAYER_NAME];
new Float:fMinutes;
new Minutes;
new Seconds;
    if(status == 1){
    SetPlayerScore(playerid,GetPlayerScore(playerid)+10);
    GivePlayerMoney(playerid, 10000);
    SendClientMessage(playerid,COLOR_YELLOW,"You have arrived 1st! You have received 10000$!!!");
    }
    if(status == 2){
    SetPlayerScore(playerid,GetPlayerScore(playerid)+8);
    GivePlayerMoney(playerid, 5000);
    SendClientMessage(playerid,COLOR_GREENYELLOW,"You have arrived 2nd! You have received 5000$!!!");
    }
    if(status == 3){
    SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
    GivePlayerMoney(playerid, 2000);
    SendClientMessage(playerid,COLOR_YELLOWGREEN,"You have arrived 3rd! You have received 2000$!!!");
    }
  	 if (gTime3 != 0) {
    PlayerPlaySound(playerid, 1183,0,0,0);
    fMinutes = gTime1/60;
    Minutes = floatround(fMinutes, floatround_floor);
    Seconds = gTime3-(Minutes*60);
     GetPlayerName(playerid, name, 256);
     KillTimer(gTimer3);
     if(status == 1 || status == 2 || status == 3) {
	 format(sentence3, 256, "~r~%s ~n~~r~finished ~y~%d'. ~n~~b~%d ~w~min(s) & ~b~%d ~w~sec(s).", name, status, Minutes, Seconds);
	 GameTextForAll(sentence3,5000,6);
	 } else {
	 format(sentence3, 256, "RACENEWS: %s finished %d'. TIME: %d min(s) %d sec(s).", name, status, Minutes, Seconds);
	 SendClientMessageToAll(COLOR_GREEN,sentence3);
	 }
	 }
	 SetPlayerColor(playerid,playerColors[playerid]);
     status = status + 1;
     confirmtext[playerid] = 0;
     checkstatusText = "";
     if(restart == 2) {
     if(status == players || gTimeConfirm >= 600) {
     KillTimer(gTimer3);
     for (new i=0; i<MAX_PLAYERS; i++) {
     confirm3[i] = 0;
     playerdeath[i] = 0;
     SpawnPlayer(i);
     TextDrawHideForPlayer(i, txtHudStar);
     }
     confirm = 0;
     status = 0;
     races = HotRace;
     KillTimer(gTimerConfirm);
     KillTimer(gRoundTimerHud);
     gTimeConfirm = 0;
     } else {
     confirm3[playerid] = 0;
     playerdeath[playerid] = 0;
     SpawnPlayer(playerid);
     }
     } else {
     for (new i=0; i<MAX_PLAYERS; i++) {
     TogglePlayerControllable(i,0);
     }
     SetTimer("Podius",5000,0);
     }
return 1;
}
}

if(races == HotRace || races == DirtRace) {
if(confirmhud[playerid] == 3) {
TextDrawShowForPlayer(playerid, txtHudStar);
if(confirmtext[playerid] == 1) {
format(stringhud, 256, "~n~~r~%s",checkstatusText);
} else {
format(stringhud, 256, "~n~~y~%s ~r~x 5",checkstatusText);
}
switch(checkrace1[playerid] || checkrace3[playerid]) {
case 5: {
checkstatusText = "[]";
}
case 10: {
checkstatusText = "[] []";
}
case 15: {
checkstatusText = "[] [] []";
}
case 20: {
checkstatusText = "[] [] [] []";
}
case 25: {
checkstatusText = "[] [] [] [] []";
}
case 30: {
checkstatusText = "[] [] [] [] [] []";
}
case 35: {
checkstatusText = "[] [] [] [] [] [] []";
}
case 40: {
checkstatusText = "[] [] [] [] [] [] [] []";
}
case 45: {
checkstatusText = "[] [] [] [] [] [] [] [] []";
}
case 50: {
checkstatusText = "[] [] [] [] [] [] [] [] [] []";
}
case 55: {
confirmtext[playerid] = 1;
checkstatusText = "[] [] [] [] [] [] [] [] [] [] []";
}
}
}
else if(confirmhud[playerid] == 4) {
if(confirmtext[playerid] == 1) {
format(stringhud2,sizeof(stringhud2),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~%s x 10",checkstatusText);
} else {
format(stringhud2,sizeof(stringhud2),"~n~~n~~n~~n~~n~~n~~n~~n~~n~%s ~r~x 10",checkstatusText);
}
gRoundTimerHud = SetTimer("GameText",1,1);
switch(checkrace1[playerid] || checkrace3[playerid]) {
case 10: {
checkstatusText = "[]";
}
case 20: {
checkstatusText = "[] []";
}
case 30: {
checkstatusText = "[] [] []";
}
case 40: {
checkstatusText = "[] [] [] []";
}
case 50: {
checkstatusText = "[] [] [] [] []";
confirmtext[playerid] = 1;
}
}
}
else if(confirmhud[playerid] == 2) {
TextDrawShowForPlayer(playerid, txtHudProgress);
if(confirmtext[playerid] == 1) {
format(stringhud, 256, "~n~~r~%s",checkstatusText);
} else {
format(stringhud, 256, "~n~~r~%s",checkstatusText);
}
switch(checkrace1[playerid] || checkrace3[playerid]) {
case 5: {
checkstatusText = "||";
}
case 10: {
checkstatusText = "||||";
}
case 15: {
checkstatusText = "||||||";
}
case 20: {
checkstatusText = "||||||||";
}
case 25: {
checkstatusText = "||||||||||";
}
case 30: {
checkstatusText = "||||||||||||";
}
case 35: {
checkstatusText = "||||||||||||||";
}
case 40: {
checkstatusText = "||||||||||||||||";
}
case 45: {
checkstatusText = "||||||||||||||||||";
}
case 50: {
checkstatusText = "||||||||||||||||||||";
}
case 55: {
confirmtext[playerid] = 1;
checkstatusText = "||||||||||||||||||||||";
}
}
}
}

if(races == HotRace) {
checkrace1[playerid]++;
if(confirmhud[playerid] == 1) {
format(checkstatus1, 128, "~r~%d of 5 x 12", checkrace1[playerid]);
GameTextForPlayer(playerid, checkstatus1 , 2000, 3);
}
}
else if(races == DirtRace) {
checkrace3[playerid]++;
if(confirmhud[playerid] == 1) {
format(checkstatus3, 128, "~r~%d of 5 x 12", checkrace3[playerid]);
GameTextForPlayer(playerid, checkstatus3 , 2000, 3);
}
}

return 1;
}
//-------------------------------------------------------------------------
public GameText(playerid) {
GameTextForPlayer(playerid,stringhud2,1000,5);
return 1;
}
//-------------------------------------------------------------------------
public ConfirmTimer() {
countdown = 4;
GameTextForAll("At places...",3000,6);
SetTimer("ForCountdown",5000,0);
return 1;
}
//-------------------------------------------------------------------------
public ForCountdown() {
timercountdown = SetTimer("Countdown",1000,1);
return 1;
}
//-------------------------------------------------------------------------
public Countdown() {
new string[256];
countdown--;
if(countdown == 3 || countdown == 2 || countdown == 1) {
format(string,256,"~r~%d",countdown);
for (new i=0; i<MAX_PLAYERS; i++) {
GameTextForPlayer(i,string,1000,3);
PlayerPlaySound(i,1056,0,0,0);
}
}
else if(countdown == 0) {
for (new i=0; i<MAX_PLAYERS; i++) {
GameTextForPlayer(i,"~g~GO!!!",3000,3);
PlayerPlaySound(i,1057,0,0,0);
}
KillTimer(timercountdown);
if(races == HotRace ) {
gTimer1=SetTimer("RaceTimer1", 1000, 1);
for (new i=0; i<MAX_PLAYERS; i++) {
SetPlayerRaceCheckpoint(i,0,-1418.4945,-136.2858,1044.7006,-1529.2603,-186.7520,1050.8276,5.0);
}
}
else if(races == BloodRing) {
gTimer2=SetTimer("RaceTimer2", 1000, 1);
timercheckpoint=SetTimer("Checkpoints", 180000, 1);
}
else if(races == DirtRace) {
for (new i=0; i<MAX_PLAYERS; i++) {
SetPlayerRaceCheckpoint(i,0,-1524.5768,-612.2890,1055.2369,-1389.4087,-743.1297,1051.6444,5.0);
}
gTimer3=SetTimer("RaceTimer3", 1000, 1);
}
}
return 1;
}
//-------------------------------------------------------------------------
public Checkpoints() {
new randCHECK=random(sizeof(gCheckpointsForRace2));
for (new i=0; i<MAX_PLAYERS; i++) {
SetPlayerCheckpoint(i,gCheckpointsForRace2[randCHECK][CheckpointX],gCheckpointsForRace2[randCHECK][CheckpointY],gCheckpointsForRace2[randCHECK][CheckpointZ],2.5);
gPlayerCheckpointStatusForDD[i] = CHECK_DD;
}
SetTimer("DisableCheckpoint",5000,0);
return 1;
}
//-------------------------------------------------------------------------
public DisableCheckpoint() {
for (new i=0; i<MAX_PLAYERS; i++) {
if(gPlayerCheckpointStatusForDD[i] == CHECK_DD) {
DisablePlayerCheckpoint(i);
return true;
}
}
return 1;
}
//-------------------------------------------------------------------------
public RaceTimer1() {
gTime1++;
}
//-------------------------------------------------------------------------
public RaceTimer2() {
gTime2++;
}
//-------------------------------------------------------------------------
public RaceTimer3() {
gTime3++;
}
//-------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{

 new string[256];
 new cmd[256];
 new idx;
 

 cmd = strtok(cmdtext, idx);
 
  if(strcmp(cmd,"/race",true)==0) {
  new randRACE1=random(sizeof(gRandomSpawnsForRace1));
  new randRACE2=random(sizeof(gRandomSpawnsForRace2));
  new randRACE3=random(sizeof(gRandomSpawnsForRace3));
   if(players < 12) {
   GameTextForPlayer(playerid,"~r~Wait ~w~for other ~r~players...",5000,3);
   } else {
   if(IsPlayerInAnyVehicle(playerid)) {
   new name[MAX_PLAYER_NAME];
   new Float:x;
   new Float:y;
   new Float:z;
   new Float:zangle;
   GetPlayerName(playerid,name,sizeof(name));
   GetPlayerPos(playerid,x,y,z);
   GetPlayerFacingAngle(playerid,zangle);
   confirm++;
   confirmrace[playerid]++;
   if(confirmrace[playerid] >= 2 && confirm2[playerid] == 1 && confirmdd[playerid] < 3) {
   SendClientMessage(playerid,COLOR_RED,"n00b, you have already participated at the DD!");
   confirmdd[playerid]++;
   SpawnPlayer(playerid);
   if(confirmdd[playerid] == 2) {
   SendClientMessage(playerid,COLOR_DARKRED,"Stop to try bugusing... n00b");
   } else if(confirmdd[playerid] == 3) {
   format(string,sizeof(string),"%s kicked for tried bugusing");
   SendClientMessageToAll(0xC10000AA,string);
   Kick(playerid);
   }
   }
   if(confirm == 1) {
   format(string,sizeof(string),"%s has started the race (%d)",name,races);
   SendClientMessageToAll(0xFF8A00AA,string);
   }
   if(races == HotRace) {
   confirm1[playerid] = 1;
   SetVehiclePos(GetPlayerVehicleID(playerid),gRandomSpawnsForRace1[randRACE1][VehicleX],gRandomSpawnsForRace1[randRACE1][VehicleY],gRandomSpawnsForRace1[randRACE1][VehicleZ]);
   SetVehicleZAngle(GetPlayerVehicleID(playerid),gRandomSpawnsForRace1[randRACE1][VehicleAngle]);
   LinkVehicleToInterior(GetPlayerVehicleID(playerid),7);
   GameTextForPlayer(playerid,"8Track",6000,2);
   }
   else if(races == BloodRing) {
   confirm2[playerid] = 1;
   SetVehiclePos(GetPlayerVehicleID(playerid),gRandomSpawnsForRace2[randRACE2][VehicleX],gRandomSpawnsForRace2[randRACE2][VehicleY],gRandomSpawnsForRace2[randRACE2][VehicleZ]);
   SetVehicleZAngle(GetPlayerVehicleID(playerid),gRandomSpawnsForRace2[randRACE2][VehicleAngle]);
   LinkVehicleToInterior(GetPlayerVehicleID(playerid),14);
   GameTextForPlayer(playerid,"Blood Ring DD",6000,2);
   }
   else if(races == DirtRace) {
   confirm3[playerid] = 1;
   SetVehiclePos(GetPlayerVehicleID(playerid),gRandomSpawnsForRace3[randRACE3][VehicleX],gRandomSpawnsForRace1[randRACE3][VehicleY],gRandomSpawnsForRace1[randRACE3][VehicleZ]);
   SetVehicleZAngle(GetPlayerVehicleID(playerid),gRandomSpawnsForRace3[randRACE3][VehicleAngle]);
   LinkVehicleToInterior(GetPlayerVehicleID(playerid),4);
   GameTextForPlayer(playerid,"Dirt Ring",6000,2);
   }
   SetCameraBehindPlayer(playerid);
   format(string, 256, "%s joined the race (%d) (Before continuum)", name, races);
   SendClientMessageToAll(COLOR_ORANGE,string);
   SetPlayerColor(playerid,COLOR_ORANGE);
   TogglePlayerControllable(playerid,0);
   SendClientMessage(playerid,COLOR_RED,"Attend that finish the confirm timer...");
   if(confirm == 1) {
   SetTimer("ConfirmTimer",60000,0);
   gTimerConfirm=SetTimer("ConfirmTimerStatus",pidadmin*60000,1);
   }
   } else {
   GameTextForPlayer(playerid,"~w~Take a ~y~vehicle ~w~and ~r~turn back!",5000,3);
   }
   }
return 1;
}

if(strcmp(cmd, "/restart", true)==0) {
if(IsPlayerAdmin(playerid) == 1) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname, sizeof(pname));
 if(restart == 1) {
 restart = 0;
 format(string, sizeof(string), "The Admin %s have disabled the restart mode.", pname);
 SendClientMessageToAll(0xFF8A00AA,string);
} else {
restart = 1;
format(string, sizeof(string), "The Admin %s have enabled the restart mode.", pname);
SendClientMessageToAll(0xFF8A00AA,string);
}
} else {
SendClientMessage(playerid,COLOR_RED,"You are not admin!!!");
}
return 1;
}

if(strcmp(cmd, "/shop", true)==0)
{
 if(shop == 1) {
inarmory[playerid] ++;
new pname[MAX_PLAYER_NAME];
  GetPlayerName(playerid,pname, sizeof(pname));
  format(string, sizeof(string), "- Welcome to your Personal Armory, %s; -", pname);
  SendClientMessage(playerid, 0xFF8A00AA, string);
  SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy:");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "/mac10[1000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "/tec9 [1200$]");
  SendClientMessage(playerid, 0xFF8A00AA, "/MP5 [2000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
} else {
SendClientMessage(playerid,0xFF8A00AA,"This command has been disabled.");
}
return 1;
}

if (strcmp(cmd, "/mac10", true)==0) {
 if (inarmory[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 1000){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Mac-10 for 1200$. -");
  GivePlayerWeapon(playerid, 28, 999999);
  GivePlayerMoney(playerid, -1000);
  inarmory[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Win more races and come back!");
}
return 1;
}
}

if(strcmp(cmd,"/tec9", true)==0) {
 if (inarmory[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 1200){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Tec9 Mitra for 1200$. -");
  GivePlayerWeapon(playerid, 32, 999999);
  GivePlayerMoney(playerid, -1200);
  inarmory[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Win more races and come back!");
}
return 1;
}
}

if(strcmp(cmd,"/MP5", true)==0) {
 if (inarmory[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 2000){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a MP5 for 1200$. -");
  GivePlayerWeapon(playerid, 29, 999999);
  GivePlayerMoney(playerid, -2000);
  inarmory[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Win more races and come back!");
}
return 1;
}
}

if(strcmp(cmd,"/hud",true)==0) {
new tmp[256];
new pid;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
SendClientMessage(playerid,COLOR_RED,"Usage: /hud [hudid]");
ResetForAdvise(playerid);
return 1;
}
pid = strval(tmp);

switch(pid) {
case 1: {
confirmhud[playerid] = 1;
}
case 2: {
confirmhud[playerid] = 2;
}
case 3: {
confirmhud[playerid] = 3;
}
case 4: {
confirmhud[playerid] = 4;
}
}
if(pid < 1 || pid > 4) {
SendClientMessage(playerid,COLOR_RED,"Invalid HUD ID!");
ResetForAdvise(playerid);
} else {
format(string,sizeof(string),"You have choiced the %d' hud",pid);
SendClientMessage(playerid,0xFF8A00AA,string);
}
return 1;
}

if(strcmp(cmd,"/racetime", true)==0) {
if(IsPlayerAdmin(playerid)==1) {
	new name[MAX_PLAYER_NAME];
	new tmp[256];
	GetPlayerName(playerid,name,sizeof(name));
	tmp = strtok(cmdtext,idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid,0xFF8A00AA,"You have setted the default RT.");
    return 1;
    }
    pidadmin = strval(tmp);
    format(string,sizeof(string),"The Admin %d have setted the RT to %d minutes.",name,pidadmin);
    SendClientMessageToAll(NICE_BLUE,string);
    } else {
    SendClientMessage(playerid,COLOR_RED,"You are not admin!!!");
	}
	return 1;
	}

if(strcmp(cmd,"/racetype", true)==0) {
 if(IsPlayerAdmin(playerid)) {
 new name[MAX_PLAYER_NAME];
 new tmp[256];
 new stringforadvise[256];
 new pid;
 tmp = strtok(cmdtext,idx);
 GetPlayerName(playerid,name,sizeof(name));
 if(!strlen(tmp)) {
 format(string,sizeof(string),"The Admin %s have restarted this race/stadium continuum (%d)",name,races);
 SendClientMessageToAll(0xFF8A00AA,string);
 ResetVariables();
return 1;
}
pid = strval(tmp);
switch(pid) {
case 1: {
races = HotRace;
}
case 2: {
races = BloodRing;
}
case 3: {
races = DirtRace;
}
}
if(pid < 1 || pid > 3) {
SendClientMessage(playerid,COLOR_RED,"Invalid race ID!");
ResetAdvise(playerid);
} else {
ResetVariables();
format(stringforadvise,sizeof(stringforadvise),"The Admin %s have loaded the follow race: (%d)",name,races);
SendClientMessageToAll(0xFF8A00AA,stringforadvise);
}
} else {
SendClientMessage(playerid,COLOR_RED,"You are not admin!!!");
}
return 1;
}
 

if(strcmp(cmd,"/shoplock", true)==0) {
 if(IsPlayerAdmin(playerid)) {
 if(races == BloodRing) {
 new pname[MAX_PLAYER_NAME];
 new playername[MAX_PLAYER_NAME];
 new tmp[256];
 new pid;
 GetPlayerName(playerid,pname, sizeof(pname));
 tmp = strtok(cmdtext,idx);
 if(!strlen(tmp)) {
 if(shop == 1) {
 shop = 0;
 format(string, sizeof(string), "The Admin %s have disabled the /shop command.", pname);
 SendClientMessageToAll(0xFF8A00AA,string);
} else {
shop = 1;
format(string, sizeof(string), "The Admin %s have enabled the /shop command.", pname);
SendClientMessageToAll(0xFF8A00AA,string);
}
return 1;
}
pid = strval(tmp);
GetPlayerName(pid,playername, sizeof(playername));
inarmory[pid] = -999;
if(pid != INVALID_PLAYER_ID) {
format(string, sizeof(string), "The Admin %s have disabled the /shop command to %s.", pname, playername);
SendClientMessageToAll(0xFF8A00AA,string);
} else {
SendClientMessage(playerid,COLOR_RED,"Invalid player ID. Press TAB for see all valid playerID");
}
} else {
SendClientMessage(playerid,COLOR_RED,"The current race isnt BloodRing");
}
} else {
SendClientMessage(playerid,COLOR_RED,"You are not admin!!!");
}
return 1;
}
 
if(strcmp(cmd,"/continuum",true)==0) {
 if(IsPlayerAdmin(playerid)) {
 new name[MAX_PLAYER_NAME];
 GetPlayerName(playerid,name,sizeof(name));
 format(string,sizeof(string),"The Admin %s have enabled the continuum variable.");
 SendClientMessageToAll(0xFF8A00AA,string);
 restart = 2;
 } else {
 SendClientMessage(playerid,COLOR_RED,"You are not admin!!!");
 }
return 1;
}

if(strcmp(cmd,"/exit",true)==0) {
new name[MAX_PLAYER_NAME];
ResetVariablesForPlayer(playerid);
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"%s left the race",name);
SendClientMessageToAll(COLOR_GREY,string);
return 1;
}
 
 if(strcmp(cmd,"/win",true)==0) {
 if(playersindd == 0) {
 new sentence2[256];
 new Float:fMinutes;
 new Minutes;
 new Seconds;
 new name[MAX_PLAYER_NAME];
 fMinutes = gTime1/60;
 Minutes = floatround(fMinutes, floatround_floor);
 Seconds = gTime1-(Minutes*60);
 GetPlayerName(playerid, name, 256);
 KillTimer(gTimer2);
 GetPlayerName(playerid,name,sizeof(name));
 format(string,sizeof(string),"~r~%s ~w~win the ~y~DD!!!",name);
 GameTextForAll(string,5000,6);
 format(sentence2,256,"DDNEWS: %s win the DD. TIME: %d min(s) %d sec(s).", name, Minutes, Seconds);
 SendClientMessageToAll(COLOR_GREEN,sentence2);
 SendClientMessage(playerid,COLOR_YELLOW,"You have win the DD! You have received 10000$!!!");
 GivePlayerMoney(playerid,10000);
 SetPlayerScore(playerid,GetPlayerScore(playerid)+10);
 SetTimer("AfterDD",10000,0);
 gTimeConfirm = 0;
 KillTimer(gTimerConfirm);
 KillTimer(timercheckpoint);
 for (new i=0; i<MAX_PLAYERS; i++) {
 TogglePlayerControllable(i,0);
 }
} else {
confirmdd[playerid]++;
if(confirmdd[playerid] == 1) {
SendClientMessage(playerid,COLOR_DARKRED,"Stop to try bugusing... n00b");
} else if(confirmdd[playerid] == 3) {
format(string,sizeof(string),"%s kicked for tried bugusing");
SendClientMessageToAll(0xC10000AA,string);
Kick(playerid);
}
}
}
return 1;
}
//-------------------------------------------------------------------------
stock ResetForAdvise(playerid) {
SendClientMessage(playerid,0xFF8A00AA,"You can choice:");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "- Default Hud (1)");
  SendClientMessage(playerid, 0xFF8A00AA, "- Progress Hud (2)");
  SendClientMessage(playerid, 0xFF8A00AA, "- Stars Hud (3 | 4)");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
}
//-------------------------------------------------------------------------
public ConfirmTimerStatus() {
gTimeConfirm++;
}
//-------------------------------------------------------------------------
stock ResetAdvise(playerid) {
SendClientMessage(playerid,COLOR_RED,"Invalid race ID!!!");
  SendClientMessage(playerid, 0xFF8A00AA, "You can choice:");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "- HotRace (1)");
  SendClientMessage(playerid, 0xFF8A00AA, "- BloodRing (2)");
  SendClientMessage(playerid, 0xFF8A00AA, "- DirtRace (3)");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
}
//-------------------------------------------------------------------------
stock ResetVariablesForPlayer(playerid) {
SpawnPlayer(playerid);
checkrace1[playerid] = 0;
checkrace3[playerid] = 0;
confirm1[playerid] = 0;
confirm2[playerid] = 0;
confirm3[playerid] = 0;
playerdeath[playerid] = 0;
KillTimer(gRoundTimerHud);
}
//-------------------------------------------------------------------------
stock ResetVariables() {
for (new i=0; i<MAX_PLAYERS; i++) {
 SpawnPlayer(i);
 checkrace1[i] = 0;
 checkrace3[i] = 0;
 confirm1[i] = 0;
 confirm2[i] = 0;
 confirm3[i] = 0;
 playerdeath[i] = 0;
 confirmdd[i] = 0;
 confirmrace[i] = 0;
 confirmtext[i] = 0;
 KillTimer(gRoundTimerHud);
 }
KillTimer(timercheckpoint);
KillTimer(gTimerConfirm);
KillTimer(gTimer1);
KillTimer(gTimer2);
KillTimer(gTimer3);
}
//-------------------------------------------------------------------------
public AfterDD() {
races = DirtRace;
for (new i=0; i<MAX_PLAYERS; i++) {
SpawnPlayer(i);
confirm2[i] = 0;
}
return 1;
}
//-------------------------------------------------------------------------
stock CheckPlayerScore(){
   new score;
   new numberscorers;

   for (new playerid = 0; playerid<MAX_PLAYERS; playerid++){
      if(IsPlayerConnected(playerid)){
         score=GetPlayerScore(playerid);
         if(score > HighestScore){
            for (new i=0; i<MAX_PLAYERS; i++){
               HighestScorers[i] = 0;
            }
            HighestScorers[0]=playerid;
            HighestScore=score;
            numberscorers=1;
            score=0;
         } else {
            if(score == HighestScore && HighestScore > 0){
               HighestScorers[numberscorers]=playerid;
               numberscorers++;
            }
            score=0;
         }
      }
   }
   return numberscorers;
}
//-------------------------------------------------------------------------
//In the routine where you make the call for the highest score:
public Podius(){
new numberscorers=CheckPlayerScore();  //not sure if the () should be attached
new giveplayername[MAX_PLAYER_NAME];
new string[256];
for (new i=0; i<MAX_PLAYERS; i++) {
    if (IsPlayerConnected(i)) {
	     TogglePlayerControllable(i,0);
	   }
	 }
if(restart == 0) {
SetTimer("GameModeExitFunc",5000,0);
}
else if(restart == 1) {
SetTimer("GameModeExitFuncRestart",5000,0);
}
if(numberscorers > 0){
   for (new i=0; i<numberscorers; i++){
      GetPlayerName(HighestScorers[i], giveplayername, sizeof(giveplayername));
      format(string, sizeof(string), "~r~%s ~n~~w~is ~y~the SUNDAY DRIVER!!!", giveplayername);
      GameTextForAll(string,5000,6);
   }
}
}
//-------------------------------------------------------------------------
public GameModeExitFunc() {
SendClientMessageToAll(COLOR_ORANGE,"Thanks for have played at Sunday Drivers GM 0.1");
GameModeExit();
return 1;
}
//-------------------------------------------------------------------------
public GameModeExitFuncRestart() {
SendClientMessageToAll(COLOR_ORANGE,"Thanks for have played at Sunday Drivers GM 0.1");
SendClientMessageToAll(COLOR_ORANGE,"Restart Mode = ON");
return GameModeExit();
}
//-------------------------------------------------------------------------
/*stock CheckAgainstHighScore(playerid, time) {

	new recordtimestr[20], recordtime;
	//new racer[256];
	new recordmessage[256];

	new tmp1[255];
	format(tmp1,sizeof(tmp1),"turkiye/%s.txt", gTrackName);

	if(fexist(tmp1)) {
	  new File: file = fopen(tmp1, io_read);

		new line[256];
		new track[256];
		new idx;

		fread(file, line, sizeof (line));
		track = strtok(line, idx);
		recordtimestr = strtok(line, idx);
		fclose (file);

		//eg line = "MSR 300 switch";
		//racer = strtok(line, idx);
		if (strlen(recordtimestr) != 0) {
		recordtime = strval(recordtimestr);

	} else {
		recordtime = 3000;
	}

	if (time < recordtime) {
		//new record
		new File: file2 = fopen(tmp1, io_write);

		new playername2[MAX_PLAYER_NAME];
		GetPlayerName(playerid, playername2, MAX_PLAYER_NAME);

		format(recordmessage, sizeof(recordmessage),"%s %d %s\n %s\n" , gTrackName, time, playername2, line);
		//format(recordmessage, sizeof(recordmessage),"Hello\n");
		fwrite(file2,recordmessage);
		//fwrite(file2,recordmessage);
		fclose(file2);

		new newrecordmessage[256];
		format(newrecordmessage, sizeof(newrecordmessage),"Abbiamo un nuovo Record su %s Da parte di %s\n" , gTrackName, playername2);
		SendClientMessageToAll(COLOR_BLUE, newrecordmessage);
		PlaySoundForPlayer(playerid, 1185);
	}



	} else {
	  	SendClientMessageToAll(COLOR_GREY, tmp1);
}



//new tmp[255];
//format(tmp,sizeof(tmp),"info1: %s info2: %s info3: %s \n", info, info2, info3);
//SendClientMessage(playerid, COLOR_YELLOW, tmp);

}


stock StoreHighScore()
{

	new recordtimestr[20], recordtime;
	new racer[256];


	new tmp1[255];
	format(tmp1,sizeof(tmp1),"turkiye/%s.txt", gTrackName);

	if(fexist(tmp1)) {
	  new File: file = fopen(tmp1, io_read);

	new line[256];
	new track[256];
	new idx;

	fread(file, line, sizeof (line));
	track = strtok(line, idx);
	recordtimestr = strtok(line, idx);
	racer = strtok(line, idx);
	fclose (file);
	recordtime = strval(recordtimestr);


	new Float:fMinutes;
	new Minutes;
	new Seconds;



	if (recordtime != 0) {
	    fMinutes = recordtime/60;
	    Minutes = floatround(fMinutes, floatround_floor);
	    Seconds = recordtime-(Minutes*60);


		format(gBestTime,sizeof(gBestTime),"<> %s e' stata caricata.Record: %dmin(s) %dsec(s) Di: %s <>\n", gTrackName, Minutes, Seconds, racer);
		} else {
		format(gBestTime,sizeof(gBestTime),"Non ci sono punteggi!", gTrackName);
		}
} else {
  format(gBestTime,sizeof(gBestTime),"Il salvataggio tempi non e' abilitato", gTrackName);
}

}*/