Advertisement
Guest User

Freeroam Gamemove [V1] by finelaq.

a guest
May 25th, 2014
1,763
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 72.20 KB | None | 0 0
  1. /*
  2.  
  3.     Freeroam Gamemode [V0.1] by finelaq.
  4.    
  5.     Credits:
  6.             Login & Register - Kushi
  7.             Gamemode - finelaq
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.     !!!!!!!!!!!!!!DO NOT REMOVE THE CREDITS!!!!!!!!!!!!!!
  18.  
  19. */
  20.  
  21. /*============================================================================*/
  22. #include <YSI\y_ini>
  23. #include <sscanf>
  24. #include <zcmd>
  25. #include <a_samp>
  26. #include <core>
  27. #include <float>
  28. #include "../include/gl_spawns.inc"
  29. #include "../include/gl_common.inc"
  30. #include <dini>
  31.  
  32. #pragma tabsize 0
  33. #define SpawnMoney 50000
  34. #if !defined Loop
  35. #define Loop(%0,%1) \
  36.         for(new %0 = 0; %0 != %1; %0++)
  37. #endif
  38.  
  39. #if !defined function
  40. #define function%0(%1) \
  41.         forward%0(%1); public%0(%1)
  42. #endif
  43.  
  44. #if !defined PURPLE
  45. #define PURPLE \
  46.     0xBF60FFFF
  47. #endif
  48.  
  49. #if !defined GREEN
  50. #define GREEN \
  51.     0x94D317FF
  52. #endif
  53.  
  54. #if !defined TIME
  55. #define TIME \
  56.     180000
  57. #endif
  58. #define GAMETEXT_COLOR 0 // The gametext color, change this if you want 0 = yellow(default), 1 = blue, 2 = green, 3 = red, 4 = purple, 5 = white, 6 = black.
  59.  
  60. /* Dialogs */
  61. #define DIALOG_REGISTER 0
  62. #define DIALOG_LOGIN 1
  63. #define DIALOG_GUNSHOP 2
  64. #define DIALOG_HELP 3
  65. #define DIALOG_HELP_COMMANDS 4
  66. #define DIALOG_HELP_COMMANDS_VIP 5
  67. #define DIALOG_HELP_COMMANDS_ADMINS 6
  68. #define DIALOG_VSHOP 7
  69. #define DIALOG_MP3 8
  70.  
  71. /* Players Folder */
  72. #define FOLDER "Freeroam/Players/%s.ini"
  73.  
  74. /* Colors */
  75. #define COLOR_RED 0xF21616FF
  76. #define COLOR_GREY 0xDBDBDBFF
  77. #define COLOR_YELLOW 0xF7EA31FF
  78. #define COLOR_GREEN 0x509E2CFF
  79. #define COL_WHITE "{FFFFFF}"
  80. #define COL_RED "{F81414}"
  81. #define COL_GREEN "{00FF22}"
  82. #define COL_LIGHTBLUE "{00CED1}"
  83. #define COLOR_BLUE 0x42E5EDFF
  84.  
  85. /* Random Messages */
  86. new RMessages[][] =
  87. {
  88.     "[FREEROAM] Check the server rules! (/rules)",
  89.     "[FREEROAM] Be sure you check the forum, at www.link.com",
  90.     "[FREEROAM] See hacker? Report the admins! (/report)"
  91. };
  92.  
  93. /* Enums */
  94. enum pInfo
  95. {
  96.     pPass,
  97.     pCash,
  98.     pAdmin,
  99.     pKills,
  100.     pDeaths,
  101.     Score,
  102.     VIP
  103. }
  104.  
  105. /* The Car Spawner */
  106. #define TOTAL_ITEMS         207
  107. #define SELECTION_ITEMS     21
  108. #define ITEMS_PER_LINE      7
  109. #define HEADER_TEXT "Vehicles"
  110. #define NEXT_TEXT   "Next"
  111. #define PREV_TEXT   "Prev"
  112. #define DIALOG_BASE_X       75.0
  113. #define DIALOG_BASE_Y       130.0
  114. #define DIALOG_WIDTH        550.0
  115. #define DIALOG_HEIGHT       180.0
  116. #define SPRITE_DIM_X        60.0
  117. #define SPRITE_DIM_Y        70.0
  118. /* The Car Spawner Ends */
  119.  
  120. /* New's */
  121. new
  122.         xCharacters[][] =
  123.         {
  124.             "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
  125.                 "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
  126.             "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
  127.                 "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
  128.             "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
  129.         },
  130.         xChars[16] = "",
  131.         xReactionTimer,
  132.         xCash,
  133.         xScore,
  134.         bool: xTestBusy
  135. ;
  136. new total_vehicles_from_files=0;
  137. new PlayerInfo[MAX_PLAYERS][pInfo];
  138. new gTotalItems = TOTAL_ITEMS;
  139. new PlayerText:gCurrentPageTextDrawId[MAX_PLAYERS];
  140. new PlayerText:gHeaderTextDrawId[MAX_PLAYERS];
  141. new PlayerText:gBackgroundTextDrawId[MAX_PLAYERS];
  142. new PlayerText:gNextButtonTextDrawId[MAX_PLAYERS];
  143. new PlayerText:gPrevButtonTextDrawId[MAX_PLAYERS];
  144. new PlayerText:gSelectionItems[MAX_PLAYERS][SELECTION_ITEMS];
  145. new gSelectionItemsTag[MAX_PLAYERS][SELECTION_ITEMS];
  146. new gItemList[TOTAL_ITEMS] = {
  147. 400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,
  148. 431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,450,451,452,453,454,455,456,457,458,459,460,461,
  149. 462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,
  150. 493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,
  151. 524,525,526,527,528,529,530,531,532,533,534,535,536,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,
  152. 555,556,557,558,559,560,561,562,563,564,565,566,567,568,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,
  153. 586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611
  154. };
  155. new VehicleNames[212][] = {
  156. {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
  157. {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
  158. {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
  159. {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
  160. {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
  161. {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
  162. {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  163. {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
  164. {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
  165. {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
  166. {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
  167. {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
  168. {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
  169. {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  170. {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
  171. {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
  172. {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
  173. {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
  174. {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
  175. {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
  176. {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
  177. {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  178. {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  179. {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
  180. {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
  181. {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
  182. {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
  183. {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  184. {"Utility Trailer"}
  185. };
  186. new VehicleModel[MAX_PLAYERS];
  187. new CFCTimer;
  188. new RestartFunc[MAX_PLAYERS];
  189. new GodMode[MAX_PLAYERS];
  190.  
  191. /* Load User Data */
  192. public LoadUser_data(playerid,name[],value[])
  193. {
  194.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  195.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  196.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  197.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  198.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  199.     INI_Int("Score",PlayerInfo[playerid][Score]);
  200.     INI_Int("VIP",PlayerInfo[playerid][VIP]);
  201.     return 1;
  202. }
  203.  
  204. /* Forwards */
  205. forward LoadUser_data(playerid,name[],value[]);
  206. forward Update();
  207. forward CheckForChange(playerid);
  208. forward ShowGameTextForPlayer(playerid);
  209. forward WantedLevelDown(playerid);
  210. forward RandomMessages();
  211. forward RestartTimer(playerid);
  212. forward Nos();
  213.  
  214. /*============================================================================*/
  215. main()
  216. {
  217.     print("\n----------------------------------");
  218.     print(" Freeroam v0.1 by finelaq... Loaded!");
  219.     print("----------------------------------\n");
  220. }
  221. /*============================================================================*/
  222. public OnGameModeInit()
  223. {
  224.     /* Server Stats */
  225.     SetGameModeText("Freeroam v0.1 by finelaq.");
  226.    
  227.     /* Skins */
  228.     AddPlayerClass(0,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  229.     AddPlayerClass(266,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  230.     AddPlayerClass(267,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  231.     AddPlayerClass(268,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  232.     AddPlayerClass(269,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  233.     AddPlayerClass(270,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  234.     AddPlayerClass(271,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  235.     AddPlayerClass(272,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  236.  
  237.     AddPlayerClass(280,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  238.     AddPlayerClass(281,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  239.     AddPlayerClass(282,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  240.     AddPlayerClass(283,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  241.     AddPlayerClass(284,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  242.     AddPlayerClass(285,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  243.     AddPlayerClass(286,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  244.     AddPlayerClass(287,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  245.  
  246.     AddPlayerClass(254,1958.3783,1343.1572,15.3746,0.0,0,0,24,300,-1,-1);
  247.     AddPlayerClass(255,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  248.     AddPlayerClass(256,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  249.     AddPlayerClass(257,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  250.     AddPlayerClass(258,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  251.     AddPlayerClass(259,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  252.     AddPlayerClass(260,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  253.     AddPlayerClass(261,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  254.     AddPlayerClass(262,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  255.     AddPlayerClass(263,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  256.     AddPlayerClass(264,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  257.     AddPlayerClass(274,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  258.     AddPlayerClass(275,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  259.     AddPlayerClass(276,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  260.  
  261.     AddPlayerClass(1,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  262.     AddPlayerClass(2,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  263.     AddPlayerClass(290,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  264.     AddPlayerClass(291,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  265.     AddPlayerClass(292,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  266.     AddPlayerClass(293,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  267.     AddPlayerClass(294,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  268.     AddPlayerClass(295,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  269.     AddPlayerClass(296,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  270.     AddPlayerClass(297,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  271.     AddPlayerClass(298,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  272.     AddPlayerClass(299,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  273.  
  274.     AddPlayerClass(277,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  275.     AddPlayerClass(278,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  276.     AddPlayerClass(279,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  277.     AddPlayerClass(288,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  278.     AddPlayerClass(47,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  279.     AddPlayerClass(48,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  280.     AddPlayerClass(49,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  281.     AddPlayerClass(50,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  282.     AddPlayerClass(51,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  283.     AddPlayerClass(52,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  284.     AddPlayerClass(53,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  285.     AddPlayerClass(54,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  286.     AddPlayerClass(55,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  287.     AddPlayerClass(56,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  288.     AddPlayerClass(57,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  289.     AddPlayerClass(58,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  290.     AddPlayerClass(59,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  291.     AddPlayerClass(60,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  292.     AddPlayerClass(61,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  293.     AddPlayerClass(62,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  294.     AddPlayerClass(63,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  295.     AddPlayerClass(64,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  296.     AddPlayerClass(66,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  297.     AddPlayerClass(67,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  298.     AddPlayerClass(68,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  299.     AddPlayerClass(69,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  300.     AddPlayerClass(70,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  301.     AddPlayerClass(71,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  302.     AddPlayerClass(72,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  303.     AddPlayerClass(73,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  304.     AddPlayerClass(75,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  305.     AddPlayerClass(76,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  306.     AddPlayerClass(78,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  307.     AddPlayerClass(79,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  308.     AddPlayerClass(80,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  309.     AddPlayerClass(81,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  310.     AddPlayerClass(82,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  311.     AddPlayerClass(83,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  312.     AddPlayerClass(84,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  313.     AddPlayerClass(85,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  314.     AddPlayerClass(87,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  315.     AddPlayerClass(88,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  316.     AddPlayerClass(89,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  317.     AddPlayerClass(91,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  318.     AddPlayerClass(92,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  319.     AddPlayerClass(93,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  320.     AddPlayerClass(95,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  321.     AddPlayerClass(96,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  322.     AddPlayerClass(97,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  323.     AddPlayerClass(98,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  324.     AddPlayerClass(99,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  325.     AddPlayerClass(100,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  326.     AddPlayerClass(101,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  327.     AddPlayerClass(102,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  328.     AddPlayerClass(103,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  329.     AddPlayerClass(104,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  330.     AddPlayerClass(105,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  331.     AddPlayerClass(106,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  332.     AddPlayerClass(107,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  333.     AddPlayerClass(108,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  334.     AddPlayerClass(109,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  335.     AddPlayerClass(110,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  336.     AddPlayerClass(111,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  337.     AddPlayerClass(112,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  338.     AddPlayerClass(113,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  339.     AddPlayerClass(114,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  340.     AddPlayerClass(115,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  341.     AddPlayerClass(116,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  342.     AddPlayerClass(117,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  343.     AddPlayerClass(118,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  344.     AddPlayerClass(120,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  345.     AddPlayerClass(121,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  346.     AddPlayerClass(122,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  347.     AddPlayerClass(123,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  348.     AddPlayerClass(124,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  349.     AddPlayerClass(125,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  350.     AddPlayerClass(126,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  351.     AddPlayerClass(127,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  352.     AddPlayerClass(128,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  353.     AddPlayerClass(129,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  354.     AddPlayerClass(131,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  355.     AddPlayerClass(133,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  356.     AddPlayerClass(134,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  357.     AddPlayerClass(135,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  358.     AddPlayerClass(136,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  359.     AddPlayerClass(137,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  360.     AddPlayerClass(138,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  361.     AddPlayerClass(139,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  362.     AddPlayerClass(140,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  363.     AddPlayerClass(141,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  364.     AddPlayerClass(142,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  365.     AddPlayerClass(143,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  366.     AddPlayerClass(144,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  367.     AddPlayerClass(145,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  368.     AddPlayerClass(146,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  369.     AddPlayerClass(147,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  370.     AddPlayerClass(148,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  371.     AddPlayerClass(150,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  372.     AddPlayerClass(151,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  373.     AddPlayerClass(152,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  374.     AddPlayerClass(153,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  375.     AddPlayerClass(154,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  376.     AddPlayerClass(155,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  377.     AddPlayerClass(156,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  378.     AddPlayerClass(157,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  379.     AddPlayerClass(158,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  380.     AddPlayerClass(159,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  381.     AddPlayerClass(160,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  382.     AddPlayerClass(161,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  383.     AddPlayerClass(162,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  384.     AddPlayerClass(163,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  385.     AddPlayerClass(164,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  386.     AddPlayerClass(165,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  387.     AddPlayerClass(166,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  388.     AddPlayerClass(167,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  389.     AddPlayerClass(168,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  390.     AddPlayerClass(169,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  391.     AddPlayerClass(170,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  392.     AddPlayerClass(171,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  393.     AddPlayerClass(172,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  394.     AddPlayerClass(173,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  395.     AddPlayerClass(174,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  396.     AddPlayerClass(175,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  397.     AddPlayerClass(176,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  398.     AddPlayerClass(177,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  399.     AddPlayerClass(178,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  400.     AddPlayerClass(179,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  401.     AddPlayerClass(180,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  402.     AddPlayerClass(181,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  403.     AddPlayerClass(182,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  404.     AddPlayerClass(183,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  405.     AddPlayerClass(184,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  406.     AddPlayerClass(185,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  407.     AddPlayerClass(186,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  408.     AddPlayerClass(187,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  409.     AddPlayerClass(188,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  410.     AddPlayerClass(189,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  411.     AddPlayerClass(190,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  412.     AddPlayerClass(191,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  413.     AddPlayerClass(192,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  414.     AddPlayerClass(193,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  415.     AddPlayerClass(194,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  416.     AddPlayerClass(195,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  417.     AddPlayerClass(196,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  418.     AddPlayerClass(197,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  419.     AddPlayerClass(198,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  420.     AddPlayerClass(199,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  421.     AddPlayerClass(200,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  422.     AddPlayerClass(201,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  423.     AddPlayerClass(202,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  424.     AddPlayerClass(203,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  425.     AddPlayerClass(204,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  426.     AddPlayerClass(205,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  427.     AddPlayerClass(206,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  428.     AddPlayerClass(207,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  429.     AddPlayerClass(209,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  430.     AddPlayerClass(210,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  431.     AddPlayerClass(211,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  432.     AddPlayerClass(212,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  433.     AddPlayerClass(213,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  434.     AddPlayerClass(214,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  435.     AddPlayerClass(215,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  436.     AddPlayerClass(216,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  437.     AddPlayerClass(217,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  438.     AddPlayerClass(218,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  439.     AddPlayerClass(219,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  440.     AddPlayerClass(220,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  441.     AddPlayerClass(221,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  442.     AddPlayerClass(222,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  443.     AddPlayerClass(223,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  444.     AddPlayerClass(224,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  445.     AddPlayerClass(225,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  446.     AddPlayerClass(226,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  447.     AddPlayerClass(227,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  448.     AddPlayerClass(228,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  449.     AddPlayerClass(229,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  450.     AddPlayerClass(230,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  451.     AddPlayerClass(231,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  452.     AddPlayerClass(232,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  453.     AddPlayerClass(233,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  454.     AddPlayerClass(234,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  455.     AddPlayerClass(235,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  456.     AddPlayerClass(236,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  457.     AddPlayerClass(237,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  458.     AddPlayerClass(238,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  459.     AddPlayerClass(239,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  460.     AddPlayerClass(240,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  461.     AddPlayerClass(241,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  462.     AddPlayerClass(242,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  463.     AddPlayerClass(243,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  464.     AddPlayerClass(244,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  465.     AddPlayerClass(245,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  466.     AddPlayerClass(246,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  467.     AddPlayerClass(247,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  468.     AddPlayerClass(248,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  469.     AddPlayerClass(249,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  470.     AddPlayerClass(250,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  471.     AddPlayerClass(251,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  472.     AddPlayerClass(253,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  473.    
  474.     // SPECIAL
  475.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
  476.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");
  477.  
  478.     // LAS VENTURAS
  479.      total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
  480.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
  481.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
  482.  
  483.     // SAN FIERRO
  484.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
  485.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
  486.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
  487.  
  488.     // LOS SANTOS
  489.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
  490.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
  491.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
  492.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
  493.  
  494.     // OTHER AREAS
  495.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
  496.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
  497.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
  498.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
  499.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");
  500.    
  501.     /* Update */
  502.     SetTimer("Update", 1000, 1);
  503.     /* Random Messages */
  504.     SetTimer("RandomMessages", 300000, true);
  505.     /* Nos */
  506.     SetTimer("Nos",1000,1);
  507.     /* Reaction Test */
  508.     xReactionTimer = SetTimer("xReactionTest", TIME, 1);
  509.     return 1;
  510. }
  511. /*============================================================================*/
  512. public OnGameModeExit()
  513. {
  514.     print("\n----------------------------------");
  515.     print(" Freeroam v0.1 by finelaq... Unloaded!");
  516.     print("----------------------------------\n");
  517.     KillTimer(xReactionTimer);
  518.     return 1;
  519. }
  520. /*============================================================================*/
  521. public OnPlayerRequestClass(playerid, classid)
  522. {
  523.     SetPlayerInterior(playerid,14);
  524.     SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  525.     SetPlayerFacingAngle(playerid, 270.0);
  526.     SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  527.     SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  528.     return 1;
  529. }
  530. /*============================================================================*/
  531. public OnPlayerConnect(playerid)
  532. {
  533.     new string[260], pName[MAX_PLAYER_NAME];
  534.     GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  535.     format(string,sizeof string,"%s has connected server!",pName);
  536.     SendClientMessageToAll(0xFFFFFFAA,string);
  537.    
  538.     if(fexist(UserPath(playerid)))
  539.     {
  540.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  541.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Freeroam v0.1 by finelaq",""COL_WHITE"Welcome back to Freeroam!,\n\nPlease type your account password:","Log-In","Quit");
  542.     }
  543.     else
  544.     {
  545.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Freeroam v0.1 by finelaq",""COL_WHITE"Welcome to Freeroam!,\n\nPlease type your account password, to register:","Register","Quit");
  546.         GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  547.         format(string,sizeof string,"%s is the first time on this server! Welcome!",pName);
  548.         SendClientMessageToAll(0xFFFFFFAA,string);
  549.     }
  550.     return 1;
  551. }
  552. /*============================================================================*/
  553. public OnPlayerDisconnect(playerid, reason)
  554. {
  555.     new INI:File = INI_Open(UserPath(playerid));
  556.     INI_SetTag(File,"data");
  557.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  558.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  559.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  560.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  561.     INI_WriteInt(File,"Score",GetPlayerScore(playerid));
  562.     INI_WriteInt(File,"VIP",PlayerInfo[playerid][VIP]);
  563.     INI_Close(File);
  564.    
  565.     new szString[64],name[MAX_PLAYER_NAME];
  566.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  567.  
  568.     switch(reason)
  569.     {
  570.         case 0: format(szString, sizeof szString, "%s has left the server. (Crashed)", name);
  571.         case 1: format(szString, sizeof szString, "%s has left the server. (Left)", name);
  572.         case 2: format(szString, sizeof szString, "%s has left the server. (Kicked)", name);
  573.     }
  574.  
  575.     SendClientMessageToAll(0xC4C4C4FF, szString);
  576.     return 1;
  577. }
  578. /*============================================================================*/
  579. public OnPlayerSpawn(playerid)
  580. {
  581.     GivePlayerMoney(playerid, SpawnMoney);
  582.     SetPlayerInterior(playerid,0);
  583.     SetPlayerVirtualWorld(playerid,0);
  584.     ResetPlayerMoney(playerid);
  585.    
  586.     new RndmSpwn = 0;
  587.  
  588.     RndmSpwn = random(sizeof(gRandomSpawns_LosSantos));
  589.     SetPlayerPos(playerid,
  590.     gRandomSpawns_LosSantos[RndmSpwn][0],
  591.     gRandomSpawns_LosSantos[RndmSpwn][1],
  592.     gRandomSpawns_LosSantos[RndmSpwn][2]);
  593.     SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[RndmSpwn][3]);
  594.     return 1;
  595. }
  596. /*============================================================================*/
  597. public OnPlayerDeath(playerid, killerid, reason)
  598. {
  599.     new name[MAX_PLAYER_NAME];
  600.     new string[256];
  601.     new deathreason[20];
  602.     new playercash;
  603.     GetPlayerName(playerid, name, sizeof(name));
  604.     GetWeaponName(reason, deathreason, 20);
  605.     if (killerid == INVALID_PLAYER_ID)
  606.     {
  607.         switch (reason)
  608.         {
  609.             case WEAPON_DROWN:
  610.             {
  611.                 format(string, sizeof(string), "*** %s drowned.", name);
  612.             }
  613.             default:
  614.             {
  615.                 if (strlen(deathreason) > 0)
  616.                 {
  617.                     format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
  618.                 }
  619.                 else
  620.                 {
  621.                     format(string, sizeof(string), "*** %s died.", name);
  622.                 }
  623.             }
  624.         }
  625.     }
  626.     else
  627.     {
  628.         new killer[MAX_PLAYER_NAME];
  629.         GetPlayerName(killerid, killer, sizeof(killer));
  630.         if (strlen(deathreason) > 0)
  631.         {
  632.             format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason);
  633.         }
  634.         else
  635.         {
  636.             format(string, sizeof(string), "*** %s killed %s.", killer, name);
  637.             }
  638.         }
  639.             SendClientMessageToAll(COLOR_RED, string);
  640.         {
  641.             playercash = GetPlayerMoney(playerid);
  642.             if (playercash > 0)
  643.             {
  644.                 GivePlayerMoney(killerid, playercash);
  645.                 SetPlayerWantedLevel(killerid,5);
  646.                 SetTimerEx("WantedLevelDown", 300000, false, "i", killerid);
  647.                 SendClientMessage(killerid,COLOR_RED,"Your wanted level is now 5!");
  648.                 ResetPlayerMoney(playerid);
  649.             }
  650.             else
  651.             {
  652.             }
  653.     }
  654.     PlayerInfo[playerid][pDeaths]++;
  655.     PlayerInfo[killerid][pKills]++;
  656.     return 1;
  657. }
  658. /*============================================================================*/
  659. public OnVehicleSpawn(vehicleid)
  660. {
  661.     return 1;
  662. }
  663. /*============================================================================*/
  664. public OnVehicleDeath(vehicleid, killerid)
  665. {
  666.     return 1;
  667. }
  668. /*============================================================================*/
  669. public OnPlayerText(playerid, text[])
  670. {
  671.     switch(xTestBusy)
  672.         {
  673.             case true:
  674.             {
  675.                         if(!strcmp(xChars, text, false))
  676.                         {
  677.                             new
  678.                                 string[128],
  679.                                 pName[MAX_PLAYER_NAME]
  680.                                 ;
  681.                                 GetPlayerName(playerid, pName, sizeof(pName));
  682.                                 format(string, sizeof(string), \%s\" has won the reaction test. »", pName);
  683.                             SendClientMessageToAll(GREEN, string);
  684.                             format(string, sizeof(string), "« You have earned $%d + %d score points. »", xCash, xScore);
  685.                             SendClientMessage(playerid, GREEN, string);
  686.                             GivePlayerMoney(playerid, xCash);
  687.                                 SetPlayerScore(playerid, GetPlayerScore(playerid) + xScore);
  688.                                 xReactionTimer = SetTimer("xReactionTest", TIME, 1);
  689.                             xTestBusy = false;
  690.                         }
  691.                 }
  692.         }
  693.     return 1;
  694. }
  695. /*============================================================================*/
  696. public OnPlayerCommandText(playerid, cmdtext[])
  697. {
  698.     /*if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  699.     {
  700.         // Do something here
  701.         NOT USING THIS SHIT!
  702.         return 1;
  703.     }*/
  704.     return 0;
  705. }
  706. /*============================================================================*/
  707. /* Commands */
  708. CMD:kick(playerid, params[])
  709. {
  710.     new id, reason[128];
  711.     if(PlayerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  712.     else if(sscanf(params, "us", id, reason))SendClientMessage(playerid, COLOR_GREY, "USE: /kick [Player ID] [Reason]");
  713.     else if (id==INVALID_PLAYER_ID)SendClientMessage(playerid,COLOR_GREY,"You can't kick bots!");
  714.     else {
  715.         new Name[MAX_PLAYER_NAME], KickMessage[128];
  716.         new Name2[MAX_PLAYER_NAME];
  717.         GetPlayerName(playerid, Name, sizeof(Name));
  718.         GetPlayerName(id, Name2, sizeof(Name2));
  719.         format(KickMessage, sizeof(KickMessage), "AdmCmd: Admin %s(%d) has kicked %s(%d) out of the server. Reason: %s", Name, playerid, Name2, id);
  720.         SendClientMessageToAll(COLOR_RED, KickMessage);
  721.         Kick(id);
  722.     }
  723.     return 1;
  724. }
  725.  
  726. CMD:ban(playerid, params[])
  727. {
  728.     new id, reason[128];
  729.     if(PlayerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  730.     else if(sscanf(params, "us", id, reason))SendClientMessage(playerid, COLOR_GREY, "USE: /ban [Player ID] [Reason]");
  731.     else if (id==INVALID_PLAYER_ID)SendClientMessage(playerid,COLOR_GREY,"You can't ban bots");
  732.     else {
  733.         new Name[MAX_PLAYER_NAME], KickMessage[128];
  734.         new Name2[MAX_PLAYER_NAME];
  735.         GetPlayerName(playerid, Name, sizeof(Name));
  736.         GetPlayerName(id, Name2, sizeof(Name2));
  737.         format(KickMessage, sizeof(KickMessage), "AdmCmd: Admin %s(%d) blocked the %s(%d) account. Reason: %s", Name, playerid, Name2, id);
  738.         SendClientMessageToAll(COLOR_RED, KickMessage);
  739.         Ban(id);
  740.     }
  741.     return 1;
  742. }
  743. COMMAND:givecash(playerid, params[])
  744. {
  745.     if(PlayerInfo[playerid][pAdmin] <= 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  746.     new player, amount,name1[24], name2[24], string[128];
  747.     if(!sscanf(params, "ui",player,amount))
  748.     {
  749.         GetPlayerName(playerid, name1, 24);
  750.         GetPlayerName(player, name2, 24);
  751.         format(string, sizeof(string), "You gaved $%d to %s.",amount,name2);
  752.         SendClientMessage(playerid, 0xFFFF00FF, string);
  753.         format(string, sizeof(string), "AdmCmd: Admin %s gave you $%d!", name1, amount);
  754.         SendClientMessage(player, 0xFFFF00FF, string);
  755.         GivePlayerMoney(player, amount);
  756.     }
  757.     else return SendClientMessage(playerid, 0xFFFFFFFF,"Usage: /givecash [Player ID][Amount]");
  758.     return 1;
  759. }
  760. COMMAND:god(playerid, params[])
  761. {
  762.     if(PlayerInfo[playerid][pAdmin] <= 2) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  763.     if(GodMode[playerid] == 0)
  764.     {
  765.        GodMode[playerid] = 1;
  766.        SetPlayerHealth(playerid,999999);
  767.        SendClientMessage(playerid,COLOR_GREEN,"GodMode ON!");
  768.     }
  769.     else
  770.     {
  771.        GodMode[playerid] = 0;
  772.        SetPlayerHealth(playerid,100);
  773.        SendClientMessage(playerid,COLOR_RED,"GodMode OFF!");
  774.     }
  775.     return 1;
  776. }
  777. COMMAND:vgod(playerid, params[])
  778. {
  779.     if(PlayerInfo[playerid][VIP] < 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  780.     if(GodMode[playerid] == 0)
  781.     {
  782.        GodMode[playerid] = 1;
  783.        SetPlayerHealth(playerid,999999);
  784.        SendClientMessage(playerid,COLOR_GREEN,"GodMode ON!");
  785.     }
  786.     else
  787.     {
  788.        GodMode[playerid] = 0;
  789.        SetPlayerHealth(playerid,100);
  790.        SendClientMessage(playerid,COLOR_RED,"GodMode OFF!");
  791.     }
  792.     return 1;
  793. }
  794. COMMAND:vshop(playerid, params[])
  795. {
  796.     if(PlayerInfo[playerid][VIP] < 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  797.     ShowPlayerDialog(playerid, DIALOG_VSHOP, DIALOG_STYLE_LIST,"GUNSHOP","Gun 1: Knife \nGun 2: Baseball Bat \nGun 3: Grenade \nGun 4: Tear Gas \nGun 5: Molotov Cocktail \nGun 6: 9mm \nGun 7: Desert Eagle \nGun 8: Shotgun \nGun 9: Combat Shotgun \nGun 10: MP5 \nGun 11: AK-47 \nGun 12: MP4 \nGun 13: RPG \n","Take","Quit");
  798.     return 1;
  799. }
  800. CMD:veh(playerid, params[])
  801. {
  802.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  803.     DestroySelectionMenu(playerid);
  804.     SetPVarInt(playerid, "vspawner_active", 1);
  805.     CreateSelectionMenu(playerid);
  806.     SelectTextDraw(playerid, 0xACCBF1FF);
  807.     return 1;
  808. }
  809. CMD:vipveh(playerid, params[])
  810. {
  811.     if(PlayerInfo[playerid][VIP] < 1) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  812.     DestroySelectionMenu(playerid);
  813.     SetPVarInt(playerid, "vspawner_active", 1);
  814.     CreateSelectionMenu(playerid);
  815.     SelectTextDraw(playerid, 0xACCBF1FF);
  816.     return 1;
  817. }
  818. COMMAND:help(playerid, params[])
  819. {
  820.     ShowPlayerDialog(playerid,DIALOG_HELP,DIALOG_STYLE_LIST,"Help","Commands","Select","Close");
  821.     return 1;
  822. }
  823. COMMAND:gunshop(playerid, params[])
  824. {
  825.     ShowPlayerDialog(playerid, DIALOG_GUNSHOP, DIALOG_STYLE_LIST,"GUNSHOP","Gun 1: Knife 500$\nGun 2: Baseball Bat 1,500$\nGun 3: Grenade 2,500$\nGun 4: Tear Gas 2,500$\nGun 5: Molotov Cocktail 2,500$\nGun 6: 9mm 3,000$\nGun 7: Desert Eagle 5,000$\nGun 8: Shotgun 5,000$\nGun 9: Combat Shotgun 5,000$\nGun 10: MP5 2,500$\nGun 11: AK-47 1,000$\nGun 12: MP4 1,000$\nGun 13: RPG 10,000$\n","Buy","Quit");
  826.     return 1;
  827. }
  828. COMMAND:mp3(playerid, params[])
  829. {
  830.     ShowPlayerDialog(playerid, DIALOG_MP3, DIALOG_STYLE_INPUT,"Mp3 Player","Type your mp3 link here:","Play","Close");
  831.     return 1;
  832. }
  833. COMMAND:aguns(playerid, params[])
  834. {
  835.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  836.     GivePlayerWeapon(playerid, 4, 2);
  837.     GivePlayerWeapon(playerid, 24, 50000);
  838.     GivePlayerWeapon(playerid, 26, 50000);
  839.     GivePlayerWeapon(playerid, 29, 50000);
  840.     GivePlayerWeapon(playerid, 31, 50000);
  841.     GivePlayerWeapon(playerid, 36, 50000);
  842.     return 1;
  843. }
  844. COMMAND:heal(playerid, params[])
  845. {
  846.     if(PlayerInfo[playerid][pAdmin] < 2)
  847.     {
  848.         SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  849.     }
  850.     else
  851.     {
  852.         SetPlayerHealth(playerid,100);
  853.         SetPlayerArmour(playerid,100);
  854.     }
  855.     return 1;
  856. }
  857. COMMAND:vheal(playerid, params[])
  858. {
  859.     if(PlayerInfo[playerid][VIP] < 1)
  860.     {
  861.         SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  862.     }
  863.     else
  864.     {
  865.         SetPlayerHealth(playerid,100);
  866.         SetPlayerArmour(playerid,100);
  867.     }
  868.     return 1;
  869. }
  870. COMMAND:restart(playerid, params[])
  871. {
  872.     if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GREY, "You don't have the rights!");
  873.     RestartFunc[playerid] = SetTimer("RestartTimer", 5000, 1);
  874.     SendClientMessage(playerid,COLOR_YELLOW,"You has starded the server restart!");
  875.     SendClientMessageToAll(COLOR_YELLOW,"Server restart has been started in 5 seconds!");
  876.     return 1;
  877. }
  878. /*============================================================================*/
  879. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  880. {
  881.     return 1;
  882. }
  883. /*============================================================================*/
  884. public OnPlayerExitVehicle(playerid, vehicleid)
  885. {
  886.     return 1;
  887. }
  888. /*============================================================================*/
  889. public OnPlayerStateChange(playerid, newstate, oldstate)
  890. {
  891.     if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  892.     {
  893.         VehicleModel[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
  894.         ShowGameTextForPlayer(playerid);
  895.         SendClientMessage(playerid,COLOR_GREEN,"Your entered a vehicle! Click nr2 to fix and flip your car! Press Mouse1 for nitro!");
  896.         return 1;
  897.     }
  898.     if(newstate != PLAYER_STATE_DRIVER && (oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)) KillTimer(CFCTimer);
  899.     return 1;
  900. }
  901. /*============================================================================*/
  902. public CheckForChange(playerid)
  903. {
  904.     if(GetVehicleModel(GetPlayerVehicleID(playerid)) != VehicleModel[playerid])
  905.     {
  906.         VehicleModel[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
  907.         ShowGameTextForPlayer(playerid);
  908.     }
  909.     return 1;
  910. }
  911. /*============================================================================*/
  912. public RestartTimer(playerid)
  913. {
  914.     SendClientMessageToAll(COLOR_GREY,"Server restart has been started now!");
  915.     SendRconCommand("gmx");
  916. }
  917. /*============================================================================*/
  918. public ShowGameTextForPlayer(playerid)
  919. {
  920.     new string[32];
  921.     switch(GAMETEXT_COLOR)
  922.     {
  923.         case 0: format(string,sizeof(string),"%s",VehicleNames[VehicleModel[playerid]-400]);
  924.         case 1: format(string,sizeof(string),"~b~%s",VehicleNames[VehicleModel[playerid]-400]);
  925.         case 2: format(string,sizeof(string),"~g~%s",VehicleNames[VehicleModel[playerid]-400]);
  926.         case 3: format(string,sizeof(string),"~r~%s",VehicleNames[VehicleModel[playerid]-400]);
  927.         case 4: format(string,sizeof(string),"~p~%s",VehicleNames[VehicleModel[playerid]-400]);
  928.         case 5: format(string,sizeof(string),"~w~%s",VehicleNames[VehicleModel[playerid]-400]);
  929.         case 6: format(string,sizeof(string),"%~|~s",VehicleNames[VehicleModel[playerid]-400]);
  930.     }
  931.     GameTextForPlayer(playerid,string,2000,1);
  932.     CFCTimer = SetTimerEx("CheckForChange",1000,true,"i",playerid);
  933.     return 1;
  934. }
  935. /*============================================================================*/
  936. public RandomMessages()
  937. {
  938.     new rMsg = random(sizeof(RMessages));
  939.     SendClientMessageToAll(COLOR_YELLOW, RMessages[rMsg]);
  940. }
  941. /*============================================================================*/
  942. public WantedLevelDown(playerid)
  943. {
  944.     SendClientMessage(playerid, COLOR_GREEN, "You are not wanted anymore!");
  945.     SetPlayerWantedLevel(playerid,0);
  946.     return 1;
  947. }
  948. /*============================================================================*/
  949. public OnPlayerEnterCheckpoint(playerid)
  950. {
  951.     return 1;
  952. }
  953. /*============================================================================*/
  954. public OnPlayerLeaveCheckpoint(playerid)
  955. {
  956.     return 1;
  957. }
  958. /*============================================================================*/
  959. public OnPlayerEnterRaceCheckpoint(playerid)
  960. {
  961.     return 1;
  962. }
  963. /*============================================================================*/
  964. public OnPlayerLeaveRaceCheckpoint(playerid)
  965. {
  966.     return 1;
  967. }
  968. /*============================================================================*/
  969. public OnRconCommand(cmd[])
  970. {
  971.     return 1;
  972. }
  973. /*============================================================================*/
  974. public OnPlayerRequestSpawn(playerid)
  975. {
  976.     return 1;
  977. }
  978. /*============================================================================*/
  979. public OnObjectMoved(objectid)
  980. {
  981.     return 1;
  982. }
  983. /*============================================================================*/
  984. public OnPlayerObjectMoved(playerid, objectid)
  985. {
  986.     return 1;
  987. }
  988. /*============================================================================*/
  989. public OnPlayerPickUpPickup(playerid, pickupid)
  990. {
  991.     return 1;
  992. }
  993. /*============================================================================*/
  994. public Update()
  995. {
  996.     new CashScore;
  997.     new CashScoreOld;
  998.     new name[MAX_PLAYER_NAME];
  999.     for(new i=0; i<MAX_PLAYERS; i++)
  1000.     {
  1001.         if (IsPlayerConnected(i))
  1002.         {
  1003.             GetPlayerName(i, name, sizeof(name));
  1004.             CashScore = GetPlayerMoney(i);
  1005.             SetPlayerScore(i, CashScore);
  1006.             if (CashScore > CashScoreOld)
  1007.             {
  1008.                 CashScoreOld = CashScore;
  1009.             }
  1010.         }
  1011.     }
  1012. }
  1013. /*============================================================================*/
  1014. public OnVehicleMod(playerid, vehicleid, componentid)
  1015. {
  1016.     return 1;
  1017. }
  1018. /*============================================================================*/
  1019. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1020. {
  1021.     return 1;
  1022. }
  1023. /*============================================================================*/
  1024. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  1025. {
  1026.     return 1;
  1027. }
  1028. /*============================================================================*/
  1029. public OnPlayerSelectedMenuRow(playerid, row)
  1030. {
  1031.     return 1;
  1032. }
  1033. /*============================================================================*/
  1034. public OnPlayerExitedMenu(playerid)
  1035. {
  1036.     return 1;
  1037. }
  1038. /*============================================================================*/
  1039. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  1040. {
  1041.     return 1;
  1042. }
  1043. /*============================================================================*/
  1044. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1045. {
  1046.     if(newkeys == KEY_SUBMISSION)
  1047.     {
  1048.         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1049.         {
  1050.             new veh;
  1051.             new Float:angle;
  1052.             veh = GetPlayerVehicleID(playerid);
  1053.             GetVehicleZAngle(veh, angle);
  1054.             SetVehicleZAngle(veh, angle);
  1055.             RepairVehicle(veh);
  1056.             SetVehicleHealth(veh, 1000.0);
  1057.             GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~Vehicle ~g~Fixed & Flipped!",2400,4);
  1058.         }
  1059.     }
  1060.     return 1;
  1061. }
  1062. /*============================================================================*/
  1063. public OnRconLoginAttempt(ip[], password[], success)
  1064. {
  1065.     return 1;
  1066. }
  1067. /*============================================================================*/
  1068. public OnPlayerUpdate(playerid)
  1069. {
  1070.     if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0)
  1071.     {
  1072.         SetPlayerArmedWeapon(playerid,0); // First
  1073.         return 0;
  1074.     }
  1075.     return 1;
  1076. }
  1077. /*============================================================================*/
  1078. public OnPlayerStreamIn(playerid, forplayerid)
  1079. {
  1080.     return 1;
  1081. }
  1082. /*============================================================================*/
  1083. public OnPlayerStreamOut(playerid, forplayerid)
  1084. {
  1085.     return 1;
  1086. }
  1087. /*============================================================================*/
  1088. public OnVehicleStreamIn(vehicleid, forplayerid)
  1089. {
  1090.     return 1;
  1091. }
  1092. /*============================================================================*/
  1093. public OnVehicleStreamOut(vehicleid, forplayerid)
  1094. {
  1095.     return 1;
  1096. }
  1097. /*============================================================================*/
  1098. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1099. {
  1100.     switch( dialogid )
  1101.     {
  1102.         case DIALOG_HELP:
  1103.         {
  1104.             if(response)
  1105.             {
  1106.                 if(listitem == 0)
  1107.                 {
  1108.                     ShowPlayerDialog(playerid,DIALOG_HELP_COMMANDS,DIALOG_STYLE_MSGBOX,"Help -> Commands","Players: /gunshop","Close","");
  1109.                     if(PlayerInfo[playerid][VIP] >= 1)
  1110.                     {
  1111.                         ShowPlayerDialog(playerid,DIALOG_HELP_COMMANDS_VIP,DIALOG_STYLE_MSGBOX,"Help -> Commands","Players: /gunshop\nVIP:/vipveh - /vheal - /vshop - /vgod","Close","");
  1112.                     }
  1113.                     if(PlayerInfo[playerid][pAdmin] >= 1)
  1114.                     {
  1115.                         ShowPlayerDialog(playerid,DIALOG_HELP_COMMANDS_ADMINS,DIALOG_STYLE_MSGBOX,"Help -> Commands","Players: /gunshop\nAdmins: /kick - /ban - /veh - /aguns - /god - /restart - /heal - /givecash","Close","");
  1116.                     }
  1117.                 }
  1118.             }
  1119.         }
  1120.         case DIALOG_MP3:
  1121.         {
  1122.             if(response)
  1123.             {
  1124.                 PlayAudioStreamForPlayer(playerid, inputtext);
  1125.             }
  1126.         }
  1127.         case DIALOG_GUNSHOP:
  1128.         {
  1129.              if(response)
  1130.              {
  1131.                  if(listitem == 0)
  1132.                  {
  1133.                      if(GetPlayerMoney(playerid) <500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1134.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Knife!");
  1135.                      GivePlayerWeapon(playerid,4,1);
  1136.                      GivePlayerMoney(playerid,-500);
  1137.                  }
  1138.                  if(listitem == 1)
  1139.                  {
  1140.                      if(GetPlayerMoney(playerid) <1500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1141.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Baseball bat!");
  1142.                      GivePlayerWeapon(playerid,5,1);
  1143.                      GivePlayerMoney(playerid,-1500);
  1144.                  }
  1145.                  if(listitem == 2)
  1146.                  {
  1147.                      if(GetPlayerMoney(playerid) <2500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1148.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Grenade!");
  1149.                      GivePlayerWeapon(playerid,16,5000);
  1150.                      GivePlayerMoney(playerid,-2500);
  1151.                  }
  1152.                  if(listitem == 3)
  1153.                  {
  1154.                      if(GetPlayerMoney(playerid) <2500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1155.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Tear Gas!");
  1156.                      GivePlayerWeapon(playerid,17,5000);
  1157.                      GivePlayerMoney(playerid,-2500);
  1158.                  }
  1159.                  if(listitem == 4)
  1160.                  {
  1161.                      if(GetPlayerMoney(playerid) <2500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1162.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Molotov Cocktail!");
  1163.                      GivePlayerWeapon(playerid,18,5000);
  1164.                      GivePlayerMoney(playerid,-2500);
  1165.                  }
  1166.                  if(listitem == 5)
  1167.                  {
  1168.                      if(GetPlayerMoney(playerid) <3000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1169.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying 9mm!");
  1170.                      GivePlayerWeapon(playerid,22,5000);
  1171.                      GivePlayerMoney(playerid,-3000);
  1172.                  }
  1173.                  if(listitem == 6)
  1174.                  {
  1175.                      if(GetPlayerMoney(playerid) <5000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1176.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Desert Eagle!");
  1177.                      GivePlayerWeapon(playerid,24,5000);
  1178.                      GivePlayerMoney(playerid,-5000);
  1179.                  }
  1180.                  if(listitem == 7)
  1181.                  {
  1182.                      if(GetPlayerMoney(playerid) <5000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1183.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Shotgun!");
  1184.                      GivePlayerWeapon(playerid,25,5000);
  1185.                      GivePlayerMoney(playerid,-5000);
  1186.                  }
  1187.                  if(listitem == 8)
  1188.                  {
  1189.                      if(GetPlayerMoney(playerid) <5000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1190.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Combat Shotgun!");
  1191.                      GivePlayerWeapon(playerid,27,5000);
  1192.                      GivePlayerMoney(playerid,-5000);
  1193.                  }
  1194.                  if(listitem == 9)
  1195.                  {
  1196.                      if(GetPlayerMoney(playerid) <2500) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1197.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying MP5!");
  1198.                      GivePlayerWeapon(playerid,29,5000);
  1199.                      GivePlayerMoney(playerid,-2500);
  1200.                  }
  1201.                  if(listitem == 10)
  1202.                  {
  1203.                      if(GetPlayerMoney(playerid) <1000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1204.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying AK-47!");
  1205.                      GivePlayerWeapon(playerid,30,5000);
  1206.                      GivePlayerMoney(playerid,-1000);
  1207.                  }
  1208.                  if(listitem == 11)
  1209.                  {
  1210.                      if(GetPlayerMoney(playerid) <1000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1211.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying MP4!");
  1212.                      GivePlayerWeapon(playerid,31,5000);
  1213.                      GivePlayerMoney(playerid,-1000);
  1214.                  }
  1215.                  if(listitem == 12)
  1216.                  {
  1217.                      if(GetPlayerMoney(playerid) <10000) return SendClientMessage(playerid,COLOR_RED, "You don't have the money!");
  1218.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying RPG!");
  1219.                      GivePlayerWeapon(playerid,35,7000);
  1220.                      GivePlayerMoney(playerid,-10000);
  1221.                  }
  1222.              }
  1223.         }
  1224.         case DIALOG_VSHOP:
  1225.         {
  1226.              if(response)
  1227.              {
  1228.                  if(listitem == 0)
  1229.                  {
  1230.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Knife!");
  1231.                      GivePlayerWeapon(playerid,4,1);
  1232.                  }
  1233.                  if(listitem == 1)
  1234.                  {
  1235.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Baseball bat!");
  1236.                      GivePlayerWeapon(playerid,5,1);
  1237.                  }
  1238.                  if(listitem == 2)
  1239.                  {
  1240.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Grenade!");
  1241.                      GivePlayerWeapon(playerid,16,5000);
  1242.                  }
  1243.                  if(listitem == 3)
  1244.                  {
  1245.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Tear Gas!");
  1246.                      GivePlayerWeapon(playerid,17,5000);
  1247.                  }
  1248.                  if(listitem == 4)
  1249.                  {
  1250.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Molotov Cocktail!");
  1251.                      GivePlayerWeapon(playerid,18,5000);
  1252.                  }
  1253.                  if(listitem == 5)
  1254.                  {
  1255.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying 9mm!");
  1256.                      GivePlayerWeapon(playerid,22,5000);
  1257.                  }
  1258.                  if(listitem == 6)
  1259.                  {
  1260.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Desert Eagle!");
  1261.                      GivePlayerWeapon(playerid,24,5000);
  1262.                  }
  1263.                  if(listitem == 7)
  1264.                  {
  1265.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Shotgun!");
  1266.                      GivePlayerWeapon(playerid,25,5000);
  1267.                  }
  1268.                  if(listitem == 8)
  1269.                  {
  1270.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying Combat Shotgun!");
  1271.                      GivePlayerWeapon(playerid,27,5000);
  1272.                  }
  1273.                  if(listitem == 9)
  1274.                  {
  1275.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying MP5!");
  1276.                      GivePlayerWeapon(playerid,29,5000);
  1277.                  }
  1278.                  if(listitem == 10)
  1279.                  {
  1280.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying AK-47!");
  1281.                      GivePlayerWeapon(playerid,30,5000);
  1282.                  }
  1283.                  if(listitem == 11)
  1284.                  {
  1285.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying MP4!");
  1286.                      GivePlayerWeapon(playerid,31,5000);
  1287.                  }
  1288.                  if(listitem == 12)
  1289.                  {
  1290.                      SendClientMessage(playerid,COLOR_RED,"Thank you, for buying RPG!");
  1291.                      GivePlayerWeapon(playerid,35,7000);
  1292.                  }
  1293.              }
  1294.         }
  1295.         case DIALOG_REGISTER:
  1296.         {
  1297.             if (!response) return Kick(playerid);
  1298.             if(response)
  1299.             {
  1300.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Freeroam v0.1 by finelaq",""COL_RED"Heres no password!\n"COL_WHITE"Try aigan! Type password to register account:","Register","Quit");               new INI:File = INI_Open(UserPath(playerid));
  1301.                 INI_SetTag(File,"data");
  1302.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  1303.                 INI_WriteInt(File,"Cash",0);
  1304.                 INI_WriteInt(File,"Admin",0);
  1305.                 INI_WriteInt(File,"Kills",0);
  1306.                 INI_WriteInt(File,"Deaths",0);
  1307.                 INI_WriteInt(File,"Score",0);
  1308.                 INI_WriteInt(File,"VIP",0);
  1309.                 INI_Close(File);
  1310.  
  1311.                 SendClientMessage(playerid,COLOR_GREEN,"You are succesuly registred!");
  1312.             }
  1313.         }
  1314.  
  1315.         case DIALOG_LOGIN:
  1316.         {
  1317.             if ( !response ) return Kick ( playerid );
  1318.             if( response )
  1319.             {
  1320.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  1321.                 {
  1322.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  1323.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  1324.                     SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
  1325.                     SendClientMessage(playerid,COLOR_GREEN,"You are succesuly logged in!");
  1326.                     new string[64], pName[MAX_PLAYER_NAME];
  1327.                     GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  1328.                     format(string,sizeof string,"%s has logged in!",pName);
  1329.                     SendClientMessageToAll(0xFFFFFFAA,string);
  1330.                 }
  1331.                 else
  1332.                 {
  1333.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Freeroam v0.1 by finelaq",""COL_RED"This is incorrect password.\n"COL_WHITE"Try aigan! Type your password:","Log-In","Quit");
  1334.                 }
  1335.                 return 1;
  1336.             }
  1337.         }
  1338.     }
  1339.     return 1;
  1340. }
  1341. /*============================================================================*/
  1342. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1343. {
  1344.     return 1;
  1345. }
  1346. /*============================================================================*/
  1347. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  1348. {
  1349.     if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;
  1350.  
  1351.     new curpage = GetPVarInt(playerid, "vspawner_page");
  1352.  
  1353.     // Handle: next button
  1354.     if(playertextid == gNextButtonTextDrawId[playerid]) {
  1355.         if(curpage < (GetNumberOfPages() - 1)) {
  1356.             SetPVarInt(playerid, "vspawner_page", curpage + 1);
  1357.             ShowPlayerModelPreviews(playerid);
  1358.             UpdatePageTextDraw(playerid);
  1359.             PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  1360.         } else {
  1361.             PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1362.         }
  1363.         return 1;
  1364.     }
  1365.  
  1366.     // Handle: previous button
  1367.     if(playertextid == gPrevButtonTextDrawId[playerid]) {
  1368.         if(curpage > 0) {
  1369.             SetPVarInt(playerid, "vspawner_page", curpage - 1);
  1370.             ShowPlayerModelPreviews(playerid);
  1371.             UpdatePageTextDraw(playerid);
  1372.             PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  1373.         } else {
  1374.             PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1375.         }
  1376.         return 1;
  1377.     }
  1378.  
  1379.     // Search in the array of textdraws used for the items
  1380.     new x=0;
  1381.     while(x != SELECTION_ITEMS) {
  1382.         if(playertextid == gSelectionItems[playerid][x]) {
  1383.             HandlePlayerItemSelection(playerid, x);
  1384.             PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  1385.             DestroySelectionMenu(playerid);
  1386.             CancelSelectTextDraw(playerid);
  1387.             SetPVarInt(playerid, "vspawner_active", 0);
  1388.             return 1;
  1389.         }
  1390.         x++;
  1391.     }
  1392.  
  1393.     return 0;
  1394. }
  1395. /*============================================================================*/
  1396. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  1397. {
  1398.     if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;
  1399.  
  1400.     // Handle: They cancelled (with ESC)
  1401.     if(clickedid == Text:INVALID_TEXT_DRAW) {
  1402.         DestroySelectionMenu(playerid);
  1403.         SetPVarInt(playerid, "vspawner_active", 0);
  1404.         PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1405.         return 1;
  1406.     }
  1407.  
  1408.     return 0;
  1409. }
  1410. /*============================================================================*/
  1411. public Nos()
  1412. {
  1413.     for(new i = 0; i < MAX_PLAYERS; i++)
  1414.     {
  1415.         if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1416.         {
  1417.  
  1418.             AddVehicleComponent(GetPlayerVehicleID(i), 1010);
  1419.         }
  1420.     }
  1421.     return 1;
  1422. }
  1423. /*============================================================================*/
  1424. GetNumberOfPages()
  1425. {
  1426.     if((gTotalItems >= SELECTION_ITEMS) && (gTotalItems % SELECTION_ITEMS) == 0)
  1427.     {
  1428.         return (gTotalItems / SELECTION_ITEMS);
  1429.     }
  1430.     else return (gTotalItems / SELECTION_ITEMS) + 1;
  1431. }
  1432.  
  1433. /*============================================================================*/
  1434.  
  1435. PlayerText:CreateCurrentPageTextDraw(playerid, Float:Xpos, Float:Ypos)
  1436. {
  1437.     new PlayerText:txtInit;
  1438.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, "0/0");
  1439.     PlayerTextDrawUseBox(playerid, txtInit, 0);
  1440.     PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
  1441.     PlayerTextDrawFont(playerid, txtInit, 1);
  1442.     PlayerTextDrawSetShadow(playerid, txtInit, 0);
  1443.     PlayerTextDrawSetOutline(playerid, txtInit, 1);
  1444.     PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
  1445.     PlayerTextDrawShow(playerid, txtInit);
  1446.     return txtInit;
  1447. }
  1448.  
  1449. /*============================================================================*/
  1450. // Creates a button textdraw and returns the textdraw ID.
  1451.  
  1452. PlayerText:CreatePlayerDialogButton(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height, button_text[])
  1453. {
  1454.     new PlayerText:txtInit;
  1455.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, button_text);
  1456.     PlayerTextDrawUseBox(playerid, txtInit, 1);
  1457.     PlayerTextDrawBoxColor(playerid, txtInit, 0x000000FF);
  1458.     PlayerTextDrawBackgroundColor(playerid, txtInit, 0x000000FF);
  1459.     PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
  1460.     PlayerTextDrawFont(playerid, txtInit, 1);
  1461.     PlayerTextDrawSetShadow(playerid, txtInit, 0); // no shadow
  1462.     PlayerTextDrawSetOutline(playerid, txtInit, 0);
  1463.     PlayerTextDrawColor(playerid, txtInit, 0x4A5A6BFF);
  1464.     PlayerTextDrawSetSelectable(playerid, txtInit, 1);
  1465.     PlayerTextDrawAlignment(playerid, txtInit, 2);
  1466.     PlayerTextDrawTextSize(playerid, txtInit, Height, Width); // The width and height are reversed for centering.. something the game does <g>
  1467.     PlayerTextDrawShow(playerid, txtInit);
  1468.     return txtInit;
  1469. }
  1470.  
  1471. /*============================================================================*/
  1472.  
  1473. PlayerText:CreatePlayerHeaderTextDraw(playerid, Float:Xpos, Float:Ypos, header_text[])
  1474. {
  1475.     new PlayerText:txtInit;
  1476.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, header_text);
  1477.     PlayerTextDrawUseBox(playerid, txtInit, 0);
  1478.     PlayerTextDrawLetterSize(playerid, txtInit, 1.25, 3.0);
  1479.     PlayerTextDrawFont(playerid, txtInit, 0);
  1480.     PlayerTextDrawSetShadow(playerid, txtInit, 0);
  1481.     PlayerTextDrawSetOutline(playerid, txtInit, 1);
  1482.     PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
  1483.     PlayerTextDrawShow(playerid, txtInit);
  1484.     return txtInit;
  1485. }
  1486.  
  1487. /*============================================================================*/
  1488.  
  1489. PlayerText:CreatePlayerBackgroundTextDraw(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height)
  1490. {
  1491.     new PlayerText:txtBackground = CreatePlayerTextDraw(playerid, Xpos, Ypos,
  1492.     "                                            ~n~"); // enough space for everyone
  1493.     PlayerTextDrawUseBox(playerid, txtBackground, 1);
  1494.     PlayerTextDrawBoxColor(playerid, txtBackground, 0x00000099);
  1495.     PlayerTextDrawLetterSize(playerid, txtBackground, 5.0, 5.0);
  1496.     PlayerTextDrawFont(playerid, txtBackground, 0);
  1497.     PlayerTextDrawSetShadow(playerid, txtBackground, 0);
  1498.     PlayerTextDrawSetOutline(playerid, txtBackground, 0);
  1499.     PlayerTextDrawColor(playerid, txtBackground,0x000000FF);
  1500.     PlayerTextDrawTextSize(playerid, txtBackground, Width, Height);
  1501.     PlayerTextDrawBackgroundColor(playerid, txtBackground, 0x00000099);
  1502.     PlayerTextDrawShow(playerid, txtBackground);
  1503.     return txtBackground;
  1504. }
  1505.  
  1506. /*============================================================================*/
  1507. // Creates a model preview sprite
  1508.  
  1509. PlayerText:CreateModelPreviewTextDraw(playerid, modelindex, Float:Xpos, Float:Ypos, Float:width, Float:height)
  1510. {
  1511.     new PlayerText:txtPlayerSprite = CreatePlayerTextDraw(playerid, Xpos, Ypos, ""); // it has to be set with SetText later
  1512.     PlayerTextDrawFont(playerid, txtPlayerSprite, TEXT_DRAW_FONT_MODEL_PREVIEW);
  1513.     PlayerTextDrawColor(playerid, txtPlayerSprite, 0xFFFFFFFF);
  1514.     PlayerTextDrawBackgroundColor(playerid, txtPlayerSprite, 0x000000EE);
  1515.     PlayerTextDrawTextSize(playerid, txtPlayerSprite, width, height); // Text size is the Width:Height
  1516.     PlayerTextDrawSetPreviewModel(playerid, txtPlayerSprite, modelindex);
  1517.     PlayerTextDrawSetPreviewRot(playerid,txtPlayerSprite, -16.0, 0.0, -55.0);
  1518.     PlayerTextDrawSetSelectable(playerid, txtPlayerSprite, 1);
  1519.     PlayerTextDrawShow(playerid,txtPlayerSprite);
  1520.     return txtPlayerSprite;
  1521. }
  1522.  
  1523. /*============================================================================*/
  1524.  
  1525. DestroyPlayerModelPreviews(playerid)
  1526. {
  1527.     new x=0;
  1528.     while(x != SELECTION_ITEMS) {
  1529.         if(gSelectionItems[playerid][x] != PlayerText:INVALID_TEXT_DRAW) {
  1530.             PlayerTextDrawDestroy(playerid, gSelectionItems[playerid][x]);
  1531.             gSelectionItems[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
  1532.         }
  1533.         x++;
  1534.     }
  1535. }
  1536.  
  1537. /*============================================================================*/
  1538.  
  1539. ShowPlayerModelPreviews(playerid)
  1540. {
  1541.     new x=0;
  1542.     new Float:BaseX = DIALOG_BASE_X;
  1543.     new Float:BaseY = DIALOG_BASE_Y - (SPRITE_DIM_Y * 0.33); // down a bit
  1544.     new linetracker = 0;
  1545.  
  1546.     new itemat = GetPVarInt(playerid, "vspawner_page") * SELECTION_ITEMS;
  1547.  
  1548.     // Destroy any previous ones created
  1549.     DestroyPlayerModelPreviews(playerid);
  1550.  
  1551.     while(x != SELECTION_ITEMS && itemat < gTotalItems) {
  1552.         if(linetracker == 0) {
  1553.             BaseX = DIALOG_BASE_X + 25.0; // in a bit from the box
  1554.             BaseY += SPRITE_DIM_Y + 1.0; // move on the Y for the next line
  1555.         }
  1556.         gSelectionItems[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemList[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
  1557.         gSelectionItemsTag[playerid][x] = gItemList[itemat];
  1558.         BaseX += SPRITE_DIM_X + 1.0; // move on the X for the next sprite
  1559.         linetracker++;
  1560.         if(linetracker == ITEMS_PER_LINE) linetracker = 0;
  1561.         itemat++;
  1562.         x++;
  1563.     }
  1564. }
  1565.  
  1566. /*============================================================================*/
  1567.  
  1568. UpdatePageTextDraw(playerid)
  1569. {
  1570.     new PageText[64+1];
  1571.     format(PageText, 64, "%d/%d", GetPVarInt(playerid,"vspawner_page") + 1, GetNumberOfPages());
  1572.     PlayerTextDrawSetString(playerid, gCurrentPageTextDrawId[playerid], PageText);
  1573. }
  1574.  
  1575. /*============================================================================*/
  1576.  
  1577. CreateSelectionMenu(playerid)
  1578. {
  1579.     gBackgroundTextDrawId[playerid] = CreatePlayerBackgroundTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y + 20.0, DIALOG_WIDTH, DIALOG_HEIGHT);
  1580.     gHeaderTextDrawId[playerid] = CreatePlayerHeaderTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y, HEADER_TEXT);
  1581.     gCurrentPageTextDrawId[playerid] = CreateCurrentPageTextDraw(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y + 15.0);
  1582.     gNextButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, NEXT_TEXT);
  1583.     gPrevButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 90.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, PREV_TEXT);
  1584.  
  1585.     ShowPlayerModelPreviews(playerid);
  1586.     UpdatePageTextDraw(playerid);
  1587. }
  1588.  
  1589. /*============================================================================*/
  1590.  
  1591. DestroySelectionMenu(playerid)
  1592. {
  1593.     DestroyPlayerModelPreviews(playerid);
  1594.  
  1595.     PlayerTextDrawDestroy(playerid, gHeaderTextDrawId[playerid]);
  1596.     PlayerTextDrawDestroy(playerid, gBackgroundTextDrawId[playerid]);
  1597.     PlayerTextDrawDestroy(playerid, gCurrentPageTextDrawId[playerid]);
  1598.     PlayerTextDrawDestroy(playerid, gNextButtonTextDrawId[playerid]);
  1599.     PlayerTextDrawDestroy(playerid, gPrevButtonTextDrawId[playerid]);
  1600.  
  1601.     gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  1602.     gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  1603.     gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  1604.     gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  1605.     gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  1606. }
  1607.  
  1608. /*============================================================================*/
  1609.  
  1610. SpawnVehicle_InfrontOfPlayer(playerid, vehiclemodel, color1, color2)
  1611. {
  1612.     new Float:x,Float:y,Float:z;
  1613.     new Float:facing;
  1614.     new Float:distance;
  1615.  
  1616.     GetPlayerPos(playerid, x, y, z);
  1617.     GetPlayerFacingAngle(playerid, facing);
  1618.  
  1619.     new Float:size_x,Float:size_y,Float:size_z;
  1620.     GetVehicleModelInfo(vehiclemodel, VEHICLE_MODEL_INFO_SIZE, size_x, size_y, size_z);
  1621.  
  1622.     distance = size_x + 0.5;
  1623.  
  1624.     x += (distance * floatsin(-facing, degrees));
  1625.     y += (distance * floatcos(-facing, degrees));
  1626.  
  1627.     facing += 90.0;
  1628.     if(facing > 360.0) facing -= 360.0;
  1629.  
  1630.     return CreateVehicle(vehiclemodel, x, y, z + (size_z * 0.25), facing, color1, color2, -1);
  1631. }
  1632.  
  1633. /*============================================================================*/
  1634.  
  1635. HandlePlayerItemSelection(playerid, selecteditem)
  1636. {
  1637.     // In this case we're spawning a vehicle for them
  1638.     SpawnVehicle_InfrontOfPlayer(playerid, gSelectionItemsTag[playerid][selecteditem], -1, -1);
  1639. }
  1640. /*============================================================================*/
  1641. function xReactionProgress()
  1642. {
  1643.    switch(xTestBusy)
  1644.         {
  1645.             case true:
  1646.             {
  1647.                     new
  1648.                         string[128]
  1649.                         ;
  1650.                         format(string, sizeof(string), "« No-one won the reaction-test. New one starting in %d minutes. »", (TIME/60000));
  1651.                     SendClientMessageToAll(PURPLE, string);
  1652.                 xReactionTimer = SetTimer("xReactionTest", TIME, 1);
  1653.        }
  1654.         }
  1655.         return 1;
  1656. }
  1657. /*============================================================================*/
  1658. function xReactionTest()
  1659. {
  1660.         new
  1661.                 xLength = (random(8) + 2),
  1662.                 string[128]
  1663.         ;
  1664.         xCash = (random(10000) + 20000);
  1665.         xScore = (random(2)+1);
  1666.         format(xChars, sizeof(xChars), "");
  1667.         Loop(x, xLength) format(xChars, sizeof(xChars), "%s%s", xChars, xCharacters[random(sizeof(xCharacters))][0]);
  1668.         format(string, sizeof(string), "« Who first types %s wins $%d + %d score points. »", xChars, xCash, xScore);
  1669.         SendClientMessageToAll(PURPLE, string);
  1670.         KillTimer(xReactionTimer);
  1671.         xTestBusy = true;
  1672.         SetTimer("xReactionProgress", 30000, 0);
  1673.         return 1;
  1674. }
  1675. /*============================================================================*/
  1676. /* Stock's */
  1677. stock UserPath(playerid)
  1678. {
  1679.     new string[128],playername[MAX_PLAYER_NAME];
  1680.     GetPlayerName(playerid,playername,sizeof(playername));
  1681.     format(string,sizeof(string),FOLDER,playername);
  1682.     return string;
  1683. }
  1684.  
  1685. stock udb_hash(buf[]) {
  1686.     new length=strlen(buf);
  1687.     new s1 = 1;
  1688.     new s2 = 0;
  1689.     new n;
  1690.     for (n=0; n<length; n++)
  1691.     {
  1692.        s1 = (s1 + buf[n]) % 65521;
  1693.        s2 = (s2 + s1)     % 65521;
  1694.     }
  1695.     return (s2 << 16) + s1;
  1696. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement