Guest User

Untitled

a guest
May 31st, 2012
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 54.42 KB | None | 0 0
  1. /*
  2. Yvo's cops and robbers scripts To do's and to Fix and to adds!
  3.  
  4. To add:
  5. Commands for players
  6. Admin commands
  7. Saving In SQLi
  8. Adding Vehicle Dealerships,
  9. Rob spots
  10.  
  11. */
  12.  
  13. #include <a_samp>
  14. #include <zcmd>
  15. #include <mysql>
  16. #include <sscanf2>
  17.  
  18. native WP_Hash(buffer[], len, const str[]);
  19.  
  20. #define REGISTER_DIALOG     (0)
  21. #define LOGIN_DIALOG        (1)
  22.  
  23. #define MYSQL_HOSTNAME      "localhost"
  24. #define MYSQL_USERNAME      "4926_yvoms"
  25. #define MYSQL_PASSWORD      "password"
  26. #define MYSQL_DATABASE      "users"
  27.  
  28. #define START_MONEY         (1000)
  29. #define SERVER_WEBSITE      "www.carboncr.org"
  30.  
  31. #define ANTI_BAN_EVADE
  32.  
  33.  
  34.  
  35. //Color Define's
  36. #define COLOR_INFO 0x007F7FFF
  37. #define COLOR_WHITE 0xFFFFFFAA
  38. #define COLOR_GREY 0xAFAFAFAA
  39. #define COLOR_GREEN 0x33AA33AA
  40. #define COLOR_RED 0xFF0000AA
  41. #define COLOR_YELLOW 0xFFFF00AA
  42. #define COLOR_VIOLETBLUE 0x8A2BE2AA
  43. #define COLOR_DEADCONNECT 0x808080AA
  44. #define COLOR_BLUE 0x0000FFAA
  45. #define COLOR_FORESTGREEN 0x228B22AA
  46. #define COLOR_DODGERBLUE 0x1E90FFAA
  47. #define COLOR_DARKOLIVEGREEN 0x556B2FAA
  48. #define COLOR_ORANGE 0xFFA500AA
  49. #define COLOR_PURPLE 0x800080AA
  50. #define COLOR_ROYALBLUE 0x4169FFAA
  51. #define COLOR_ERROR 0xD2691EAA
  52. #define COLOR_PINK 0xFF0080FF
  53. #define COLOR_SEXYGREEN 0x00FF00FF
  54. #define COLOR_LIGHTBLUE 0x33CCFFAA
  55. #define COLOR_LIME 0x10F441AA
  56. #define COLOR_ADMIN 0x10F441AA
  57. #define COLOR_CYAN 0x40FFFFFF
  58. #define COLOR_ORANGERED 0xFF4500AA
  59.  
  60. //forwards
  61. forward SetPlayerToTeamColour(playerid);
  62. forward ConnectMySQL();
  63.  
  64. //Define's and News
  65. new gTeam[MAX_PLAYERS];
  66.  
  67.  
  68. #define TEAM_COP 1
  69. #define TEAM_ARMY 2
  70. #define TEAM_MEDIC 3
  71. #define TEAM_CARFIX 4
  72. #define TEAM_CIA 5
  73. #define TEAM_DRIVER 6
  74. #define TEAM_BISTRO 7
  75. #define TEAM_JAILTK 8
  76. #define TEAM_PVTMED 9
  77. #define TEAM_CIVIL 10
  78. #define TEAM_GASDEL 11
  79. #define TEAM_DRGDEL 12
  80. #define TEAM_HITMAN 13
  81. #define TEAM_GUNDEL 14
  82. #define TEAM_SNITCH 15
  83. #define TEAM_RAPIST 16
  84. #define TEAM_BOUNTY 17
  85. #define TEAM_KIDNAP 18
  86. #define TEAM_DJUNKIE 19
  87. #define TEAM_THIEF 20
  88. #define TEAM_PIMP 21
  89. #define TEAM_PILOT 22
  90. #define TEAM_SMUG 23
  91. #define TEAM_TERRO 24
  92. #define TEAM_CARJACK 25
  93. #define TEAM_FIRE 26
  94. #define TEAM_EGG 27
  95.  
  96. enum PlayerInfo
  97. {
  98.     AdminLevel,
  99.     Score,
  100.     Money,
  101.     Kills,
  102.     Deaths
  103. }
  104.  
  105. new
  106.     PlayerData[MAX_PLAYERS][PlayerInfo],
  107.     IsPlayerLoggedIn[MAX_PLAYERS],
  108.     MySQL:Connection,
  109.     Text:Credits
  110. ;
  111.  
  112. public OnFilterScriptInit()
  113. {
  114.     print("\n*****************************************");
  115.     print("|Connected With the database!");
  116.     print("*****************************************\n");
  117.  
  118.     Credits = TextDrawCreate(534.000000, 439.000000, "Created by yvoms");
  119.     TextDrawBackgroundColor(Credits, 255);
  120.     TextDrawFont(Credits, 2);
  121.     TextDrawLetterSize(Credits, 0.219999, 0.799998);
  122.     TextDrawColor(Credits, 0xFFFFFF);
  123.     TextDrawUseBox(Credits, 1);
  124.     TextDrawBoxColor(Credits, 255);
  125.     TextDrawTextSize(Credits, 641.000000, 0.000000);
  126.     TextDrawHideForAll(Credits);
  127.     Connection = mysql_init();
  128.     mysql_connect(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE, Connection, 1);
  129.     return true;
  130. }
  131.  
  132. public OnFilterScriptExit()
  133. {
  134.     print("\n*****************************************");
  135.     print("|Disconnected From The database");
  136.     print("*****************************************\n");
  137.  
  138.     for(new i = 0; i < MAX_PLAYERS; i++)
  139.     {
  140.         if(IsPlayerLoggedIn[i] == 1 && IsPlayerConnected(i))
  141.         {
  142.             SavePlayerAccount(i);
  143.             IsPlayerLoggedIn[i] = 0;
  144.         }
  145.     }
  146.     TextDrawDestroy(Credits);
  147.     mysql_close(Connection);
  148.     return true;
  149. }
  150.  
  151. COMMAND:ban(playerid, params[])
  152. {
  153.     if(GetPlayerAdminLevel(playerid) <= 2) return SendClientMessage(playerid, COLOR_ERROR, "You are not authorized to use this command!");
  154.     {
  155.         new targetid, reason[128];
  156.         if(sscanf(params, "us[128]", targetid, reason)) return SendClientMessage(playerid, COLOR_ERROR, "USAGE: /ban (playerid | name) (reason)");
  157.         else if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_ERROR, "That player is not connected!");
  158.         {
  159.             new string[128];
  160.             format(string, sizeof(string), "[ADMIN BAN] %s has banned %s for %s", PlayerName(playerid), PlayerName(targetid), reason);
  161.             SendClientMessageToAll(COLOR_INFO, string);
  162.  
  163.             format(string, sizeof(string), "You have been banned from this server | Reason: %s", reason);
  164.             SendClientMessage(targetid, COLOR_WHITE, string);
  165.  
  166.             SendClientMessage(playerid, COLOR_INFO, "Player Banned!");
  167.             BanPlayer(targetid, PlayerName(playerid), reason);
  168.         }
  169.     }
  170.     return true;
  171. }
  172.  
  173. main()
  174. {
  175.     print("\n----------------------------------");
  176.     print(" San fierro cops and robbers");
  177.     print("----------------------------------\n");
  178. }
  179.  
  180. public OnGameModeInit()
  181. {
  182.     SetGameModeText("San fierro Cops and robbers");
  183.  
  184.         // player classes
  185.     AddPlayerClass(266,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police City officer
  186.     AddPlayerClass(211,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Female Cityofficer
  187.     AddPlayerClass(265,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Cityofficer
  188.     AddPlayerClass(267,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Cityofficer
  189.     AddPlayerClass(283,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Officer
  190.     AddPlayerClass(284,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Officer
  191.     AddPlayerClass(285,-1590.5083,716.0220,-5.2422,269.2736,3,1,22,50,29,500);  //Police Officer
  192.     AddPlayerClass(286,-1722.3170,1018.0255,17.5859,88.8758,3,1,22,50,29,500);  //FBI agent
  193.     AddPlayerClass(287,2941.0012,468.3174,21.6395,49.3062,24,50,30,500,34,20);  //Special forces officer
  194.     AddPlayerClass(164,-1590.5083,716.0220,-5.2422,269.2736,23,100,25,50,0,0);  //CIA agent
  195.     AddPlayerClass(71,-1261.6409,38.9104,14.1387,226.4688,3,1,22,50,29,500);    //Police Air support
  196.     AddPlayerClass(71,-1552.3872,1275.2610,7.1845,177.3413,3,1,22,50,29,500);   //Marine
  197.     AddPlayerClass(276,1624.2527,1821.0498,10.8203,5.6779,22,50,0,0,0,0);       //Medic
  198.     AddPlayerClass(50,2006.1929,2295.9451,10.8203,177.4306,22,50,0,0,0,0);      //Mechanic
  199.     AddPlayerClass(133,1151.7200,1399.4144,5.8203,0.9030,22,50,0,0,0,0);        //Driver Male
  200.     AddPlayerClass(151,1151.7200,1399.4144,5.8203,0.9030,22,50,0,0,0,0);        //Driver Female
  201.     AddPlayerClass(12,2090.1008,2078.2600,10.8203,263.0699,0,0,0,0,0,0);        //Civilian
  202.     AddPlayerClass(23,2090.1008,2078.2600,10.8203,263.0699,0,0,0,0,0,0);        //Civilian
  203.     AddPlayerClass(29,2815.0498,2254.1252,10.8203,158.6954,0,0,0,0,0,0);        //Civilian
  204.     AddPlayerClass(294,2814.0542,2253.4043,10.8203,315.9051,0,0,0,0,0,0);       //Civilian
  205.     AddPlayerClass(214,2812.1963,2247.7256,10.8203,352.8735,0,0,0,0,0,0);       //Civilian
  206.     AddPlayerClass(1,2634.0793,1072.6293,10.8203,88.4012,0,0,0,0,0,0);          //Civilian
  207.     AddPlayerClass(15,2634.0793,1072.6293,10.8203,88.4012,0,0,0,0,0,0);         //Civilian
  208.     AddPlayerClass(34,2634.0793,1072.6293,10.8203,88.4012,0,0,0,0,0,0);         //Civilian
  209.     AddPlayerClass(2,2193.6528,2007.7402,12.2894,1.8574,0,0,0,0,0,0);           //Civilian
  210.     AddPlayerClass(9,2193.6528,2007.7402,12.2894,1.8574,0,0,0,0,0,0);           //Civilian
  211.     AddPlayerClass(19,2193.6528,2007.7402,12.2894,1.8574,0,0,0,0,0,0);          //Civilian
  212.     AddPlayerClass(22,2193.6528,2007.7402,12.2894,1.8574,0,0,0,0,0,0);          //Civilian
  213.     AddPlayerClass(26,2082.0784,2480.8333,10.8203,182.0390,0,0,0,0,0,0);        //Civilian
  214.     AddPlayerClass(31,2082.0784,2480.8333,10.8203,182.0390,0,0,0,0,0,0);        //Civilian
  215.     AddPlayerClass(45,2082.0784,2480.8333,10.8203,182.0390,0,0,0,0,0,0);        //Civilian
  216.     AddPlayerClass(46,2082.0784,2480.8333,10.8203,182.0390,0,0,0,0,0,0);        //Civilian
  217.     AddPlayerClass(9,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);         //Civilian
  218.     AddPlayerClass(13,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  219.     AddPlayerClass(14,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  220.     AddPlayerClass(24,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  221.     AddPlayerClass(33,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  222.     AddPlayerClass(36,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  223.     AddPlayerClass(38,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  224.     AddPlayerClass(160,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  225.     AddPlayerClass(82,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  226.     AddPlayerClass(107,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  227.     AddPlayerClass(59,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  228.     AddPlayerClass(127,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  229.     AddPlayerClass(128,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  230.     AddPlayerClass(138,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  231.     AddPlayerClass(28,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);        //Civilian
  232.     AddPlayerClass(147,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  233.     AddPlayerClass(299,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  234.     AddPlayerClass(123,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  235.     AddPlayerClass(204,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  236.     AddPlayerClass(249,2193.7366,2007.4865,12.2894,358.2378,15,1,15,500,28,500);//Civilian
  237.     AddPlayerClass(264,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  238.     AddPlayerClass(269,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  239.     AddPlayerClass(270,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  240.     AddPlayerClass(293,2193.5884,2007.4149,12.2894,355.9373,0,0,0,0,0,0);       //Civilian
  241.     AddPlayerClass(271,2193.7366,2007.4865,12.2894,358.2378,0,0,0,0,0,0);       //Civilian
  242.     AddPlayerClass(298,2193.5884,2007.4149,12.2894,355.9373,0,0,0,0,0,0);       //Civilian
  243.  
  244.     //Vehicles
  245.     AddStaticVehicleEx(413,-2572.82810000,817.25430000,50.07340000,179.82530000,-1,-1,900); //Pony
  246.     AddStaticVehicleEx(413,-2764.22290000,4.87720000,7.06760000,5.00160000,-1,-1,900); //Pony
  247.     AddStaticVehicleEx(413,-2105.39330000,901.40830000,76.59570000,1.53260000,-1,-1,900); //Pony
  248.     AddStaticVehicleEx(489,-1676.39150000,437.36540000,7.32290000,224.89370000,-1,-1,900); //Rancher
  249.     AddStaticVehicleEx(589,-1676.45250000,437.16620000,6.83770000,227.33390000,-1,-1,900); //Club
  250.     AddStaticVehicleEx(477,-1674.49130000,439.58490000,6.93490000,226.75390000,-1,-1,900); //ZR-350
  251.     AddStaticVehicleEx(411,-2089.83280000,-83.09030000,34.90500000,0.16610000,-1,-1,900); //Infernus
  252.     AddStaticVehicleEx(404,-1669.44010000,406.41520000,6.91370000,316.86990000,-1,-1,900); //Perrenial
  253.     AddStaticVehicleEx(561,-1674.79500000,438.31980000,6.99320000,229.25410000,-1,-1,900); //Stratum
  254.     AddStaticVehicleEx(493,-1769.10440000,-191.40140000,-0.09240000,182.87860000,-1,-1,900); //Jetmax
  255.     AddStaticVehicleEx(470,-1543.86910000,477.67210000,7.17530000,83.15120000,-1,-1,900); //Patriot
  256.     AddStaticVehicleEx(452,-1753.03990000,-191.30690000,-0.49320000,178.53570000,-1,-1,900); //Speeder
  257.     AddStaticVehicleEx(562,-1922.97960000,281.38710000,40.70920000,183.55140000,-1,-1,900); //Elegy
  258.     AddStaticVehicleEx(486,-2109.52490000,144.55770000,35.30330000,92.87470000,-1,-1,900); //Dozer
  259.     AddStaticVehicleEx(571,-2211.55710000,114.47790000,34.60410000,90.24370000,-1,-1,900); //Kart
  260.     AddStaticVehicleEx(558,-2265.55350000,200.41640000,34.79490000,271.54760000,-1,-1,900); //Uranus
  261.     AddStaticVehicleEx(527,-2265.87520000,128.80040000,34.88910000,270.35960000,-1,-1,900); //Cadrona
  262.     AddStaticVehicleEx(426,-2265.17600000,141.08560000,34.90020000,268.78800000,-1,-1,900); //Premier
  263.     AddStaticVehicleEx(402,-2773.85620000,-311.68830000,6.87060000,181.31560000,-1,-1,900); //Buffalo
  264.     AddStaticVehicleEx(534,-2765.94070000,-311.59730000,6.76380000,182.97190000,-1,-1,900); //Remington
  265.     AddStaticVehicleEx(480,-1800.66250000,967.60600000,24.50590000,179.86120000,-1,-1,900); //Comet
  266.     AddStaticVehicleEx(551,-1800.61170000,947.20010000,24.53660000,179.55430000,-1,-1,900); //Merit
  267.     AddStaticVehicleEx(477,-1930.44300000,910.69400000,37.96110000,269.79150000,-1,-1,900); //ZR-350
  268.     AddStaticVehicleEx(492,-1907.27100000,876.67620000,34.87310000,179.65690000,-1,-1,900); //Greenwood
  269.     AddStaticVehicleEx(589,-1996.18800000,805.17630000,45.03460000,359.61890000,-1,-1,900); //Club
  270.     AddStaticVehicleEx(404,-1891.36020000,749.56350000,45.10240000,1.06050000,-1,-1,900); //Perrenial
  271.     AddStaticVehicleEx(400,-1931.58870000,723.32990000,45.45950000,269.96630000,-1,-1,900); //Landstalker
  272.     AddStaticVehicleEx(567,-1978.06590000,723.27500000,45.23970000,270.28630000,-1,-1,900); //Savanna
  273.     AddStaticVehicleEx(575,-2124.51810000,655.25420000,51.96990000,89.71740000,-1,-1,900); //Broadway
  274.     AddStaticVehicleEx(466,-2151.93530000,518.23850000,34.83230000,180.40020000,-1,-1,900); //Glendale
  275.     AddStaticVehicleEx(412,-2274.41530000,700.62220000,49.20580000,181.25760000,-1,-1,900); //Voodoo
  276.     AddStaticVehicleEx(418,-2197.04790000,644.90340000,49.53190000,93.09500000,-1,-1,900); //Moonbeam
  277.     AddStaticVehicleEx(419,-2308.25170000,573.83860000,33.09040000,90.20650000,-1,-1,900); //Esperanto
  278.     AddStaticVehicleEx(401,-2380.39530000,606.43660000,29.32300000,359.60890000,-1,-1,900); //Bravura
  279.     AddStaticVehicleEx(410,-2394.61350000,649.70150000,34.74570000,179.78720000,-1,-1,900); //Manana
  280.     AddStaticVehicleEx(415,-2578.16310000,713.88790000,27.65570000,88.84100000,-1,-1,900); //Cheetah
  281.     AddStaticVehicleEx(491,-2645.34060000,725.19040000,27.71720000,179.80090000,-1,-1,900); //Virgo
  282.     AddStaticVehicleEx(496,-2756.51050000,708.20290000,40.91270000,180.99490000,-1,-1,900); //Blista Compact
  283.     AddStaticVehicleEx(500,-2756.40990000,631.31150000,27.92580000,178.08960000,-1,-1,900); //Mesa
  284.     AddStaticVehicleEx(429,-2469.16040000,902.71390000,62.67690000,269.02420000,-1,-1,900); //Banshee
  285.     AddStaticVehicleEx(526,-2451.43360000,741.12570000,34.78230000,180.81120000,-1,-1,900); //Fortune
  286.     AddStaticVehicleEx(536,-2833.76170000,681.45920000,20.12360000,201.18450000,-1,-1,900); //Blade
  287.     AddStaticVehicleEx(540,-2802.67020000,861.90860000,43.84030000,0.28020000,-1,-1,900); //Vincent
  288.     AddStaticVehicleEx(527,-2828.83590000,607.58310000,5.88330000,177.27280000,-1,-1,900); //Cadrona
  289.     AddStaticVehicleEx(560,-2881.80790000,506.10120000,4.61830000,181.26110000,-1,-1,900); //Sultan
  290.     AddStaticVehicleEx(551,-2927.46140000,499.03380000,4.71090000,270.81710000,-1,-1,900); //Merit
  291.     AddStaticVehicleEx(554,-2911.28640000,506.27330000,4.99710000,181.35670000,-1,-1,900); //Yosemite
  292.     AddStaticVehicleEx(492,-2898.24760000,419.99080000,4.69590000,358.53070000,-1,-1,900); //Greenwood
  293.     AddStaticVehicleEx(496,-2927.33230000,445.14500000,4.63040000,271.58690000,-1,-1,900); //Blista Compact
  294.     AddStaticVehicleEx(461,-2980.29270000,484.73860000,4.49720000,180.80410000,-1,-1,900); //PCJ-600
  295.     AddStaticVehicleEx(493,-2970.25200000,492.43340000,-0.68790000,0.94290000,-1,-1,900); //Jetmax
  296.     AddStaticVehicleEx(493,-2982.74730000,492.45550000,-0.38380000,0.07140000,-1,-1,900); //Jetmax
  297.     AddStaticVehicleEx(500,-2970.88550000,458.01810000,5.02260000,358.88880000,-1,-1,900); //Mesa
  298.     AddStaticVehicleEx(573,-2553.48600000,2272.38800000,5.68900000,334.54000000,-1,-1,900); //Duneride
  299.     AddStaticVehicleEx(573,-2392.98800000,2219.30200000,4.54900000,88.60000000,-1,-1,900); //Duneride
  300.     AddStaticVehicleEx(532,-46.32000000,-10.04500000,2.69000000,77.20000000,-1,-1,900); //Combine
  301.     AddStaticVehicleEx(532,-365.94200000,-1440.50900000,25.29800000,83.87000000,-1,-1,900); //Combine
  302.     AddStaticVehicleEx(531,-377.87300000,-1050.07900000,58.65100000,257.42000000,-1,-1,900); //Tractor
  303.     AddStaticVehicleEx(478,-369.62800000,-1061.14500000,58.78500000,7.09000000,-1,-1,900); //Walton
  304.     AddStaticVehicleEx(531,-90.73500000,-36.59500000,1.70000000,337.51000000,-1,-1,900); //Tractor
  305.     AddStaticVehicleEx(493,-1509.84700000,1386.38500000,0.26100000,91.60000000,-1,-1,900); //Jetmax
  306.     AddStaticVehicleEx(409,-1940.19520000,1192.82790000,45.32050000,359.64750000,-1,-1,900); //Stretch
  307.     AddStaticVehicleEx(409,-2634.60860000,1396.18630000,6.97620000,283.61830000,-1,-1,900); //Stretch
  308.     AddStaticVehicleEx(482,-2645.28910000,1369.92810000,7.04360000,269.27580000,-1,-1,900); //Burrito
  309.     AddStaticVehicleEx(421,-2645.22560000,1356.08760000,7.04330000,272.09000000,-1,-1,900); //Washington
  310.     AddStaticVehicleEx(462,-2416.79740000,332.25730000,34.60000000,148.23670000,-1,-1,900); //Faggio
  311.     AddStaticVehicleEx(448,-2693.10280000,230.39680000,3.96710000,269.96410000,-1,-1,900); //Pizzaboy
  312.     AddStaticVehicleEx(448,-2693.18210000,234.01520000,3.96590000,270.75220000,-1,-1,900); //Pizzaboy
  313.     AddStaticVehicleEx(448,-2693.02050000,237.80530000,3.96700000,270.69440000,-1,-1,900); //Pizzaboy
  314.     AddStaticVehicleEx(457,-2381.16650000,-213.80440000,42.47260000,197.10280000,-1,-1,900); //Caddy
  315.     AddStaticVehicleEx(457,-2375.05830000,-210.64540000,42.46970000,196.89650000,-1,-1,900); //Caddy
  316.     AddStaticVehicleEx(457,-2367.47270000,-208.92190000,42.46430000,182.96580000,-1,-1,900); //Caddy
  317.     AddStaticVehicleEx(530,-2182.76170000,-264.75460000,36.51560000,284.06560000,-1,-1,900); //Forklift
  318.     AddStaticVehicleEx(400,-2175.92580000,293.32520000,35.10970000,0.71800000,-1,-1,900); //Landstalker
  319.     AddStaticVehicleEx(589,-2223.00050000,306.08810000,35.10960000,0.35770000,-1,-1,900); //Club
  320.     AddStaticVehicleEx(444,-2235.39990000,305.97950000,35.10950000,0.36010000,-1,-1,900); //Monster
  321.     AddStaticVehicleEx(562,-2235.32590000,293.68930000,35.10980000,0.35560000,-1,-1,900); //Elegy
  322.     AddStaticVehicleEx(434,-2171.53420000,305.85670000,35.10930000,0.68020000,-1,-1,900); //Hotknife
  323.     AddStaticVehicleEx(577,-1269.78050000,-367.43380000,14.02310000,275.83430000,-1,-1,900); //AT-400
  324.     AddStaticVehicleEx(583,-1276.03530000,-294.72700000,14.02340000,279.82700000,-1,-1,900); //Tug
  325.     AddStaticVehicleEx(608,-1286.26110000,-296.49810000,14.02350000,279.82710000,-1,-1,900); //Stair Trailer
  326.     AddStaticVehicleEx(487,-1383.27800000,-229.13620000,14.70740000,319.77220000,-1,-1,900); //Maverick
  327.     AddStaticVehicleEx(487,-1343.33870000,-281.76910000,14.71560000,326.25200000,-1,-1,900); //Maverick
  328.     AddStaticVehicleEx(553,-1606.87850000,-300.61390000,14.70140000,55.50230000,-1,-1,900); //Nevada
  329.     AddStaticVehicleEx(553,-1571.18550000,-271.27550000,14.70350000,28.13140000,-1,-1,900); //Nevada
  330.     AddStaticVehicleEx(567,-2172.29600000,-209.41900000,34.89100000,269.49000000,-1,-1,900); //Savanna
  331.     AddStaticVehicleEx(535,-2152.58600000,-167.04600000,34.89100000,262.63000000,-1,-1,900); //Slamvan
  332.     AddStaticVehicleEx(413,-2115.12600000,-136.26700000,34.89000000,94.01000000,-1,-1,900); //Pony
  333.     AddStaticVehicleEx(516,-2425.28780000,741.18580000,34.84930000,0.49550000,-1,-1,900); //Nebula
  334.     AddStaticVehicleEx(517,-2438.35010000,741.58330000,34.87050000,180.18000000,-1,-1,900); //Majestic
  335.     AddStaticVehicleEx(518,-2473.14700000,741.27200000,34.68650000,180.46420000,-1,-1,900); //Buccaneer
  336.     AddStaticVehicleEx(400,-2532.31910000,729.65740000,28.95850000,179.91550000,-1,-1,900); //Landstalker
  337.     AddStaticVehicleEx(551,-2573.67310000,626.30830000,27.60670000,180.28700000,-1,-1,900); //Merit
  338.     AddStaticVehicleEx(543,-2670.36230000,632.61800000,14.27090000,89.82080000,-1,-1,900); //Sadler
  339.     AddStaticVehicleEx(422,-2732.13350000,511.21440000,9.06370000,221.93800000,-1,-1,900); //Bobcat
  340.     AddStaticVehicleEx(445,-2859.63260000,409.81330000,4.33720000,179.27780000,-1,-1,900); //Admiral
  341.     AddStaticVehicleEx(410,-2681.64010000,268.23090000,3.99060000,359.56140000,-1,-1,900); //Manana
  342.     AddStaticVehicleEx(559,-2688.42380000,268.22390000,3.99230000,179.74880000,-1,-1,900); //Jester
  343.     AddStaticVehicleEx(445,-2641.31030000,232.57020000,4.12540000,181.24050000,-1,-1,900); //Admiral
  344.     AddStaticVehicleEx(551,-2654.20070000,209.54250000,4.12800000,270.00210000,-1,-1,900); //Merit
  345.     AddStaticVehicleEx(409,-2757.23140000,371.10860000,4.14790000,180.80930000,-1,-1,900); //Stretch
  346.     AddStaticVehicleEx(492,-2655.61650000,350.38100000,4.16450000,180.49030000,-1,-1,900); //Greenwood
  347.     AddStaticVehicleEx(412,-2723.50050000,76.12780000,4.17400000,269.90830000,-1,-1,900); //Voodoo
  348.     AddStaticVehicleEx(410,-2654.86890000,61.99260000,3.79520000,181.17380000,-1,-1,900); //Manana
  349.     AddStaticVehicleEx(521,-2673.04640000,-34.24880000,3.90580000,359.83470000,-1,-1,900); //FCR-900
  350.     AddStaticVehicleEx(419,-2689.64580000,-22.60490000,4.13340000,181.15830000,-1,-1,900); //Esperanto
  351.     AddStaticVehicleEx(492,-2713.08010000,-130.97660000,4.11000000,179.56490000,-1,-1,900); //Greenwood
  352.     AddStaticVehicleEx(466,-2598.34470000,-183.90280000,4.07000000,0.27700000,-1,-1,900); //Glendale
  353.     AddStaticVehicleEx(571,-2645.73580000,-289.21200000,6.78740000,313.23190000,-1,-1,900); //Kart
  354.     AddStaticVehicleEx(571,-2660.48930000,-290.17650000,6.72170000,135.09810000,-1,-1,900); //Kart
  355.     AddStaticVehicleEx(571,-2464.91820000,-256.24290000,38.85980000,317.28490000,-1,-1,900); //Kart
  356.     AddStaticVehicleEx(471,-2648.96170000,-286.21980000,6.98910000,133.11770000,-1,-1,900); //Quad
  357.     AddStaticVehicleEx(471,-2573.02320000,-290.44230000,22.88980000,190.34240000,-1,-1,900); //Quad
  358.     AddStaticVehicleEx(550,-1495.65700000,907.59300000,6.76600000,89.58000000,-1,-1,900); //Sunrise
  359.     AddStaticVehicleEx(445,-2315.11890000,-125.83960000,35.18730000,359.69690000,-1,-1,900); //Admiral
  360.     AddStaticVehicleEx(498,-2318.91240000,-160.03480000,35.49760000,178.45160000,-1,-1,900); //Boxville
  361.     AddStaticVehicleEx(419,-2348.48510000,-126.04350000,35.10990000,359.76930000,-1,-1,900); //Esperanto
  362.     AddStaticVehicleEx(556,-2161.18990000,-444.02060000,35.71830000,315.48250000,-1,-1,900); //Monster A
  363.     AddStaticVehicleEx(557,-2161.36940000,-409.96300000,35.71080000,43.34120000,-1,-1,900); //Monster B
  364.     AddStaticVehicleEx(504,-2185.71240000,-375.16930000,35.19030000,88.74770000,-1,-1,900); //Bloodring Banger
  365.     AddStaticVehicleEx(519,-1363.49410000,-487.18310000,15.09390000,204.02290000,-1,-1,900); //Shamal
  366.     AddStaticVehicleEx(476,-1434.92570000,-507.10260000,14.89080000,206.28880000,-1,-1,900); //Rustler
  367.     AddStaticVehicleEx(476,-1446.33640000,-512.62400000,14.89960000,207.49700000,-1,-1,900); //Rustler
  368.     AddStaticVehicleEx(476,-1458.59270000,-518.55440000,14.89860000,207.11310000,-1,-1,900); //Rustler
  369.     AddStaticVehicleEx(519,-1337.70040000,-277.54500000,15.06930000,293.88900000,-1,-1,900); //Shamal
  370.     AddStaticVehicleEx(511,-1353.29960000,-257.57260000,15.52090000,314.48990000,-1,-1,900); //Beagle
  371.     AddStaticVehicleEx(513,-1398.39670000,-220.96720000,14.69170000,156.41050000,-1,-1,900); //Stunt
  372.     AddStaticVehicleEx(511,-1622.95800000,-130.68640000,15.52550000,314.27040000,-1,-1,900); //Beagle
  373.     AddStaticVehicleEx(498,-1720.55790000,-122.27010000,3.61770000,44.83850000,-1,-1,900); //Boxville
  374.     AddStaticVehicleEx(413,-1548.31450000,120.05450000,3.62340000,314.67560000,-1,-1,900); //Pony
  375.     AddStaticVehicleEx(487,-1563.68350000,62.82170000,17.49760000,316.50230000,-1,-1,900); //Maverick
  376.     AddStaticVehicleEx(430,-1632.17800000,161.89040000,-0.12420000,136.08660000,-1,-1,900); //Predator
  377.     AddStaticVehicleEx(413,-1739.41500000,170.60100000,3.63790000,180.24080000,-1,-1,900); //Pony
  378.     AddStaticVehicleEx(403,-1825.20460000,87.98320000,15.72280000,179.61180000,-1,-1,900); //Linerunner
  379.     AddStaticVehicleEx(533,-1834.06910000,-110.97710000,5.27610000,270.10460000,-1,-1,900); //Feltzer
  380.     AddStaticVehicleEx(451,-2081.27830000,-85.30580000,34.87050000,359.45920000,-1,-1,900); //Turismo
  381.     AddStaticVehicleEx(533,-2068.34790000,-85.04530000,34.87310000,180.26020000,-1,-1,900); //Feltzer
  382.     AddStaticVehicleEx(445,-2025.76530000,-92.81020000,35.11330000,268.96770000,-1,-1,900); //Admiral
  383.     AddStaticVehicleEx(407,-2020.63560000,84.19910000,28.18370000,272.09260000,-1,-1,900); //Firetruck
  384.     AddStaticVehicleEx(407,-2021.78340000,75.99190000,28.30280000,273.10790000,-1,-1,900); //Firetruck
  385.     AddStaticVehicleEx(400,-1985.94260000,126.79920000,27.65150000,359.30650000,-1,-1,900); //Landstalker
  386.     AddStaticVehicleEx(475,-2036.03700000,135.70780000,28.64030000,91.21670000,-1,-1,900); //Sabre
  387.     AddStaticVehicleEx(533,-1947.18360000,272.30940000,40.75920000,310.91550000,-1,-1,900); //Feltzer
  388.     AddStaticVehicleEx(562,-1955.82910000,281.82760000,40.70600000,359.39090000,-1,-1,900); //Elegy
  389.     AddStaticVehicleEx(409,-1948.41040000,263.12270000,40.84840000,50.06140000,-1,-1,900); //Stretch
  390.     AddStaticVehicleEx(559,-1953.39890000,258.41840000,40.70310000,90.84030000,-1,-1,900); //Jester
  391.     AddStaticVehicleEx(475,-1946.10710000,274.75040000,35.27650000,106.36760000,-1,-1,900); //Sabre
  392.     AddStaticVehicleEx(451,-1945.69090000,267.33740000,35.18100000,329.58460000,-1,-1,900); //Turismo
  393.     AddStaticVehicleEx(507,-1947.52610000,256.29910000,35.29330000,270.36770000,-1,-1,900); //Elegant
  394.     AddStaticVehicleEx(524,-2053.64970000,218.61990000,36.49490000,151.83920000,-1,-1,900); //Cement Truck
  395.     AddStaticVehicleEx(521,-1989.05880000,271.38490000,34.72460000,90.23400000,-1,-1,900); //FCR-900
  396.     AddStaticVehicleEx(445,-2014.33180000,440.79680000,35.04690000,0.41950000,-1,-1,900); //Admiral
  397.     AddStaticVehicleEx(521,-1961.55800000,465.19340000,34.73830000,268.23050000,-1,-1,900); //FCR-900
  398.     AddStaticVehicleEx(420,-2025.55130000,573.67570000,34.86510000,89.14130000,-1,-1,900); //Taxi
  399.     AddStaticVehicleEx(562,-1950.31410000,584.55370000,34.79310000,0.13500000,-1,-1,900); //Elegy
  400.     AddStaticVehicleEx(492,-1941.40410000,585.49680000,34.89690000,359.56070000,-1,-1,900); //Greenwood
  401.     AddStaticVehicleEx(475,-1806.31910000,597.64500000,34.83620000,270.25410000,-1,-1,900); //Sabre
  402.     AddStaticVehicleEx(475,-1869.90200000,832.67490000,34.88790000,88.99750000,-1,-1,900); //Sabre
  403.     AddStaticVehicleEx(445,-1886.01940000,961.92650000,35.04690000,349.98270000,-1,-1,900); //Admiral
  404.     AddStaticVehicleEx(551,-2066.23050000,962.71440000,60.18170000,58.33220000,-1,-1,900); //Merit
  405.     AddStaticVehicleEx(466,-2243.83740000,937.13820000,66.39050000,0.02710000,-1,-1,900); //Glendale
  406.     AddStaticVehicleEx(400,-2196.79710000,1009.09720000,80.09220000,182.84830000,-1,-1,900); //Landstalker
  407.     AddStaticVehicleEx(438,-1403.40800000,-316.38400000,14.06980000,31.47310000,-1,-1,900); //Cabbie
  408.     AddStaticVehicleEx(420,-1408.39990000,-309.49260000,13.84530000,41.78010000,-1,-1,900); //Taxi
  409.     AddStaticVehicleEx(420,-1413.30800000,-303.87770000,13.84330000,41.42400000,-1,-1,900); //Taxi
  410.     AddStaticVehicleEx(420,-1871.83980000,-780.99980000,31.80260000,269.49490000,-1,-1,900); //Taxi
  411.     AddStaticVehicleEx(418,-1897.66890000,-827.21720000,32.11640000,269.25790000,-1,-1,900); //Moonbeam
  412.     AddStaticVehicleEx(458,-1897.09610000,-890.63680000,31.90180000,269.87340000,-1,-1,900); //Solair
  413.     AddStaticVehicleEx(533,-1981.74800000,-784.92050000,31.80910000,0.33740000,-1,-1,900); //Feltzer
  414.     AddStaticVehicleEx(487,-2110.42550000,-826.77530000,32.34940000,0.88890000,-1,-1,900); //Maverick
  415.     AddStaticVehicleEx(556,-2164.97610000,-440.16640000,35.71820000,314.79610000,-1,-1,900); //Monster A
  416.     AddStaticVehicleEx(556,-2168.59300000,-436.70950000,35.71460000,312.36880000,-1,-1,900); //Monster A
  417.     AddStaticVehicleEx(504,-2175.42260000,-375.25470000,35.15920000,87.57550000,-1,-1,900); //Bloodring Banger
  418.     AddStaticVehicleEx(458,-2105.86620000,-377.42380000,35.20520000,269.43740000,-1,-1,900); //Solair
  419.     AddStaticVehicleEx(413,-2245.92110000,-104.67250000,35.39590000,359.88770000,-1,-1,900); //Pony
  420.     AddStaticVehicleEx(522,-2327.88310000,-42.76190000,34.87900000,90.29290000,-1,-1,900); //NRG-500
  421.     AddStaticVehicleEx(533,-2495.25390000,-118.37230000,25.32690000,179.16520000,-1,-1,900); //Feltzer
  422.     AddStaticVehicleEx(475,-2551.07910000,-124.55440000,12.81790000,90.12590000,-1,-1,900); //Sabre
  423.     AddStaticVehicleEx(475,-2613.59960000,202.59970000,4.53020000,0.19480000,-1,-1,900); //Sabre
  424.     AddStaticVehicleEx(438,-2559.89530000,234.43640000,10.54210000,314.53800000,-1,-1,900); //Cabbie
  425.     AddStaticVehicleEx(521,-2538.55740000,217.60430000,10.66250000,322.20070000,-1,-1,900); //FCR-900
  426.     AddStaticVehicleEx(420,-2509.60380000,386.15620000,27.54590000,155.06370000,-1,-1,900); //Taxi
  427.     AddStaticVehicleEx(418,-2487.18260000,421.29640000,27.87390000,315.36180000,-1,-1,900); //Moonbeam
  428.     AddStaticVehicleEx(445,-2486.21530000,398.55340000,27.65350000,141.86500000,-1,-1,900); //Admiral
  429.     AddStaticVehicleEx(507,-2555.94210000,415.68990000,18.85990000,91.90900000,-1,-1,900); //Elegant
  430.     AddStaticVehicleEx(411,-2671.31010000,819.40340000,49.71140000,88.53130000,-1,-1,900); //Infernus
  431.     AddStaticVehicleEx(533,-2718.20040000,789.28320000,50.00720000,176.78140000,-1,-1,900); //Feltzer
  432.     AddStaticVehicleEx(529,-2865.43770000,816.54030000,38.68210000,237.69260000,-1,-1,900); //Willard
  433.     AddStaticVehicleEx(562,-2856.91090000,683.98630000,22.62640000,294.62240000,-1,-1,900); //Elegy
  434.     AddStaticVehicleEx(559,-2837.80050000,924.20700000,43.71280000,274.43980000,-1,-1,900); //Jester
  435.     AddStaticVehicleEx(507,-2894.79100000,1033.00040000,35.75770000,110.26320000,-1,-1,900); //Elegant
  436.     AddStaticVehicleEx(445,-2899.20190000,1101.26680000,27.09000000,91.95380000,-1,-1,900); //Admiral
  437.     AddStaticVehicleEx(400,-2897.46880000,1165.10000000,13.16700000,93.23320000,-1,-1,900); //Landstalker
  438.     AddStaticVehicleEx(409,-2625.29470000,1380.07310000,6.95710000,268.70990000,-1,-1,900); //Stretch
  439.     AddStaticVehicleEx(420,-2646.72660000,1375.19480000,6.95060000,181.75060000,-1,-1,900); //Taxi
  440.     AddStaticVehicleEx(420,-2646.37920000,1364.11550000,6.94700000,181.84210000,-1,-1,900); //Taxi
  441.     AddStaticVehicleEx(420,-2645.97950000,1351.96850000,6.94730000,181.92810000,-1,-1,900); //Taxi
  442.     AddStaticVehicleEx(420,-2645.54250000,1339.27870000,6.94350000,181.98730000,-1,-1,900); //Taxi
  443.     AddStaticVehicleEx(559,-2623.29640000,1336.63920000,6.85160000,316.82710000,-1,-1,900); //Jester
  444.     AddStaticVehicleEx(418,-2437.58080000,1284.77360000,23.45570000,268.68820000,-1,-1,900); //Moonbeam
  445.     AddStaticVehicleEx(551,-2471.76000000,1246.36340000,33.56810000,178.79070000,-1,-1,900); //Merit
  446.     AddStaticVehicleEx(551,-2538.48190000,1228.52030000,37.22260000,32.00350000,-1,-1,900); //Merit
  447.     AddStaticVehicleEx(521,-2529.35990000,1228.30270000,36.99840000,34.53320000,-1,-1,900); //FCR-900
  448.     AddStaticVehicleEx(420,-2517.00710000,1217.82320000,37.20500000,271.12570000,-1,-1,900); //Taxi
  449.     AddStaticVehicleEx(411,-2510.20120000,1138.86280000,55.45360000,355.80260000,-1,-1,900); //Infernus
  450.     AddStaticVehicleEx(533,-2489.77610000,1139.08070000,55.43560000,359.24880000,-1,-1,900); //Feltzer
  451.     AddStaticVehicleEx(510,-2424.85820000,1135.88040000,55.33230000,346.33450000,-1,-1,900); //Mountain Bike
  452.     AddStaticVehicleEx(507,-2414.42090000,1013.55380000,50.21530000,180.18120000,-1,-1,900); //Elegant
  453.     AddStaticVehicleEx(420,-2417.40630000,962.99570000,45.07580000,180.18530000,-1,-1,900); //Taxi
  454.     AddStaticVehicleEx(429,-2340.26980000,1023.34860000,50.37500000,270.64750000,-1,-1,900); //Banshee
  455.     AddStaticVehicleEx(426,-2133.52610000,832.57630000,69.22070000,357.82030000,-1,-1,900); //Premier
  456.     AddStaticVehicleEx(426,-1706.02370000,895.59030000,24.55640000,359.62680000,-1,-1,900); //Premier
  457.     AddStaticVehicleEx(409,-1505.65430000,919.45070000,6.98750000,358.39970000,-1,-1,900); //Stretch
  458.     AddStaticVehicleEx(429,-1677.96010000,1208.72220000,13.35140000,41.59060000,-1,-1,900); //Banshee
  459.     AddStaticVehicleEx(507,-1664.27060000,1222.69490000,20.97970000,14.84890000,-1,-1,900); //Elegant
  460.     AddStaticVehicleEx(562,-1677.51030000,1208.14770000,20.81780000,244.68790000,-1,-1,900); //Elegy
  461.     AddStaticVehicleEx(426,-1665.07530000,1206.08570000,20.89940000,271.16510000,-1,-1,900); //Premier
  462.     AddStaticVehicleEx(560,-1650.65300000,1207.57060000,13.37730000,44.23610000,-1,-1,900); //Sultan
  463.     AddStaticVehicleEx(409,-1659.31840000,1218.82020000,13.47230000,225.90870000,-1,-1,900); //Stretch
  464.     AddStaticVehicleEx(405,-1661.00790000,1211.20340000,13.55140000,261.33960000,-1,-1,900); //Sentinel
  465.     AddStaticVehicleEx(475,-1663.56650000,1214.72190000,7.05550000,64.13920000,-1,-1,900); //Sabre
  466.     AddStaticVehicleEx(521,-1661.71260000,1216.39070000,6.81570000,254.38860000,-1,-1,900); //FCR-900
  467.     AddStaticVehicleEx(560,-1791.03440000,1310.51570000,31.55610000,357.84560000,-1,-1,900); //Sultan
  468.     AddStaticVehicleEx(405,-1798.58010000,1294.15300000,31.72660000,176.57860000,-1,-1,900); //Sentinel
  469.     AddStaticVehicleEx(426,-1792.97830000,1293.13370000,40.89170000,178.16410000,-1,-1,900); //Premier
  470.     AddStaticVehicleEx(562,-1821.89670000,1309.87830000,40.80700000,3.22690000,-1,-1,900); //Elegy
  471.     AddStaticVehicleEx(411,-1810.66530000,1311.58330000,50.17230000,10.23040000,-1,-1,900); //Infernus
  472.     AddStaticVehicleEx(551,-1811.57430000,1292.91280000,59.53490000,187.51520000,-1,-1,900); //Merit
  473.     AddStaticVehicleEx(521,-1799.06730000,1293.46580000,59.30370000,358.59360000,-1,-1,900); //FCR-900
  474.     AddStaticVehicleEx(445,-1686.71780000,1311.84690000,7.05490000,226.82430000,-1,-1,900); //Admiral
  475.     AddStaticVehicleEx(442,-1981.70150000,1131.55910000,53.03340000,180.43190000,-1,-1,900); //Romero
  476.     AddStaticVehicleEx(475,-1816.94910000,1093.42290000,45.24510000,270.09720000,-1,-1,900); //Sabre
  477.     AddStaticVehicleEx(429,-2095.17380000,703.78520000,69.22500000,180.28890000,-1,-1,900); //Banshee
  478.     AddStaticVehicleEx(422,-2133.56150000,767.00170000,69.46950000,359.38070000,-1,-1,900); //Bobcat
  479.     AddStaticVehicleEx(458,-2152.37260000,627.03050000,52.19360000,179.77250000,-1,-1,900); //Solair
  480.     AddStaticVehicleEx(405,-2232.28610000,526.65420000,34.96390000,180.07820000,-1,-1,900); //Sentinel
  481.     AddStaticVehicleEx(560,-2248.24100000,763.70070000,49.07350000,0.84750000,-1,-1,900); //Sultan
  482.     AddStaticVehicleEx(480,-2265.28220000,212.34500000,34.93560000,270.46010000,-1,-1,900); //Comet
  483.     AddStaticVehicleEx(429,-2265.93680000,192.53640000,34.84380000,270.21420000,-1,-1,900); //Banshee
  484.     AddStaticVehicleEx(426,-2266.71680000,141.07110000,34.90250000,269.76980000,-1,-1,900); //Premier
  485.     AddStaticVehicleEx(498,-2235.19260000,160.81960000,35.39120000,268.76390000,-1,-1,900); //Boxville
  486.     AddStaticVehicleEx(521,-2176.32840000,102.38090000,34.87420000,270.43830000,-1,-1,900); //FCR-900
  487.     AddStaticVehicleEx(466,-2140.81670000,171.35510000,34.98600000,359.81760000,-1,-1,900); //Glendale
  488.     AddStaticVehicleEx(445,-2072.54590000,-84.77220000,35.03890000,0.40480000,-1,-1,900); //Admiral
  489.     AddStaticVehicleEx(426,-2039.82970000,-84.04520000,35.06330000,0.70110000,-1,-1,900); //Premier
  490.     AddStaticVehicleEx(538,-1942.92140000,166.26760000,27.00060000,356.79740000,-1,-1,900); //Streak
  491.     AddStaticVehicleEx(521,-2050.70090000,904.58590000,53.70160000,257.87560000,-1,-1,900); //FCR-900
  492.     AddStaticVehicleEx(426,-2060.34500000,1114.24770000,53.03210000,181.10470000,-1,-1,900); //Premier
  493.     AddStaticVehicleEx(466,-2126.72020000,1220.40830000,47.01530000,92.67580000,-1,-1,900); //Glendale
  494.     AddStaticVehicleEx(492,-2003.07210000,1278.75560000,6.93160000,270.68950000,-1,-1,900); //Greenwood
  495.     AddStaticVehicleEx(438,-2461.05620000,479.63980000,29.92990000,117.59650000,-1,-1,900); //Cabbie
  496.     AddStaticVehicleEx(562,-2481.90310000,429.10770000,29.19940000,228.62890000,-1,-1,900); //Elegy
  497.     AddStaticVehicleEx(421,-2430.69380000,416.18820000,35.00910000,316.14200000,-1,-1,900); //Washington
  498.     AddStaticVehicleEx(551,-2411.10130000,349.98530000,34.97150000,94.37200000,-1,-1,900); //Merit
  499.     AddStaticVehicleEx(421,-2429.01760000,305.64060000,35.05740000,3.01450000,-1,-1,900); //Washington
  500.     AddStaticVehicleEx(409,-2405.98830000,338.70390000,34.77200000,326.82050000,-1,-1,900); //Stretch
  501.     AddStaticVehicleEx(409,-2411.90310000,329.66040000,34.76870000,326.80940000,-1,-1,900); //Stretch
  502.     AddStaticVehicleEx(521,-2199.14750000,368.17040000,34.89150000,270.61120000,-1,-1,900); //FCR-900
  503.     AddStaticVehicleEx(487,-2328.65970000,-1687.14490000,483.78230000,182.88290000,-1,-1,900); //Maverick
  504.     AddStaticVehicleEx(411,-2343.97050000,-1590.90530000,483.30360000,246.26910000,-1,-1,900); //Infernus
  505.     AddStaticVehicleEx(411,-2345.27420000,-1593.73670000,483.31560000,247.08620000,-1,-1,900); //Infernus
  506.     AddStaticVehicleEx(411,-2346.57010000,-1596.76660000,483.32930000,247.10880000,-1,-1,900); //Infernus
  507.     AddStaticVehicleEx(411,-2347.90800000,-1599.82190000,483.34280000,246.34930000,-1,-1,900); //Infernus
  508.     AddStaticVehicleEx(541,-2354.40630000,-1625.23790000,483.29550000,215.63970000,-1,-1,900); //Bullet
  509.     AddStaticVehicleEx(541,-2353.42940000,-1620.62810000,483.28220000,213.58310000,-1,-1,900); //Bullet
  510.     AddStaticVehicleEx(541,-2352.90040000,-1616.48990000,483.27000000,212.19710000,-1,-1,900); //Bullet
  511.     AddStaticVehicleEx(541,-2352.04390000,-1612.03630000,483.25690000,216.23230000,-1,-1,900); //Bullet
  512.     AddStaticVehicleEx(541,-2351.29270000,-1607.80470000,483.24450000,215.81030000,-1,-1,900); //Bullet
  513.     AddStaticVehicleEx(560,-2348.44410000,-1579.50020000,485.42420000,215.52740000,-1,-1,900); //Sultan
  514.     AddStaticVehicleEx(560,-2350.34110000,-1584.34250000,485.37290000,267.62470000,-1,-1,900); //Sultan
  515.     AddStaticVehicleEx(573,-2336.83450000,-1578.21880000,484.18810000,201.73290000,-1,-1,900); //Duneride
  516.     AddStaticVehicleEx(573,-2339.17600000,-1582.26070000,484.19790000,204.23130000,-1,-1,900); //Duneride
  517.     AddStaticVehicleEx(541,-1772.08620000,1204.71530000,24.75000000,119.11640000,-1,-1,900); //Bullet
  518.     AddStaticVehicleEx(492,-1755.22890000,1177.52150000,24.90660000,270.57240000,-1,-1,900); //Greenwood
  519.     AddStaticVehicleEx(411,-1715.13660000,1204.21190000,24.84730000,133.26810000,-1,-1,900); //Infernus
  520.     AddStaticVehicleEx(551,-1722.26790000,1160.40650000,29.47130000,180.42220000,-1,-1,900); //Merit
  521.     AddStaticVehicleEx(451,-1749.84810000,1112.17420000,45.15230000,89.38800000,-1,-1,900); //Turismo
  522.     AddStaticVehicleEx(521,-1684.38160000,1103.85710000,54.27360000,356.43700000,-1,-1,900); //FCR-900
  523.     AddStaticVehicleEx(560,-1679.37720000,1072.42300000,54.40840000,359.25950000,-1,-1,900); //Sultan
  524.     AddStaticVehicleEx(429,-2072.35720000,964.27710000,60.71990000,1.87590000,-1,-1,900); //Banshee
  525.     AddStaticVehicleEx(511,-1558.42030000,-250.52810000,15.52050000,31.02750000,-1,-1,900); //Beagle
  526.     AddStaticVehicleEx(511,-1576.59050000,-264.84320000,15.52280000,41.86860000,-1,-1,900); //Beagle
  527.     AddStaticVehicleEx(511,-1591.97730000,-280.63100000,15.52370000,45.32940000,-1,-1,900); //Beagle
  528.     AddStaticVehicleEx(476,-1612.56800000,-315.43550000,14.87030000,70.26530000,-1,-1,900); //Rustler
  529.     AddStaticVehicleEx(476,-1617.04440000,-329.69200000,14.85770000,71.20480000,-1,-1,900); //Rustler
  530.     AddStaticVehicleEx(476,-1209.27340000,190.22600000,14.86300000,135.13470000,-1,-1,900); //Rustler
  531.     AddStaticVehicleEx(476,-1217.53640000,198.89320000,14.84120000,132.28790000,-1,-1,900); //Rustler
  532.     AddStaticVehicleEx(445,-1398.11950000,-324.46550000,13.75960000,30.90510000,-1,-1,900); //Admiral
  533.     return 1;
  534. }
  535.  
  536. public OnGameModeExit()
  537. {
  538.     return 1;
  539. }
  540.  
  541. public OnPlayerRequestClass(playerid, classid)
  542. {
  543.     if(IsPlayerNPC(playerid)) return 1;
  544.  
  545.     //Set up the class selection
  546.     SetPlayerInterior(playerid,0);
  547.     SetPlayerPos(playerid,-1753.6743,885.2703,295.8750);
  548.     SetPlayerCameraPos(playerid,-1753.6849,892.0016,295.8750);
  549.     SetPlayerCameraLookAt(playerid,-1753.6743,885.2703,295.8750);
  550.     SetPlayerFacingAngle(playerid,0.6323);
  551.  
  552.     //Do things to the player
  553.     SetPlayerColor(playerid,COLOR_DEADCONNECT);
  554.     SetPlayerTeamFromClass(playerid,classid);
  555.  
  556.     switch (classid)
  557.     {
  558.         case 0,1,2,3,4,5:
  559.         {
  560.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~CITY OFFICER", 3000, 5);
  561.         }
  562.         case 6:
  563.         {
  564.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~SWAT", 3000, 5);
  565.         }
  566.         case 7:
  567.         {
  568.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~FBI", 3000, 5);
  569.         }
  570.         case 8:
  571.         {
  572.             GameTextForPlayer(playerid, "~p~SF ARMY OFFICER~n~~w~DEADLY FORCE SQUAD", 3000, 5);
  573.         }
  574.         case 9:
  575.         {
  576.             GameTextForPlayer(playerid, "~y~CIA~n~~w~CENTRAL INTELLIGENCE AGENCY", 3000, 5);
  577.         }
  578.         case 10:
  579.         {
  580.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~CASUAL OFFICER", 3000, 5);
  581.         }
  582.         case 11:
  583.         {
  584.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~AIR SUPPORT", 3000, 5);
  585.         }
  586.         case 12:
  587.         {
  588.             GameTextForPlayer(playerid, "~b~POLICE OFFICER~n~~w~MARINE SUPPORT", 3000, 5);
  589.         }
  590.         case 13:
  591.         {
  592.             GameTextForPlayer(playerid, "~g~MEDIC~n~~w~CITY SERVICE", 3000, 5);
  593.         }
  594.         case 14:
  595.         {
  596.             GameTextForPlayer(playerid, "~w~CAR MECHANIC", 3000, 5);
  597.         }
  598.         case 15,16:
  599.         {
  600.             GameTextForPlayer(playerid, "~g~TAXI DRIVER", 3000, 5);
  601.         }
  602.         case 17,18,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,50,51,52,53,54,55,56,57,58,59,60:
  603.         {
  604.             GameTextForPlayer(playerid, "~w~CIVILIAN~n~~r~CHOOSE A JOB WHEN YOU SPAWN", 3000, 5);
  605.         }
  606.     }
  607.     return 1;
  608. }
  609.  
  610. SetPlayerTeamFromClass(playerid, classid)
  611. {
  612.     if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6 || classid == 7 || classid == 10 || classid == 11 || classid == 12)
  613.     {
  614.         gTeam[playerid] = TEAM_COP;
  615.     }
  616.     else if(classid == 8)
  617.     {
  618.         gTeam[playerid] = TEAM_ARMY;
  619.     }
  620.     else if(classid == 9)
  621.     {
  622.         gTeam[playerid] = TEAM_CIA;
  623.     }
  624.     else if(classid == 13)
  625.     {
  626.         gTeam[playerid] = TEAM_MEDIC;
  627.     }
  628.     else if(classid == 14)
  629.     {
  630.         gTeam[playerid] = TEAM_CARFIX;
  631.     }
  632.     else if(classid == 15 || classid == 16)
  633.     {
  634.         gTeam[playerid] = TEAM_DRIVER;
  635.     }
  636.     else if(classid >= 17)
  637.     {
  638.         gTeam[playerid] = TEAM_CIVIL;
  639.     }
  640. }
  641.  
  642. public OnPlayerConnect(playerid)
  643. {
  644.     new string[71];
  645.     format(string, sizeof(string), "SELECT `IP` FROM `banned` WHERE `IP` = '%s'", PlayerIP(playerid));
  646.     mysql_query(string);
  647.     mysql_store_result();
  648.     if(mysql_num_rows())
  649.     {
  650.         new BannedUsername[24], Bannedby[24], BannedReason[128];
  651.         mysql_fetch_field("Username", BannedUsername, Connection);
  652.         mysql_fetch_field("Banner", Bannedby, Connection);
  653.         mysql_fetch_field("Reason", BannedReason, Connection);
  654.  
  655.         new mysqlString[412];
  656.         format(mysqlString, sizeof(mysqlString), "\n{FFFFFF}If you think your ban is unfair, please visit {FF0000}%s {FFFFFF}and make an unban appeal \n\n\n\n{267F00}Banned name: \t{BA1400}%s \n{267F00}Banned by: \t{BA1400}%s \n{267F00}Reason: \t{BA1400}%s", SERVER_WEBSITE, BannedUsername, Bannedby, BannedReason);
  657.         ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_MSGBOX, "{FF0000}You are banned from this server!", mysqlString, "Close", "");
  658.         TextDrawShowForPlayer(playerid, Credits);
  659.         Kick(playerid);
  660.     }
  661.     else
  662.     {
  663.         format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `Username` = '%s'", PlayerName(playerid));
  664.         mysql_query(string);
  665.  
  666.         mysql_store_result();
  667.         if(mysql_num_rows())
  668.         {
  669.             LoginDialog(playerid);
  670.         }
  671.         else RegisterDialog(playerid);
  672.         TextDrawHideForPlayer(playerid, Credits);
  673.         mysql_free_result();
  674.     }
  675.     SetPlayerMapIcon(playerid,1,-2626.1843,211.5102,4.6097,6,0);                //Ammunation
  676.     SetPlayerMapIcon(playerid,2,-2099.6882,899.1699,76.7109,24,0);              //CaltonHeightsDH
  677.     SetPlayerMapIcon(playerid,3,-2779.9194,0.3026,10.0625,24,0);                //OceanFlatsDH
  678.     SetPlayerMapIcon(playerid,4,-2576.4824,818.9226,49.9844,24,0);              //ParadisoDH
  679.     SetPlayerMapIcon(playerid,5,-2433.7866,1281.6011,23.7422,24,0);             //JuniperHollowDH
  680.     SetPlayerMapIcon(playerid,6,-1547.4066,123.6555,3.5547,9,0);                //ShipYard
  681.     SetPlayerMapIcon(playerid,7,-1657.7573,1210.2754,7.2500,55,0);              //Otto'sCars
  682.     SetPlayerMapIcon(playerid,8,-1923.3926,303.6380,41.0469,8,0);               //BombShop
  683.     SetPlayerMapIcon(playerid,9,-2331.8582,-164.2207,35.5547,10,0);             //BurgerShotGarcia
  684.     SetPlayerMapIcon(playerid,10,-2671.5444,260.9214,4.6328,10,0);              //BurgerShotOcean
  685.     SetPlayerMapIcon(playerid,11,370.7744,-6.5378,1001.8589,14,0);              //CluckinBellOcean
  686.     SetPlayerMapIcon(playerid,12,-2553.8923,193.2280,6.1560,49,0);              //GayDarStation
  687.     SetPlayerMapIcon(playerid,13,-2241.8118,131.9901,35.3203,47,0);             //Zero's
  688.     SetPlayerMapIcon(playerid,14,-2242.2817,-85.7698,35.3203,49,0);             //Misty's
  689.     SetPlayerMapIcon(playerid,15,-1951.9911,300.2070,35.4688,55,0);             //WangCars
  690.     SetPlayerMapIcon(playerid,16,-2658.3201,639.5060,14.4531,22,0);             //Hospital
  691.     SetPlayerMapIcon(playerid,17,-2568.8982,243.9241,10.2489,7,0);              //Barbers
  692.     SetPlayerMapIcon(playerid,18,-2270.1182,-152.8132,35.3203,54,0);            //GYM
  693.     SetPlayerMapIcon(playerid,19,-2029.2903,-102.0118,35.1641,36,0);            //DrivingSchool
  694.     SetPlayerMapIcon(playerid,20,-1979.9883,138.0498,27.6875,42,0);             //TrainStation
  695.     SetPlayerMapIcon(playerid,21,-1911.2001,829.2663,35.1719,10,0);             //BurgerShotDowntown
  696.     SetPlayerMapIcon(playerid,22,-1886.2000,862.4730,35.1719,45,0);             //DowntownZip
  697.     SetPlayerMapIcon(playerid,23,-1806.8252,947.8553,24.8906,29,0);             //FinancialPizza
  698.     SetPlayerMapIcon(playerid,24,-1748.4784,963.3699,24.8828,30,0);             //FBI
  699.     SetPlayerMapIcon(playerid,25,-1692.5487,949.6002,24.8906,45,0);             //DowntownVictim
  700.     SetPlayerMapIcon(playerid,26,-1496.8027,919.8218,7.1875,52,0);              //Bank
  701.     SetPlayerMapIcon(playerid,27,-1609.2813,712.9857,13.7334,30,0);             //SFPD
  702.     SetPlayerMapIcon(playerid,28,-1719.8079,1356.6371,7.1875,29,0);             //EsplanadePizza
  703.     SetPlayerMapIcon(playerid,29,-2622.5164,1412.6412,7.0938,49,0);             //Jizzy's
  704.     SetPlayerMapIcon(playerid,30,-2356.0327,1004.7512,50.8984,10,0);            //BurgerShotJuniperHollow
  705.     SetPlayerMapIcon(playerid,31,-2374.1877,908.1357,45.4371,45,0);             //JuniperHillBinco
  706.     SetPlayerMapIcon(playerid,32,-2446.3350,752.2393,35.1719,62,0);             //SupaSave
  707.     SetPlayerMapIcon(playerid,33,-1814.2487,617.8710,35.1719,14,0);             //DowntownCluckin
  708.     return 1;
  709. }
  710.  
  711. public OnPlayerDisconnect(playerid, reason)
  712. {
  713.     if(IsPlayerLoggedIn[playerid] == 1)
  714.     {
  715.         SavePlayerAccount(playerid);
  716.         IsPlayerLoggedIn[playerid] = 0;
  717.     }
  718.     return true;
  719. }
  720.  
  721. public OnPlayerSpawn(playerid)
  722. {
  723.     return 1;
  724. }
  725.  
  726. public SetPlayerToTeamColour(playerid)
  727. {
  728.     if(gTeam[playerid] == TEAM_COP)
  729.     {
  730.         SetPlayerColor(playerid,COLOR_BLUE);
  731.     }
  732.     if(gTeam[playerid] == TEAM_ARMY)
  733.     {
  734.         SetPlayerColor(playerid,COLOR_FORESTGREEN);
  735.     }
  736.     if(gTeam[playerid] == TEAM_CIA)
  737.     {
  738.         SetPlayerColor(playerid,COLOR_ORANGERED);
  739.     }
  740.     if(gTeam[playerid] == TEAM_MEDIC)
  741.     {
  742.         SetPlayerColor(playerid,COLOR_FORESTGREEN);
  743.     }
  744.     if(gTeam[playerid] == TEAM_CARFIX)
  745.     {
  746.         SetPlayerColor(playerid,COLOR_WHITE);
  747.     }
  748.     if(gTeam[playerid] == TEAM_DRIVER)
  749.     {
  750.         SetPlayerColor(playerid,COLOR_DARKOLIVEGREEN);
  751.     }
  752.     if(gTeam[playerid] >= 9)
  753.     {
  754.         SetPlayerColor(playerid,COLOR_WHITE);
  755.     }
  756.     return 1;
  757. }
  758.  
  759.  
  760. public OnPlayerDeath(playerid, killerid, reason)
  761. {
  762.     if(killerid == INVALID_PLAYER_ID)
  763.     {
  764.         PlayerData[playerid][Deaths] ++;
  765.     }
  766.     else PlayerData[killerid][Kills] ++, PlayerData[playerid][Deaths] ++;
  767.     return true;
  768. }
  769.  
  770. public OnVehicleSpawn(vehicleid)
  771. {
  772.     return 1;
  773. }
  774.  
  775. public OnVehicleDeath(vehicleid, killerid)
  776. {
  777.     return 1;
  778. }
  779.  
  780. public OnPlayerText(playerid, text[])
  781. {
  782.     return 1;
  783. }
  784.  
  785. public OnPlayerCommandText(playerid, cmdtext[])
  786. {
  787.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  788.     {
  789.         // Do something here
  790.         return 1;
  791.     }
  792.     return 0;
  793. }
  794.  
  795. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  796. {
  797.     return 1;
  798. }
  799.  
  800. public OnPlayerExitVehicle(playerid, vehicleid)
  801. {
  802.     return 1;
  803. }
  804.  
  805. public OnPlayerStateChange(playerid, newstate, oldstate)
  806. {
  807.     return 1;
  808. }
  809.  
  810. public OnPlayerEnterCheckpoint(playerid)
  811. {
  812.     return 1;
  813. }
  814.  
  815. public OnPlayerLeaveCheckpoint(playerid)
  816. {
  817.     return 1;
  818. }
  819.  
  820. public OnPlayerEnterRaceCheckpoint(playerid)
  821. {
  822.     return 1;
  823. }
  824.  
  825. public OnPlayerLeaveRaceCheckpoint(playerid)
  826. {
  827.     return 1;
  828. }
  829.  
  830. public OnRconCommand(cmd[])
  831. {
  832.     return 1;
  833. }
  834.  
  835. public OnPlayerRequestSpawn(playerid)
  836. {
  837.     return 1;
  838. }
  839.  
  840. public OnObjectMoved(objectid)
  841. {
  842.     return 1;
  843. }
  844.  
  845. public OnPlayerObjectMoved(playerid, objectid)
  846. {
  847.     return 1;
  848. }
  849.  
  850. public OnPlayerPickUpPickup(playerid, pickupid)
  851. {
  852.     return 1;
  853. }
  854.  
  855. public OnVehicleMod(playerid, vehicleid, componentid)
  856. {
  857.     return 1;
  858. }
  859.  
  860. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  861. {
  862.     return 1;
  863. }
  864.  
  865. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  866. {
  867.     return 1;
  868. }
  869.  
  870. public OnPlayerSelectedMenuRow(playerid, row)
  871. {
  872.     return 1;
  873. }
  874.  
  875. public OnPlayerExitedMenu(playerid)
  876. {
  877.     return 1;
  878. }
  879.  
  880. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  881. {
  882.     return 1;
  883. }
  884.  
  885. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  886. {
  887.     return 1;
  888. }
  889.  
  890. public OnRconLoginAttempt(ip[], password[], success)
  891. {
  892.     return 1;
  893. }
  894.  
  895. public OnPlayerUpdate(playerid)
  896. {
  897.     return 1;
  898. }
  899.  
  900. public OnPlayerStreamIn(playerid, forplayerid)
  901. {
  902.     return 1;
  903. }
  904.  
  905. public OnPlayerStreamOut(playerid, forplayerid)
  906. {
  907.     return 1;
  908. }
  909.  
  910. public OnVehicleStreamIn(vehicleid, forplayerid)
  911. {
  912.     return 1;
  913. }
  914.  
  915. public OnVehicleStreamOut(vehicleid, forplayerid)
  916. {
  917.     return 1;
  918. }
  919.  
  920. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  921. {
  922.     switch(dialogid)
  923.     {
  924.         case REGISTER_DIALOG:
  925.         {
  926.             if(!response) return Kick(playerid);
  927.             if(!IsValidText(inputtext)) return SendClientMessage(playerid, COLOR_ERROR, "Error: Your password contains invalid characters! please enter a new password."), RegisterDialog(playerid);
  928.             if(strlen(inputtext) == 0) return SendClientMessage(playerid, COLOR_ERROR, "Error: You must enter a password!"), RegisterDialog(playerid);
  929.             {
  930.                 new string[310], HashedPW[129];
  931.                 WP_Hash(HashedPW, sizeof (HashedPW), inputtext);
  932.                 format(string, sizeof(string), "INSERT INTO `accounts` (Username, Password, IP, AdminLevel, Score, Money, Kills, Deaths) VALUES ('%s', '%s', '%s', '0', '0', '%i', '0', '0')", PlayerName(playerid), HashedPW, PlayerIP(playerid), START_MONEY);
  933.                 mysql_query(string), LoginDialog(playerid);
  934.             }
  935.             return true;
  936.         }
  937.  
  938.         case LOGIN_DIALOG:
  939.         {
  940.             if(!response) return Kick(playerid);
  941.             else if(!IsValidText(inputtext)) return SendClientMessage(playerid, COLOR_ERROR, "Error: Your password contains invalid characters! please enter a new password."), LoginDialog(playerid);
  942.             else if(strlen(inputtext) == 0) return SendClientMessage(playerid, COLOR_ERROR, "Error: You must enter a password!"), LoginDialog(playerid);
  943.             {
  944.                 new string[220], HashedPW[145], IP[16];
  945.                 WP_Hash(HashedPW, sizeof (HashedPW), inputtext);
  946.                 format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `Username` = '%s' AND `Password` = '%s'", PlayerName(playerid), HashedPW);
  947.                 mysql_query(string);
  948.                 mysql_store_result();
  949.                 if(mysql_num_rows() != 0)
  950.                 {
  951.                     new name[24];
  952.                     IsPlayerLoggedIn[playerid] = 1;
  953.                     mysql_fetch_row(string, "|");
  954.  
  955.                     sscanf(string, "p<|>s[24]s[145]s[16]ddddd", name, HashedPW, IP, PlayerData[playerid][AdminLevel], PlayerData[playerid][Score], PlayerData[playerid][Money], PlayerData[playerid][Kills], PlayerData[playerid][Deaths]);
  956.                     format(string, sizeof(string), "UPDATE `accounts` SET `IP` = '%s' WHERE Username= '%s'", PlayerIP(playerid), PlayerName(playerid));
  957.                     mysql_query(string);
  958.  
  959.                     SetPlayerScore(playerid, PlayerData[playerid][Score]);
  960.                     GivePlayerMoney(playerid, PlayerData[playerid][Money]);
  961.  
  962.                     #if defined ANTI_BAN_EVADE
  963.                     format(string, sizeof(string), "SELECT `Username` FROM `banned` WHERE `Username` = '%s'", PlayerName(playerid));
  964.                     mysql_query(string);
  965.  
  966.                     mysql_store_result();
  967.                     if(mysql_num_rows())
  968.                     {
  969.                         format(string, sizeof(string), "[AUTO BAN] %s has been banned for ban evading", PlayerName(playerid));
  970.                         SendClientMessageToAll(COLOR_INFO, string);
  971.                         BanPlayer(playerid, "Anti-Cheat", "Ban Evading");
  972.                     }
  973.                     mysql_free_result();
  974.                     #endif
  975.                 }
  976.                 else SendClientMessage(playerid, COLOR_ERROR, "Error: Incorrect password. Please try again!"), LoginDialog(playerid);
  977.                 mysql_free_result();
  978.             }
  979.             return true;
  980.         }
  981.     }
  982.     return false;
  983. }
  984.  
  985. stock SendClientMessageToAdmins(color, const message[])
  986. {
  987.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  988.     {
  989.         if(GetPlayerAdminLevel(i) >= 1 || IsPlayerAdmin(i))
  990.         {
  991.             SendClientMessageToAll(color, message);
  992.         }
  993.     }
  994. }
  995.  
  996. stock GameTextForAdmins(const message[], time, style)
  997. {
  998.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
  999.     {
  1000.         if(GetPlayerAdminLevel(i) >= 1 || IsPlayerAdmin(i))
  1001.         {
  1002.             GameTextForAll(message, time, style);
  1003.         }
  1004.     }
  1005. }
  1006.  
  1007. stock SavePlayerAccount(playerid)
  1008. {
  1009.     new string[170];
  1010.     format(string, sizeof(string), "UPDATE `accounts` SET `AdminLevel` = '%d', `Score` = '%d', `Money` = '%d', `Kills` = '%d', `Deaths` = '%d' WHERE Username= '%s'", PlayerData[playerid][AdminLevel], GetPlayerScore(playerid), GetPlayerMoney(playerid), PlayerData[playerid][Kills], PlayerData[playerid][Deaths], PlayerName(playerid));
  1011.     mysql_query(string);
  1012. }
  1013.  
  1014. stock BanPlayer(playerid, bannername[], reason[])
  1015. {
  1016.     new string[267];
  1017.     format(string, sizeof(string), "INSERT INTO `banned` (Username, IP, Banner, Reason) VALUES ('%s', '%s', '%s', '%s')", PlayerName(playerid), PlayerIP(playerid), bannername, reason);
  1018.     mysql_query(string);
  1019.     Kick(playerid);
  1020. }
  1021.  
  1022. stock IsPlayerAccountExisting(account[])
  1023. {
  1024.     new string[80];
  1025.     format(string, sizeof(string), "SELECT `Username` FROM `accounts` WHERE `Username` = '%s'", account);
  1026.     mysql_query(string);
  1027.     mysql_store_result();
  1028.     if(mysql_num_rows())
  1029.     {
  1030.         mysql_free_result();
  1031.         return true;
  1032.     }
  1033.     mysql_free_result();
  1034.     return false;
  1035. }
  1036.  
  1037. stock SetPlayerNameEx(playerid, name[])
  1038. {
  1039.     new string[62];
  1040.     format(string, sizeof(string), "UPDATE `accounts` SET `Username` = '%s'", name);
  1041.     mysql_query(string);
  1042.     SetPlayerName(playerid, name);
  1043. }
  1044.  
  1045. stock SetPlayerAdminLevel(playerid, level)
  1046. {
  1047.     if(PlayerData[playerid][AdminLevel] != level)
  1048.     {
  1049.         PlayerData[playerid][AdminLevel] = level;
  1050.         SavePlayerAccount(playerid);
  1051.         return true;
  1052.     }
  1053.     return false;
  1054. }
  1055.  
  1056. stock GetPlayerAdminLevel(playerid)
  1057. {
  1058.     return PlayerData[playerid][AdminLevel];
  1059. }
  1060.  
  1061. stock GetPlayeKills(playerid)
  1062. {
  1063.     return PlayerData[playerid][Kills];
  1064. }
  1065.  
  1066. stock GetPlayerDeaths(playerid)
  1067. {
  1068.     return PlayerData[playerid][Deaths];
  1069. }
  1070.  
  1071. stock LoginDialog(playerid)
  1072. {
  1073.     new string[133];
  1074.     format(string, sizeof(string), "{FFFFFF}Hello {014CEB}%s {FFFFFF}you are registred! \n\nPlease enter your password into the box below to login.", PlayerName(playerid));
  1075.     ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_INPUT, "{FF6347}Account Login", string, "Login", "Leave");
  1076.     return LOGIN_DIALOG;
  1077. }
  1078.  
  1079. stock RegisterDialog(playerid)
  1080. {
  1081.     new string[142];
  1082.     format(string, sizeof(string), "{FFFFFF}Hello {014CEB}%s {FFFFFF}you are not registred! \n\nPlease register by typing your password into the box below.", PlayerName(playerid));
  1083.     ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "{FF6347}Account Register", string, "Register", "Leave");
  1084.     return REGISTER_DIALOG;
  1085. }
  1086.  
  1087. stock PlayerName(playerid)
  1088. {
  1089.     new name[MAX_PLAYER_NAME];
  1090.     GetPlayerName(playerid, name, sizeof(name));
  1091.     return name;
  1092. }
  1093.  
  1094. stock PlayerIP(playerid)
  1095. {
  1096.     new playerip[16];
  1097.     GetPlayerIp(playerid, playerip, sizeof(playerip));
  1098.     return playerip;
  1099. }
  1100.  
  1101. stock IsValidText(const text[])
  1102. {
  1103.     for(new i = 0, l = strlen(text); i < l; i++)
  1104.     {
  1105.         if(!('A' <= text[i] <= 'Z') && !('a' <= text[i] <= 'z') && !('0' <= text[i] <= '9')) return false;
  1106.     }
  1107.     return true;
  1108. }
  1109.  
  1110. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1111. {
  1112.     return 1;
  1113. }
Advertisement
Add Comment
Please, Sign In to add comment