Advertisement
Guest User

Untitled

a guest
Sep 6th, 2018
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.07 KB | None | 0 0
  1. var resolution = mp.game.graphics.getScreenResolution(0,0);
  2.  
  3. function numberWithCommas(x) {
  4. var parts = x.toString().split(".");
  5. parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  6. return parts.join(".");
  7. }
  8.  
  9. var draw_text = true;
  10. var money = 0;
  11. var draw_money = true;
  12. var moneystring = "";
  13. var draw_textures = false;
  14. var max_amount = 0;
  15. var print_hud = true;
  16. var useKmh = false; // Toggle kmh / mph speedometer.
  17.  
  18. var bank = 0;
  19. var bankstring = "";
  20.  
  21. var dirtymoney = 0;
  22. var dirtymoneystring = "";
  23.  
  24. var res_X = 1920; //API.getScreenResolutionMaintainRatio().Width;
  25. var res_Y = 1080; //API.getScreenResolutionMaintainRatio().Height;
  26. var text = "";
  27. var road = "";
  28.  
  29. /*
  30. var mapMarginLeft = res_X / 64; //API.getScreenResolutionMaintainRatio().Width / 64;
  31. var mapMarginBottom = res_Y / 60; //API.getScreenResolutionMaintainRatio().Height / 60;
  32. var mapWidth = res_X / 7.11; //API.getScreenResolutionMaintainRatio().Width / 7.11;
  33. var mapHeight = res_Y / 5.71; //API.getScreenResolutionMaintainRatio().Height / 5.71;
  34. var resX = mapMarginLeft + mapWidth + mapMarginLeft;
  35. var resY = res_Y - mapHeight - mapMarginBottom;
  36. */
  37.  
  38. var logged = 0;
  39. var fuel = 100.0;
  40.  
  41. var moneyElement = null;
  42. var bankElement = null;
  43.  
  44. const useSpeedo = true;
  45. const updateInterval = 500; // milliseconds, lower value = more accurate, at the cost of performance
  46.  
  47. const Natives = {
  48. IS_RADAR_HIDDEN: "0x7382a6b79bd5f585",
  49. IS_RADAR_ENABLED: "0x8056602005161037",
  50. SET_TEXT_OUTLINE: "0x918f022e4c3a47c2"
  51. };
  52.  
  53. let streetName = null;
  54. let zoneName = null;
  55. let isMetric = false;
  56. let minimap = {};
  57.  
  58. function updateDirectionText() {
  59. var camera = mp.cameras.new("gameplay");
  60. var cameraDirection = camera.getDirection();
  61.  
  62. if (0.3 < cameraDirection.x && 0.3 < cameraDirection.y) {
  63. text = "NE";
  64. }
  65. else if (cameraDirection.x < -0.3 && 0.3 < cameraDirection.y) {
  66. text = "NW";
  67. }
  68. else if (0.3 < cameraDirection.x && cameraDirection.y < -0.3) {
  69. text = "SE";
  70. }
  71. else if (cameraDirection.x < -0.3 && cameraDirection.y < -0.3) {
  72. text = "SW";
  73. }
  74. else if (-0.3 < cameraDirection.x && cameraDirection.x < 0.3 && cameraDirection.y < -0.3) {
  75. text = "S";
  76. }
  77. else if (cameraDirection.x < -0.3 && -0.3 < cameraDirection.y && cameraDirection.y < 0.3) {
  78. text = "W";
  79. }
  80. else if (0.3 < cameraDirection.x && -0.3 < cameraDirection.y && cameraDirection.y < 0.3) {
  81. text = "E";
  82. }
  83. else if (-0.3 < cameraDirection.x && cameraDirection.x < 0.3 && cameraDirection.y > 0.3) {
  84. text = "N";
  85. }
  86. camera.destroy(true);
  87. }
  88.  
  89. function updateValues() {
  90. // only do stuff if radar is enabled and visible
  91. if (mp.players.local === null || mp.players.local === undefined)
  92. return;
  93. mp.game.player.restoreStamina(100);
  94. if (mp.game.invoke(Natives.IS_RADAR_ENABLED) && !mp.game.invoke(Natives.IS_RADAR_HIDDEN)) {
  95. isMetric = mp.game.gameplay.getProfileSetting(227) == 1;
  96. const position = mp.players.local.position;
  97. let getStreet = mp.game.pathfind.getStreetNameAtCoord(position.x, position.y, position.z, 0, 0);
  98. zoneName = mp.game.ui.getLabelText(mp.game.zone.getNameOfZone(position.x, position.y, position.z));
  99. streetName = mp.game.ui.getStreetNameFromHashKey(getStreet.streetName);
  100. if (getStreet.crossingRoad && getStreet.crossingRoad != getStreet.streetName) streetName += ` / ${mp.game.ui.getStreetNameFromHashKey(getStreet.crossingRoad)}`;
  101. } else {
  102. streetName = null;
  103. zoneName = null;
  104. }
  105. updateDirectionText();
  106. }
  107.  
  108. setInterval(() => {
  109. if (!print_hud)
  110. return;
  111.  
  112. if (logged && draw_text) {
  113. updateValues();
  114. }
  115. }, 1000);
  116.  
  117. var hud_display = true;
  118. var isInCCTV = false;
  119. mp.events.add(
  120. {
  121. "update_fuel" : (amount) => {
  122. fuel = amount;
  123. },
  124.  
  125. "logged" : () => {
  126. logged = 1;
  127. },
  128.  
  129. "hud_display" : () => {
  130. hud_display = !hud_display;
  131. },
  132.  
  133. "StartWatchCCTV" : (pos, rot) => {
  134. isInCCTV = true;
  135. let cctvCamera = API.createCamera(pos, rot);
  136. API.setActiveCamera(cctvCamera);
  137. },
  138.  
  139. "StopWatchCCTV" : () => {
  140. isInCCTV = false;
  141. },
  142.  
  143. "open_mdc" : () => {
  144. var browser = null;
  145. var browserWidth = resolution.x / 2;
  146. var browserHeight = resolution.y / 2 + 50;
  147. browser = API.createCefBrowser(browserWidth, browserHeight, false);
  148. API.waitUntilCefBrowserInit(browser);
  149. API.setCefBrowserPosition(browser, (resolution.x / 2) - (browserWidth / 2), (resolution.y) - (browserHeight) - 20);
  150. API.loadPageCefBrowser(browser, "http://gtaworld.ddns.net/");
  151. API.waitUntilCefBrowserLoaded(browser);
  152. API.showCursor(true);
  153. API.setCanOpenChat(false)
  154. },
  155.  
  156. "display_gtaw" : () => {
  157. if (draw_text)
  158. draw_text = false;
  159. else
  160. draw_text = true;
  161. },
  162.  
  163. "moneyDisplay": (amount) => {
  164. money = amount;
  165. if (money != null) {
  166. moneystring = "$" + numberWithCommas(money.toFixed());
  167. }
  168. // hide the singleplayer money - DISPLAY_CASH
  169. mp.game.invoke('0x96DEC8D5430208B7', false);
  170. },
  171.  
  172. "getwepdata": () => {
  173. GetWeaponData();
  174. },
  175.  
  176. "bankDisplay" : (amount) => {
  177. bank = amount;
  178. if (bank != null)
  179. bankstring = "$" + numberWithCommas(bank.toFixed());
  180. },
  181. });
  182. var res = false;
  183. mp.events.add('render', () => {
  184. if (!print_hud)
  185. return;
  186. if (mp.players.local === null || mp.players.local === undefined)
  187. return;
  188. if (!res)
  189. {
  190. resolution = mp.game.graphics.getScreenResolution(0,0);
  191. if (resolution.x < 1920)
  192. {
  193. res_X = resolution.x;
  194. res_Y = resolution.y;
  195. }
  196. res = true;
  197. }
  198. if (logged && draw_text) {
  199. //draw_text = false;
  200. if (draw_text) {
  201. let player = mp.players.local;
  202.  
  203. if (player.isSittingInAnyVehicle()) {
  204. // Fuel UI
  205. if (fuel > -1) {
  206. if (fuel > 50) {
  207. mp.game.graphics.drawText(`Fuel ~g~${fuel}%`, [1250 / res_X, (res_Y - 70) / res_Y], {
  208. font: 4,
  209. color: [255, 255, 255, 200],
  210. scale: [0.9, 0.9],
  211. outline: true,
  212. centre: true
  213. });
  214. }
  215. else if (fuel > 20) {
  216. mp.game.graphics.drawText(`Fuel ~o~${fuel}%`, [1250 / res_X, (res_Y - 120) / res_Y], {
  217. font: 4,
  218. color: [255, 255, 255, 200],
  219. scale: [0.9, 0.9],
  220. outline: true,
  221. centre: true
  222. });
  223. }
  224. else {
  225. mp.game.graphics.drawText(`Fuel ~r~${fuel}%`, [1250 / res_X, (res_Y - 120) / res_Y], {
  226. font: 4,
  227. color: [255, 255, 255, 200],
  228. scale: [0.9, 0.9],
  229. outline: true,
  230. centre: true
  231. });
  232. }
  233. }
  234.  
  235. var car = mp.players.local.vehicle;
  236. var velocity = car.getVelocity();
  237. var speed = Math.sqrt(
  238. velocity.x * velocity.x +
  239. velocity.y * velocity.y +
  240. velocity.z * velocity.z
  241. );
  242.  
  243. var displaySpeed = "";
  244. if (useKmh)
  245. displaySpeed = Math.round(speed * 3.6) + " km/h"; // Kmh
  246. else
  247. displaySpeed = Math.round(speed * 2.23) + " mph"; // Mph
  248.  
  249. // Speed UI
  250. mp.game.graphics.drawText(displaySpeed, [670 / res_X,(res_Y - 70) / res_Y], {
  251. font: 4,
  252. color: [255,255,255,200],
  253. scale: [1, 1],
  254. outline: true,
  255. centre: true
  256. });
  257. }
  258. // Location UI - Compass
  259. mp.game.graphics.drawText(text, [960 / res_X, (res_Y - 100) / res_Y], {
  260. font:2,
  261. color:[255, 255, 255, 200],
  262. scale: [0.75, 0.75],
  263. outline: true,
  264. centre: true });
  265. mp.game.graphics.drawText("|", [400 / res_X, (res_Y - 63) / res_Y], {
  266. font:4,
  267. color:[255, 255, 255, 0],
  268. scale: [1, 1],
  269. outline: true,
  270. centre: true });
  271. mp.game.graphics.drawText(zoneName, [960 / res_X, (res_Y - 60) / res_Y], {
  272. font:4,
  273. color:[255, 255, 255, 200],
  274. scale: [0.5, 0.5],
  275. outline: true,
  276. centre: true
  277. });
  278. mp.game.graphics.drawText(streetName, [960 / res_X, (res_Y - 30) / res_Y], {
  279. font:4,
  280. color:[255, 255, 255, 200],
  281. scale: [0.4, 0.4],
  282. outline: true,
  283. centre: true
  284. });
  285. // Money UI
  286. mp.game.graphics.drawText(moneystring, [(res_X - 70) / res_X, 0.060], {
  287. font:4,
  288. color:[115, 186, 131, 200],
  289. scale: [0.8, 0.8],
  290. outline: true,
  291. centre: true
  292. });
  293. mp.game.graphics.drawText(bankstring, [(res_X - 70) / res_X, 0.1], {
  294. font:4,
  295. color:[255, 255, 255, 0],
  296. scale: [0.7, 0.7],
  297. outline: true,
  298. centre: true
  299. });
  300. // Gamemode version UI
  301. mp.game.graphics.drawText("GTA.WORLD - ~y~Roleplay v1.2.5c", [(res_X / 2) / res_X, (res_Y - 40) / res_Y], {
  302. font:4,
  303. color:[255, 255, 255, 0],
  304. scale: [0.55, 0.55],
  305. outline: true,
  306. centre: true });
  307. }
  308. if (isInCCTV === true) {
  309. // CCTV UI
  310. mp.game.graphics.drawText("CCTV", [(res_X / 2 - 72.8897705078125) / res_X, (resY / 2 + 392.16729736328125) / res_Y], {
  311. font: 6,
  312. color: [23,11,153,255],
  313. scale: [2, 2],
  314. outline: true,
  315. centre: true
  316. });
  317. }
  318. }
  319. });
  320.  
  321. function GetWeaponData() {
  322. const localPlayer = mp.players.local;
  323. // GET_PED_WEAPONTYPE_IN_SLOT - Returns a weapon at the specified slot if any was found.
  324. localPlayer.getWeaponTypeInSlot = (weaponSlot) => mp.game.invoke('0xEFFED78E9011134D', localPlayer.handle, weaponSlot);
  325.  
  326.  
  327. for (var i = 0; i < 81; i++) {
  328. const weapon = localPlayer.getWeaponTypeInSlot(i);
  329. if (weapon !== 0 && weapon !== 514) {
  330. mp.gui.chat.push("(" + i + ") Weapon: " + weapon);
  331. }
  332. }
  333.  
  334.  
  335.  
  336. /*const localPlayer = mp.players.local;
  337. localPlayer.getWeaponTypeInSlot = (weaponSlot) => mp.game.invoke('0xBBDDEBFD9564D52C', localPlayer.handle, weaponSlot);
  338. localPlayer.getAmmoWeapon = (weaponhash) => mp.game.invoke('0x2406A9C8DA99D3F4', localPlayer.handle, weaponhash);
  339. localPlayer.removeWeapon = (weaponhash) => mp.game.invoke('0xA48F593CC7A71FCC', localPlayer.handle, weaponhash);
  340. localPlayer.setWeaponAmmo = (weaponhash, ammo) => mp.game.invoke('0xC8207C41C6D1E3CF', localPlayer.handle, weaponhash, ammo);
  341. localPlayer.currentWeapon = mp.game.invoke('0x6678C142FAC881BA', localPlayer.handle);
  342. localPlayer.giveWeaponComponent = (weaponhash, component) => mp.game.invoke('0xAD084726D7F23594', localPlayer.handle, weaponhash, component);
  343. localPlayer.getWeaponClipSize = (weaponhash) => mp.game.invoke('0xADBCA3534D2F6BEB', weaponhash);
  344. localPlayer.getAllWeapons = () => {
  345. const weapons = [];
  346. weaponSlots.forEach(weaponSlot => {
  347. const weapon = localPlayer.getWeaponTypeInSlot(weaponSlot);
  348. if (weapon !== 0 && weapon !== -1569615261) {
  349. weapons[weapon] = { ammo: localPlayer.getAmmoWeapon(weapon)
  350. };
  351. }
  352. });
  353. mp.events.callRemote('send_weaponlist', weapons);*/
  354. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement