Guest User

Vehicle Control

a guest
Oct 15th, 2017
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.50 KB | None | 0 0
  1. /*
  2.  
  3.  
  4. _ _ _____ _ _ _____ _____ _ _____ _____ _____ _ _ ___________ _____ _ ______ ___ _ _ _____ _
  5. | | | | ___| | | |_ _/ __ \| | | ___| / __ \ _ | \ | |_ _| ___ \ _ | | | ___ \/ _ \ | \ | || ___| |
  6. | | | | |__ | |_| | | | | / \/| | | |__ | / \/ | | | \| | | | | |_/ / | | | | | |_/ / /_\ \| \| || |__ | |
  7. | | | | __|| _ | | | | | | | | __| | | | | | | . ` | | | | /| | | | | | __/| _ || . ` || __|| |
  8. \ \_/ / |___| | | |_| |_| \__/\| |____| |___ | \__/\ \_/ / |\ | | | | |\ \\ \_/ / |____ | | | | | || |\ || |___| |____
  9. \___/\____/\_| |_/\___/ \____/\_____/\____/ \____/\___/\_| \_/ \_/ \_| \_|\___/\_____/ \_| \_| |_/\_| \_/\____/\_____/
  10.  
  11.  
  12. Vehicle Control Panel (Textdraw Based)
  13. Izradio: Bolex zajedno sa ForT (Battle Royal - HO:RP)
  14.  
  15. Nemate pravo oslovljavati skriptu kao svoju.
  16. */
  17.  
  18. #include <a_samp>
  19. #include <izcmd>
  20.  
  21. #define MAX_VEHICLE_PARAMS ( 6 )
  22. #define KEY_OPEN_MENU ( KEY_LOOK_BEHIND )
  23.  
  24. new Text:TextDrawVehiclePanel[ 10 ], PlayerText:PlayerTextDrawPanel[MAX_PLAYERS];
  25.  
  26. new paramsName[ MAX_VEHICLE_PARAMS ][ 3 ][] =
  27. {
  28. { "Motor", "On", "Off" },
  29. { "Svjetla", "On", "Off" },
  30. { "Alarm", "On", "Off" },
  31. { "Vrata", "Lock", "Unlock" },
  32. { "Hauba", "Zatvori", "Otvori" },
  33. { "Gepek", "Zatvori", "Otvori" }
  34. };
  35. //----------------------------------------------------------------------------//
  36. public OnFilterScriptInit()
  37. {
  38. TextDrawVehiclePanel[0] = TextDrawCreate(4.000000, 230.000000, "usebox");
  39. TextDrawBackgroundColor(TextDrawVehiclePanel[0], 0);
  40. TextDrawFont(TextDrawVehiclePanel[0], 1);
  41. TextDrawLetterSize(TextDrawVehiclePanel[0], 0.500000, 9.699998);
  42. TextDrawColor(TextDrawVehiclePanel[0], 0);
  43. TextDrawSetOutline(TextDrawVehiclePanel[0], 0);
  44. TextDrawSetProportional(TextDrawVehiclePanel[0], 1);
  45. TextDrawSetShadow(TextDrawVehiclePanel[0], 1);
  46. TextDrawUseBox(TextDrawVehiclePanel[0], 1);
  47. TextDrawBoxColor(TextDrawVehiclePanel[0], 150);
  48. TextDrawTextSize(TextDrawVehiclePanel[0], 101.000000, 0.000000);
  49.  
  50. TextDrawVehiclePanel[1] = TextDrawCreate(5.000000, 232.000000, "ld_dual:white");
  51. TextDrawBackgroundColor(TextDrawVehiclePanel[1], 255);
  52. TextDrawFont(TextDrawVehiclePanel[1], 4);
  53. TextDrawLetterSize(TextDrawVehiclePanel[1], 0.500000, 1.000000);
  54. TextDrawColor(TextDrawVehiclePanel[1], 252645375);
  55. TextDrawSetOutline(TextDrawVehiclePanel[1], 0);
  56. TextDrawSetProportional(TextDrawVehiclePanel[1], 1);
  57. TextDrawSetShadow(TextDrawVehiclePanel[1], 1);
  58. TextDrawUseBox(TextDrawVehiclePanel[1], 1);
  59. TextDrawBoxColor(TextDrawVehiclePanel[1], 255);
  60. TextDrawTextSize(TextDrawVehiclePanel[1], 95.000000, 12.000000);
  61. TextDrawSetSelectable(TextDrawVehiclePanel[1], 1);
  62.  
  63. TextDrawVehiclePanel[2] = TextDrawCreate(5.000000, 246.000000, "ld_dual:white");
  64. TextDrawBackgroundColor(TextDrawVehiclePanel[2], 255);
  65. TextDrawFont(TextDrawVehiclePanel[2], 4);
  66. TextDrawLetterSize(TextDrawVehiclePanel[2], 0.500000, 1.000000);
  67. TextDrawColor(TextDrawVehiclePanel[2], 252645375);
  68. TextDrawSetOutline(TextDrawVehiclePanel[2], 0);
  69. TextDrawSetProportional(TextDrawVehiclePanel[2], 1);
  70. TextDrawSetShadow(TextDrawVehiclePanel[2], 1);
  71. TextDrawUseBox(TextDrawVehiclePanel[2], 1);
  72. TextDrawBoxColor(TextDrawVehiclePanel[2], 255);
  73. TextDrawTextSize(TextDrawVehiclePanel[2], 95.000000, 12.000000);
  74. TextDrawSetSelectable(TextDrawVehiclePanel[2], 1);
  75.  
  76. TextDrawVehiclePanel[3] = TextDrawCreate(5.000000, 260.000000, "ld_dual:white");
  77. TextDrawBackgroundColor(TextDrawVehiclePanel[3], 255);
  78. TextDrawFont(TextDrawVehiclePanel[3], 4);
  79. TextDrawLetterSize(TextDrawVehiclePanel[3], 0.500000, 1.000000);
  80. TextDrawColor(TextDrawVehiclePanel[3], 252645375);
  81. TextDrawSetOutline(TextDrawVehiclePanel[3], 0);
  82. TextDrawSetProportional(TextDrawVehiclePanel[3], 1);
  83. TextDrawSetShadow(TextDrawVehiclePanel[3], 1);
  84. TextDrawUseBox(TextDrawVehiclePanel[3], 1);
  85. TextDrawBoxColor(TextDrawVehiclePanel[3], 255);
  86. TextDrawTextSize(TextDrawVehiclePanel[3], 95.000000, 12.000000);
  87. TextDrawSetSelectable(TextDrawVehiclePanel[3], 1);
  88.  
  89. TextDrawVehiclePanel[4] = TextDrawCreate(5.000000, 274.000000, "ld_dual:white");
  90. TextDrawBackgroundColor(TextDrawVehiclePanel[4], 255);
  91. TextDrawFont(TextDrawVehiclePanel[4], 4);
  92. TextDrawLetterSize(TextDrawVehiclePanel[4], 0.500000, 1.000000);
  93. TextDrawColor(TextDrawVehiclePanel[4], 252645375);
  94. TextDrawSetOutline(TextDrawVehiclePanel[4], 0);
  95. TextDrawSetProportional(TextDrawVehiclePanel[4], 1);
  96. TextDrawSetShadow(TextDrawVehiclePanel[4], 1);
  97. TextDrawUseBox(TextDrawVehiclePanel[4], 1);
  98. TextDrawBoxColor(TextDrawVehiclePanel[4], 255);
  99. TextDrawTextSize(TextDrawVehiclePanel[4], 95.000000, 12.000000);
  100. TextDrawSetSelectable(TextDrawVehiclePanel[4], 1);
  101.  
  102. TextDrawVehiclePanel[5] = TextDrawCreate(5.000000, 288.000000, "ld_dual:white");
  103. TextDrawBackgroundColor(TextDrawVehiclePanel[5], 255);
  104. TextDrawFont(TextDrawVehiclePanel[5], 4);
  105. TextDrawLetterSize(TextDrawVehiclePanel[5], 0.500000, 1.000000);
  106. TextDrawColor(TextDrawVehiclePanel[5], 252645375);
  107. TextDrawSetOutline(TextDrawVehiclePanel[5], 0);
  108. TextDrawSetProportional(TextDrawVehiclePanel[5], 1);
  109. TextDrawSetShadow(TextDrawVehiclePanel[5], 1);
  110. TextDrawUseBox(TextDrawVehiclePanel[5], 1);
  111. TextDrawBoxColor(TextDrawVehiclePanel[5], 255);
  112. TextDrawTextSize(TextDrawVehiclePanel[5], 95.000000, 12.000000);
  113. TextDrawSetSelectable(TextDrawVehiclePanel[5], 1);
  114.  
  115. TextDrawVehiclePanel[6] = TextDrawCreate(5.000000, 302.000000, "ld_dual:white");
  116. TextDrawBackgroundColor(TextDrawVehiclePanel[6], 255);
  117. TextDrawFont(TextDrawVehiclePanel[6], 4);
  118. TextDrawLetterSize(TextDrawVehiclePanel[6], 0.500000, 1.000000);
  119. TextDrawColor(TextDrawVehiclePanel[6], 252645375);
  120. TextDrawSetOutline(TextDrawVehiclePanel[6], 0);
  121. TextDrawSetProportional(TextDrawVehiclePanel[6], 1);
  122. TextDrawSetShadow(TextDrawVehiclePanel[6], 1);
  123. TextDrawUseBox(TextDrawVehiclePanel[6], 1);
  124. TextDrawBoxColor(TextDrawVehiclePanel[6], 255);
  125. TextDrawTextSize(TextDrawVehiclePanel[6], 95.000000, 12.000000);
  126. TextDrawSetSelectable(TextDrawVehiclePanel[6], 1);
  127.  
  128. new string[ MAX_VEHICLE_PARAMS * 25 ];
  129.  
  130. for(new id; id < MAX_VEHICLE_PARAMS; id++) {
  131. format(string, sizeof string, "%s%s~n~~n~", string, paramsName[ id ][ 0 ]);
  132. }
  133.  
  134. TextDrawVehiclePanel[7] = TextDrawCreate(7.000000, 234.000000, string);
  135. TextDrawBackgroundColor(TextDrawVehiclePanel[7], 0);
  136. TextDrawFont(TextDrawVehiclePanel[7], 1);
  137. TextDrawLetterSize(TextDrawVehiclePanel[7], 0.189999, 0.783999);
  138. TextDrawColor(TextDrawVehiclePanel[7], -106);
  139. TextDrawSetOutline(TextDrawVehiclePanel[7], 0);
  140. TextDrawSetProportional(TextDrawVehiclePanel[7], 1);
  141. TextDrawSetShadow(TextDrawVehiclePanel[7], 1);
  142.  
  143. TextDrawVehiclePanel[8] = TextDrawCreate(104.000000, 228.000000, "ld_dual:white");
  144. TextDrawBackgroundColor(TextDrawVehiclePanel[8], 255);
  145. TextDrawFont(TextDrawVehiclePanel[8], 4);
  146. TextDrawLetterSize(TextDrawVehiclePanel[8], 0.500000, 1.000000);
  147. TextDrawColor(TextDrawVehiclePanel[8], 252645375);
  148. TextDrawSetOutline(TextDrawVehiclePanel[8], 0);
  149. TextDrawSetProportional(TextDrawVehiclePanel[8], 1);
  150. TextDrawSetShadow(TextDrawVehiclePanel[8], 1);
  151. TextDrawUseBox(TextDrawVehiclePanel[8], 1);
  152. TextDrawBoxColor(TextDrawVehiclePanel[8], 255);
  153. TextDrawTextSize(TextDrawVehiclePanel[8], 9.000000, 91.000000);
  154. TextDrawSetSelectable(TextDrawVehiclePanel[8], 1);
  155.  
  156. TextDrawVehiclePanel[9] = TextDrawCreate(104.000000, 268.000000, "~<~");
  157. TextDrawBackgroundColor(TextDrawVehiclePanel[9], 0);
  158. TextDrawFont(TextDrawVehiclePanel[9], 2);
  159. TextDrawLetterSize(TextDrawVehiclePanel[9], 0.159999, 0.983999);
  160. TextDrawColor(TextDrawVehiclePanel[9], -206);
  161. TextDrawSetOutline(TextDrawVehiclePanel[9], 0);
  162. TextDrawSetProportional(TextDrawVehiclePanel[9], 1);
  163. TextDrawSetShadow(TextDrawVehiclePanel[9], 1);
  164. TextDrawUseBox(TextDrawVehiclePanel[9], 1);
  165. TextDrawBoxColor(TextDrawVehiclePanel[9], 0);
  166. TextDrawTextSize(TextDrawVehiclePanel[9], 101.000000, 10.000000);
  167. return 1;
  168. }
  169. public OnPlayerConnect(playerid)
  170. {
  171. PlayerTextDrawPanel[playerid] = CreatePlayerTextDraw(playerid, 65.000000, 234.000000, "OFF~n~~n~OFF~n~~n~OFF~n~~n~OFF~n~~n~OFF~n~~n~OFF");
  172. PlayerTextDrawBackgroundColor(playerid, PlayerTextDrawPanel[playerid], 0);
  173. PlayerTextDrawFont(playerid, PlayerTextDrawPanel[playerid], 2);
  174. PlayerTextDrawLetterSize(playerid, PlayerTextDrawPanel[playerid], 0.149999, 0.783999);
  175. PlayerTextDrawColor(playerid, PlayerTextDrawPanel[playerid], -206);
  176. PlayerTextDrawSetOutline(playerid, PlayerTextDrawPanel[playerid], 0);
  177. PlayerTextDrawSetProportional(playerid, PlayerTextDrawPanel[playerid], 1);
  178. PlayerTextDrawSetShadow(playerid, PlayerTextDrawPanel[playerid], 1);
  179. return 1;
  180. }
  181. stock ShowTextDrawsPanel(playerid)
  182. {
  183. if (GetPVarInt(playerid, "p_Panel"))
  184. return 0;
  185.  
  186. for(new textdraw; textdraw < sizeof TextDrawVehiclePanel; textdraw++)
  187. TextDrawShowForPlayer(playerid, TextDrawVehiclePanel[textdraw]);
  188.  
  189. new
  190. p_vehid = GetPlayerVehicleID(playerid);
  191.  
  192. FixUnsetParameters(p_vehid);
  193.  
  194. UpdatePlayerVehicleParams(playerid);
  195.  
  196. PlayerTextDrawShow(playerid, PlayerTextDrawPanel[playerid]);
  197.  
  198. SelectTextDraw(playerid, 0x222222FF);
  199.  
  200. SetPVarInt(playerid, "p_panel", 1);
  201. return 1;
  202. }
  203. stock HideTextDrawsPanel(playerid)
  204. {
  205. if (!GetPVarInt(playerid, "p_Panel"))
  206. return 0;
  207.  
  208. for(new textdraw; textdraw < sizeof TextDrawVehiclePanel; textdraw++)
  209. TextDrawHideForPlayer(playerid, TextDrawVehiclePanel[textdraw]);
  210.  
  211. PlayerTextDrawHide(playerid, PlayerTextDrawPanel[playerid]);
  212.  
  213. CancelSelectTextDraw(playerid);
  214.  
  215. DeletePVar(playerid, "p_panel");
  216. return 1;
  217. }
  218. stock UpdatePlayerVehicleParams(playerid)
  219. {
  220. new p_vehparams[ MAX_VEHICLE_PARAMS + 1 ];
  221. new p_vehid = GetPlayerVehicleID(playerid);
  222.  
  223. GetVehicleParams(p_vehid, p_vehparams);
  224.  
  225. new string[ MAX_VEHICLE_PARAMS * 25 ];
  226.  
  227. for(new params; params < MAX_VEHICLE_PARAMS; params++) {
  228. format(string, sizeof string, "%s%s~n~ ~n~", string, p_vehparams[params] ? paramsName[params][ 1 ] : paramsName[params][ 2 ]);
  229. }
  230. PlayerTextDrawSetString(playerid, PlayerTextDrawPanel[playerid], string);
  231. }
  232. stock UpdateVehicleParams(playerid, param)
  233. {
  234. if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
  235. return 0;
  236.  
  237. new p_vehparams[ MAX_VEHICLE_PARAMS + 1 ];
  238. new p_vehid = GetPlayerVehicleID(playerid);
  239.  
  240. GetVehicleParams(p_vehid, p_vehparams);
  241.  
  242. p_vehparams[param] = p_vehparams[param] ? 0 : 1;
  243.  
  244. SetVehicleParamsEx(p_vehid, p_vehparams[ 0 ], p_vehparams[ 1 ], p_vehparams[ 2 ], p_vehparams[ 3 ], p_vehparams[ 4 ], p_vehparams[ 5 ], p_vehparams[ 6 ]);
  245.  
  246. UpdatePlayerVehicleParams(playerid);
  247.  
  248. if (param == 3) PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  249. return 1;
  250. }
  251. stock GetVehicleParams(vehicleid, params[ MAX_VEHICLE_PARAMS + 1 ])
  252. {
  253. GetVehicleParamsEx(vehicleid, params[ 0 ], params[ 1 ], params[ 2 ], params[ 3 ], params[ 4 ], params[ 5 ], params[ 6 ]);
  254. }
  255. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  256. {
  257. if (newkeys & KEY_OPEN_MENU && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  258. {
  259. ShowTextDrawsPanel(playerid);
  260. }
  261. return 1;
  262. }
  263. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  264. {
  265. if (GetPVarInt(playerid, "p_panel"))
  266. {
  267. if (clickedid == TextDrawVehiclePanel[ 8 ] || clickedid == Text:INVALID_TEXT_DRAW)
  268. {
  269. HideTextDrawsPanel(playerid);
  270. return 1;
  271. }
  272.  
  273. new id = MAX_VEHICLE_PARAMS;
  274. while(id--)
  275. {
  276. if (clickedid == TextDrawVehiclePanel[ id + 1 ])
  277. {
  278. UpdateVehicleParams(playerid, id);
  279. break;
  280. }
  281. }
  282. }
  283. return 1;
  284. }
  285. stock FixUnsetParameters(vehicleid)
  286. {
  287. new params[ 7 ];
  288. GetVehicleParamsEx(vehicleid, params[ 0 ], params[ 1 ], params[ 2 ], params[ 3 ], params[ 4 ], params[ 5 ], params[6 ]);
  289. SetVehicleParamsEx(vehicleid,
  290. params[ 0 ] < 0 ? 1 : params[ 0 ], // Motor
  291. params[ 1 ] < 0 ? 0 : params[ 1 ], // Svjetla
  292. params[ 2 ] < 0 ? 0 : params[ 2 ], // Alarm
  293. params[ 3 ] < 0 ? 0 : params[ 3 ], // Vrata
  294. params[ 4 ] < 0 ? 0 : params[ 4 ], // Hauba
  295. params[ 5 ] < 0 ? 0 : params[ 5 ], // Gepek
  296. params[ 6 ]); // Objective
  297. }
  298. CMD:vozilo( playerid )
  299. {
  300. new Float: X, Float: Y, Float: Z, Float:ANG, elegy;
  301. GetPlayerPos( playerid, X, Y, Z );
  302. GetPlayerFacingAngle( playerid, ANG);
  303. elegy = CreateVehicle(562, X, Y, Z, ANG, -1, -1, -1 );
  304. PutPlayerInVehicle(playerid, elegy, 0);
  305. SendClientMessage(playerid, -1, "Stvorio si vozilo");
  306. return 1;
  307. }
  308. CMD:noc( playerid )
  309. {
  310. SetPlayerTime(playerid, 21 , 00);
  311. return 1;
  312. }
Add Comment
Please, Sign In to add comment