toribio

toribio

Nov 11th, 2008
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 98.83 KB | None | 0 0
  1. /*
  2.  * Brazilian Championship Tournament gamemode
  3.  * Gamemode para treinamento dos competidores e fiscais do torneio.
  4.  * Feito por Fl�vio Toribio - [email protected]
  5.  * Torneio feito por [SDK]Ricardo e [SDK]MasSaKre.
  6.  * Agradecimentos � todas as pessoas inscritas no torneio e aos nossos colaboradores.
  7.  * Apoio: Servidor Brasil & DataJogos - Aluguel de Servidores
  8.  * Ajuda: [BpM]Tinorks & Fl�vio Toribio
  9.  * Contato com os organizadores: [email protected] & [email protected]
  10.  * Comunidade no orkut: http://www.orkut.com.br/Main#Community.aspx?cmm=69509613
  11. */
  12.  
  13. #include <a_samp>
  14. #include <dini>
  15.  
  16. forward SetPlayerPosWithObjects(playerid, Float:x, Float:y, Float:z);
  17. forward TempoComandoPlayer(playerid);
  18. forward VehRes(vehicleid);
  19. forward AtualizarTempo();
  20. forward IniciarEvento();
  21. forward CountDown();
  22. forward Timer();
  23.  
  24. enum object_info
  25. {
  26.     modelid,
  27.     Float:ox,
  28.     Float:oy,
  29.     Float:oz,
  30.     Float:orx,
  31.     Float:ory,
  32.     Float:orz,
  33.     Float:viewdist
  34. }
  35.  
  36. new Objects[][object_info] =
  37. {
  38.     {3453, 2395.2, 2448.3223, 70.8, 0.0, 0.0, 270.0, 500.0}, //come�o dm1
  39.     {3452, 2389.0, 2477.6531, 70.8, 0.0, 0.0, 270.0, 500.0},
  40.     {3452, 2425.5, 2442.8311, 70.8, 0.0, 0.0, 0.000, 500.0},
  41.     {3475, 2401.0, 2488.5457, 70.8, 0.0, 0.0, 326.0, 500.0},
  42.     {3475, 2399.6, 2483.2185, 70.8, 0.0, 0.0, 0.000, 500.0},
  43.     {3475, 2399.6, 2477.2395, 70.8, 0.0, 0.0, 0.000, 500.0},
  44.     {3475, 2399.6, 2471.2527, 70.8, 0.0, 0.0, 0.000, 500.0},
  45.     {3475, 2399.6, 2465.2629, 70.8, 0.0, 0.0, 0.000, 500.0},
  46.     {3475, 2399.6, 2459.2747, 70.8, 0.0, 0.0, 0.000, 500.0},
  47.     {3475, 2401.8, 2454.4028, 70.8, 0.0, 0.0, 45.00, 500.0},
  48.     {3475, 2406.5, 2452.4651, 70.8, 0.0, 0.0, 90.00, 500.0},
  49.     {3475, 2412.5, 2452.4536, 70.8, 0.0, 0.0, 90.00, 500.0},
  50.     {3475, 2418.5, 2452.4478, 70.8, 0.0, 0.0, 90.00, 500.0},
  51.     {3475, 2424.5, 2452.4529, 70.8, 0.0, 0.0, 90.00, 500.0},
  52.     {3475, 2430.5, 2452.4429, 70.8, 0.0, 0.0, 90.00, 500.0},
  53.     {3475, 2435.8, 2453.8933, 70.8, 0.0, 0.0, 121.0, 500.0},
  54.     {3475, 2438.0, 2458.1616, 70.8, 0.0, 0.0, 180.0, 500.0},
  55.     {3475, 2438.0, 2464.1411, 70.8, 0.0, 0.0, 180.0, 500.0},
  56.     {3475, 2438.0, 2470.1184, 70.8, 0.0, 0.0, 180.0, 500.0},
  57.     {3475, 2438.0, 2476.1016, 70.8, 0.0, 0.0, 180.0, 500.0},
  58.     {3475, 2438.0, 2482.0776, 70.8, 0.0, 0.0, 180.0, 500.0},
  59.     {3475, 2405.5, 2490.9805, 70.8, 0.0, 0.0, 270.0, 500.0},
  60.     {3475, 2411.5, 2490.9629, 70.8, 0.0, 0.0, 270.0, 500.0},
  61.     {3475, 2417.5, 2490.9561, 70.8, 0.0, 0.0, 270.0, 500.0},
  62.     {3475, 2423.5, 2490.9473, 70.8, 0.0, 0.0, 270.0, 500.0},
  63.     {3475, 2429.5, 2490.9182, 70.8, 0.0, 0.0, 270.0, 500.0},
  64.     {3475, 2435.5, 2490.8916, 70.8, 0.0, 0.0, 270.0, 500.0},
  65.     {3475, 2438.0, 2488.0542, 70.8, 0.0, 0.0, 180.0, 500.0},
  66.     {986,  2383.8, 2492.4670, 70.8, 0.0, 0.0, 180.0, 500.0},
  67.     {986,  2391.8, 2492.4612, 70.8, 0.0, 0.0, 180.0, 500.0},
  68.     {986,  2399.8, 2491.9365, 70.8, 0.0, 0.0, 172.0, 500.0},
  69.     {986,  2440.3, 2437.7593, 70.8, 0.0, 0.0, 90.00, 500.0},
  70.     {986,  2440.3, 2445.7815, 70.8, 0.0, 0.0, 90.00, 500.0},
  71.     {986,  2439.5, 2453.6528, 70.8, 0.0, 0.0, 103.0, 500.0},
  72.     {3627, 2389.5, 2471.7329, 70.8, 0.0, 0.0, 0.000, 500.0},
  73.     {3627, 2418.5, 2443.5371, 70.8, 0.0, 0.0, 90.00, 500.0},
  74.     {3460, 2407.5, 2492.7034, 70.8, 0.0, 0.0, 191.0, 500.0},
  75.     {3460, 2423.6, 2492.4292, 70.8, 0.0, 0.0, 180.0, 500.0},
  76.     {3460, 2438.8, 2491.3479, 70.8, 0.0, 0.0, 135.0, 500.0},
  77.     {3460, 2439.8, 2476.4297, 70.8, 0.0, 0.0, 90.00, 500.0},
  78.     {3460, 2439.8, 2461.3274, 70.8, 0.0, 0.0, 90.00, 500.0} //fim dm1
  79. };
  80.  
  81. new Float:largada_race1[10][3] =
  82. {
  83.     {2094.0, 850.0, 6.4},
  84.     {2094.0, 854.0, 6.4},
  85.     {2088.0, 854.0, 6.4},
  86.     {2088.0, 850.0, 6.4},
  87.     {2082.0, 854.0, 6.4},
  88.     {2082.0, 850.0, 6.4},
  89.     {2091.0, 857.0, 6.4},
  90.     {2091.0, 847.0, 6.4},
  91.     {2084.0, 857.0, 6.4},
  92.     {2084.0, 847.0, 6.4}
  93. };
  94.  
  95. new Float:cps_race1[32][4] =
  96. {
  97.     {2181.0, 872.00, 6.00, 0.0}, // checkpoint 1
  98.     {2287.0, 933.00, 10.0, 0.0},
  99.     {2296.0, 972.00, 10.0, 0.0},
  100.     {2346.0, 982.00, 10.0, 0.0},
  101.     {2356.0, 1191.0, 10.0, 0.0},
  102.     {2427.0, 1207.0, 10.0, 0.0},
  103.     {2427.0, 1416.0, 10.0, 0.0},
  104.     {2442.0, 1613.0, 10.0, 0.0},
  105.     {2547.0, 1624.0, 10.0, 0.0},
  106.     {2537.0, 1713.0, 10.0, 0.0},
  107.     {2508.0, 1727.0, 10.0, 0.0},
  108.     {2507.0, 1904.0, 10.0, 0.0},
  109.     {2495.0, 2053.0, 10.0, 0.0},
  110.     {2354.0, 2064.0, 10.0, 0.0},
  111.     {2324.0, 2149.0, 10.0, 0.0},
  112.     {2146.0, 2137.0, 10.0, 0.0},
  113.     {2092.0, 2113.0, 10.0, 0.0},
  114.     {1927.0, 2100.0, 10.0, 0.0},
  115.     {1910.0, 2042.0, 10.0, 0.0},
  116.     {1707.0, 2043.0, 10.0, 0.0},
  117.     {1693.0, 2013.0, 10.0, 0.0},
  118.     {1568.0, 2001.0, 10.0, 0.0},
  119.     {1551.0, 1974.0, 10.0, 0.0},
  120.     {1487.0, 1961.0, 10.0, 0.0},
  121.     {1502.0, 1874.0, 10.0, 0.0},
  122.     {1567.0, 1856.0, 10.0, 0.0},
  123.     {1589.0, 1713.0, 10.0, 0.0},
  124.     {1834.0, 1713.0, 12.0, 0.0},
  125.     {2046.0, 1703.0, 10.0, 0.0},
  126.     {2049.0, 1300.0, 10.0, 0.0},
  127.     {2053.0, 855.00, 6.00, 0.0},
  128.     {2099.0, 852.00, 6.00, 0.0}  // checkpoint 32
  129. };
  130.  
  131. new Float:largada_race2[10][3] =
  132. {
  133.     {1787.0, 854.0, 10.3},
  134.     {1787.0, 850.0, 10.3},
  135.     {1795.0, 854.0, 10.3},
  136.     {1795.0, 850.0, 10.3},
  137.     {1802.0, 854.0, 10.3},
  138.     {1802.0, 850.0, 10.3},
  139.     {1791.0, 846.0, 10.3},
  140.     {1791.0, 858.0, 10.3},
  141.     {1798.0, 846.0, 10.3},
  142.     {1798.0, 858.0, 10.3}
  143. };
  144.  
  145. new Float:cps_race2[34][4] =
  146. {
  147.     {1388.0, 854.00, 6.00, 0.0}, // checkpoint 1
  148.     {1226.0, 1277.0, 6.00, 0.0},
  149.     {1226.0, 1721.0, 6.00, 0.0},
  150.     {1256.0, 2210.0, 7.00, 0.0},
  151.     {1113.0, 2490.0, 10.0, 0.0},
  152.     {772.00, 2655.0, 16.0, 0.0},
  153.     {403.00, 2701.0, 60.0, 0.0},
  154.     {72.000, 2673.0, 53.0, 0.0},
  155.     {-257.0, 2654.0, 62.0, 0.0},
  156.     {-278.0, 2701.0, 62.0, 0.0},
  157.     {-379.0, 2692.0, 63.0, 0.0},
  158.     {-779.0, 2717.0, 45.0, 0.0},
  159.     {-700.0, 2686.0, 56.0, 0.0},
  160.     {-734.0, 2623.0, 66.0, 0.0},
  161.     {-427.0, 2452.0, 45.0, 0.0},
  162.     {-279.0, 2518.0, 33.0, 0.0},
  163.     {-110.0, 2455.0, 14.0, 0.0},
  164.     {78.000, 2303.0, 20.0, 0.0},
  165.     {358.00, 2325.0, 24.0, 0.0},
  166.     {502.00, 2361.0, 29.0, 0.0},
  167.     {576.00, 2228.0, 35.0, 0.0},
  168.     {607.00, 1896.0, 21.0, 0.0},
  169.     {561.00, 1765.0, 11.0, 0.0},
  170.     {521.00, 1674.0, 11.0, 0.0},
  171.     {242.00, 1205.0, 15.0, 0.0},
  172.     {185.00, 1124.0, 14.0, 0.0},
  173.     {232.00, 958.00, 27.0, 0.0},
  174.     {293.00, 845.00, 17.0, 0.0},
  175.     {386.00, 774.00, 5.00, 0.0},
  176.     {726.00, 676.00, 10.0, 0.0},
  177.     {985.00, 763.00, 10.0, 0.0},
  178.     {1194.0, 902.00, 11.0, 0.0},
  179.     {1505.0, 851.00, 6.00, 0.0},
  180.     {1798.0, 852.00, 10.0, 0.0}  // checkpoint 34
  181. };
  182.  
  183. new Float:largada_race3[10][3] =
  184. {
  185.     {1612.0, -1668.0, 28.0},
  186.     {1608.0, -1668.0, 28.0},
  187.     {1612.0, -1675.0, 28.0},
  188.     {1608.0, -1675.0, 28.0},
  189.     {1612.0, -1682.0, 28.0},
  190.     {1608.0, -1682.0, 28.0},
  191.     {1605.0, -1671.0, 28.0},
  192.     {1616.0, -1671.0, 28.0},
  193.     {1605.0, -1679.0, 28.0},
  194.     {1616.0, -1679.0, 28.0}
  195. };
  196.  
  197. new Float:cps_race3[29][4] =
  198. {
  199.     {1631.0, -1599.0, 28.0, 0.0}, //checkpoint 1
  200.     {1790.0, -1518.0, 8.00, 0.0},
  201.     {2248.0, -1591.0, 2.00, 0.0},
  202.     {2597.0, -1618.0, 19.0, 0.0},
  203.     {2723.0, -1639.0, 12.0, 0.0},
  204.     {2754.0, -1657.0, 12.0, 0.0},
  205.     {2851.0, -1678.0, 10.0, 0.0},
  206.     {2823.0, -1907.0, 10.0, 0.0},
  207.     {2821.0, -2066.0, 10.0, 0.0},
  208.     {2714.0, -2141.0, 10.0, 0.0},
  209.     {2698.0, -2050.0, 12.0, 0.0},
  210.     {2455.0, -2049.0, 23.0, 0.0},
  211.     {2251.0, -2113.0, 13.0, 0.0},
  212.     {2127.0, -2238.0, 13.0, 0.0},
  213.     {2180.0, -2381.0, 13.0, 0.0},
  214.     {1983.0, -2671.0, 8.00, 0.0},
  215.     {1464.0, -2670.0, 12.0, 0.0},
  216.     {1346.0, -2485.0, 13.0, 0.0},
  217.     {1359.0, -2298.0, 13.0, 0.0},
  218.     {1395.0, -2286.0, 13.0, 0.0},
  219.     {1429.0, -2269.0, 13.0, 0.0},
  220.     {1489.0, -2241.0, 13.0, 0.0},
  221.     {1520.0, -2301.0, 13.0, 0.0},
  222.     {1460.0, -2332.0, 13.0, 0.0},
  223.     {1406.0, -2286.0, 13.0, 0.0},
  224.     {1347.0, -2254.0, 13.0, 0.0},
  225.     {1486.0, -2132.0, 13.0, 0.0},
  226.     {1625.0, -1794.0, 26.0, 0.0},
  227.     {1610.0, -1670.0, 28.0, 0.0}  // checkpoint 29
  228. };
  229.  
  230. enum
  231. {
  232.     dm1,
  233.     race1,
  234.     race2,
  235.     race3
  236. }
  237.  
  238. enum player_info
  239. {
  240.     objid[sizeof(Objects)],
  241.     bool:view[sizeof(Objects)]
  242. }
  243.  
  244. new playersevento[MAX_PLAYERS] = {-1, ...};
  245. new bool:podeiniciar[MAX_PLAYERS] = true;
  246. new Float:playerhealth[MAX_PLAYERS][2];
  247. new Float:playerpos[MAX_PLAYERS][0x4];
  248. new Player[MAX_PLAYERS][player_info];
  249. new vehicleplayer[MAX_VEHICLES] = -1;
  250. new Float:gpos[MAX_PLAYERS][100][4];
  251. new playerweapon[MAX_PLAYERS][0xC];
  252. new playerammo[MAX_PLAYERS][0xC];
  253. new playerinevento[MAX_PLAYERS];
  254. new Text:tdposicao[MAX_PLAYERS];
  255. new Text:tdappend[MAX_PLAYERS];
  256. new playervehicle[MAX_PLAYERS];
  257. new playertimer[MAX_PLAYERS];
  258. new bool:mutado[MAX_PLAYERS];
  259. new requisitou[MAX_PLAYERS];
  260. new progresso[MAX_PLAYERS];
  261. new posicao[MAX_PLAYERS];
  262. new cpatual[MAX_PLAYERS];
  263. new logado[MAX_PLAYERS];
  264. new bool:eventoiniciado;
  265. new bool:eventorodando;
  266. new admin[MAX_PLAYERS];
  267. new falou[MAX_PLAYERS];
  268. new eventocount = 0xA;
  269. new corridastarttempo;
  270. new eventomaxplayers;
  271. new eventoatual = -1;
  272. new queminiciou = -1;
  273. new Text:tdpilotos;
  274. new eventoplayers;
  275. new Text:tdtempo;
  276. new eventotimer;
  277. new recompensa;
  278. new timetimer;
  279. new segundos;
  280. new minutos;
  281. new lugares;
  282. new gindex;
  283. new timer;
  284.  
  285. bool:IsInReach(Float:x, Float:y, Float:z, Float:x2, Float:y2, Float:z2, Float:dist)
  286. {
  287.     x = (x > x2) ? x - x2 : x2 - x;
  288.     if(x > dist) return false;
  289.     y = (y > y2) ? y - y2 : y2 - y;
  290.     if(y > dist) return false;
  291.     z = (z > z2) ? z - z2 : z2 - z;
  292.     if(z > dist) return false;
  293.     return true;
  294. }
  295.  
  296. main()
  297. {
  298.     printf("------------------------------------------");
  299.     printf(" Brazilian Championship Training Gamemode");
  300.     printf("------------------------------------------");
  301. }
  302.  
  303. public OnGameModeInit()
  304. {
  305.     new skins[5] = {122, 124, 140, 255, 19};
  306.     for(new i; i < sizeof skins; i++)
  307.         AddPlayerClass(skins[i], 2030.0, 1008.0, 10.8, 270.0, 26, 207, 30, 1100, 32, 1030);
  308.     SetGameModeText("Brazilian Championship");
  309.     timer = SetTimer("Timer", 500, 1);
  310.     UsePlayerPedAnims();
  311.     SetWorldTime(0xC);
  312.     SetWeather(1);
  313.  
  314.     tdtempo = TextDrawCreate(563.0, 376.0, "0:00"); //obrigado pelas coordenadas no Adrenaline ^^
  315.     TextDrawLetterSize(tdtempo, 0.6, 3);
  316.     tdpilotos = TextDrawCreate(590.0, 355.0, "/0");
  317.     TextDrawLetterSize(tdpilotos, 0.5, 2.5);
  318.     return 1;
  319. }
  320.  
  321. public OnGameModeExit()
  322. {
  323.     for(new i = 0; i < MAX_PLAYERS; i++)
  324.     {
  325.         for(new o = 0; o < sizeof(Objects); o++)
  326.         {
  327.             if(Player[i][view][o])
  328.             {
  329.                 Player[i][view][o] = false;
  330.                 DestroyPlayerObject(i, Player[i][objid][o]);
  331.             }
  332.         }
  333.     }
  334.     KillTimer(timer);
  335.     return 1;
  336. }
  337.  
  338. public OnPlayerConnect(playerid)
  339. {
  340.     SendClientMessage(playerid, 0xFFF000AA, "Bem vindo ao server de Treinamento do Brazilian Championship \
  341.     Tournament");
  342.     SendClientMessage(playerid, 0xFFF000AA, "Escreva /ajuda para comandos e mais informa��es.");
  343.     new pname[0x100];
  344.     GetPlayerName(playerid, pname, sizeof pname);
  345.     format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  346.     if(!dini_Exists(pname))
  347.         SendClientMessage(playerid, 0xF0F0F0AA, "Voc� n�o est� registrado, escreva \"/registrar\" para mais \
  348.         informa��es.");
  349.     else if(!logado[playerid] && dini_Exists(pname))
  350.         SendClientMessage(playerid, 0xF0F0F0AA, "Voc� j� est� registrado, use \"/logar [senha]\" para \
  351.         jogar.");
  352.     for(new i = 0; i < sizeof(Objects); i++) Player[playerid][view][i] = false;
  353.     mutado[playerid] = false;
  354.     logado[playerid] = 0;
  355.     admin[playerid] = 0;
  356.     falou[playerid] = 0;
  357.     requisitou[playerid] = 0;
  358.     for(new i; i < sizeof gpos; i++)
  359.     {
  360.         gpos[playerid][i][0] = 0.0;
  361.         gpos[playerid][i][1] = 0.0;
  362.         gpos[playerid][i][2] = 0.0;
  363.         gpos[playerid][i][3] = 0.0;
  364.     }
  365.     return 1;
  366. }
  367.  
  368. public OnPlayerRequestClass(playerid, classid)
  369. {
  370.     SetPlayerInterior(playerid, 0);
  371.     SetPlayerPos(playerid, -2690.67, 2048.35, 56.73);
  372.     SetPlayerFacingAngle(playerid, 0.0);
  373.     SetPlayerCameraPos(playerid, -2693.00, 2052.62, 55.73);
  374.     SetPlayerCameraLookAt(playerid, -2690.67, 2048.35, 56.73);
  375.     return 1;
  376. }
  377.  
  378. public OnPlayerText(playerid, text[])
  379. {
  380.     if(mutado[playerid])
  381.     {
  382.         falou[playerid] %= 5;
  383.         falou[playerid]++;
  384.         if(falou[playerid] < 2)
  385.             SendClientMessage(playerid, 0xFAFAFAAA, "Voc� est� mutado!");
  386.         return 0;
  387.     }
  388.     if(text[0] == ';')
  389.     {
  390.         if(admin[playerid] > 0)
  391.         {
  392.             new pname[0x100];
  393.             GetPlayerName(playerid, pname, sizeof pname);
  394.             strmid(text, text, 1, 0x100, 0x100);
  395.             format(text, 0x100, "[adimin] %s: %s", pname, text);
  396.             for(new i; i < MAX_PLAYERS; i++)
  397.                 if(IsPlayerConnected(i))
  398.                     if(admin[i] > 0)
  399.                         SendClientMessage(i, 0xF0F0F0AA, text);
  400.             return 0;
  401.         }
  402.     }
  403.     return 1;
  404. }
  405.  
  406. public OnPlayerCommandText(playerid, cmdtext[])
  407. {
  408.     new cmd[0x100];
  409.     new idx;
  410.     cmd = strtok(cmdtext, idx);
  411.  
  412.     if(playerinevento[playerid] && eventorodando &&
  413.     strcmp(cmd, "/iniciarevento", true) != 0 &&
  414.     strcmp(cmdtext, "/entrarevento", true) != 0 &&
  415.     strcmp(cmdtext, "/cancelarevento", true) != 0 &&
  416.     strcmp(cmdtext, "/ajuda", true) != 0 &&
  417.     strcmp(cmdtext, "/comandos", true) != 0 &&
  418.     strcmp(cmdtext, "/creditos", true) != 0 &&
  419.     strcmp(cmdtext, "/kill", true) != 0 &&
  420.     strcmp(cmdtext, "/eventos", true) != 0 &&
  421.     strcmp(cmd, "/stats", true) != 0)
  422.         return SendClientMessage(playerid, 0xFF0000AA, "Sem comandos no evento!");
  423.  
  424.     if(!logado[playerid] && strcmp(cmd, "/registrar", true) != 0 &&
  425.     strcmp(cmd, "/logar", true) != 0 && strcmp(cmdtext, "/logout", true) != 0 &&
  426.     strcmp(cmdtext, "/ajuda", true) != 0 && strcmp(cmdtext, "/comandos", true) != 0 &&
  427.     strcmp(cmdtext, "/creditos", true) != 0)
  428.         return SendClientMessage(playerid, 0xFF0000AA, "Logue-se para usar os comandos!");
  429.  
  430.     if(!strcmp(cmdtext, "/ajuda", true))
  431.     {
  432.         SendClientMessage(playerid, 0xFF0000AA, "Ajuda:");
  433.         SendClientMessage(playerid, 0xFFFFFFAA, "Este server foi feito para o treinamento dos \
  434.         competidores e fiscais do");
  435.         SendClientMessage(playerid, 0xFFFFFFAA, "evento Brazilian Championship.");
  436.         SendClientMessage(playerid, 0xFFFFFFAA, "Para ver os comando do server, digite \"/comandos\".");
  437.         SendClientMessage(playerid, 0xFFFFFFAA, "Para ver os cr�ditos do server, digite \"/creditos\"");
  438.         SendClientMessage(playerid, 0xFFFFFFAA, "Em alguns comandos, temos um sistema de ajuda, para \
  439.        encontr�-lo, use o seguinte");
  440.         SendClientMessage(playerid, 0xFFFFFFAA, "par�metro no comando: \"?\"; Exemplo: \"/stats ?\".");
  441.         return 1;
  442.     }
  443.  
  444.     if(!strcmp(cmdtext, "/comandos", true))
  445.     {
  446.         SendClientMessage(playerid, 0xFF0000AA, "Comandos:");
  447.         SendClientMessage(playerid, 0xFFFFFFAA, "/registrar - /logar - /logout - /ajuda - /creditos");
  448.         SendClientMessage(playerid, 0xFFFFFFAA, "/stats - /infernus - /nrg - /marcar - /ir - /jetpack - \
  449.         /kill");
  450.         SendClientMessage(playerid, 0xFFFFFFAA, "/iniciarevento - /cancelarevento - /entrarevento - \
  451.         /eventos");
  452.         if(admin[playerid] >= 1)
  453.         {
  454.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 1: /settime - /setweather - /goto");
  455.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 1: /kick - /congelar - /descongelar");
  456.         }
  457.         if(admin[playerid] >= 2)
  458.         {
  459.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 2: /mutar - /desmutar - /sethealth - /setarmour");
  460.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 2: /ejetar - /givemoney");
  461.         }
  462.         if(admin[playerid] >= 3)
  463.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 3: /gmx - /ban - /giveweapon - /trazer");
  464.         if(admin[playerid] >= 4)
  465.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 4: /fecharserver - /logoutplayer");
  466.         if(admin[playerid] >= 5)
  467.             SendClientMessage(playerid, 0xFFFFFFAA, "Admin 5: /setadmin - /registrarplayer");
  468.         return 1;
  469.     }
  470.  
  471.     if(!strcmp(cmdtext, "/creditos", true))
  472.     {
  473.         SendClientMessage(playerid, 0xFF0000AA, "Cr�ditos:");
  474.         SendClientMessage(playerid, 0xFFFFFFAA, "Este gamemode foi feito por Fl�vio Toribio ao Brazilian \
  475.         Championship Tournament");
  476.         SendClientMessage(playerid, 0xFFFFFFAA, "Agrade�o ao gamemode Adrenaline por fornecer as \
  477.         coordenadas dos textdraws das corridas.");
  478.         SendClientMessage(playerid, 0xFFFFFFAA, "Obrigado pela CyberPlanet ao abrir a porta 9999 em um \
  479.         dedicado para o server.");
  480.         SendClientMessage(playerid, 0xFFFFFFAA, "Agrade�o tamb�m �s pessoas que me ajudaram a testar o \
  481.         gamemode.");
  482.         SendClientMessage(playerid, 0xFFFFFFAA, "E principalmente � quem criou este evento: [SDK]Ricardo \
  483.         e [SDK]MasSaKre.");
  484.         return 1;
  485.     }
  486.    
  487.     if(!strcmp(cmdtext, "/eventos", true))
  488.     {
  489.         SendClientMessage(playerid, 0xFF0000AA, "Eventos:");
  490.         SendClientMessage(playerid, 0xFFFFFFAA, "DeathMatch: chave para /iniciarevento: \"dm1\";");
  491.         SendClientMessage(playerid, 0xFFFFFFAA, "Las Venturas Race: chave para /iniciarevento: \"race1\";");
  492.         SendClientMessage(playerid, 0xFFFFFFAA, "Desert Track Race: chave para /iniciarevento: \"race2\".");
  493.         SendClientMessage(playerid, 0xFFFFFFAA, "LS Tour Race: chave para /iniciarevento: \"race3\".");
  494.         return 1;
  495.     }
  496.    
  497.     if(!strcmp(cmdtext, "/jetpack", true))
  498.     {
  499.         if(!IsPlayerInAnyVehicle(playerid))SetPlayerSpecialAction(playerid, 2);
  500.         return 1;
  501.     }
  502.    
  503.     if(!strcmp(cmdtext, "/kill", true))
  504.         return SetPlayerHealth(playerid, 0.0);
  505.  
  506.     if(!strcmp(cmd, "/iniciarevento", true))
  507.     {
  508.         new tmp[0x100], evento[0x100], maxplayers, recomp;
  509.         tmp = strtok(cmdtext, idx);
  510.         evento = tmp;
  511.         tmp = strtok(cmdtext, idx);
  512.         maxplayers = strval(tmp);
  513.         tmp = strtok(cmdtext, idx);
  514.         recomp = strval(tmp);
  515.         if(!strlen(tmp))
  516.         {
  517.             SendClientMessage(playerid, 0xFFFFFFAA,"USE: /iniciarevento [evento] [maxplayers] [recompensa]");
  518.             return 1;
  519.         }
  520.         if(!eventoiniciado)
  521.         {
  522.             /*if(!podeiniciar[playerid] && ((admin[playerid] < 1) || (!IsPlayerAdmin(playerid))))
  523.                 return SendClientMessage(playerid, 0xFF0000AA, "Espere os 6 minutos para iniciar \
  524.                 outro evento!");*/
  525.             if(!strcmp(evento, "dm1", true))
  526.             {
  527.                 if(maxplayers > 1 && maxplayers <= 50)
  528.                 {
  529.                     if(recomp > 0 && recomp <= 5000)
  530.                     {
  531.                         new string[0x100], pname[MAX_PLAYER_NAME];
  532.                         GetPlayerName(playerid, pname, sizeof pname);
  533.                         eventoatual = dm1;
  534.                         eventoiniciado = true;
  535.                         queminiciou = playerid;
  536.                         recompensa = recomp;
  537.                         eventomaxplayers = maxplayers;
  538.                         format(string, sizeof string, "%s iniciou o evento Death Match! \
  539.                         Para entrar use \"/entrarevento\".", pname);
  540.                         SendClientMessageToAll(0xFF0000AA, string);
  541.                         format(string, sizeof string, "O evento come�ar� em 1 minuto, com uma recompensa de \
  542.                         $%d para quem ganhar!", recomp);
  543.                         SendClientMessageToAll(0xFF0000AA, string);
  544.                         format(string, sizeof string, "S� poder�o entrar %d pessoas no evento, \
  545.                         ent�o entre r�pido!", maxplayers);
  546.                         SendClientMessageToAll(0xFF0000AA, string);
  547.                         eventotimer = SetTimer("IniciarEvento", 60000, 0);
  548.                         playertimer[playerid] = SetTimerEx("TempoComandoPlayer", 6*1000*60, 0, "i", playerid);
  549.                     } else {
  550.                         SendClientMessage(playerid, 0xFF0000AA, "Recompensa inv�lida! (1~5000)");
  551.                     }
  552.                 } else {
  553.                     SendClientMessage(playerid, 0xFF0000AA, "M�ximo de jogadores inv�lido! (2~50)");
  554.                 }
  555.             } else if(!strcmp(evento, "race1", true))
  556.             {
  557.                 if(maxplayers > 0 && maxplayers <= 10)
  558.                 {
  559.                     if(recomp > 0 && recomp <= 5000)
  560.                     {
  561.                         new string[0x100], pname[MAX_PLAYER_NAME];
  562.                         GetPlayerName(playerid, pname, sizeof pname);
  563.                         eventoatual = race1;
  564.                         eventoiniciado = true;
  565.                         queminiciou = playerid;
  566.                         recompensa = recomp;
  567.                         eventomaxplayers = maxplayers;
  568.                         for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  569.                         format(string, sizeof string, "%s iniciou o evento Las Venturas Race! \
  570.                         Para entrar use \"/entrarevento\".", pname);
  571.                         SendClientMessageToAll(0xFF0000AA, string);
  572.                         format(string, sizeof string, "O evento come�ar� em 1 minuto, com uma recompensa de \
  573.                         $%d para quem ganhar!", recomp);
  574.                         SendClientMessageToAll(0xFF0000AA, string);
  575.                         format(string, sizeof string, "S� poder�o entrar %d pessoas no evento, \
  576.                         ent�o entre r�pido!", maxplayers);
  577.                         SendClientMessageToAll(0xFF0000AA, string);
  578.                         eventotimer = SetTimer("IniciarEvento", 60000, 0);
  579.                         playertimer[playerid] = SetTimerEx("TempoComandoPlayer", 6*1000*60, 0, "i", playerid);
  580.                     } else {
  581.                         SendClientMessage(playerid, 0xFF0000AA, "Recompensa inv�lida! (1~5000)");
  582.                     }
  583.                 } else {
  584.                     SendClientMessage(playerid, 0xFF0000AA, "M�ximo de jogadores inv�lido! (1~10)");
  585.                 }
  586.             } else if(!strcmp(evento, "race2", true))
  587.             {
  588.                 if(maxplayers > 0 && maxplayers <= 10)
  589.                 {
  590.                     if(recomp > 0 && recomp <= 5000)
  591.                     {
  592.                         new string[0x100], pname[MAX_PLAYER_NAME];
  593.                         GetPlayerName(playerid, pname, sizeof pname);
  594.                         eventoatual = race2;
  595.                         eventoiniciado = true;
  596.                         queminiciou = playerid;
  597.                         recompensa = recomp;
  598.                         eventomaxplayers = maxplayers;
  599.                         for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  600.                         format(string, sizeof string, "%s iniciou o evento Desert Track Race! \
  601.                         Para entrar use \"/entrarevento\".", pname);
  602.                         SendClientMessageToAll(0xFF0000AA, string);
  603.                         format(string, sizeof string, "O evento come�ar� em 1 minuto, com uma recompensa de \
  604.                         $%d para quem ganhar!", recomp);
  605.                         SendClientMessageToAll(0xFF0000AA, string);
  606.                         format(string, sizeof string, "S� poder�o entrar %d pessoas no evento, \
  607.                         ent�o entre r�pido!", maxplayers);
  608.                         SendClientMessageToAll(0xFF0000AA, string);
  609.                         eventotimer = SetTimer("IniciarEvento", 60000, 0);
  610.                         playertimer[playerid] = SetTimerEx("TempoComandoPlayer", 6*1000*60, 0, "i", playerid);
  611.                     } else {
  612.                         SendClientMessage(playerid, 0xFF0000AA, "Recompensa inv�lida! (1~5000)");
  613.                     }
  614.                 } else {
  615.                     SendClientMessage(playerid, 0xFF0000AA, "M�ximo de jogadores inv�lido! (1~10)");
  616.                 }
  617.             } else if(!strcmp(evento, "race3", true))
  618.             {
  619.                 if(maxplayers > 0 && maxplayers <= 10)
  620.                 {
  621.                     if(recomp > 0 && recomp <= 5000)
  622.                     {
  623.                         new string[0x100], pname[MAX_PLAYER_NAME];
  624.                         GetPlayerName(playerid, pname, sizeof pname);
  625.                         eventoatual = race3;
  626.                         eventoiniciado = true;
  627.                         queminiciou = playerid;
  628.                         recompensa = recomp;
  629.                         eventomaxplayers = maxplayers;
  630.                         for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  631.                         format(string, sizeof string, "%s iniciou o evento LS Tour Race! \
  632.                         Para entrar use \"/entrarevento\".", pname);
  633.                         SendClientMessageToAll(0xFF0000AA, string);
  634.                         format(string, sizeof string, "O evento come�ar� em 1 minuto, com uma recompensa de \
  635.                         $%d para quem ganhar!", recomp);
  636.                         SendClientMessageToAll(0xFF0000AA, string);
  637.                         format(string, sizeof string, "S� poder�o entrar %d pessoas no evento, \
  638.                         ent�o entre r�pido!", maxplayers);
  639.                         SendClientMessageToAll(0xFF0000AA, string);
  640.                         eventotimer = SetTimer("IniciarEvento", 60000, 0);
  641.                         playertimer[playerid] = SetTimerEx("TempoComandoPlayer", 6*1000*60, 0, "i", playerid);
  642.                     } else {
  643.                         SendClientMessage(playerid, 0xFF0000AA, "Recompensa inv�lida! (1~5000)");
  644.                     }
  645.                 } else {
  646.                     SendClientMessage(playerid, 0xFF0000AA, "M�ximo de jogadores inv�lido! (1~10)");
  647.                 }
  648.             } else {
  649.                 SendClientMessage(playerid, 0xFF0000AA, "Evendo inexistente!");
  650.             }
  651.         } else {
  652.             SendClientMessage(playerid, 0xFF0000AA, "Um evento de cada vez!");
  653.         }
  654.         return 1;
  655.     }
  656.  
  657.     if(!strcmp(cmdtext, "/entrarevento", true))
  658.     {
  659.         if(!eventorodando && !playerinevento[playerid])
  660.         {
  661.             if(!playerinevento[playerid])
  662.             {
  663.                 if(eventoplayers < eventomaxplayers)
  664.                 {
  665.                     if(eventoatual == dm1)
  666.                     {
  667.                         if(IsPlayerInAnyVehicle(playerid))
  668.                             return SendClientMessage(playerid, 0xFF0000AA, "Saia de seu ve�culo!");
  669.                         eventoplayers++;
  670.                         playersevento[eventoplayers] = playerid;
  671.                         playerinevento[playerid] = true;
  672.                         new Float:x, Float:y;
  673.                         x = float(eventoplayers);
  674.                         y = float(eventoplayers);
  675.                         GetPlayerPos(playerid, playerpos[playerid][0],
  676.                         playerpos[playerid][1],playerpos[playerid][2]);
  677.                         GetPlayerFacingAngle(playerid, playerpos[playerid][3]);
  678.                         for(new i; i < 2; i++)
  679.                             SetPlayerPosWithObjects(playerid, 2434.0+x, 2459.0+y, 69.5);
  680.                         SetPlayerFacingAngle(playerid, 130.30);
  681.                         SetCameraBehindPlayer(playerid);
  682.                         GetPlayerHealth(playerid, playerhealth[playerid][0]);
  683.                         GetPlayerArmour(playerid, playerhealth[playerid][1]);
  684.                         SetPlayerHealth(playerid, 100.0);
  685.                         SetPlayerArmour(playerid, 50.0);
  686.                         TogglePlayerControllable(playerid, 0);
  687.                         for(new s = 1; s <= 12; s++)
  688.                             GetPlayerWeaponData(playerid, s,
  689.                             playerweapon[playerid][s-1], playerammo[playerid][s-1]);
  690.                         ResetPlayerWeapons(playerid);
  691.                         GivePlayerWeapon(playerid, 1, 1);
  692.                         GivePlayerWeapon(playerid, 30, 1530);
  693.                         GivePlayerWeapon(playerid, 24, 1007);
  694.                         GivePlayerWeapon(playerid, 32, 1600);
  695.                         GivePlayerWeapon(playerid, 26, 154);
  696.                         new totalplayers;
  697.                         for(new i; i < MAX_PLAYERS; i++)
  698.                             if(IsPlayerConnected(i))totalplayers++;
  699.                         if((totalplayers == eventoplayers && eventoplayers != 1) ||
  700.                         eventoplayers == eventomaxplayers)
  701.                         {
  702.                             eventorodando = true;
  703.                             KillTimer(eventotimer);
  704.                             SendClientMessageToAll(0xFF0000AA, "Iniciando evento em 10 segundos...");
  705.                             SetTimer("CountDown", 1000, 0);
  706.                         }
  707.                     } else if(eventoatual == race1)
  708.                     {
  709.                         if(IsPlayerInAnyVehicle(playerid))
  710.                             return SendClientMessage(playerid, 0xFF0000AA, "Saia de seu ve�culo!");
  711.                         eventoplayers++;
  712.                         playersevento[eventoplayers] = playerid;
  713.                         playerinevento[playerid] = true;
  714.                         GetPlayerPos(playerid, playerpos[playerid][0],
  715.                         playerpos[playerid][1],playerpos[playerid][2]);
  716.                         GetPlayerFacingAngle(playerid, playerpos[playerid][3]);
  717.                         new vehicleid = CreateVehicle(411, largada_race1[eventoplayers-1][0],
  718.                         largada_race1[eventoplayers-1][1], largada_race1[eventoplayers-1][2], 270.0,
  719.                         -1, -1, 10000);
  720.                         PutPlayerInVehicle(playerid, vehicleid, 0);
  721.                         playervehicle[playerid] = vehicleid;
  722.                         vehicleplayer[vehicleid] = playerid;
  723.                         SetPlayerRaceCheckpoint(playerid, 0,
  724.                         cps_race1[cpatual[playerid]][0],
  725.                         cps_race1[cpatual[playerid]][1],
  726.                         cps_race1[cpatual[playerid]][2],
  727.                         cps_race1[cpatual[playerid]+1][0],
  728.                         cps_race1[cpatual[playerid]+1][1],
  729.                         cps_race1[cpatual[playerid]+1][2], 8.0);
  730.                         SetCameraBehindPlayer(playerid);
  731.                         GetPlayerHealth(playerid, playerhealth[playerid][0]);
  732.                         GetPlayerArmour(playerid, playerhealth[playerid][1]);
  733.                         SetPlayerHealth(playerid, 100.0);
  734.                         TogglePlayerControllable(playerid, 0);
  735.                         for(new s = 1; s <= 12; s++)
  736.                             GetPlayerWeaponData(playerid, s,
  737.                             playerweapon[playerid][s-1], playerammo[playerid][s-1]);
  738.                         ResetPlayerWeapons(playerid);
  739.                         new tmp[5];
  740.                         format(tmp, sizeof tmp, "/%d", eventoplayers);
  741.                         new string[0x100];
  742.                         format(string, sizeof string, "%d", eventoplayers);
  743.                         tdposicao[playerid] = TextDrawCreate(560.0, 330.0, string);
  744.                         TextDrawLetterSize(tdposicao[playerid], 1.2, 6.2);
  745.                         tdappend[playerid] = TextDrawCreate(590.0, 335.0, "�");
  746.                         TextDrawLetterSize(tdappend[playerid], 0.5, 2.5);
  747.                         TextDrawSetString(tdpilotos, tmp);
  748.                         TextDrawShowForPlayer(playerid, tdtempo);
  749.                         TextDrawShowForPlayer(playerid, tdappend[playerid]);
  750.                         TextDrawShowForPlayer(playerid, tdposicao[playerid]);
  751.                         TextDrawShowForPlayer(playerid, tdpilotos);
  752.                         new totalplayers;
  753.                         for(new i; i < MAX_PLAYERS; i++)
  754.                             if(IsPlayerConnected(i))totalplayers++;
  755.                         if(totalplayers == eventoplayers || eventoplayers == eventomaxplayers)
  756.                         {
  757.                             eventorodando = true;
  758.                             eventocount = 0x5;
  759.                             KillTimer(eventotimer);
  760.                             SendClientMessageToAll(0xFF0000AA, "Iniciando evento em 5 segundos...");
  761.                             SetTimer("CountDown", 1000, 0);
  762.                         }
  763.                     } else if(eventoatual == race2)
  764.                     {
  765.                         if(IsPlayerInAnyVehicle(playerid))
  766.                             return SendClientMessage(playerid, 0xFF0000AA, "Saia de seu ve�culo!");
  767.                         eventoplayers++;
  768.                         playersevento[eventoplayers] = playerid;
  769.                         playerinevento[playerid] = true;
  770.                         GetPlayerPos(playerid, playerpos[playerid][0],
  771.                         playerpos[playerid][1],playerpos[playerid][2]);
  772.                         GetPlayerFacingAngle(playerid, playerpos[playerid][3]);
  773.                         new vehicleid = CreateVehicle(411, largada_race2[eventoplayers-1][0],
  774.                         largada_race2[eventoplayers-1][1], largada_race2[eventoplayers-1][2], 90.0,
  775.                         -1, -1, 10000);
  776.                         PutPlayerInVehicle(playerid, vehicleid, 0);
  777.                         playervehicle[playerid] = vehicleid;
  778.                         vehicleplayer[vehicleid] = playerid;
  779.                         SetPlayerRaceCheckpoint(playerid, 0,
  780.                         cps_race2[cpatual[playerid]][0],
  781.                         cps_race2[cpatual[playerid]][1],
  782.                         cps_race2[cpatual[playerid]][2],
  783.                         cps_race2[cpatual[playerid]+1][0],
  784.                         cps_race2[cpatual[playerid]+1][1],
  785.                         cps_race2[cpatual[playerid]+1][2], 8.0);
  786.                         SetCameraBehindPlayer(playerid);
  787.                         GetPlayerHealth(playerid, playerhealth[playerid][0]);
  788.                         GetPlayerArmour(playerid, playerhealth[playerid][1]);
  789.                         SetPlayerHealth(playerid, 100.0);
  790.                         TogglePlayerControllable(playerid, 0);
  791.                         for(new s = 1; s <= 12; s++)
  792.                             GetPlayerWeaponData(playerid, s,
  793.                             playerweapon[playerid][s-1], playerammo[playerid][s-1]);
  794.                         ResetPlayerWeapons(playerid);
  795.                         new tmp[5];
  796.                         format(tmp, sizeof tmp, "/%d", eventoplayers);
  797.                         new string[0x100];
  798.                         format(string, sizeof string, "%d", eventoplayers);
  799.                         tdposicao[playerid] = TextDrawCreate(560.0, 330.0, string);
  800.                         TextDrawLetterSize(tdposicao[playerid], 1.2, 6.2);
  801.                         tdappend[playerid] = TextDrawCreate(590.0, 335.0, "�");
  802.                         TextDrawLetterSize(tdappend[playerid], 0.5, 2.5);
  803.                         TextDrawSetString(tdpilotos, tmp);
  804.                         TextDrawShowForPlayer(playerid, tdtempo);
  805.                         TextDrawShowForPlayer(playerid, tdappend[playerid]);
  806.                         TextDrawShowForPlayer(playerid, tdposicao[playerid]);
  807.                         TextDrawShowForPlayer(playerid, tdpilotos);
  808.                         new totalplayers;
  809.                         for(new i; i < MAX_PLAYERS; i++)
  810.                             if(IsPlayerConnected(i))totalplayers++;
  811.                         if(totalplayers == eventoplayers || eventoplayers == eventomaxplayers)
  812.                         {
  813.                             eventorodando = true;
  814.                             eventocount = 0x5;
  815.                             KillTimer(eventotimer);
  816.                             SendClientMessageToAll(0xFF0000AA, "Iniciando evento em 5 segundos...");
  817.                             SetTimer("CountDown", 1000, 0);
  818.                         }
  819.                     } else if(eventoatual == race3)
  820.                     {
  821.                         if(IsPlayerInAnyVehicle(playerid))
  822.                             return SendClientMessage(playerid, 0xFF0000AA, "Saia de seu ve�culo!");
  823.                         eventoplayers++;
  824.                         playersevento[eventoplayers] = playerid;
  825.                         playerinevento[playerid] = true;
  826.                         GetPlayerPos(playerid, playerpos[playerid][0],
  827.                         playerpos[playerid][1],playerpos[playerid][2]);
  828.                         GetPlayerFacingAngle(playerid, playerpos[playerid][3]);
  829.                         new vehicleid = CreateVehicle(411, largada_race3[eventoplayers-1][0],
  830.                         largada_race3[eventoplayers-1][1], largada_race3[eventoplayers-1][2], 0.0,
  831.                         -1, -1, 10000);
  832.                         PutPlayerInVehicle(playerid, vehicleid, 0);
  833.                         playervehicle[playerid] = vehicleid;
  834.                         vehicleplayer[vehicleid] = playerid;
  835.                         SetPlayerRaceCheckpoint(playerid, 0,
  836.                         cps_race3[cpatual[playerid]][0],
  837.                         cps_race3[cpatual[playerid]][1],
  838.                         cps_race3[cpatual[playerid]][2],
  839.                         cps_race3[cpatual[playerid]+1][0],
  840.                         cps_race3[cpatual[playerid]+1][1],
  841.                         cps_race3[cpatual[playerid]+1][2], 8.0);
  842.                         SetCameraBehindPlayer(playerid);
  843.                         GetPlayerHealth(playerid, playerhealth[playerid][0]);
  844.                         GetPlayerArmour(playerid, playerhealth[playerid][1]);
  845.                         SetPlayerHealth(playerid, 100.0);
  846.                         TogglePlayerControllable(playerid, 0);
  847.                         for(new s = 1; s <= 12; s++)
  848.                             GetPlayerWeaponData(playerid, s,
  849.                             playerweapon[playerid][s-1], playerammo[playerid][s-1]);
  850.                         ResetPlayerWeapons(playerid);
  851.                         new tmp[5];
  852.                         format(tmp, sizeof tmp, "/%d", eventoplayers);
  853.                         new string[0x100];
  854.                         format(string, sizeof string, "%d", eventoplayers);
  855.                         tdposicao[playerid] = TextDrawCreate(560.0, 330.0, string);
  856.                         TextDrawLetterSize(tdposicao[playerid], 1.2, 6.2);
  857.                         tdappend[playerid] = TextDrawCreate(590.0, 335.0, "�");
  858.                         TextDrawLetterSize(tdappend[playerid], 0.5, 2.5);
  859.                         TextDrawSetString(tdpilotos, tmp);
  860.                         TextDrawShowForPlayer(playerid, tdtempo);
  861.                         TextDrawShowForPlayer(playerid, tdappend[playerid]);
  862.                         TextDrawShowForPlayer(playerid, tdposicao[playerid]);
  863.                         TextDrawShowForPlayer(playerid, tdpilotos);
  864.                         new totalplayers;
  865.                         for(new i; i < MAX_PLAYERS; i++)
  866.                             if(IsPlayerConnected(i))totalplayers++;
  867.                         if(totalplayers == eventoplayers || eventoplayers == eventomaxplayers)
  868.                         {
  869.                             eventorodando = true;
  870.                             eventocount = 0x5;
  871.                             KillTimer(eventotimer);
  872.                             SendClientMessageToAll(0xFF0000AA, "Iniciando evento em 5 segundos...");
  873.                             SetTimer("CountDown", 1000, 0);
  874.                         }
  875.                     } else {
  876.                         SendClientMessage(playerid, 0xFF0000AA, "Nenhum evento iniciado!");
  877.                     }
  878.                 } else {
  879.                     SendClientMessage(playerid, 0xFF0000AA, "Desculpe, mas o evento est� lotado!");
  880.                 }
  881.             } else {
  882.                 SendClientMessage(playerid, 0xFF0000AA, "Voc� j� est� no evento!");
  883.             }
  884.         } else {
  885.             SendClientMessage(playerid, 0xFF0000AA, "Desculpe, mas o evento j� foi iniciado!");
  886.         }
  887.         return 1;
  888.     }
  889.  
  890.     if(!strcmp(cmdtext, "/cancelarevento", true))
  891.     {
  892.         if(eventoiniciado)
  893.         {
  894.             if(queminiciou == playerid || admin[playerid] > 0 || IsPlayerAdmin(playerid))
  895.             {
  896.                 new string[0x100], pname[MAX_PLAYER_NAME];
  897.                 GetPlayerName(playerid, pname, sizeof pname);
  898.                 format(string, sizeof string, "%s cancelou o evento!", pname);
  899.                 SendClientMessageToAll(0xFF0000AA, string);
  900.                 GameTextForAll("Cancelado", 4000, 1);
  901.                 KillTimer(eventotimer);
  902.                 if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  903.                 {
  904.                     TextDrawSetString(tdtempo, "0:00");
  905.                     for(new i; i < MAX_PLAYERS; i++)
  906.                     {
  907.                         if(playerinevento[i])
  908.                         {
  909.                             TextDrawHideForPlayer(i, tdtempo);
  910.                             TextDrawHideForPlayer(i, tdappend[i]);
  911.                             TextDrawHideForPlayer(i, tdposicao[i]);
  912.                             TextDrawHideForPlayer(i, tdpilotos);
  913.                             DisablePlayerRaceCheckpoint(i);
  914.                             TextDrawDestroy(tdposicao[i]);
  915.                             TextDrawDestroy(tdappend[i]);
  916.                             EraseVehicle(playervehicle[i]);
  917.                             vehicleplayer[playervehicle[i]] = -1;
  918.                             playervehicle[i] = 0;
  919.                             cpatual[i] = 0;
  920.                             progresso[i] = 0;
  921.                         }
  922.                     }
  923.                 }
  924.                 if(eventoatual == race1)for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  925.                 if(eventoatual == race2)for(new i; i < sizeof cps_race2; i++)cps_race2[i][3] = 0.0;
  926.                 if(eventoatual == race3)for(new i; i < sizeof cps_race3; i++)cps_race3[i][3] = 0.0;
  927.                 for(new i; i < MAX_PLAYERS; i++)
  928.                 {
  929.                     playersevento[i] = -1;
  930.                     playerinevento[i] = false;
  931.                     cpatual[i] = 0;
  932.                 }
  933.                 eventoplayers = 0;
  934.                 eventoatual = -1;
  935.                 eventoiniciado = false;
  936.                 for(new i; i < MAX_PLAYERS; i++)
  937.                 {
  938.                     if(playerinevento[i])
  939.                     {
  940.                         for(new j; j < 10; j++)TogglePlayerControllable(i, 1);
  941.                         SetPlayerPos(i, playerpos[i][0],
  942.                         playerpos[i][1], playerpos[i][2]);
  943.                         for(new s; s < 4; s++)playerpos[i][s] = 0.0;
  944.                         SetPlayerFacingAngle(i, playerpos[i][3]);
  945.                         SetCameraBehindPlayer(i);
  946.                         ResetPlayerWeapons(i);
  947.                         SetPlayerHealth(i, playerhealth[i][0]);
  948.                         SetPlayerArmour(i, playerhealth[i][1]);
  949.                         for(new s; s < 2; s++)playerhealth[i][s] = 0.0;
  950.                         for(new s; s < 12; s++)
  951.                         {
  952.                             GivePlayerWeapon(i, playerweapon[i][s],
  953.                             playerammo[i][s]);
  954.                             playerweapon[i][s] = 0;
  955.                             playerammo[i][s] = 0;
  956.                         }
  957.                     }
  958.                 }
  959.                 recompensa = 0;
  960.                 eventorodando = false;
  961.                 eventomaxplayers = 0;
  962.                 queminiciou = -1;
  963.             } else {
  964.                 SendClientMessage(playerid, 0xFF0000AA, "Voc� n�o iniciou o evento!");
  965.             }
  966.         } else {
  967.             SendClientMessage(playerid, 0xFF0000AA, "Nenhum evento iniciado!");
  968.         }
  969.         return 1;
  970.     }
  971.  
  972.     if(!strcmp(cmd, "/registrar", true))
  973.     {
  974.         new senha[2][0x100];
  975.         for(new i; i < 2; i++)senha[i] = strtok(cmdtext, idx);
  976.         if(!strlen(senha[1]))
  977.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /registrar [senha] [confirmar senha]");
  978.         if(!strcmp(senha[0], senha[1], false))
  979.         {
  980.             new pname[0x100];
  981.             GetPlayerName(playerid, pname, sizeof pname);
  982.             format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  983.             if(!dini_Exists(pname))
  984.             {
  985.                 dini_Create(pname);
  986.                 dini_Set(pname, "senha", senha[0]);
  987.                 dini_IntSet(pname, "admin", 0);
  988.                 dini_IntSet(pname, "grana", GetPlayerMoney(playerid));
  989.                 dini_IntSet(pname, "score", GetPlayerScore(playerid));
  990.                 dini_IntSet(pname, "dm1wins", 0);
  991.                 dini_IntSet(pname, "race1wins", 0);
  992.                 dini_IntSet(pname, "race1bestscore", 0);
  993.                 dini_IntSet(pname, "race2wins", 0);
  994.                 dini_IntSet(pname, "race2bestscore", 0);
  995.                 dini_IntSet(pname, "race3wins", 0);
  996.                 dini_IntSet(pname, "race3bestscore", 0);
  997.                 SendClientMessage(playerid, 0xFFF000AA, "Registrado com sucesso!");
  998.                 SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/logar [senha]\" para logar.");
  999.             } else {
  1000.                 SendClientMessage(playerid, 0xFF0000AA, "Este usu�rio j� est� registrado, \
  1001.                 use /logar [senha]");
  1002.             }
  1003.         } else {
  1004.             SendClientMessage(playerid, 0xFF0000AA, "As senhas n�o conferem!\
  1005.             Lembre-se: elas s�o caso sens�vel.");
  1006.         }
  1007.         return 1;
  1008.     }
  1009.  
  1010.     if(!strcmp(cmd, "/logar", true))
  1011.     {
  1012.         new senha1[0x100];
  1013.         senha1 = strtok(cmdtext, idx);
  1014.         if(!strlen(senha1))
  1015.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /logar [senha]");
  1016.         new pname[0x100];
  1017.         GetPlayerName(playerid, pname, sizeof pname);
  1018.         format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1019.         if(dini_Exists(pname))
  1020.         {
  1021.             if(!logado[playerid])
  1022.             {
  1023.                 if(!strcmp(senha1, dini_Get(pname, "senha"), false))
  1024.                 {
  1025.                     GivePlayerMoney(playerid, dini_Int(pname, "grana"));
  1026.                     SetPlayerScore(playerid, dini_Int(pname, "score"));
  1027.                     admin[playerid] = dini_Int(pname, "admin");
  1028.                     logado[playerid] = 1;
  1029.                     SendClientMessage(playerid, 0xFFF000AA, "Logado!");
  1030.                 } else {
  1031.                     SendClientMessage(playerid, 0xFF0000AA, "Senha incorreta, a senha � caso sens�vel!");
  1032.                 }
  1033.             } else {
  1034.                 SendClientMessage(playerid, 0xFF0000AA, "Voc� j� est� logado!");
  1035.             }
  1036.         } else {
  1037.             SendClientMessage(playerid, 0xFF0000AA, "Voc� n�o est� registrado! Use \"/registrar [senha]\"");
  1038.         }
  1039.         return 1;
  1040.     }
  1041.  
  1042.     if(!strcmp(cmdtext, "/logout", true))
  1043.     {
  1044.         new pname[0x100];
  1045.         GetPlayerName(playerid, pname, sizeof pname);
  1046.         format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1047.         if(dini_Exists(pname))
  1048.         {
  1049.             if(logado[playerid])
  1050.             {
  1051.                 logado[playerid] = 0;
  1052.                 ForceClassSelection(playerid);
  1053.             } else {
  1054.                 SendClientMessage(playerid, 0xFF0000AA, "Como voc� vai fazer logout sem estar logado?");
  1055.             }
  1056.         } else {
  1057.             SendClientMessage(playerid, 0xFF0000AA, "Como voc� vai fazer logout sem estar registrado?");
  1058.         }
  1059.         return 1;
  1060.     }
  1061.  
  1062.     if(!strcmp(cmd, "/stats", true))
  1063.     {
  1064.         new tmp[0x100], plid;
  1065.         tmp = strtok(cmdtext, idx);
  1066.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1067.         {
  1068.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/stats\":");
  1069.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/stats\" somente para ver seus stats.");
  1070.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/stats [playerid]\" ou \"/stats [nome]\" \
  1071.             para ver os stats de algu�m conectado ou n�o.");
  1072.             return 1;
  1073.         }
  1074.         plid = strval(tmp);
  1075.         if(!strlen(tmp))plid = playerid;
  1076.         new pname[0x100];
  1077.         if(isnumeric(tmp) && strlen(tmp))
  1078.         {
  1079.             if(IsPlayerConnected(plid))
  1080.             {
  1081.                 GetPlayerName(plid, pname, sizeof pname);
  1082.                 format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1083.                 goto comando_stats;
  1084.             } else {
  1085.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado/nome inv�lido!");
  1086.             }
  1087.         } else {
  1088.             if(playerid == plid)GetPlayerName(playerid, tmp, sizeof tmp);
  1089.             format(pname, sizeof pname, "%s.brazilian.championship.cer", tmp);
  1090.             comando_stats:
  1091.             if(dini_Exists(pname))
  1092.             {
  1093.                 new string[0x100], tempo, msegundos, nome[0x100];
  1094.                 GetPlayerName(plid, nome, sizeof nome);
  1095.                 format(string, sizeof string, "Stats de %s", nome);
  1096.                 SendClientMessage(playerid, 0xFFF000AA, string);
  1097.                 format(string, sizeof string, "Grana: %d Score: %d Vit�rias DM1: %d 1� lugar RACE1: %d \
  1098.                 1� lugar RACE2: %d 1� lugar RACE3: %d", dini_Int(pname, "grana"), dini_Int(pname, "score"),
  1099.                 dini_Int(pname, "dm1wins"), dini_Int(pname, "race1wins"), dini_Int(pname, "race2wins"),
  1100.                 dini_Int(pname, "race3wins"));
  1101.                 SendClientMessage(playerid, 0xFFFFFFAA, string);
  1102.                 tempo = dini_Int(pname, "race1bestscore");
  1103.                 minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  1104.                 segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  1105.                 msegundos = floatround(floatmul(floatmul(floatdiv(tempo,
  1106.                 60000) - minutos, 60) - segundos, 1000), floatround_tozero);
  1107.                 gindex = 0;
  1108.                 while (segundos > 9)
  1109.                 {
  1110.                     segundos -= 0xA;
  1111.                     gindex++;
  1112.                 }
  1113.                 new msec[0xA];
  1114.                 if(msegundos < 10)format(msec, sizeof msec, "000%d", msegundos);
  1115.                 if(msegundos > 9 && msegundos < 100)format(msec, sizeof msec, "00%d", msegundos);
  1116.                 if(msegundos > 99 && msegundos < 1000)format(msec, sizeof msec, "0%d", msegundos);
  1117.                 if(msegundos == 1000)format(msec, sizeof msec, "%d", msegundos);
  1118.                 format(string, sizeof string, "Melhor tempo na RACE1: %d:%d%d:%s",
  1119.                 minutos, gindex, segundos, msec);
  1120.                 SendClientMessage(playerid, 0xFFFFFFAA, string);
  1121.                 tempo = dini_Int(pname, "race2bestscore");
  1122.                 minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  1123.                 segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  1124.                 msegundos = floatround(floatmul(floatmul(floatdiv(tempo,
  1125.                 60000) - minutos, 60) - segundos, 1000), floatround_tozero);
  1126.                 gindex = 0;
  1127.                 while (segundos > 9)
  1128.                 {
  1129.                     segundos -= 0xA;
  1130.                     gindex++;
  1131.                 }
  1132.                 if(msegundos < 10)format(msec, sizeof msec, "000%d", msegundos);
  1133.                 if(msegundos > 9 && msegundos < 100)format(msec, sizeof msec, "00%d", msegundos);
  1134.                 if(msegundos > 99 && msegundos < 1000)format(msec, sizeof msec, "0%d", msegundos);
  1135.                 if(msegundos == 1000)format(msec, sizeof msec, "%d", msegundos);
  1136.                 format(string, sizeof string, "Melhor tempo na RACE2: %d:%d%d:%s",
  1137.                 minutos, gindex, segundos, msec);
  1138.                 SendClientMessage(playerid, 0xFFFFFFAA, string);
  1139.                 tempo = dini_Int(pname, "race3bestscore");
  1140.                 minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  1141.                 segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  1142.                 msegundos = floatround(floatmul(floatmul(floatdiv(tempo,
  1143.                 60000) - minutos, 60) - segundos, 1000), floatround_tozero);
  1144.                 gindex = 0;
  1145.                 while (segundos > 9)
  1146.                 {
  1147.                     segundos -= 0xA;
  1148.                     gindex++;
  1149.                 }
  1150.                 if(msegundos < 10)format(msec, sizeof msec, "000%d", msegundos);
  1151.                 if(msegundos > 9 && msegundos < 100)format(msec, sizeof msec, "00%d", msegundos);
  1152.                 if(msegundos > 99 && msegundos < 1000)format(msec, sizeof msec, "0%d", msegundos);
  1153.                 if(msegundos == 1000)format(msec, sizeof msec, "%d", msegundos);
  1154.                 format(string, sizeof string, "Melhor tempo na RACE3: %d:%d%d:%s",
  1155.                 minutos, gindex, segundos, msec);
  1156.                 SendClientMessage(playerid, 0xFFFFFFAA, string);
  1157.             } else {
  1158.                 SendClientMessage(playerid, 0xFF0000AA, "Nome inv�lido!");
  1159.             }
  1160.         }
  1161.         return 1;
  1162.     }
  1163.  
  1164.     if(!strcmp(cmd, "/setadmin", true) && admin[playerid] >= 5)
  1165.     {
  1166.         new tmp[0x100], nome[0x100], plid = -1, level;
  1167.         tmp = strtok(cmdtext, idx);
  1168.         nome = tmp;
  1169.         if(!strlen(tmp))
  1170.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /setadmin [playerid/nome] [n�vel]");
  1171.         new pname[0x100];
  1172.         if(isnumeric(tmp))
  1173.         {
  1174.             plid = strval(tmp);
  1175.             if(IsPlayerConnected(plid))
  1176.             {
  1177.                 GetPlayerName(plid, pname, sizeof pname);
  1178.                 format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1179.                 goto comando_setadmin;
  1180.             } else {
  1181.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado/nome inv�lido!");
  1182.             }
  1183.         } else {
  1184.             format(pname, sizeof pname, "%s.brazilian.championship.cer", nome);
  1185.             plid = -1;
  1186.             comando_setadmin:
  1187.             tmp = strtok(cmdtext, idx);
  1188.             level = strval(tmp);
  1189.             if(dini_Exists(pname))
  1190.             {
  1191.                 if(isnumeric(nome))GetPlayerName(strval(nome), nome, sizeof nome);
  1192.                 if(level < 0 || level > 5)
  1193.                     return SendClientMessage(playerid, 0xFF0000AA, "N�vel incorreto (0~5)");
  1194.                 if(dini_Int(pname, "admin") == 5 && level == 0 && admin[playerid] < 6)
  1195.                     return SendClientMessage(playerid, 0xFF0000AA, "Voc� n�o pode tirar os privil�gios de \
  1196.                     um admin n�vel 5!");
  1197.                 new string[0x100];
  1198.                 dini_IntSet(pname, "admin", level);
  1199.                 if(IsPlayerConnected(plid))admin[plid] = level;
  1200.                 if(level > 0)
  1201.                     format(string, sizeof string,"Agora %s tem privil�gios de admin n�vel %d.", nome, level);
  1202.                 else
  1203.                     format(string, sizeof string, "Agora %s n�o tem mais privil�gios de admin.", nome);
  1204.                 SendClientMessage(playerid, 0xFFF000AA, string);
  1205.                 GetPlayerName(playerid, nome, sizeof nome);
  1206.                 if(level > 0)
  1207.                     format(string, sizeof string, "%s te deu privil�gios de admin n�vel %d.", nome, level);
  1208.                 else
  1209.                     format(string, sizeof string, "%s tirou seus privil�gios de admin", nome);
  1210.                 if(IsPlayerConnected(plid))SendClientMessage(plid, 0xFFF000AA, string);
  1211.             } else {
  1212.                 SendClientMessage(playerid, 0xFF0000AA, "Nome inv�lido!");
  1213.             }
  1214.         }
  1215.         return 1;
  1216.     }
  1217.  
  1218.     if(!strcmp(cmd, "/kick", true) && admin[playerid] > 0)
  1219.     {
  1220.         new tmp[0x100], reason[0x100], plid;
  1221.         tmp = strtok(cmdtext, idx);
  1222.         plid = strval(tmp);
  1223.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1224.         {
  1225.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/kick\":");
  1226.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/kick [playerid]\" para kickar algu�m.");
  1227.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/kick [playerid] [motivo]\" para kickar algu�m \
  1228.             com um relat�rio da infra��o cometida.");
  1229.             return 1;
  1230.         }
  1231.         if(!strlen(tmp))
  1232.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /kick [playerid] [motivo]");
  1233.         tmp = strtok(cmdtext, idx);
  1234.         reason = tmp;
  1235.         if(IsPlayerConnected(plid))
  1236.         {
  1237.             if(strlen(reason))
  1238.             {
  1239.                 tmp = strtok(cmdtext, idx);
  1240.                 while(strlen(tmp) > 0)
  1241.                 {
  1242.                     strcat(reason, " ");
  1243.                     strcat(reason, tmp);
  1244.                     tmp = strtok(cmdtext,idx);
  1245.                 }
  1246.             }
  1247.             new pname[0x100], pname2[0x100], string[0x100];
  1248.             GetPlayerName(playerid, pname, sizeof pname);
  1249.             GetPlayerName(plid, pname2, sizeof pname2);
  1250.             if(strlen(reason))
  1251.                 format(string, sizeof string , "O admin %s kickou %s, raz�o: %s.", pname, pname2, reason);
  1252.             else
  1253.                 format(string, sizeof string , "O admin %s kickou %s.", pname, pname2);
  1254.             SendClientMessageToAll(0xFF0000AA, string);
  1255.             Kick(plid);
  1256.         } else {
  1257.             SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1258.         }
  1259.         return 1;
  1260.     }
  1261.  
  1262.     if(!strcmp(cmd, "/ban", true) && admin[playerid] > 2)
  1263.     {
  1264.         new tmp[0x100], reason[0x100], plid;
  1265.         tmp = strtok(cmdtext, idx);
  1266.         plid = strval(tmp);
  1267.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1268.         {
  1269.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/ban\":");
  1270.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/ban [playerid]\" para banir algu�m.");
  1271.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/ban [playerid] [motivo]\" para nanir algu�m \
  1272.             com um relat�rio da infra��o cometida.");
  1273.             return 1;
  1274.         }
  1275.         if(!strlen(tmp))
  1276.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /ban [playerid] [motivo]");
  1277.         tmp = strtok(cmdtext, idx);
  1278.         reason = tmp;
  1279.         if(IsPlayerConnected(plid))
  1280.         {
  1281.             if(strlen(reason))
  1282.             {
  1283.                 tmp = strtok(cmdtext, idx);
  1284.                 while(strlen(tmp) > 0)
  1285.                 {
  1286.                     strcat(reason, " ");
  1287.                     strcat(reason, tmp);
  1288.                     tmp = strtok(cmdtext,idx);
  1289.                 }
  1290.             }
  1291.             new pname[0x100], pname2[0x100], string[0x100];
  1292.             GetPlayerName(playerid, pname, sizeof pname);
  1293.             GetPlayerName(plid, pname2, sizeof pname2);
  1294.             if(strlen(reason))
  1295.                 format(string, sizeof string , "O admin %s baniu %s, raz�o: %s.", pname, pname2, reason);
  1296.             else
  1297.                 format(string, sizeof string , "O admin %s baniu %s.", pname, pname2);
  1298.             SendClientMessageToAll(0xFF0000AA, string);
  1299.             Ban(plid);
  1300.         } else {
  1301.             SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1302.         }
  1303.         return 1;
  1304.     }
  1305.  
  1306.     if(!strcmp(cmd, "/congelar", true) && admin[playerid] > 0)
  1307.     {
  1308.         new tmp[0x100], plid, todos, string[0x100], pname[0x100];
  1309.         tmp = strtok(cmdtext, idx);
  1310.         plid = strval(tmp);
  1311.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1312.         {
  1313.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/congelar\":");
  1314.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/congelar [playerid]\" para congelar algu�m.");
  1315.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/congelar * \" (asterisco) para congelar todos \
  1316.             conectados ao server");
  1317.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/descongelar\" para descongelar depois...");
  1318.             return 1;
  1319.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1320.             todos = 1;
  1321.         if(!strlen(tmp))
  1322.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /congelar [playerid|*]");
  1323.         if(todos == 1)
  1324.         {
  1325.             GetPlayerName(playerid, pname, sizeof pname);
  1326.             for(new i; i < MAX_PLAYERS; i++)TogglePlayerControllable(i, 0);
  1327.             format(string, sizeof string , "O admin %s congelou todos no server.", pname);
  1328.             SendClientMessageToAll(0xFFF000AA, string);
  1329.         } else {
  1330.             if(IsPlayerConnected(plid))
  1331.             {
  1332.                 new pname2[0x100];
  1333.                 GetPlayerName(playerid, pname, sizeof pname);
  1334.                 GetPlayerName(plid, pname2, sizeof pname2);
  1335.                 TogglePlayerControllable(plid, 0);
  1336.                 format(string, sizeof string , "O admin %s congelou %s.", pname, pname2);
  1337.                 SendClientMessageToAll(0xFFF000AA, string);
  1338.             } else {
  1339.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1340.             }
  1341.         }
  1342.         return 1;
  1343.     }
  1344.  
  1345.     if(!strcmp(cmd, "/descongelar", true) && admin[playerid] > 0)
  1346.     {
  1347.         new tmp[0x100], plid, todos, string[0x100], pname[0x100];
  1348.         tmp = strtok(cmdtext, idx);
  1349.         plid = strval(tmp);
  1350.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1351.         {
  1352.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/descongelar\":");
  1353.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/descongelar [playerid]\" para congelar algu�m.");
  1354.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/descongelar * \" (asterisco) para congelar \
  1355.             todos conectados ao server");
  1356.             return 1;
  1357.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1358.             todos = 1;
  1359.         if(!strlen(tmp))
  1360.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /descongelar [playerid|*]");
  1361.         if(todos == 1)
  1362.         {
  1363.             GetPlayerName(playerid, pname, sizeof pname);
  1364.             for(new i; i < MAX_PLAYERS; i++)TogglePlayerControllable(i, 1);
  1365.             format(string, sizeof string , "O admin %s descongelou todos no server.", pname);
  1366.             SendClientMessageToAll(0xFFF000AA, string);
  1367.         } else {
  1368.             if(IsPlayerConnected(plid))
  1369.             {
  1370.                 new pname2[0x100];
  1371.                 GetPlayerName(playerid, pname, sizeof pname);
  1372.                 GetPlayerName(plid, pname2, sizeof pname2);
  1373.                 TogglePlayerControllable(plid, 1);
  1374.                 format(string, sizeof string , "O admin %s descongelou %s.", pname, pname2);
  1375.                 SendClientMessageToAll(0xFFF000AA, string);
  1376.             } else {
  1377.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1378.             }
  1379.         }
  1380.         return 1;
  1381.     }
  1382.  
  1383.     if(!strcmp(cmd, "/settime", true) && admin[playerid] > 0)
  1384.     {
  1385.         new tmp[0x100], plid, horas, minutos2, todos, string[0x100], pname[0x100];
  1386.         tmp = strtok(cmdtext, idx);
  1387.         plid = strval(tmp);
  1388.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1389.         {
  1390.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/settime\":");
  1391.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/settime [playerid] [horas] [minutos]\" para \
  1392.             mudar as horas de algu�m.");
  1393.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/settime * [horas] [minutos]\" (asterisco) para \
  1394.             mudar a hora de todos no server.");
  1395.             return 1;
  1396.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1397.             todos = 1;
  1398.         tmp = strtok(cmdtext, idx);
  1399.         horas = strval(tmp);
  1400.         tmp = strtok(cmdtext, idx);
  1401.         minutos2 = strval(tmp);
  1402.         if(!strlen(tmp))
  1403.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /settime [playerid|*] [horas] [minutos]");
  1404.         new hora[0xA], minuto[0xA];
  1405.         if(horas < 10)format(hora, sizeof hora, "0%d", horas);
  1406.         else format(hora, sizeof hora, "%d", horas);
  1407.         if(minutos2 < 10)format(minuto, sizeof minuto, "0%d", minutos2);
  1408.         else format(minuto, sizeof minuto, "%d", horas);
  1409.         if(todos == 1)
  1410.         {
  1411.             GetPlayerName(playerid, pname, sizeof pname);
  1412.             for(new i; i < MAX_PLAYERS; i++)SetPlayerTime(i, horas, minutos2);
  1413.             format(string, sizeof string , "O admin %s setou as horas de todos no server para %s:%s.",
  1414.             pname, hora, minuto);
  1415.             SendClientMessageToAll(0xFFF000AA, string);
  1416.         } else {
  1417.             if(IsPlayerConnected(plid))
  1418.             {
  1419.                 new pname2[0x100];
  1420.                 GetPlayerName(playerid, pname, sizeof pname);
  1421.                 GetPlayerName(plid, pname2, sizeof pname2);
  1422.                 SetPlayerTime(plid, horas, minutos2);
  1423.                 format(string, sizeof string , "O admin %s setou as horas de %s para %s:%s.",
  1424.                 pname, pname2, hora, minuto);
  1425.                 SendClientMessageToAll(0xFFF000AA, string);
  1426.             } else {
  1427.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1428.             }
  1429.         }
  1430.         return 1;
  1431.     }
  1432.  
  1433.     if(!strcmp(cmd, "/setweather", true) && admin[playerid] > 0)
  1434.     {
  1435.         new tmp[0x100], plid, weatherid, todos, string[0x100], pname[0x100];
  1436.         tmp = strtok(cmdtext, idx);
  1437.         plid = strval(tmp);
  1438.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1439.         {
  1440.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/setweather\":");
  1441.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/setweather [playerid] [weatherid]\" para \
  1442.             mudar o clima de algu�m.");
  1443.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/setweather * [weatherid]\" (asterisco) para \
  1444.             mudar o clima de todos no server.");
  1445.             return 1;
  1446.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1447.             todos = 1;
  1448.         tmp = strtok(cmdtext, idx);
  1449.         weatherid = strval(tmp);
  1450.         if(!strlen(tmp))
  1451.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /setweather [playerid|*] [weaherid]");
  1452.         if(todos == 1)
  1453.         {
  1454.             GetPlayerName(playerid, pname, sizeof pname);
  1455.             for(new i; i < MAX_PLAYERS; i++)SetPlayerWeather(i, weatherid);
  1456.             format(string, sizeof string , "O admin %s setou o clima de todos no server para %d.",
  1457.             pname, weatherid);
  1458.             SendClientMessageToAll(0xFFF000AA, string);
  1459.         } else {
  1460.             if(IsPlayerConnected(plid))
  1461.             {
  1462.                 new pname2[0x100];
  1463.                 GetPlayerName(playerid, pname, sizeof pname);
  1464.                 GetPlayerName(plid, pname2, sizeof pname2);
  1465.                 SetPlayerWeather(plid, weatherid);
  1466.                 format(string, sizeof string , "O admin %s setou o clima de %s para %d.",
  1467.                 pname, pname2, weatherid);
  1468.                 SendClientMessageToAll(0xFFF000AA, string);
  1469.             } else {
  1470.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1471.             }
  1472.         }
  1473.         return 1;
  1474.     }
  1475.    
  1476.     if(!strcmp(cmd, "/mutar", true) && admin[playerid] > 1)
  1477.     {
  1478.         new tmp[0x100], plid, todos, string[0x100], pname[0x100];
  1479.         tmp = strtok(cmdtext, idx);
  1480.         plid = strval(tmp);
  1481.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1482.         {
  1483.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/mutar\":");
  1484.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/mutar [playerid]\" para mutar algu�m.");
  1485.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/mutar * \" (asterisco) para mutar todos \
  1486.             conectados ao server");
  1487.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/desmutar\" para desmutar depois...");
  1488.             return 1;
  1489.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1490.             todos = 1;
  1491.         if(!strlen(tmp))
  1492.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /mutar [playerid|*]");
  1493.         if(todos == 1)
  1494.         {
  1495.             GetPlayerName(playerid, pname, sizeof pname);
  1496.             for(new i; i < MAX_PLAYERS; i++)mutado[i] = true;
  1497.             format(string, sizeof string , "O admin %s mutou todos no server.", pname);
  1498.             SendClientMessageToAll(0xFFF000AA, string);
  1499.         } else {
  1500.             if(IsPlayerConnected(plid))
  1501.             {
  1502.                 new pname2[0x100];
  1503.                 GetPlayerName(playerid, pname, sizeof pname);
  1504.                 GetPlayerName(plid, pname2, sizeof pname2);
  1505.                 mutado[plid] = true;
  1506.                 format(string, sizeof string , "O admin %s mutou %s.", pname, pname2);
  1507.                 SendClientMessageToAll(0xFFF000AA, string);
  1508.             } else {
  1509.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1510.             }
  1511.         }
  1512.         return 1;
  1513.     }
  1514.    
  1515.     if(!strcmp(cmd, "/desmutar", true) && admin[playerid] > 1)
  1516.     {
  1517.         new tmp[0x100], plid, todos, string[0x100], pname[0x100];
  1518.         tmp = strtok(cmdtext, idx);
  1519.         plid = strval(tmp);
  1520.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1521.         {
  1522.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/desmutar\":");
  1523.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/desmutar [playerid]\" para desmutar algu�m.");
  1524.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/desmutar * \" (asterisco) para desmutar todos \
  1525.             conectados ao server");
  1526.             return 1;
  1527.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1528.             todos = 1;
  1529.         if(!strlen(tmp))
  1530.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /desmutar [playerid|*]");
  1531.         if(todos == 1)
  1532.         {
  1533.             GetPlayerName(playerid, pname, sizeof pname);
  1534.             for(new i; i < MAX_PLAYERS; i++)mutado[i] = false;
  1535.             format(string, sizeof string , "O admin %s desmutou todos no server.", pname);
  1536.             SendClientMessageToAll(0xFFF000AA, string);
  1537.         } else {
  1538.             if(IsPlayerConnected(plid))
  1539.             {
  1540.                 new pname2[0x100];
  1541.                 GetPlayerName(playerid, pname, sizeof pname);
  1542.                 GetPlayerName(plid, pname2, sizeof pname2);
  1543.                 mutado[plid] = false;
  1544.                 format(string, sizeof string , "O admin %s desmutou %s.", pname, pname2);
  1545.                 SendClientMessageToAll(0xFFF000AA, string);
  1546.             } else {
  1547.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1548.             }
  1549.         }
  1550.         return 1;
  1551.     }
  1552.  
  1553.     if(!strcmp(cmd, "/sethealth", true) && admin[playerid] > 1)
  1554.     {
  1555.         new tmp[0x100], plid, Float:health, todos, string[0x100], pname[0x100];
  1556.         tmp = strtok(cmdtext, idx);
  1557.         plid = strval(tmp);
  1558.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1559.         {
  1560.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/sethealth\":");
  1561.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/sethealth [playerid] [vida]\" para \
  1562.             mudar a vida de algu�m.");
  1563.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/sethealth * [vida]\" (asterisco) para \
  1564.             mudar a vida de todos no server.");
  1565.             return 1;
  1566.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1567.             todos = 1;
  1568.         tmp = strtok(cmdtext, idx);
  1569.         health = floatstr(tmp);
  1570.         if(!strlen(tmp))
  1571.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /sethealth [playerid|*] [vida]");
  1572.         if(todos == 1)
  1573.         {
  1574.             GetPlayerName(playerid, pname, sizeof pname);
  1575.             for(new i; i < MAX_PLAYERS; i++)SetPlayerHealth(i, health);
  1576.             if(health > 0.0)
  1577.                 format(string, sizeof string , "O admin %s setou a vida de todos no server para %.1f.",
  1578.                 pname, health);
  1579.             else
  1580.                 format(string, sizeof string , "O admin %s matou todos no server.", pname);
  1581.             SendClientMessageToAll(0xFFF000AA, string);
  1582.         } else {
  1583.             if(IsPlayerConnected(plid))
  1584.             {
  1585.                 new pname2[0x100];
  1586.                 GetPlayerName(playerid, pname, sizeof pname);
  1587.                 GetPlayerName(plid, pname2, sizeof pname2);
  1588.                 SetPlayerHealth(plid, health);
  1589.                 if(health > 0.0)
  1590.                     format(string, sizeof string , "O admin %s setou a vida de %s para %.1f.",
  1591.                     pname, pname2, health);
  1592.                 else
  1593.                     format(string, sizeof string , "O admin %s matou %s.",
  1594.                     pname, pname2);
  1595.                 SendClientMessageToAll(0xFFF000AA, string);
  1596.             } else {
  1597.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1598.             }
  1599.         }
  1600.         return 1;
  1601.     }
  1602.  
  1603.     if(!strcmp(cmd, "/setarmour", true) && admin[playerid] > 1)
  1604.     {
  1605.         new tmp[0x100], plid, Float:armour, todos, string[0x100], pname[0x100];
  1606.         tmp = strtok(cmdtext, idx);
  1607.         plid = strval(tmp);
  1608.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1609.         {
  1610.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/sethealth\":");
  1611.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/setarmour [playerid] [quantia]\" para \
  1612.             setar o colete de algu�m.");
  1613.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/setarmour * [quantia]\" (asterisco) para \
  1614.             setar o colete de todos no server.");
  1615.             return 1;
  1616.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1617.             todos = 1;
  1618.         tmp = strtok(cmdtext, idx);
  1619.         armour = floatstr(tmp);
  1620.         if(!strlen(tmp))
  1621.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /sethealth [playerid|*] [quantia]");
  1622.         if(todos == 1)
  1623.         {
  1624.             GetPlayerName(playerid, pname, sizeof pname);
  1625.             for(new i; i < MAX_PLAYERS; i++)SetPlayerArmour(i, armour);
  1626.             if(armour > 0.0)
  1627.                 format(string, sizeof string , "O admin %s setou o colete de todos no server para %.1f.",
  1628.                 pname, armour);
  1629.             else
  1630.                 format(string, sizeof string , "O admin %s tirou o colete de todos no server.", pname);
  1631.             SendClientMessageToAll(0xFFF000AA, string);
  1632.         } else {
  1633.             if(IsPlayerConnected(plid))
  1634.             {
  1635.                 new pname2[0x100];
  1636.                 GetPlayerName(playerid, pname, sizeof pname);
  1637.                 GetPlayerName(plid, pname2, sizeof pname2);
  1638.                 SetPlayerHealth(plid, armour);
  1639.                 if(armour > 0.0)
  1640.                     format(string, sizeof string , "O admin %s setou o colete de %s para %.1f.",
  1641.                     pname, pname2, armour);
  1642.                 else
  1643.                     format(string, sizeof string , "O admin %s tirou o colete de %s.",
  1644.                     pname, pname2);
  1645.                 SendClientMessageToAll(0xFFF000AA, string);
  1646.             } else {
  1647.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1648.             }
  1649.         }
  1650.         return 1;
  1651.     }
  1652.    
  1653.     if(!strcmp(cmd, "/givemoney", true) && admin[playerid] > 1)
  1654.     {
  1655.         new tmp[0x100], plid, grana, todos, string[0x100], pname[0x100];
  1656.         tmp = strtok(cmdtext, idx);
  1657.         plid = strval(tmp);
  1658.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1659.         {
  1660.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/givemoney\":");
  1661.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/givemoney [playerid] [quantia]\" para \
  1662.             dar/tirar grana para algu�m.");
  1663.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/givemoney * [quantia]\" (asterisco) para \
  1664.             dar/tirar grana para todos no server.");
  1665.             return 1;
  1666.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1667.             todos = 1;
  1668.         tmp = strtok(cmdtext, idx);
  1669.         grana = strval(tmp);
  1670.         if(!strlen(tmp))
  1671.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /givemoney [playerid|*] [quantia]");
  1672.         if(todos == 1)
  1673.         {
  1674.             GetPlayerName(playerid, pname, sizeof pname);
  1675.             if(grana > 0)
  1676.             {
  1677.                 format(string, sizeof string , "O admin %s deu $%d para todos no server.",
  1678.                 pname, grana);
  1679.                 for(new i; i < MAX_PLAYERS; i++)GivePlayerMoney(i, grana);
  1680.             } else if(grana == 0)
  1681.             {
  1682.                 format(string, sizeof string , "O admin %s resetou a grana de todos no server.", pname);
  1683.                 for(new i; i < MAX_PLAYERS; i++)ResetPlayerMoney(i);
  1684.             } else if(grana < 0)
  1685.             {
  1686.                 format(string, sizeof string , "O admin %s tirou $%d de todos no server.", pname, grana);
  1687.                 for(new i; i < MAX_PLAYERS; i++)GivePlayerMoney(i, grana);
  1688.             }
  1689.             SendClientMessageToAll(0xFFF000AA, string);
  1690.         } else {
  1691.             if(IsPlayerConnected(plid))
  1692.             {
  1693.                 new pname2[0x100];
  1694.                 GetPlayerName(playerid, pname, sizeof pname);
  1695.                 GetPlayerName(plid, pname2, sizeof pname2);
  1696.                 if(grana > 0)
  1697.                 {
  1698.                     format(string, sizeof string , "O admin %s deu $%d para %s.",
  1699.                     pname, grana, pname2);
  1700.                     GivePlayerMoney(plid, grana);
  1701.                 } else if(grana == 0)
  1702.                 {
  1703.                     format(string, sizeof string , "O admin %s resetou a grana %s.", pname, pname2);
  1704.                     ResetPlayerMoney(plid);
  1705.                 } else if(grana < 0)
  1706.                 {
  1707.                     format(string, sizeof string , "O admin %s tirou $%d de %s.", pname, grana, pname2);
  1708.                     GivePlayerMoney(plid, grana);
  1709.                 }
  1710.                 SendClientMessageToAll(0xFFF000AA, string);
  1711.             } else {
  1712.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1713.             }
  1714.         }
  1715.         return 1;
  1716.     }
  1717.  
  1718.     if(!strcmp(cmd, "/ejetar", true) && admin[playerid] > 1)
  1719.     {
  1720.         new tmp[0x100], plid, todos, string[0x100], pname[0x100];
  1721.         tmp = strtok(cmdtext, idx);
  1722.         plid = strval(tmp);
  1723.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1724.         {
  1725.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/ejetar\":");
  1726.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/ejetar [playerid]\" para ejetar algu�m .");
  1727.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/ejetar * \" (asterisco) para ejetar todos \
  1728.             que est�o em um ve�culo");
  1729.             return 1;
  1730.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1731.             todos = 1;
  1732.         if(!strlen(tmp))
  1733.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /ejetar [playerid|*]");
  1734.         if(todos == 1)
  1735.         {
  1736.             GetPlayerName(playerid, pname, sizeof pname);
  1737.             for(new i; i < MAX_PLAYERS; i++)RemovePlayerFromVehicle(i);
  1738.             format(string, sizeof string , "O admin %s ejetou todos que est�o em um ve�culo.", pname);
  1739.             SendClientMessageToAll(0xFFF000AA, string);
  1740.         } else {
  1741.             if(IsPlayerConnected(plid))
  1742.             {
  1743.                 new pname2[0x100];
  1744.                 GetPlayerName(playerid, pname, sizeof pname);
  1745.                 GetPlayerName(plid, pname2, sizeof pname2);
  1746.                 if(IsPlayerInAnyVehicle(plid))
  1747.                 {
  1748.                     RemovePlayerFromVehicle(plid);
  1749.                     format(string, sizeof string , "O admin %s ejetou %s do ve�culo.", pname, pname2);
  1750.                     SendClientMessageToAll(0xFFF000AA, string);
  1751.                 } else {
  1752.                     format(string, sizeof string, "%s n�o est� em um ve�culo!");
  1753.                     SendClientMessage(playerid, 0xFF0000AA, string);
  1754.                 }
  1755.             } else {
  1756.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1757.             }
  1758.         }
  1759.         return 1;
  1760.     }
  1761.  
  1762.     if(!strcmp(cmd, "/giveweapon", true) && admin[playerid] > 2)
  1763.     {
  1764.         new tmp[0x100], plid, armaid, municao, todos, string[0x100], pname[0x100], armaname[0x100];
  1765.         tmp = strtok(cmdtext, idx);
  1766.         plid = strval(tmp);
  1767.         if(!strcmp(tmp, "?", true) && strlen(tmp))
  1768.         {
  1769.             SendClientMessage(playerid, 0xFF0000AA, "Ajuda sobre comando \"/giveweapon\":");
  1770.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/giveweapon [playerid] [armaid] [munu��o]\" para \
  1771.             setar uma arma � algu�m.");
  1772.             SendClientMessage(playerid, 0xFFFFFFAA, "Use \"/giveweapon * [armaid] [mun��o]\" (asterisco) \
  1773.             para setar uma arma � todos no server.");
  1774.             return 1;
  1775.         } else if(!strcmp(tmp, "*", true) && strlen(tmp))
  1776.             todos = 1;
  1777.         tmp = strtok(cmdtext, idx);
  1778.         armaid = strval(tmp);
  1779.         tmp = strtok(cmdtext, idx);
  1780.         municao = strval(tmp);
  1781.         if(!strlen(tmp))
  1782.             return SendClientMessage(playerid, 0xFFFFFFAA, "USE: /giveweapon [playerid|*] [armaid] \
  1783.             [muni��o]");
  1784.         if(armaid < 1 || armaid > 46)
  1785.             return SendClientMessage(playerid, 0xFF0000AA, "Arma inv�lida!");
  1786.         GetWeaponName(armaid, armaname, sizeof armaname);
  1787.         if(todos == 1)
  1788.         {
  1789.             GetPlayerName(playerid, pname, sizeof pname);
  1790.             for(new i; i < MAX_PLAYERS; i++)GivePlayerWeapon(i, armaid, municao);
  1791.             format(string, sizeof string , "O admin %s deu a arma %s(%i) para todos no server.",
  1792.             pname, armaname, armaid);
  1793.             SendClientMessageToAll(0xFFF000AA, string);
  1794.         } else {
  1795.             if(IsPlayerConnected(plid))
  1796.             {
  1797.                 new pname2[0x100];
  1798.                 GetPlayerName(playerid, pname, sizeof pname);
  1799.                 GetPlayerName(plid, pname2, sizeof pname2);
  1800.                 GivePlayerWeapon(plid, armaid, municao);
  1801.                 format(string, sizeof string , "O admin %s deu a arma %s(%i) para %s.",
  1802.                 pname, armaname, armaid, pname2);
  1803.                 SendClientMessageToAll(0xFFF000AA, string);
  1804.             } else {
  1805.                 SendClientMessage(playerid, 0xFF0000AA, "Jogador n�o conectado!");
  1806.             }
  1807.         }
  1808.         return 1;
  1809.     }
  1810.  
  1811.     if(!strcmp(cmdtext, "/gmx", true) && admin[playerid] > 2)
  1812.     {
  1813.         SendClientMessageToAll(0xFF0000AA, "Reiniciando server...");
  1814.         SendRconCommand("gmx");
  1815.         return 1;
  1816.     }
  1817.  
  1818.     if(!strcmp(cmd, "/marcar", true))
  1819.     {
  1820.         new tmp[256];
  1821.         tmp = strtok(cmdtext, idx);
  1822.         new slot = strval(tmp);
  1823.         if(!strlen(tmp))return SendClientMessage(playerid, 0xFFFFFFFAA, "USE: /marcar [slot]");
  1824.         if(slot >= 1 && slot <= 100)
  1825.         {
  1826.             slot--;
  1827.             new Float:x, Float:y, Float:z, Float:a;
  1828.             if(IsPlayerInAnyVehicle(playerid))
  1829.             {
  1830.                 GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  1831.                 GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  1832.             } else {
  1833.                 GetPlayerPos(playerid, x, y, z);
  1834.                 GetPlayerFacingAngle(playerid, a);
  1835.             }
  1836.             gpos[playerid][slot][0] = x;
  1837.             gpos[playerid][slot][1] = y;
  1838.             gpos[playerid][slot][2] = z;
  1839.             gpos[playerid][slot][3] = a;
  1840.             SendClientMessage(playerid, 0xFFFFFFAA, "Salvo.");
  1841.         } else {
  1842.             SendClientMessage(playerid, 0xFFFFFFAA, "Slot inv�lido (1~100).");
  1843.         }
  1844.         return 1;
  1845.     }
  1846.  
  1847.     if(!strcmp(cmd, "/ir", true))
  1848.     {
  1849.         new tmp[256];
  1850.         tmp = strtok(cmdtext, idx);
  1851.         new slot = strval(tmp);
  1852.         if(!strlen(tmp))return SendClientMessage(playerid, 0xFFFFFFFAA, "USE: /ir [slot]");
  1853.         if(slot >= 1 && slot <= 100)
  1854.         {
  1855.             slot--;
  1856.             if(gpos[playerid][slot][0] != 0.0 && gpos[playerid][slot][1] != 0.0)
  1857.             {
  1858.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1859.                 {
  1860.                     SetVehiclePos(GetPlayerVehicleID(playerid),
  1861.                     gpos[playerid][slot][0],
  1862.                     gpos[playerid][slot][1],
  1863.                     gpos[playerid][slot][2]);
  1864.                     SetVehicleZAngle(GetPlayerVehicleID(playerid), gpos[playerid][slot][3]);
  1865.                 } else {
  1866.                     SetPlayerPos(playerid,
  1867.                     gpos[playerid][slot][0],
  1868.                     gpos[playerid][slot][1],
  1869.                     gpos[playerid][slot][2]);
  1870.                     SetPlayerFacingAngle(playerid, gpos[playerid][slot][3]);
  1871.                 }
  1872.                 SendClientMessage(playerid, 0xFFFFFFAA, "Teleportado.");
  1873.             } else {
  1874.                 SendClientMessage(playerid, 0xFFFFFFAA, "Slot vazio!");
  1875.             }
  1876.         } else {
  1877.             SendClientMessage(playerid, 0xFFFFFFAA, "Slot inv�lido (1~100).");
  1878.         }
  1879.         return 1;
  1880.     }
  1881.  
  1882.     return 0;
  1883. }
  1884.  
  1885. public OnPlayerRequestSpawn(playerid)
  1886. {
  1887.     new pname[0x100];
  1888.     GetPlayerName(playerid, pname, sizeof pname);
  1889.     format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1890.     requisitou[playerid] %= 5;
  1891.     requisitou[playerid]++;
  1892.     if(!dini_Exists(pname))
  1893.     {
  1894.         if(requisitou[playerid] < 2)
  1895.             SendClientMessage(playerid, 0xFAFAFAAA, "Registre-se antes de requisitar spawn!");
  1896.         return 0;
  1897.     } else if(dini_Exists(pname) && !logado[playerid])
  1898.     {
  1899.         if(requisitou[playerid] < 2)
  1900.             SendClientMessage(playerid, 0xFAFAFAAA, "Logue-se antes de requisitar spawn!");
  1901.         return 0;
  1902.     }
  1903.     return 1;
  1904. }
  1905.  
  1906. public OnPlayerDisconnect(playerid, reason)
  1907. {
  1908.     for(new i = 0; i < sizeof(Objects); i++)
  1909.     {
  1910.         if(Player[playerid][view][i])
  1911.         {
  1912.             Player[playerid][view][i] = false;
  1913.             DestroyPlayerObject(playerid,Player[playerid][objid][i]);
  1914.         }
  1915.     }
  1916.     if(logado[playerid])
  1917.     {
  1918.         new pname[0x100];
  1919.         GetPlayerName(playerid, pname, sizeof pname);
  1920.         format(pname, sizeof pname, "%s.brazilian.championship.cer", pname);
  1921.         dini_IntSet(pname, "grana", GetPlayerMoney(playerid));
  1922.         dini_IntSet(pname, "score", GetPlayerScore(playerid));
  1923.     }
  1924.     if(playerinevento[playerid])
  1925.     {
  1926.         eventoplayers--;
  1927.         playerinevento[playerid] = false;
  1928.         cpatual[playerid] = 0;
  1929.         progresso[playerid] = 0;
  1930.         for(new s; s < 4; s++)playerpos[playerid][s] = 0.0;
  1931.         for(new s; s < 12; s++)
  1932.         {
  1933.             playerweapon[playerid][s] = 0;
  1934.             playerammo[playerid][s] = 0;
  1935.         }
  1936.         for(new i; i < MAX_PLAYERS; i++)
  1937.         {
  1938.             if(playersevento[i] == playerid)
  1939.             {
  1940.                 playersevento[i] = -1;
  1941.                 break;
  1942.             }
  1943.         }
  1944.         if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  1945.         {
  1946.             TextDrawDestroy(tdposicao[playerid]);
  1947.             TextDrawDestroy(tdappend[playerid]);
  1948.             EraseVehicle(playervehicle[playerid]);
  1949.             vehicleplayer[playervehicle[playerid]] = -1;
  1950.             playervehicle[playerid] = 0;
  1951.         }
  1952.         if(eventoplayers == 1)
  1953.         {
  1954.             new killerid;
  1955.             for(new i; i < MAX_PLAYERS; i++)
  1956.             {
  1957.                 if(playerinevento[i])
  1958.                 {
  1959.                     killerid = i;
  1960.                     break;
  1961.                 }
  1962.             }
  1963.             new string[0x100], pname[MAX_PLAYER_NAME];
  1964.             GetPlayerName(killerid, pname, sizeof pname);
  1965.             format(string, sizeof string, "%s foi o vencedor do evento atual! ganhou $%d!",
  1966.             pname, recompensa);
  1967.             SendClientMessageToAll(0xFF0000AA, string);
  1968.             format(string, sizeof string, "~g~%s ~h~~h~venceu!", pname);
  1969.             GameTextForAll(string, 4000, 1);
  1970.             SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  1971.             queminiciou = -1;
  1972.             if(eventoatual == dm1)
  1973.             {
  1974.                 if(logado[killerid])
  1975.                 {
  1976.                     new pname2[0x100];
  1977.                     GetPlayerName(killerid, pname2, sizeof pname2);
  1978.                     format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  1979.                     dini_IntSet(pname2, "dm1wins", dini_Int(pname2, "dm1wins")+1);
  1980.                 }
  1981.             }
  1982.             if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  1983.             {
  1984.                 TextDrawHideForPlayer(killerid, tdtempo);
  1985.                 TextDrawHideForPlayer(killerid, tdappend[killerid]);
  1986.                 TextDrawHideForPlayer(killerid, tdposicao[killerid]);
  1987.                 TextDrawHideForPlayer(killerid, tdpilotos);
  1988.                 TextDrawSetString(tdtempo, "0:00");
  1989.                 DisablePlayerRaceCheckpoint(killerid);
  1990.                 TextDrawDestroy(tdposicao[killerid]);
  1991.                 TextDrawDestroy(tdappend[killerid]);
  1992.                 EraseVehicle(playervehicle[killerid]);
  1993.                 vehicleplayer[playervehicle[killerid]] = -1;
  1994.                 playervehicle[killerid] = 0;
  1995.                 cpatual[killerid] = 0;
  1996.                 progresso[killerid] = 0;
  1997.                 for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  1998.                 for(new i; i < sizeof cps_race2; i++)cps_race2[i][3] = 0.0;
  1999.                 for(new i; i < sizeof cps_race3; i++)cps_race3[i][3] = 0.0;
  2000.             }
  2001.             for(new i; i < MAX_PLAYERS; i++)
  2002.             {
  2003.                 playersevento[i] = -1;
  2004.                 playerinevento[i] = false;
  2005.                 cpatual[i] = 0;
  2006.             }
  2007.             eventoplayers = 0;
  2008.             eventoatual = -1;
  2009.             eventoiniciado = false;
  2010.             SetCameraBehindPlayer(killerid);
  2011.             ResetPlayerWeapons(killerid);
  2012.             SetPlayerHealth(killerid, playerhealth[killerid][0]);
  2013.             SetPlayerArmour(killerid, playerhealth[killerid][1]);
  2014.             for(new s; s < 12; s++)
  2015.             {
  2016.                 GivePlayerWeapon(killerid, playerweapon[killerid][s],
  2017.                 playerammo[killerid][s]);
  2018.                 playerweapon[killerid][s] = 0;
  2019.                 playerammo[killerid][s] = 0;
  2020.             }
  2021.             GivePlayerMoney(killerid, recompensa);
  2022.             SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  2023.             if(logado[killerid])
  2024.             {
  2025.                 new pname2[0x100];
  2026.                 GetPlayerName(killerid, pname2, sizeof pname);
  2027.                 format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  2028.                 dini_IntSet(pname2, "grana", GetPlayerMoney(killerid));
  2029.                 dini_IntSet(pname2, "score", GetPlayerScore(killerid));
  2030.             }
  2031.             recompensa = 0;
  2032.             eventorodando = false;
  2033.             eventomaxplayers = 0;
  2034.         }
  2035.         if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2036.         {
  2037.             if(eventoplayers < 1)
  2038.             {
  2039.                 SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  2040.                 queminiciou = -1;
  2041.                 TextDrawSetString(tdtempo, "0:00");
  2042.                 eventorodando = false;
  2043.                 eventomaxplayers = 0;
  2044.                 eventoiniciado = false;
  2045.                 KillTimer(timetimer);
  2046.                 for(new i; i < MAX_PLAYERS; i++)
  2047.                 {
  2048.                     playersevento[i] = -1;
  2049.                     playerinevento[i] = false;
  2050.                     cpatual[i] = 0;
  2051.                 }
  2052.                 DisablePlayerRaceCheckpoint(playerid);
  2053.                 TextDrawDestroy(tdposicao[playerid]);
  2054.                 TextDrawDestroy(tdappend[playerid]);
  2055.                 EraseVehicle(playervehicle[playerid]);
  2056.                 vehicleplayer[playervehicle[playerid]] = -1;
  2057.                 playervehicle[playerid] = 0;
  2058.             }
  2059.         }
  2060.     }
  2061.     return 1;
  2062. }
  2063.  
  2064. public OnPlayerDeath(playerid, killerid, reason)
  2065. {
  2066.     if(playerinevento[playerid])
  2067.     {
  2068.         eventoplayers--;
  2069.         playerinevento[playerid] = false;
  2070.         cpatual[playerid] = 0;
  2071.         progresso[playerid] = 0;
  2072.         SendClientMessage(playerid, 0xFF0000AA, "Voc� perdeu o evento!");
  2073.         if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2074.         {
  2075.             TextDrawHideForPlayer(playerid, tdtempo);
  2076.             TextDrawHideForPlayer(playerid, tdappend[playerid]);
  2077.             TextDrawHideForPlayer(playerid, tdposicao[playerid]);
  2078.             TextDrawHideForPlayer(playerid, tdpilotos);
  2079.             DisablePlayerRaceCheckpoint(playerid);
  2080.             TextDrawDestroy(tdposicao[playerid]);
  2081.             TextDrawDestroy(tdappend[playerid]);
  2082.             EraseVehicle(playervehicle[playerid]);
  2083.             vehicleplayer[playervehicle[playerid]] = -1;
  2084.             playervehicle[playerid] = 0;
  2085.         }
  2086.         SetPlayerPos(playerid, playerpos[playerid][0],
  2087.         playerpos[playerid][1], playerpos[playerid][2]);
  2088.         for(new s; s < 4; s++)playerpos[playerid][s] = 0.0;
  2089.         SetPlayerFacingAngle(playerid, playerpos[playerid][3]);
  2090.         SetCameraBehindPlayer(playerid);
  2091.         ResetPlayerWeapons(playerid);
  2092.         SetPlayerHealth(playerid, playerhealth[playerid][0]);
  2093.         SetPlayerArmour(playerid, playerhealth[playerid][1]);
  2094.         for(new s; s < 2; s++)playerhealth[playerid][s] = 0.0;
  2095.         for(new s; s < 12; s++)
  2096.         {
  2097.             GivePlayerWeapon(playerid, playerweapon[playerid][s],
  2098.             playerammo[playerid][s]);
  2099.             playerweapon[playerid][s] = 0;
  2100.             playerammo[playerid][s] = 0;
  2101.         }
  2102.         for(new i; i < MAX_PLAYERS; i++)
  2103.         {
  2104.             if(playersevento[i] == playerid)
  2105.             {
  2106.                 playersevento[i] = -1;
  2107.                 break;
  2108.             }
  2109.         }
  2110.         if(eventoplayers == 1)
  2111.         {
  2112.             for(new i; i < MAX_PLAYERS; i++)
  2113.             {
  2114.                 if(playerinevento[i])
  2115.                 {
  2116.                     killerid = i;
  2117.                     break;
  2118.                 }
  2119.             }
  2120.             new string[0x100], pname[MAX_PLAYER_NAME];
  2121.             GetPlayerName(killerid, pname, sizeof pname);
  2122.             format(string, sizeof string, "%s foi o vencedor do evento atual! ganhou $%d!",
  2123.             pname, recompensa);
  2124.             SendClientMessageToAll(0xFF0000AA, string);
  2125.             format(string, sizeof string, "~g~%s ~h~~h~venceu!", pname);
  2126.             GameTextForAll(string, 4000, 1);
  2127.             SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  2128.             queminiciou = -1;
  2129.             if(eventoatual == dm1)
  2130.             {
  2131.                 if(logado[killerid])
  2132.                 {
  2133.                     new pname2[0x100];
  2134.                     GetPlayerName(killerid, pname2, sizeof pname2);
  2135.                     format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  2136.                     dini_IntSet(pname2, "dm1wins", dini_Int(pname2, "dm1wins")+1);
  2137.                 }
  2138.             }
  2139.             if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2140.             {
  2141.                 TextDrawHideForPlayer(killerid, tdtempo);
  2142.                 TextDrawHideForPlayer(killerid, tdappend[killerid]);
  2143.                 TextDrawHideForPlayer(killerid, tdposicao[killerid]);
  2144.                 TextDrawHideForPlayer(killerid, tdpilotos);
  2145.                 TextDrawSetString(tdtempo, "0:00");
  2146.                 DisablePlayerRaceCheckpoint(killerid);
  2147.                 TextDrawDestroy(tdposicao[killerid]);
  2148.                 TextDrawDestroy(tdappend[killerid]);
  2149.                 EraseVehicle(playervehicle[killerid]);
  2150.                 vehicleplayer[playervehicle[killerid]] = -1;
  2151.                 playervehicle[killerid] = 0;
  2152.                 cpatual[killerid] = 0;
  2153.                 progresso[killerid] = 0;
  2154.                 for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  2155.                 for(new i; i < sizeof cps_race2; i++)cps_race2[i][3] = 0.0;
  2156.                 for(new i; i < sizeof cps_race3; i++)cps_race3[i][3] = 0.0;
  2157.             }
  2158.             for(new i; i < MAX_PLAYERS; i++)
  2159.             {
  2160.                 playersevento[i] = -1;
  2161.                 playerinevento[i] = false;
  2162.                 cpatual[i] = 0;
  2163.             }
  2164.             eventoplayers = 0;
  2165.             eventoatual = -1;
  2166.             eventoiniciado = false;
  2167.             SetPlayerPos(killerid, playerpos[killerid][0],
  2168.             playerpos[killerid][1], playerpos[killerid][2]);
  2169.             for(new s; s < 4; s++)playerpos[killerid][s] = 0.0;
  2170.             SetPlayerFacingAngle(killerid, playerpos[killerid][3]);
  2171.             SetCameraBehindPlayer(killerid);
  2172.             ResetPlayerWeapons(killerid);
  2173.             SetPlayerHealth(killerid, playerhealth[killerid][0]);
  2174.             SetPlayerArmour(killerid, playerhealth[killerid][1]);
  2175.             for(new s; s < 2; s++)playerhealth[killerid][s] = 0.0;
  2176.             for(new s; s < 12; s++)
  2177.             {
  2178.                 GivePlayerWeapon(killerid, playerweapon[killerid][s],
  2179.                 playerammo[killerid][s]);
  2180.                 playerweapon[killerid][s] = 0;
  2181.                 playerammo[killerid][s] = 0;
  2182.             }
  2183.             GivePlayerMoney(killerid, recompensa);
  2184.             SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  2185.             if(logado[killerid])
  2186.             {
  2187.                 new pname2[0x100];
  2188.                 GetPlayerName(killerid, pname2, sizeof pname2);
  2189.                 format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  2190.                 dini_IntSet(pname2, "grana", GetPlayerMoney(killerid));
  2191.                 dini_IntSet(pname2, "score", GetPlayerScore(killerid));
  2192.             }
  2193.             recompensa = 0;
  2194.             eventorodando = false;
  2195.             eventomaxplayers = 0;
  2196.         }
  2197.         if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2198.         {
  2199.             if(eventoplayers < 1)
  2200.             {
  2201.                 SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  2202.                 queminiciou = -1;
  2203.                 TextDrawSetString(tdtempo, "0:00");
  2204.                 eventorodando = false;
  2205.                 eventomaxplayers = 0;
  2206.                 eventoiniciado = false;
  2207.                 KillTimer(timetimer);
  2208.                 for(new i; i < MAX_PLAYERS; i++)
  2209.                 {
  2210.                     playersevento[i] = -1;
  2211.                     playerinevento[i] = false;
  2212.                     cpatual[i] = 0;
  2213.                 }
  2214.             }
  2215.             TextDrawHideForPlayer(playerid, tdtempo);
  2216.             TextDrawHideForPlayer(playerid, tdappend[playerid]);
  2217.             TextDrawHideForPlayer(playerid, tdposicao[playerid]);
  2218.             TextDrawHideForPlayer(playerid, tdpilotos);
  2219.             DisablePlayerRaceCheckpoint(playerid);
  2220.             TextDrawDestroy(tdposicao[playerid]);
  2221.             TextDrawDestroy(tdappend[playerid]);
  2222.             EraseVehicle(playervehicle[playerid]);
  2223.             vehicleplayer[playervehicle[playerid]] = -1;
  2224.             playervehicle[playerid] = 0;
  2225.         }
  2226.     }
  2227.     return 1;
  2228. }
  2229.  
  2230. public OnVehicleDeath(vehicleid)
  2231. {
  2232.     if((vehicleplayer[vehicleid] > -1) && playerinevento[vehicleplayer[vehicleid]])
  2233.         OnPlayerDeath(vehicleplayer[vehicleid], INVALID_PLAYER_ID, 0);
  2234.     return 1;
  2235. }
  2236.  
  2237. public OnPlayerEnterRaceCheckpoint(playerid)
  2238. {
  2239.     if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 411 &&
  2240.     playerinevento[playerid])
  2241.     {
  2242.         progresso[playerid]++;
  2243.         if(eventoatual == race1)
  2244.         {
  2245.             cps_race1[progresso[playerid]-1][3]++;
  2246.             posicao[playerid] = floatround(cps_race1[progresso[playerid]-1][3], floatround_floor);
  2247.         } else if(eventoatual == race2)
  2248.         {
  2249.             cps_race2[progresso[playerid]-1][3]++;
  2250.             posicao[playerid] = floatround(cps_race2[progresso[playerid]-1][3], floatround_floor);
  2251.         } else if(eventoatual == race3)
  2252.         {
  2253.             cps_race3[progresso[playerid]-1][3]++;
  2254.             posicao[playerid] = floatround(cps_race3[progresso[playerid]-1][3], floatround_floor);
  2255.         }
  2256.         new tmp[5];
  2257.         format(tmp, sizeof tmp, "%d", posicao[playerid]);
  2258.         TextDrawSetString(tdposicao[playerid], tmp);
  2259.         if((eventoatual == race1 && cpatual[playerid] >= 0 && cpatual[playerid] < 30))
  2260.         {
  2261.             SetPlayerRaceCheckpoint(playerid, 0,
  2262.             cps_race1[cpatual[playerid]+1][0],
  2263.             cps_race1[cpatual[playerid]+1][1],
  2264.             cps_race1[cpatual[playerid]+1][2],
  2265.             cps_race1[cpatual[playerid]+2][0],
  2266.             cps_race1[cpatual[playerid]+2][1],
  2267.             cps_race1[cpatual[playerid]+2][2], 8.0);
  2268.             cpatual[playerid]++;
  2269.         } else if((eventoatual == race2 && cpatual[playerid] >= 0 && cpatual[playerid] < 32))
  2270.         {
  2271.             SetPlayerRaceCheckpoint(playerid, 0,
  2272.             cps_race2[cpatual[playerid]+1][0],
  2273.             cps_race2[cpatual[playerid]+1][1],
  2274.             cps_race2[cpatual[playerid]+1][2],
  2275.             cps_race2[cpatual[playerid]+2][0],
  2276.             cps_race2[cpatual[playerid]+2][1],
  2277.             cps_race2[cpatual[playerid]+2][2], 8.0);
  2278.             cpatual[playerid]++;
  2279.         } else if((eventoatual == race3 && cpatual[playerid] >= 0 && cpatual[playerid] < 27))
  2280.         {
  2281.             SetPlayerRaceCheckpoint(playerid, 0,
  2282.             cps_race3[cpatual[playerid]+1][0],
  2283.             cps_race3[cpatual[playerid]+1][1],
  2284.             cps_race3[cpatual[playerid]+1][2],
  2285.             cps_race3[cpatual[playerid]+2][0],
  2286.             cps_race3[cpatual[playerid]+2][1],
  2287.             cps_race3[cpatual[playerid]+2][2], 8.0);
  2288.             cpatual[playerid]++;
  2289.         } else if((eventoatual == race1 && cpatual[playerid] == 30))
  2290.         {
  2291.             SetPlayerRaceCheckpoint(playerid, 1,
  2292.             cps_race1[cpatual[playerid]+1][0],
  2293.             cps_race1[cpatual[playerid]+1][1],
  2294.             cps_race1[cpatual[playerid]+1][2],
  2295.             0, 0, 0, 8.0);
  2296.             cpatual[playerid] = 31;
  2297.         } else if((eventoatual == race2 && cpatual[playerid] == 32))
  2298.         {
  2299.             SetPlayerRaceCheckpoint(playerid, 1,
  2300.             cps_race2[cpatual[playerid]+1][0],
  2301.             cps_race2[cpatual[playerid]+1][1],
  2302.             cps_race2[cpatual[playerid]+1][2],
  2303.             0, 0, 0, 8.0);
  2304.             cpatual[playerid] = 33;
  2305.         } else if((eventoatual == race3 && cpatual[playerid] == 27))
  2306.         {
  2307.             SetPlayerRaceCheckpoint(playerid, 1,
  2308.             cps_race3[cpatual[playerid]+1][0],
  2309.             cps_race3[cpatual[playerid]+1][1],
  2310.             cps_race3[cpatual[playerid]+1][2],
  2311.             0, 0, 0, 8.0);
  2312.             cpatual[playerid] = 28;
  2313.         } else if((eventoatual == race1 && cpatual[playerid] == 31) ||
  2314.         (eventoatual == race2 && cpatual[playerid] == 33) ||
  2315.         (eventoatual == race3 && cpatual[playerid] == 28))
  2316.         {
  2317.             new string[0x100], pname[MAX_PLAYER_NAME];
  2318.             GetPlayerName(playerid, pname, sizeof pname);
  2319.             eventoplayers--;
  2320.             EraseVehicle(playervehicle[playerid]);
  2321.             vehicleplayer[playervehicle[playerid]] = -1;
  2322.             playervehicle[playerid] = 0;
  2323.             playerinevento[playerid] = false;
  2324.             SetCameraBehindPlayer(playerid);
  2325.             ResetPlayerWeapons(playerid);
  2326.             SetPlayerHealth(playerid, playerhealth[playerid][0]);
  2327.             SetPlayerArmour(playerid, playerhealth[playerid][1]);
  2328.             for(new s; s < 2; s++)playerhealth[playerid][s] = 0.0;
  2329.             for(new s; s < 12; s++)
  2330.             {
  2331.                 GivePlayerWeapon(playerid, playerweapon[playerid][s],
  2332.                 playerammo[playerid][s]);
  2333.                 playerweapon[playerid][s] = 0;
  2334.                 playerammo[playerid][s] = 0;
  2335.             }
  2336.             for(new i; i < MAX_PLAYERS; i++)
  2337.             {
  2338.                 if(playersevento[i] == playerid)
  2339.                 {
  2340.                     playersevento[i] = -1;
  2341.                     break;
  2342.                 }
  2343.             }
  2344.             if(posicao[playerid] != 1)
  2345.             {
  2346.                 lugares++;
  2347.                 new tempo, timestamp, msegundos;
  2348.                 timestamp = GetTickCount();
  2349.                 tempo = (corridastarttempo != 0) ? (timestamp - corridastarttempo) : (0);
  2350.                 minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  2351.                 segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  2352.                 msegundos = floatround(floatmul(floatmul(floatdiv(tempo,
  2353.                 60000) - minutos, 60) - segundos, 1000), floatround_tozero);
  2354.                 gindex = 0;
  2355.                 while (segundos > 9)
  2356.                 {
  2357.                     segundos -= 0xA;
  2358.                     gindex++;
  2359.                 }
  2360.                 new msec[0xA];
  2361.                 if(msegundos < 10)format(msec, sizeof msec, "000%d", msegundos);
  2362.                 if(msegundos > 9 && msegundos < 100)format(msec, sizeof msec, "00%d", msegundos);
  2363.                 if(msegundos > 99 && msegundos < 1000)format(msec, sizeof msec, "0%d", msegundos);
  2364.                 if(msegundos == 1000)format(msec, sizeof msec, "%d", msegundos);
  2365.                 new pname2[0x100];
  2366.                 GetPlayerName(playerid, pname2, sizeof pname);
  2367.                 format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  2368.                 if(logado[playerid])
  2369.                 {
  2370.                     if(eventoatual == race1)
  2371.                     {
  2372.                         if(dini_Int(pname2, "race1bestscore") == 0)
  2373.                              dini_IntSet(pname2, "race1bestscore", tempo);
  2374.                         else if(tempo < dini_Int(pname2, "race1bestscore"))
  2375.                             dini_IntSet(pname2, "race1bestscore", tempo);
  2376.                     } else if(eventoatual == race2)
  2377.                     {
  2378.                         if(dini_Int(pname2, "race2bestscore") == 0)
  2379.                              dini_IntSet(pname2, "race2bestscore", tempo);
  2380.                         else if(tempo < dini_Int(pname2, "race2bestscore"))
  2381.                             dini_IntSet(pname2, "race2bestscore", tempo);
  2382.                     } else if(eventoatual == race3)
  2383.                     {
  2384.                         if(dini_Int(pname2, "race3bestscore") == 0)
  2385.                              dini_IntSet(pname2, "race3bestscore", tempo);
  2386.                         else if(tempo < dini_Int(pname2, "race3bestscore"))
  2387.                             dini_IntSet(pname2, "race3bestscore", tempo);
  2388.                     }
  2389.                 }
  2390.                 format(string, sizeof string, "%s terminou em %d� lugar a corrida (%d:%d%d:%s).",
  2391.                 pname, posicao[playerid], minutos, gindex, segundos, msec);
  2392.                 SendClientMessageToAll(0xFFF000AA, string);
  2393.                 TextDrawHideForPlayer(playerid, tdtempo);
  2394.                 TextDrawHideForPlayer(playerid, tdappend[playerid]);
  2395.                 TextDrawHideForPlayer(playerid, tdposicao[playerid]);
  2396.                 TextDrawHideForPlayer(playerid, tdpilotos);
  2397.                 TextDrawDestroy(tdposicao[playerid]);
  2398.                 TextDrawDestroy(tdappend[playerid]);
  2399.                 cpatual[playerid] = 0;
  2400.                 progresso[playerid] = 0;
  2401.                 if(lugares == eventoplayers)
  2402.                 {
  2403.                     SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  2404.                     queminiciou = -1;
  2405.                     TextDrawSetString(tdtempo, "0:00");
  2406.                     eventoatual = -1;
  2407.                     eventorodando = false;
  2408.                     eventomaxplayers = 0;
  2409.                     eventoiniciado = false;
  2410.                     KillTimer(timetimer);
  2411.                     for(new i; i < MAX_PLAYERS; i++)
  2412.                     {
  2413.                         playersevento[i] = -1;
  2414.                         playerinevento[i] = false;
  2415.                         cpatual[i] = 0;
  2416.                         progresso[i] = 0;
  2417.                     }
  2418.                     for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  2419.                 }
  2420.             } else if(posicao[playerid])
  2421.             {
  2422.                 new tempo, timestamp, msegundos;
  2423.                 timestamp = GetTickCount();
  2424.                 tempo = (corridastarttempo != 0) ? (timestamp - corridastarttempo) : (0);
  2425.                 minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  2426.                 segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  2427.                 msegundos = floatround(floatmul(floatmul(floatdiv(tempo,
  2428.                 60000) - minutos, 60) - segundos, 1000), floatround_tozero);
  2429.                 gindex = 0;
  2430.                 while (segundos > 9)
  2431.                 {
  2432.                     segundos -= 0xA;
  2433.                     gindex++;
  2434.                 }
  2435.                 new msec[0xA];
  2436.                 if(msegundos < 10)format(msec, sizeof msec, "000%d", msegundos);
  2437.                 if(msegundos > 9 && msegundos < 100)format(msec, sizeof msec, "00%d", msegundos);
  2438.                 if(msegundos > 99 && msegundos < 1000)format(msec, sizeof msec, "0%d", msegundos);
  2439.                 if(msegundos == 1000)format(msec, sizeof msec, "%d", msegundos);
  2440.                 new pname2[0x100];
  2441.                 GetPlayerName(playerid, pname2, sizeof pname);
  2442.                 format(pname2, sizeof pname2, "%s.brazilian.championship.cer", pname2);
  2443.                 if(logado[playerid])
  2444.                 {
  2445.                     if(eventoatual == race1)
  2446.                     {
  2447.                         dini_IntSet(pname2, "race1wins", dini_Int(pname2, "race1wins")+1);
  2448.                         if(dini_Int(pname2, "race1bestscore") == 0)
  2449.                              dini_IntSet(pname2, "race1bestscore", tempo);
  2450.                         else if(tempo < dini_Int(pname2, "race1bestscore"))
  2451.                             dini_IntSet(pname2, "race1bestscore", tempo);
  2452.                     } else if(eventoatual == race2)
  2453.                     {
  2454.                         dini_IntSet(pname2, "race2wins", dini_Int(pname2, "race2wins")+1);
  2455.                         if(dini_Int(pname2, "race2bestscore") == 0)
  2456.                              dini_IntSet(pname2, "race2bestscore", tempo);
  2457.                         else if(tempo < dini_Int(pname2, "race2bestscore"))
  2458.                             dini_IntSet(pname2, "race2bestscore", tempo);
  2459.                     } else if(eventoatual == race3)
  2460.                     {
  2461.                         dini_IntSet(pname2, "race3wins", dini_Int(pname2, "race3wins")+1);
  2462.                         if(dini_Int(pname2, "race3bestscore") == 0)
  2463.                              dini_IntSet(pname2, "race3bestscore", tempo);
  2464.                         else if(tempo < dini_Int(pname2, "race3bestscore"))
  2465.                             dini_IntSet(pname2, "race3bestscore", tempo);
  2466.                     }
  2467.                 }
  2468.                 format(string, sizeof string, "%s terminou em 1� lugar a corrida (%d:%d%d:%s)!",
  2469.                 pname, minutos, gindex, segundos, msec);
  2470.                 SendClientMessageToAll(0xFFF000AA, string);
  2471.                 GivePlayerMoney(playerid, recompensa);
  2472.                 SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
  2473.                 if(logado[playerid])
  2474.                 {
  2475.                     dini_IntSet(pname, "grana", GetPlayerMoney(playerid));
  2476.                     dini_IntSet(pname, "score", GetPlayerScore(playerid));
  2477.                 }
  2478.                 recompensa = 0;
  2479.                 lugares = 1;
  2480.                 cpatual[playerid] = 0;
  2481.                 progresso[playerid] = 0;
  2482.                 TextDrawHideForPlayer(playerid, tdtempo);
  2483.                 TextDrawHideForPlayer(playerid, tdappend[playerid]);
  2484.                 TextDrawHideForPlayer(playerid, tdposicao[playerid]);
  2485.                 TextDrawHideForPlayer(playerid, tdpilotos);
  2486.                 TextDrawDestroy(tdposicao[playerid]);
  2487.                 TextDrawDestroy(tdappend[playerid]);
  2488.                 if(lugares == eventoplayers+1)
  2489.                 {
  2490.                     SendClientMessageToAll(0xFF0000AA, "O evento foi encerrado.");
  2491.                     queminiciou = -1;
  2492.                     TextDrawSetString(tdtempo, "0:00");
  2493.                     eventorodando = false;
  2494.                     eventomaxplayers = 0;
  2495.                     eventoiniciado = false;
  2496.                     KillTimer(timetimer);
  2497.                     for(new i; i < MAX_PLAYERS; i++)
  2498.                     {
  2499.                         playersevento[i] = -1;
  2500.                         playerinevento[i] = false;
  2501.                         cpatual[i] = 0;
  2502.                         progresso[i] = 0;
  2503.                     }
  2504.                     for(new i; i < sizeof cps_race1; i++)cps_race1[i][3] = 0.0;
  2505.                 }
  2506.             }
  2507.             DisablePlayerRaceCheckpoint(playerid);
  2508.         }
  2509.         new Float:x, Float:y, Float:z;
  2510.         GetPlayerPos(playerid, x, y, z);
  2511.         PlayerPlaySound(playerid, 1137, x, y, z);
  2512.     }
  2513.     return 1;
  2514. }
  2515.  
  2516. public IniciarEvento()
  2517. {
  2518.     SendClientMessageToAll(0xFF0000AA, "Tempo de entrada do evento esgotado.");
  2519.     if(eventoatual == dm1)
  2520.     {
  2521.         if(eventoplayers > 1)
  2522.         {
  2523.             eventorodando = true;
  2524.             SendClientMessageToAll(0xFF0000AA, "Iniciando evento em 10 segundos...");
  2525.             SetTimer("CountDown", 1000, 0);
  2526.         } else {
  2527.             SendClientMessageToAll(0xFF0000AA, "N�o houve jogadores o bastante para come�ar o evento... \
  2528.             cancelado.");
  2529.             eventoplayers = 0;
  2530.             eventoatual = -1;
  2531.             eventoiniciado = false;
  2532.             queminiciou = -1;
  2533.             for(new i; i < MAX_PLAYERS; i++)
  2534.             {
  2535.                 if(playersevento[i] > -1)
  2536.                 {
  2537.                     TogglePlayerControllable(playersevento[i], 1);
  2538.                     SetPlayerPos(playersevento[i], playerpos[playersevento[i]][0],
  2539.                     playerpos[playersevento[i]][1], playerpos[playersevento[i]][2]);
  2540.                     for(new s; s < 4; s++)playerpos[playersevento[i]][s] = 0.0;
  2541.                     SetPlayerFacingAngle(playersevento[i], playerpos[playersevento[i]][3]);
  2542.                     SetCameraBehindPlayer(playersevento[i]);
  2543.                     ResetPlayerWeapons(playersevento[i]);
  2544.                     for(new s; s < 12; s++)
  2545.                     {
  2546.                         GivePlayerWeapon(playersevento[i], playerweapon[playersevento[i]][s],
  2547.                         playerammo[playersevento[i]][s]);
  2548.                         playerweapon[playersevento[i]][s] = 0;
  2549.                         playerammo[playersevento[i]][s] = 0;
  2550.                     }
  2551.                     SetPlayerHealth(playersevento[i], playerhealth[playersevento[i]][0]);
  2552.                     SetPlayerArmour(playersevento[i], playerhealth[playersevento[i]][1]);
  2553.                     for(new s; s < 2; s++)playerhealth[playersevento[i]][s] = 0.0;
  2554.                 }
  2555.             }
  2556.             for(new i; i < MAX_PLAYERS; i++)
  2557.             {
  2558.                 playersevento[i] = -1;
  2559.                 playerinevento[i] = false;
  2560.             }
  2561.             recompensa = 0;
  2562.             eventorodando = false;
  2563.             eventomaxplayers = 0;
  2564.         }
  2565.     } else if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2566.     {
  2567.         if(eventoplayers > 0)
  2568.         {
  2569.             eventorodando = true;
  2570.             eventocount = 0x5;
  2571.             SendClientMessageToAll(0xFF0000AA, "Iniciando corrida em 5 segundos...");
  2572.             SetTimer("CountDown", 1000, 0);
  2573.         } else {
  2574.             SendClientMessageToAll(0xFF0000AA, "N�o houve nenhum jogador para come�ar o evento... \
  2575.             cancelado.");
  2576.             recompensa = 0;
  2577.             eventorodando = false;
  2578.             eventomaxplayers = 0;
  2579.             eventoplayers = 0;
  2580.             eventoatual = -1;
  2581.             eventoiniciado = false;
  2582.             queminiciou = -1;
  2583.         }
  2584.     }
  2585. }
  2586.  
  2587. public CountDown()
  2588. {
  2589.     new string[0xF];
  2590.     if(eventocount > 0)
  2591.     {
  2592.         format(string, sizeof string, "~r~%d", eventocount);
  2593.         for(new i; i < MAX_PLAYERS; i++)
  2594.         {
  2595.             if(playersevento[i] > -1)
  2596.             {
  2597.                 PlayerPlaySound(playersevento[i], 1056, 0.0, 0.0, 0.0);
  2598.                 GameTextForPlayer(playersevento[i], string, 1000, 3);
  2599.             }
  2600.         }
  2601.         eventocount--;
  2602.         SetTimer("CountDown", 1000, 0);
  2603.     } else {
  2604.         for(new i; i < MAX_PLAYERS; i++)
  2605.         {
  2606.             if(playersevento[i] > -1)
  2607.             {
  2608.                 GameTextForPlayer(playersevento[i], "~g~JA!", 1000, 3);
  2609.                 TogglePlayerControllable(playersevento[i], 1);
  2610.                 PlayerPlaySound(playersevento[i], 1057, 0.0, 0.0, 0.0);
  2611.                 if(eventoatual == race1 || eventoatual == race2 || eventoatual == race3)
  2612.                 {
  2613.                     corridastarttempo = GetTickCount();
  2614.                     timetimer = SetTimer("AtualizarTempo", 1000, 1);
  2615.                 }
  2616.             }
  2617.         }
  2618.         eventocount = 0xA;
  2619.     }
  2620. }
  2621.  
  2622. public AtualizarTempo()
  2623. {
  2624.     new tempo, timestamp;
  2625.     timestamp = GetTickCount();
  2626.     tempo = (corridastarttempo != 0) ? (timestamp - corridastarttempo) : (0);
  2627.     minutos = floatround(floatdiv(tempo, 60000), floatround_tozero);
  2628.     segundos = floatround(floatmul(floatdiv(tempo, 60000) - minutos, 60), floatround_tozero);
  2629.     gindex = 0;
  2630.     while (segundos > 9)
  2631.     {
  2632.         segundos -= 0xA;
  2633.         gindex++;
  2634.     }
  2635.     new tmp[0xA];
  2636.     format(tmp, sizeof tmp, "%d:%d%d", minutos, gindex, segundos);
  2637.     TextDrawSetString(tdtempo, tmp);
  2638. }
  2639.  
  2640. public Timer()
  2641. {
  2642.     for(new i = 0; i < MAX_PLAYERS; i++)
  2643.         if(IsPlayerConnected(i))
  2644.             PlayerObjectUpdate(i);
  2645. }
  2646.  
  2647. public SetPlayerPosWithObjects(playerid,Float:x,Float:y,Float:z)
  2648. {
  2649.     for(new i = 0; i < sizeof(Objects); i++)
  2650.     {
  2651.         if(!Player[playerid][view][i])
  2652.         {
  2653.             if(IsInReach(x,y,z,Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
  2654.             {
  2655.                 Player[playerid][view][i] = true;
  2656.                 Player[playerid][objid][i] = CreatePlayerObject(playerid,Objects[i][modelid],Objects[i][ox],
  2657.                 Objects[i][oy],Objects[i][oz],Objects[i][orx],Objects[i][ory],Objects[i][orz]);
  2658.             }
  2659.         } else if(!IsInReach(x,y,z,Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
  2660.         {
  2661.             Player[playerid][view][i] = false;
  2662.             DestroyPlayerObject(playerid,Player[playerid][objid][i]);
  2663.         }
  2664.     }
  2665.     SetPlayerPos(playerid,Float:x,Float:y,Float:z);
  2666. }
  2667.  
  2668. public TempoComandoPlayer(playerid)
  2669. {
  2670.     podeiniciar[playerid] = true;
  2671.     KillTimer(playertimer[playerid]);
  2672. }
  2673.  
  2674. public VehRes(vehicleid)
  2675.     return DestroyVehicle(vehicleid);
  2676.    
  2677. public OnPlayerSpawn(playerid)
  2678.     PlayerObjectUpdate(playerid);
  2679.    
  2680. stock PlayerObjectUpdate(playerid)
  2681. {
  2682.     new Float:pos[3];
  2683.     GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  2684.     for(new i = 0; i < sizeof(Objects); i++)
  2685.     {
  2686.         if(!Player[playerid][view][i])
  2687.         {
  2688.             if(IsInReach(pos[0],pos[1],pos[2],Objects[i][ox],Objects[i][oy],Objects[i][oz],
  2689.             Objects[i][viewdist]))
  2690.             {
  2691.                 Player[playerid][view][i] = true;
  2692.                 Player[playerid][objid][i] = CreatePlayerObject(playerid,Objects[i][modelid],
  2693.                 Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][orx],Objects[i][ory],
  2694.                 Objects[i][orz]);
  2695.             }
  2696.         } else if(!IsInReach(pos[0],pos[1],pos[2],Objects[i][ox],Objects[i][oy],Objects[i][oz],
  2697.         Objects[i][viewdist]))
  2698.         {
  2699.             Player[playerid][view][i] = false;
  2700.             DestroyPlayerObject(playerid,Player[playerid][objid][i]);
  2701.         }
  2702.     }
  2703. }
  2704.  
  2705. stock EraseVehicle(vehicleid)
  2706. {
  2707.     for(new i; i < MAX_PLAYERS; i++)
  2708.     {
  2709.         new Float:x, Float:y, Float:z;
  2710.         if(IsPlayerInVehicle(i, vehicleid))
  2711.         {
  2712.             GetPlayerPos(i, x, y, z);
  2713.             SetPlayerPos(i, x, y, z + 0x2);
  2714.             SetVehicleToRespawn(vehicleid);
  2715.             if(playerinevento[i] && (eventoatual == race1 || eventoatual == race2 || eventoatual == race3))
  2716.             {
  2717.                 SetPlayerPos(i, playerpos[i][0], playerpos[i][1], playerpos[i][2]);
  2718.                 SetPlayerFacingAngle(i, playerpos[i][3]);
  2719.                 for(new s; s < 4; s++)playerpos[i][s] = 0.0;
  2720.                 vehicleplayer[playervehicle[i]] = -1;
  2721.                 playervehicle[i] = 0;
  2722.             }
  2723.         }
  2724.         SetVehicleParamsForPlayer(vehicleid, i, 0x0, 0x1);
  2725.     }
  2726.     SetTimerEx("VehRes", 0xBB8, 0x0, "i", vehicleid);
  2727. }
  2728.  
  2729. stock isnumeric(const string[])
  2730. {
  2731.     for (new i = 0, j = strlen(string); i < j; i++)
  2732.     {
  2733.         if (string[i] > '9' || string[i] < '0') return 0;
  2734.     }
  2735.     return 1;
  2736. }
Add Comment
Please, Sign In to add comment