Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2017
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 76.50 KB | None | 0 0
  1. --[[
  2. FiveMenu v1.4
  3. by GeeknessFr
  4.  
  5. détruit par Draziak :)
  6. --]]
  7.  
  8. ------------------------------ KEY LIST HERE ------------------------------
  9.  
  10. --[[ ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
  11. ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
  12. ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
  13. ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
  14. ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
  15. ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
  16. ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
  17. ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
  18. ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118 ]]
  19.  
  20. ------------------------------ KEY LIST HERE -----------------------------
  21.  
  22. --> Voir ReadMe.txt pour la doc.
  23. local livery = 0
  24. local kpress = false
  25.  
  26. VMenu = {
  27.  
  28. -----------------------------------------------------
  29. ----------------- CONFIGURATION ---------------------
  30. -----------------------------------------------------
  31. -- ATTENTION : Bien laisser la virgule ( , ) à la fin de chaque ligne !
  32.  
  33.  
  34. -- Configuration des Touches
  35. -- Liste . https.//forum.fivem.net/t/list-of-possible-keys-in-array/1979
  36.  
  37. -- { Haut, Bas, Gauche, Droite, Valide, Retour}
  38. -- keys = {172, 173, 174, 175, 18, 177}, ----- Valeurs par défaut, en cas d'édition.
  39. keys = {172, 173, 174, 175, 18, 177},
  40. -- Configuration d'une touche pour ouvrir le menu.
  41. -- Si aucune touche, mettre nil
  42.  
  43. -- Ouverture du Menu
  44. --openKey = 167, -- F6 -- Default
  45. -- Ouverture par un event serveur. -> vmenu:openMenu
  46.  
  47. --VMenu.openKey = nil -- Aucune touche.
  48. mopenKey = 246, -- F6
  49. openKey = 38, -- F6
  50.  
  51. -- Pour la position : Valeurs de 0 à 1 par rapport à la taille totale de l'affichage du jeu. ! (0 = 0% - 1 = 100%)
  52.  
  53. -- Coin Haut Gauche du Menu
  54. top = 0.01,
  55. left = 0.01,
  56.  
  57. -- Largeur du Menu
  58. width = 0.23,
  59.  
  60. -- Nombre de lignes affichées sur le menu
  61. itemsOnScreen = 9,
  62.  
  63. HeaderDict = "fivemenu", -- Nom du Fichier Dictionnaire sans le ".ytd" qui est placé dans le dossier "stream"
  64.  
  65. rootMenu = 98, -- ID Menu de départ (0 par défaut)
  66.  
  67. voiceTarget = true, -- Active le ciblage à la voix, si besoin.
  68. -----------------------> User.target contient le PlayerID à l'ouverture du Menu.
  69.  
  70. checkUser = false, -- Active la récupération des infos du joueur via Essential Mod. (Voir ReadMe)
  71.  
  72.  
  73. ------------------ AJOUT
  74. updatedChar = true,
  75.  
  76. mainMenu = false,
  77. store = false,
  78. barbershop = false,
  79. hospital = false,
  80. outfitshop = false,
  81. garagepolice = false,
  82. garagehelicopolice = false,
  83. garagehelicoambulance = false,
  84. lockerpolice = false,
  85. admin = false,
  86.  
  87. Tanker_company = false,
  88. Container_company = false,
  89. Frigorifique_company = false,
  90. Log_company = false,
  91.  
  92. police = false,
  93. telephone = false,
  94. animations = false,
  95. jobs = false,
  96.  
  97. Cuffedkeys = {246, 38},
  98. ------------------ FIN AJOUT
  99.  
  100. -----------------------------------------------------
  101. ----------------- FIN CONFIGURATION -----------------
  102. -----------------------------------------------------
  103.  
  104. visible = false,
  105. curMenu = 0,
  106. prevMenu = 0,
  107. curItem = 1,
  108. scroll = 0,
  109. closedTime = 0,
  110. offsetY = 0.03,
  111. HdHeight = 0,
  112. BgHeight = 0.314,
  113. menus = {},
  114. items = {},
  115. disableKeys = { 19, 20, 43, 48, 187, 233, 309, 311, 85, 74, 21, 73, 121, 45, 80, 140, 170, 177, 194, 202, 225, 263,246},
  116. target = -1,
  117. debugKeys = false
  118.  
  119. }
  120.  
  121. local VOpts = {
  122. firstLoad = false,
  123. toUpdate = nil,
  124. LastVeh = 0,
  125. openMenu = false
  126. }
  127.  
  128. User = {
  129. Spawned = false,
  130. Loaded = false,
  131. group = "0",
  132. permission_level = 0,
  133. money = 0,
  134. dirtymoney = 0,
  135. job = 0,
  136. police = 0,
  137. enService = 0,
  138. nom = "",
  139. prenom = "",
  140. vehicle = "",
  141. identifier = nil,
  142. telephone = ""
  143. }
  144.  
  145. -- AddEventHandler("playerSpawned", function()
  146. -- TriggerServerEvent('vmenu:sendData_s')
  147. -- end)
  148. --
  149. -- RegisterNetEvent("vmenu:f_sendData")
  150. -- AddEventHandler("vmenu:f_sendData", function(data) -- target = Dernier joueur à avoir parlé, pas besoin ici. Mais obligatoire !
  151. -- VMenu = data
  152. -- Citizen.Trace(VMenu[1].top)
  153. -- end)
  154.  
  155.  
  156.  
  157. -------- DISTANCE ENTRE JOUEUR ET POINT
  158. function IsNearPoints(area, dist)
  159. local ply = GetPlayerPed(-1)
  160. local plyCoords = GetEntityCoords(ply, 0)
  161. for _, item in pairs(area) do
  162. local distance = GetDistanceBetweenCoords(item.x, item.y, item.z, plyCoords["x"], plyCoords["y"], plyCoords["z"], true)
  163. if(distance <= dist) then
  164. return true
  165. end
  166. end
  167. end
  168.  
  169. --------- SICK TEXT DISPLAY
  170. local ShowMsgtime = { msg = "", time = 0 }
  171.  
  172. Citizen.CreateThread(function()
  173. while true do
  174. Citizen.Wait(0)
  175. if ShowMsgtime.time ~= 0 then
  176. drawTxt(ShowMsgtime.msg, 0,1,0.5,0.8,0.6,255,255,255,255)
  177. ShowMsgtime.time = ShowMsgtime.time - 1
  178. end
  179. end
  180. end)
  181.  
  182. function drawTxt(text,font,centre,x,y,scale,r,g,b,a)
  183. SetTextFont(font)
  184. SetTextProportional(0)
  185. SetTextScale(scale, scale)
  186. SetTextColour(r, g, b, a)
  187. SetTextDropShadow(0, 0, 0, 0,255)
  188. SetTextEdge(1, 0, 0, 0, 255)
  189. SetTextDropShadow()
  190. SetTextOutline()
  191. SetTextCentre(centre)
  192. SetTextEntry("STRING")
  193. AddTextComponentString(text)
  194. DrawText(x , y)
  195. end
  196.  
  197. --------- FIN DÉCLARATION
  198.  
  199. VMenu.ctop = ((VMenu.width / 2) / 2) + VMenu.top
  200. VMenu.cleft = (VMenu.width / 2) + VMenu.left
  201. VMenu.TextX = VMenu.left + 0.01
  202. VMenu.BgY = VMenu.top + VMenu.HdHeight + (VMenu.BgHeight / 2)
  203.  
  204.  
  205.  
  206.  
  207. function VMenu.Info(text, loop)
  208. SetTextComponentFormat("STRING")
  209. AddTextComponentString(text)
  210. DisplayHelpTextFromStringLabel(0, loop, 1, 0)
  211. end
  212.  
  213. function VMenu.DrawText(Text, X, Y, ScX, ScY, Font, Outline, Shadow, Center, RightJustify, R, G, B, A)
  214. SetTextFont(Font)
  215. SetTextScale(ScX, ScY)
  216. SetTextColour(R, G, B, A)
  217. if Outline then
  218. SetTextOutline()
  219. end
  220. if Shadow then
  221. SetTextDropShadow()
  222. end
  223. SetTextCentre(Center)
  224. SetTextRightJustify(RightJustify)
  225. SetTextEntry("STRING")
  226. AddTextComponentString(Text)
  227. DrawText(X, Y)
  228. end
  229. function VMenu.DrawHeader(td)
  230. local header = VMenu.menus[VMenu.curMenu].header
  231. if header ~= nil then
  232. VMenu.HdHeight = (VMenu.width / 2)
  233. VMenu.ctop = ((VMenu.width / 2) / 2) + VMenu.top
  234. if string.lower(header) == "default" then
  235. DrawSprite(td, "default_bgd", VMenu.cleft, VMenu.ctop, VMenu.width, VMenu.width / 2, 0.0, 255, 255, 255, 255)
  236. VMenu.DrawText(VMenu.menus[VMenu.curMenu].name, VMenu.left + (VMenu.width / 2), VMenu.top + (VMenu.HdHeight / 2) - 0.02, VMenu.width, 0.8, 7, false, false, true, false, 255, 255, 255, 255)
  237. else
  238. DrawSprite(td, header, VMenu.cleft, VMenu.ctop, VMenu.width, VMenu.width / 2, 0.0, 255, 255, 255, 255)
  239. end
  240. else
  241. VMenu.HdHeight = 0
  242. VMenu.ctop = VMenu.top
  243. end
  244. end
  245. function VMenu.DrawBg(td)
  246. local numItems = #VMenu.items[VMenu.curMenu]
  247. if numItems > VMenu.itemsOnScreen then numItems = VMenu.itemsOnScreen end
  248. VMenu.BgHeight = numItems * VMenu.offsetY + 0.05
  249. VMenu.BgY = VMenu.top + VMenu.HdHeight + (VMenu.BgHeight / 2)
  250. DrawSprite(td, "gradient_bgd", VMenu.cleft, VMenu.BgY , VMenu.width, VMenu.BgHeight, 0.0, 255, 255, 255, 255)
  251. end
  252. function VMenu.DrawItems(td)
  253. local curMenu = VMenu.curMenu
  254. local curItem = VMenu.curItem
  255. local numItems = #VMenu.items[curMenu]
  256. local menuTitle = string.upper(VMenu.menus[curMenu].name)
  257. local count = tostring(curItem) .. "/" .. tostring(numItems)
  258. local footerY = VMenu.BgY + (VMenu.BgHeight / 2)
  259.  
  260. VMenu.DrawText(menuTitle, VMenu.TextX, VMenu.top + VMenu.HdHeight + 0.005, 0.30, 0.33, 8, false, false, false, false, 255, 255, 255, 255)
  261. VMenu.DrawText(count, (VMenu.left + VMenu.width) - 0.02, VMenu.top + VMenu.HdHeight + 0.005, 0.30, 0.33, 8, false, false, false, false, 255, 255, 255, 255)
  262.  
  263. for i = 1 + VMenu.scroll, numItems do
  264. if i > VMenu.itemsOnScreen + VMenu.scroll then
  265. break
  266. end
  267.  
  268. local itemTitle = VMenu.items[curMenu][i].name
  269. local itemDesc = VMenu.items[curMenu][i].desc
  270.  
  271. if VMenu.items[curMenu][i].type == "separator" then
  272. VMenu.DrawText("- "..itemTitle.." -", VMenu.left + (VMenu.width / 2), VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.45, 0.45, 6, false, false, true, false, 255, 255, 255, 255)
  273. elseif i == curItem then
  274. DrawSprite(td, "gradient_nav", VMenu.cleft, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), VMenu.width, 0.03, 0.0, 255, 255, 255, 255)
  275. VMenu.DrawText(itemTitle, VMenu.TextX, VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.30, 0.33, 8, false, false, false, false, 0, 0, 0, 255)
  276.  
  277. if itemDesc ~= "" and itemDesc ~= nil then
  278. DrawSprite(td, "gradient_bgd", VMenu.cleft, footerY + 0.045, VMenu.width, 0.030, 0.0, 255, 255, 255, 120)
  279. VMenu.DrawText(itemDesc, VMenu.TextX, footerY + 0.032, VMenu.width, 0.33, 8, false, false, false, false, 255, 255, 255, 220)
  280. end
  281.  
  282. else
  283. VMenu.DrawText(itemTitle, VMenu.TextX, VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.30, 0.33, 8, false, false, false, false, 255, 255, 255, 255)
  284. end
  285.  
  286. if VMenu.items[curMenu][i].type == "bool" then
  287. local sprite = "shop_box_blank"
  288. local varname = VMenu.items[curMenu][i].varname
  289. if VOpts[varname] then sprite = "shop_box_tick" end
  290. if i == curItem then sprite = sprite.."b" end
  291.  
  292. DrawSprite(td, sprite, (VMenu.left + VMenu.width) - 0.02, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.02, 0.04, 0.0, 255, 255, 255, 200)
  293. end
  294. if VMenu.items[curMenu][i].type == "num" then
  295. local left = "arrowleft"
  296. local right = "arrowright"
  297. local varname = VMenu.items[curMenu][i].varname
  298. local c = 255
  299. if i == curItem then
  300. c = 0
  301. left = left.."b"
  302. right = right.."b"
  303. end
  304.  
  305. DrawSprite(td, left, (VMenu.left + VMenu.width) - 0.03, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.01, 0.02, 0.0, 255, 255, 255, 200)
  306. DrawSprite(td, right, (VMenu.left + VMenu.width) - 0.01, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.01, 0.02, 0.0, 255, 255, 255, 200)
  307. VMenu.DrawText(tostring(VOpts[varname][1]), (VMenu.left + VMenu.width) - 0.02, VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.10, 0.33, 8, false, false, true, false, c, c, c, 255)
  308. end
  309. if VMenu.items[curMenu][i].type == "num1000" then
  310. local left = "arrowleft"
  311. local right = "arrowright"
  312. local varname = VMenu.items[curMenu][i].varname
  313. local c = 255
  314. if i == curItem then
  315. c = 0
  316. left = left.."b"
  317. right = right.."b"
  318. end
  319.  
  320. DrawSprite(td, left, (VMenu.left + VMenu.width) - 0.03, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.01, 0.02, 0.0, 255, 255, 255, 200)
  321. DrawSprite(td, right, (VMenu.left + VMenu.width) - 0.01, VMenu.top + VMenu.HdHeight + 0.064 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.01, 0.02, 0.0, 255, 255, 255, 200)
  322. VMenu.DrawText(tostring(VOpts[varname][1]), (VMenu.left + VMenu.width) - 0.02, VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.10, 0.33, 8, false, false, true, false, c, c, c, 255)
  323. end
  324. if VMenu.items[curMenu][i].type == "valsub" then
  325. local varname = VMenu.items[curMenu][i].varname
  326. local c = 255
  327. if i == curItem then
  328. c = 0
  329. end
  330. VMenu.DrawText(tostring(VOpts[varname]), (VMenu.left + VMenu.width) - 0.02, VMenu.top + VMenu.HdHeight + 0.050 + (VMenu.offsetY * (i-1-VMenu.scroll)), 0.10, 0.33, 8, false, false, true, false, c, c, c, 255)
  331. end
  332.  
  333. end
  334. DrawRect(VMenu.cleft, footerY + 0.015, VMenu.width, 0.025, 0, 0, 0, 160);
  335. DrawSprite(td, "shop_arrows_upanddown", VMenu.cleft, footerY + 0.015, 0.018, 0.03, 0.0, 255, 255, 255, 255)
  336. end
  337. function VMenu.Show()
  338. if VMenu.visible then
  339. local td = VMenu.HeaderDict
  340. if not HasStreamedTextureDictLoaded(td) then
  341. RequestStreamedTextureDict(td, true)
  342. while not HasStreamedTextureDictLoaded(td) do
  343. Wait(10)
  344. end
  345. end
  346. VMenu.DrawHeader(td)
  347. VMenu.DrawBg(td)
  348. VMenu.DrawItems(td)
  349. end
  350. end
  351.  
  352. function scrollAdjust()
  353. if #VMenu.items[VMenu.curMenu] > VMenu.itemsOnScreen then
  354. if VMenu.curItem < math.floor((VMenu.itemsOnScreen) / 2) + 1 then
  355. VMenu.scroll = 0
  356. end
  357. if VMenu.curItem >= math.floor((VMenu.itemsOnScreen) / 2) + 1 then
  358. VMenu.scroll = VMenu.curItem - (math.floor((VMenu.itemsOnScreen) / 2) + 1)
  359. end
  360. if VMenu.scroll + VMenu.itemsOnScreen >= #VMenu.items[VMenu.curMenu] then
  361. VMenu.scroll = #VMenu.items[VMenu.curMenu] - VMenu.itemsOnScreen
  362. end
  363. else
  364. VMenu.scroll = 0
  365. end
  366. end
  367.  
  368. function VMenu.k_down()
  369. VMenu.curItem = VMenu.curItem + 1;
  370. if VMenu.curItem > #VMenu.items[VMenu.curMenu] then
  371. VMenu.curItem = 1
  372. end
  373. local infinite = 0
  374. while VMenu.items[VMenu.curMenu][VMenu.curItem].type == "separator" do
  375. VMenu.curItem = VMenu.curItem + 1;
  376. if VMenu.curItem > #VMenu.items[VMenu.curMenu] then
  377. VMenu.curItem = 1
  378. infinite = infinite + 1
  379. if infinite == 2 then
  380. break
  381. end
  382. end
  383. end
  384. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  385. scrollAdjust()
  386. end
  387.  
  388. function VMenu.k_up()
  389. VMenu.curItem = VMenu.curItem - 1;
  390. if VMenu.curItem < 1 then
  391. VMenu.curItem = #VMenu.items[VMenu.curMenu]
  392. end
  393. local infinite = 0
  394. while VMenu.items[VMenu.curMenu][VMenu.curItem].type == "separator" do
  395. VMenu.curItem = VMenu.curItem - 1;
  396. if VMenu.curItem < 1 then
  397. VMenu.curItem = #VMenu.items[VMenu.curMenu]
  398. infinite = infinite + 1
  399. if infinite == 2 then
  400. break
  401. end
  402. end
  403. end
  404. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  405. scrollAdjust()
  406. end
  407.  
  408. function VMenu.k_left()
  409. if VMenu.items[VMenu.curMenu][VMenu.curItem].type == "num" then
  410. local varname = VMenu.items[VMenu.curMenu][VMenu.curItem].varname
  411. VOpts[varname][1] = VOpts[varname][1] - 1
  412. if VOpts[varname][1] < VOpts[varname][2] then VOpts[varname][1] = VOpts[varname][3] end
  413. VOpts['toUpdate'] = varname
  414. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  415. end
  416. if VMenu.items[VMenu.curMenu][VMenu.curItem].type == "num1000" then
  417. local varname = VMenu.items[VMenu.curMenu][VMenu.curItem].varname
  418. VOpts[varname][1] = VOpts[varname][1] - 250
  419. if VOpts[varname][1] < VOpts[varname][2] then VOpts[varname][1] = VOpts[varname][3] end
  420. VOpts['toUpdate'] = varname
  421. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  422. end
  423. end
  424.  
  425. function VMenu.k_right()
  426. if VMenu.items[VMenu.curMenu][VMenu.curItem].type == "num" then
  427. local varname = VMenu.items[VMenu.curMenu][VMenu.curItem].varname
  428. VOpts[varname][1] = VOpts[varname][1] + 1
  429. if VOpts[varname][1] > VOpts[varname][3] then VOpts[varname][1] = VOpts[varname][2] end
  430. VOpts['toUpdate'] = varname
  431. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  432. end
  433. if VMenu.items[VMenu.curMenu][VMenu.curItem].type == "num1000" then
  434. local varname = VMenu.items[VMenu.curMenu][VMenu.curItem].varname
  435. VOpts[varname][1] = VOpts[varname][1] + 250
  436. if VOpts[varname][1] > VOpts[varname][3] then VOpts[varname][1] = VOpts[varname][2] end
  437. VOpts['toUpdate'] = varname
  438. PlaySound(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  439. end
  440. end
  441.  
  442. function VMenu.valid()
  443. local curMenu = VMenu.curMenu
  444. local curItem = VMenu.curItem
  445. if (VMenu.items[curMenu][curItem].type == "sub" or VMenu.items[curMenu][curItem].type == "valsub") and VMenu.items[curMenu][curItem].toMenu ~= nil then
  446. local newMenu = VMenu.items[curMenu][curItem].toMenu
  447. VMenu.menus[newMenu].prev = curMenu
  448. VMenu.menus[curMenu].select = curItem
  449. VMenu.curMenu = newMenu
  450. VMenu.curItem = VMenu.menus[newMenu].select
  451. PlaySound(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  452. scrollAdjust()
  453. Wait(1000)
  454. end
  455. if VMenu.items[curMenu][curItem].type == "func" and VMenu.items[curMenu][curItem].func ~= nil then
  456. local func = VMenu.items[curMenu][curItem].func
  457. local params = VMenu.items[curMenu][curItem].params
  458. PlaySound(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  459. TriggerEvent(func, VMenu.target, table.unpack(params))
  460. if VMenu.curMenu == 5 then
  461. TriggerEvent("vmenu:closeMenu")
  462. elseif VMenu.curMenu == 7 then
  463. TriggerEvent("vmenu:closeMenu")
  464. elseif VMenu.curMenu == 15 then
  465. TriggerEvent("vmenu:closeMenu")
  466. elseif VMenu.curMenu == 17 then
  467. TriggerEvent("vmenu:closeMenu")
  468. elseif VMenu.curMenu == 18 then
  469. TriggerEvent("vmenu:closeMenu")
  470. elseif VMenu.curMenu == 19 then
  471. TriggerEvent("vmenu:closeMenu")
  472. elseif VMenu.curMenu == 98 then
  473. --TriggerServerEvent("inventory:getItems_s")
  474. getMainMenu()
  475. end
  476. if #VMenu.items[curMenu] < curItem then
  477. if VMenu.telephone then
  478. VMenu.curItem = 2
  479. curItem = 2
  480. else
  481. VMenu.curItem = 1
  482. curItem = 1
  483. end
  484. end
  485. scrollAdjust()
  486. Wait(1000)
  487. end
  488. if VMenu.items[curMenu][curItem].type == "bool" and VMenu.items[curMenu][curItem].varname ~= nil then
  489. VOpts[VMenu.items[curMenu][curItem].varname] = not VOpts[VMenu.items[curMenu][curItem].varname]
  490. VOpts['toUpdate'] = VMenu.items[curMenu][curItem].varname
  491. PlaySound(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0, 1)
  492. Wait(1000)
  493. end
  494. end
  495.  
  496. function VMenu.back()
  497. if VMenu.curMenu ~= VMenu.rootMenu then
  498. local curMenu = VMenu.curMenu
  499. local newMenu = VMenu.menus[curMenu].prev
  500. VMenu.menus[curMenu].prev = 0
  501. VMenu.menus[curMenu].select = VMenu.curItem
  502. VMenu.curMenu = newMenu
  503. VMenu.curItem = VMenu.menus[newMenu].select
  504. scrollAdjust()
  505. else
  506. TriggerEvent("vmenu:closeMenu")
  507. end
  508. end
  509.  
  510.  
  511. local k_delay = 200 -- 1er Delay
  512. local k_delay2 = 160 -- puis 2 3 et 4ème delay
  513. local k_delay3 = 50 -- et si touche restée appuyée.
  514.  
  515.  
  516.  
  517. local jLastKey = 0
  518. local jTimer = 0
  519. function isJustPressedKey(key)
  520. if key ~= jLastKey and IsDisabledControlPressed(0, key) then -- Pas la même touche -> RESET
  521. jLastKey = key
  522. jTimer = GetGameTimer()
  523. return true
  524.  
  525. elseif key == jLastKey and IsDisabledControlPressed(0, key) then -- Meme Touche
  526. if GetGameTimer() - jTimer < k_delay3 then
  527. while IsDisabledControlPressed(0, key) do
  528. Wait(1)
  529. end
  530. return false
  531. else
  532. jTimer = GetGameTimer()
  533. return true
  534. end
  535.  
  536. end
  537. return false
  538. end
  539.  
  540. local lastKey = 0
  541. local timer = 0
  542. local count = 0
  543. local pass = false
  544.  
  545. function isPressedKey(key)
  546. if key ~= lastKey and IsDisabledControlPressed(0, key) then -- Pas la même touche -> RESET
  547. lastKey = key
  548. timer = GetGameTimer()
  549. count = 0
  550. pass = false
  551. return true
  552.  
  553. elseif key == lastKey and IsDisabledControlPressed(0, key) then -- Meme Touche
  554. if pass then -- Accélération du défilement
  555. count = 0
  556. if GetGameTimer() - timer > k_delay3 and GetGameTimer() - timer < k_delay then
  557. timer = GetGameTimer()
  558. return true
  559. elseif GetGameTimer() - timer > k_delay then
  560. pass = false
  561. timer = GetGameTimer()
  562. return true
  563. end
  564. return false
  565. elseif GetGameTimer() - timer > k_delay + 100 then
  566. count = 0
  567. timer = GetGameTimer()
  568. return true
  569. elseif GetGameTimer() - timer > k_delay then
  570. count = 1
  571. timer = GetGameTimer()
  572. return true
  573. elseif GetGameTimer() - timer > k_delay2 and (count > 0 and count < 5) then
  574. count = count + 1
  575. timer = GetGameTimer()
  576. return true
  577. elseif count > 4 then
  578. pass = true
  579. return false
  580. end
  581. return false
  582. end
  583. return false
  584. end
  585.  
  586. function VMenu.test_keys()
  587. Citizen.CreateThread(function()
  588. while true do
  589. Wait(5)
  590. if VMenu.visible then
  591. if isPressedKey(VMenu.keys[1]) then
  592. VMenu.k_up()
  593. elseif isPressedKey(VMenu.keys[2]) then
  594. VMenu.k_down()
  595. elseif isPressedKey(VMenu.keys[3]) then
  596. VMenu.k_left()
  597. elseif isPressedKey(VMenu.keys[4]) then
  598. VMenu.k_right()
  599. elseif isJustPressedKey(VMenu.keys[5]) then
  600. VMenu.valid()
  601. elseif isJustPressedKey(VMenu.keys[6]) then
  602. VMenu.back()
  603. end
  604. end
  605. if VMenu.openKey ~= nil then
  606. if IsControlPressed(0, VMenu.openKey) or IsDisabledControlPressed(0, VMenu.openKey) then
  607. if VMenu.curMenu ~= 98 then
  608. if VMenu.visible then
  609. TriggerEvent("vmenu:toggleMenu")
  610. end
  611. if (VMenu.updatedChar == false) then
  612. Wait(500)
  613. TriggerServerEvent("vmenu:lastChar")
  614. Wait(200)
  615. end
  616. end
  617. Wait(200)
  618. end
  619. end
  620. if VMenu.mopenKey ~= nil then
  621. if IsControlPressed(0, VMenu.mopenKey) or IsDisabledControlPressed(0, VMenu.mopenKey) then
  622. if VMenu.curMenu == 98 then
  623. if VMenu.visible then
  624. TriggerEvent("vmenu:toggleMenu")
  625. else
  626. TriggerEvent("vmenu:openMenu", 98)
  627. end
  628. end
  629. Wait(200)
  630. end
  631. end
  632.  
  633. end
  634. end)
  635. end
  636.  
  637. function VMenu.DisableControls()
  638. for i = 1, #VMenu.keys do
  639. DisableControlAction(0, VMenu.keys[i], 1)
  640. end
  641. for i = 1, #VMenu.disableKeys do
  642. DisableControlAction(0, VMenu.disableKeys[i], 1)
  643. end
  644. end
  645.  
  646. function DisableControlsHandCuffed()
  647. for i = 1, #VMenu.Cuffedkeys do
  648. DisableControlAction(0, VMenu.Cuffedkeys[i], 1)
  649. end
  650. end
  651.  
  652.  
  653. function VMenu.AddMenu(id, menu, header)
  654. VMenu.menus[id] = {}
  655. VMenu.menus[id].name = menu
  656. VMenu.menus[id].header = header
  657. VMenu.menus[id].prev = 0 -- Default Value
  658. VMenu.menus[id].select = 1 -- Default Value
  659. VMenu.items[id] = {} -- Table Creation / Reset
  660. end
  661.  
  662. function VMenu.ResetMenu(id, menu, header)
  663. VMenu.items[id] = {} -- Table Creation / Reset
  664. end
  665.  
  666. function VMenu.AddSep(bindMenu, item)
  667. local size = #VMenu.items[bindMenu]
  668. VMenu.items[bindMenu][size+1] = {}
  669. VMenu.items[bindMenu][size+1].type = "separator"
  670. VMenu.items[bindMenu][size+1].name = item
  671. VMenu.items[bindMenu][size+1].desc = nil
  672. end
  673. function VMenu.EditSep(bindMenu, item)
  674. local size = nil
  675. for i = 1, #VMenu.items[bindMenu] do
  676. if VMenu.items[bindMenu][i].type == "separator" then
  677. size = i
  678. break
  679. end
  680. end
  681. VMenu.items[bindMenu][size] = {}
  682. VMenu.items[bindMenu][size].type = "separator"
  683. VMenu.items[bindMenu][size].name = tostring(item)
  684. VMenu.items[bindMenu][size].desc = nil
  685. end
  686. function VMenu.AddSub(bindMenu, item, toMenu, desc)
  687. local size = #VMenu.items[bindMenu]
  688. VMenu.items[bindMenu][size+1] = {}
  689. VMenu.items[bindMenu][size+1].type = "sub"
  690. VMenu.items[bindMenu][size+1].name = item
  691. VMenu.items[bindMenu][size+1].toMenu = toMenu
  692. VMenu.items[bindMenu][size+1].desc = desc
  693. end
  694. function VMenu.AddFunc(bindMenu, item, func, params, desc)
  695. local size = #VMenu.items[bindMenu]
  696. VMenu.items[bindMenu][size+1] = {}
  697. VMenu.items[bindMenu][size+1].type = "func"
  698. VMenu.items[bindMenu][size+1].name = item
  699. VMenu.items[bindMenu][size+1].func = func
  700. VMenu.items[bindMenu][size+1].params = params
  701. VMenu.items[bindMenu][size+1].desc = desc
  702. end
  703. function VMenu.EditFunc(bindMenu, item, func, params, desc)
  704. local size = nil
  705. for i = 1, #VMenu.items[bindMenu] do
  706. if VMenu.items[bindMenu][i].name == item then
  707. size = i
  708. break
  709. end
  710. end
  711. VMenu.items[bindMenu][size] = {}
  712. VMenu.items[bindMenu][size].type = "func"
  713. VMenu.items[bindMenu][size].name = item
  714. VMenu.items[bindMenu][size].func = func
  715. VMenu.items[bindMenu][size].params = params
  716. VMenu.items[bindMenu][size].desc = desc
  717. end
  718. function VMenu.AddBool(bindMenu, item, varname, value, desc)
  719. local size = #VMenu.items[bindMenu]
  720. VMenu.items[bindMenu][size+1] = {}
  721. VMenu.items[bindMenu][size+1].type = "bool"
  722. VMenu.items[bindMenu][size+1].name = item
  723. VMenu.items[bindMenu][size+1].varname = varname
  724. VMenu.items[bindMenu][size+1].desc = desc
  725. VOpts[varname] = value
  726. end
  727. function VMenu.AddNum(bindMenu, item, varname, valmin, valmax, desc)
  728. local size = #VMenu.items[bindMenu]
  729. VMenu.items[bindMenu][size+1] = {}
  730. VMenu.items[bindMenu][size+1].type = "num"
  731. VMenu.items[bindMenu][size+1].name = item
  732. VMenu.items[bindMenu][size+1].varname = varname
  733. VMenu.items[bindMenu][size+1].desc = desc
  734. VOpts[varname] = {valmin, valmin, valmax}
  735. end
  736. function VMenu.AddNum1000(bindMenu, item, varname, valmin, valmax, desc)
  737. local size = #VMenu.items[bindMenu]
  738. VMenu.items[bindMenu][size+1] = {}
  739. VMenu.items[bindMenu][size+1].type = "num1000"
  740. VMenu.items[bindMenu][size+1].name = item
  741. VMenu.items[bindMenu][size+1].varname = varname
  742. VMenu.items[bindMenu][size+1].desc = desc
  743. VOpts[varname] = {valmin, valmin, valmax}
  744. end
  745. function VMenu.EditNum(bindMenu, item, varname, valmin, valmax, desc)
  746. VOpts[varname] = {valmin, valmin, valmax}
  747. end
  748.  
  749. function VMenu.AddValSub(bindMenu, item, varname, value, toMenu, desc)
  750. local size = #VMenu.items[bindMenu]
  751. VMenu.items[bindMenu][size+1] = {}
  752. VMenu.items[bindMenu][size+1].type = "valsub"
  753. VMenu.items[bindMenu][size+1].name = item
  754. VMenu.items[bindMenu][size+1].varname = varname
  755. VMenu.items[bindMenu][size+1].toMenu = toMenu
  756. VMenu.items[bindMenu][size+1].desc = desc
  757. VOpts[varname] = value
  758. end
  759.  
  760. function getOpt(varname)
  761. if type(VOpts[varname]) == "boolean" or type(VOpts[varname]) == "number" then
  762. return VOpts[varname]
  763. end
  764. if type(VOpts[varname]) == "table" then
  765. return VOpts[varname][1]
  766. end
  767. end
  768.  
  769. function setOpt(varname, value)
  770. if type(VOpts[varname]) == "table" and #VOpts[varname] == 3 then
  771. VOpts[varname][1] = value
  772. else
  773. VOpts[varname] = value
  774. end
  775. end
  776.  
  777. function list_keys()
  778. for tk = 0, 345 do
  779. if IsControlJustReleased(0, tk) then
  780. VMenu.notif("Key :"..tostring(tk))
  781. end
  782. end
  783. end
  784.  
  785. function VMenu.notif(text)
  786. SetNotificationTextEntry("STRING")
  787. AddTextComponentString(text)
  788. DrawNotification(false, false)
  789. end
  790.  
  791. RegisterNetEvent("vmenu:toggleMenu")
  792. AddEventHandler("vmenu:toggleMenu", function()
  793. -- Update Server avant ouverture
  794. ClearHelp(true)
  795. if not VMenu.visible then
  796. TriggerServerEvent("vmenu:getUpdates", true)
  797. else
  798. VMenu.target = -1
  799. VMenu.visible = false
  800. VMenu.closedTime = GetGameTimer()
  801. end
  802. end)
  803.  
  804. RegisterNetEvent("vmenu:openMenu")
  805. AddEventHandler("vmenu:openMenu", function(menuid)
  806. ClearHelp(true)
  807. menuid = menuid or VMenu.rootMenu
  808. VMenu.rootMenu = menuid
  809. VMenu.curMenu = menuid
  810. TriggerServerEvent("vmenu:getUpdates", true)
  811. end)
  812.  
  813. RegisterNetEvent("vmenu:serverOpenMenu")
  814. AddEventHandler("vmenu:serverOpenMenu", function(Opts)
  815. for k,v in pairs(Opts) do
  816. setOpt(k, v)
  817. end
  818. if VOpts['openMenu'] then
  819. VMenu.visible = true
  820. setOpt('openMenu', false)
  821. end
  822. end)
  823.  
  824. RegisterNetEvent("vmenu:setUser")
  825. AddEventHandler("vmenu:setUser", function(infos)
  826. for k,v in pairs(infos) do
  827. User[k] = v
  828. end
  829. end)
  830.  
  831. RegisterNetEvent("vmenu:setCarUser")
  832. AddEventHandler("vmenu:setCarUser", function(infos)
  833. User.vehicle = infos
  834. end)
  835.  
  836. RegisterNetEvent("vmenu:closeMenu")
  837. AddEventHandler("vmenu:closeMenu", function()
  838. VMenu.target = -1
  839. VMenu.visible = false
  840. VMenu.closedTime = GetGameTimer()
  841. end)
  842.  
  843. function playerSpawned()
  844. if VMenu.checkUser and (not User.Loaded and User.identifier == nil) then
  845. User.Spawned = true
  846. TriggerServerEvent("vmenu:updateUser", false)
  847. local trig = GetGameTimer()
  848. while not User.Loaded and User.identifier == nil do
  849. if GetGameTimer() - trig > 1000 then
  850. TriggerServerEvent("vmenu:updateUser", false)
  851. trig = GetGameTimer()
  852. end
  853. Wait(20)
  854. end
  855. end
  856. end
  857.  
  858. AddEventHandler("playerSpawned", function()
  859. playerSpawned()
  860. end)
  861.  
  862. -------------------------------------------------------------------------------------
  863. ------------------------------- CREATION DU MENU ------------------------------------
  864. -------------------------------------------------------------------------------------
  865.  
  866. -- Voir ReadMe.txt --
  867.  
  868.  
  869. function Construct()
  870. local menu = 0
  871. VMenu.AddMenu(menu, "Menu Test", "header_bgd")
  872. if User.group == "superadmin" then VMenu.AddSub(menu, "~r~Administrateur", 99, "Menu Admin") end
  873. VMenu.AddSub(menu, "Vehicule", 1, "Contrôle du Véhicule")
  874. VMenu.AddSub(menu, "Outfits", 2, "Menu Vêtements")
  875. VMenu.AddSub(menu, "Interactions", 3, "Test Default Header")
  876. VMenu.AddValSub(menu, "Bouteille d'eau", "BottlesNumber", 0, 4, "Test de requête serveur")
  877. VMenu.AddSub(menu, "Test 2", nil, nil)
  878. VMenu.AddSub(menu, "Test 3", nil, "Menu Test")
  879. VMenu.AddSub(menu, "Test 4", nil, nil)
  880. VMenu.AddSub(menu, "Test 5", nil, nil)
  881. VMenu.AddSub(menu, "Test 6", nil, nil)
  882. VMenu.AddSub(menu, "Test 7", nil, nil)
  883. VMenu.AddSub(menu, "Test 8", nil, nil)
  884. VMenu.AddSub(menu, "Test 9", nil, nil)
  885. VMenu.AddSub(menu, "Test 10", nil)
  886.  
  887. if User.group == "superadmin" then
  888. local menu = 99
  889. VMenu.AddMenu(menu, "Administrateur", "header_bgd")
  890. VMenu.AddFunc(menu, "Teleporter vers le marqueur", "vmenu:teleport_marker", {}, "")
  891. VMenu.AddSep(menu, "Véhicules Spawner")
  892. VMenu.AddSep(menu, "Voitures")
  893. VMenu.AddFunc(menu, "Adder", "vmenu:spawnVeh", {"adder"}, "")
  894. VMenu.AddFunc(menu, "Futo", "vmenu:spawnVeh", {"futo"}, "")
  895. VMenu.AddFunc(menu, "Infernus", "vmenu:spawnVeh", {"infernus"}, "")
  896. VMenu.AddFunc(menu, "Oracle", "vmenu:spawnVeh", {"oracle2"}, "")
  897. VMenu.AddFunc(menu, "Oracle XS", "vmenu:spawnVeh", {"oracle"}, "")
  898. VMenu.AddFunc(menu, "Sultan", "vmenu:spawnVeh", {"sultan"}, "")
  899. VMenu.AddFunc(menu, "Tampa Drift", "vmenu:spawnVeh", {"tampa2"}, "")
  900. VMenu.AddFunc(menu, "Windsor Cab", "vmenu:spawnVeh", {"windsor2"}, "")
  901. VMenu.AddSep(menu, "Motos")
  902. VMenu.AddFunc(menu, "Akuma", "vmenu:spawnVeh", {"akuma"}, "")
  903. VMenu.AddFunc(menu, "Cliffhanger", "vmenu:spawnVeh", {"cliffhanger"}, "")
  904. VMenu.AddFunc(menu, "Gargoyle", "vmenu:spawnVeh", {"gargoyle"}, "")
  905. VMenu.AddFunc(menu, "Sanchez", "vmenu:spawnVeh", {"sanchez"}, "")
  906. VMenu.AddSep(menu, "Bateaux")
  907. VMenu.AddFunc(menu, "Dinghy", "vmenu:spawnVeh", {"dinghy"}, "")
  908. VMenu.AddFunc(menu, "Jetmax", "vmenu:spawnVeh", {"jetmax"}, "")
  909. VMenu.AddFunc(menu, "Suntrap", "vmenu:spawnVeh", {"suntrap"}, "")
  910. VMenu.AddSep(menu, "Hélicos")
  911. VMenu.AddFunc(menu, "buzzard", "vmenu:spawnVeh", {"buzzard"}, "")
  912. VMenu.AddFunc(menu, "Cargo Bob", "vmenu:spawnVeh", {"cargobob"}, "")
  913. VMenu.AddFunc(menu, "Swift Deluxe", "vmenu:spawnVeh", {"swift2"}, "")
  914. VMenu.AddSep(menu, "Avions")
  915. VMenu.AddFunc(menu, "Besra", "vmenu:spawnVeh", {"besra"}, "")
  916. VMenu.AddFunc(menu, "Dodo", "vmenu:spawnVeh", {"dodo"}, "")
  917. VMenu.AddFunc(menu, "Luxor VIP", "vmenu:spawnVeh", {"luxor2"}, "")
  918. VMenu.AddFunc(menu, "Stunt Plane", "vmenu:spawnVeh", {"stunt"}, "")
  919. VMenu.AddSep(menu, "Vélos")
  920. VMenu.AddFunc(menu, "BMX", "vmenu:spawnVeh", {"bmx"}, "")
  921. VMenu.AddFunc(menu, "Fixter", "vmenu:spawnVeh", {"fixter"}, "")
  922. VMenu.AddFunc(menu, "Scorcher", "vmenu:spawnVeh", {"scorcher"}, "")
  923. end
  924.  
  925. local menu = 1
  926. VMenu.AddMenu(menu, "Vehicule", "carmod")
  927. VMenu.AddBool(menu, "Moteur", "Engine", false, "Marche/Arrêt Moteur")
  928. VMenu.AddNum(menu, "Couleur Principale", "VehColor", 0, 160, "Change la couleur principale du véhicule")
  929. VMenu.AddNum(menu, "Couleur Secondaire", "VehColorS", 0, 160, "Change la couleur secondaire du véhicule")
  930.  
  931. local menu = 2
  932. VMenu.AddMenu(menu, "Outfits (Sans Header)", nil) -- nil = Aucun Header
  933. VMenu.AddSub(menu, "Outfit 1", nil, "Ne fait rien...")
  934. VMenu.AddSub(menu, "Outfit 2", nil, "Ne fait rien...")
  935. VMenu.AddSub(menu, "Outfit 3", nil, "Ne fait rien...")
  936. VMenu.AddSub(menu, "Outfit 4", nil, "Ne fait rien...")
  937. VMenu.AddSub(menu, "Outfit 5", nil, "Ne fait rien...")
  938.  
  939. local menu = 3
  940. VMenu.AddMenu(menu, "Interactions", "default") -- default = Header "Texte" sur fond bleu
  941. VMenu.AddSub(menu, "Test 1", nil, "Ne fait rien...")
  942. VMenu.AddSub(menu, "Test 2", nil, "Ne fait rien...")
  943. VMenu.AddSub(menu, "Test 3", nil, "Ne fait rien...")
  944. VMenu.AddSub(menu, "Test 4", nil, "Ne fait rien...")
  945. VMenu.AddSub(menu, "Test 5", nil, "Ne fait rien...")
  946.  
  947. local menu = 4
  948. VMenu.AddMenu(menu, "Bouteille d'eau", "default") -- default = Header "Texte" sur fond bleu
  949. VMenu.AddFunc(menu, "Utiliser", "inv:use", {"waterbottle"}, nil)
  950. VMenu.AddFunc(menu, "Donner", "inv:give", {"waterbottle"}, nil)
  951. VMenu.AddFunc(menu, "~r~Jeter", "inv:drop", {"waterbottle"}, nil)
  952. VMenu.AddFunc(menu, "Vendre", "inv:sell", {"waterbottle"}, nil)
  953.  
  954. local menu = 5
  955. VMenu.AddMenu(menu, "", "cloth") -- default = Header "Texte" sur fond bleu
  956. VMenu.AddFunc(menu, "En service", "vmenu:policeState", {1}, "Être en service")
  957. VMenu.AddFunc(menu, "En service civil", "vmenu:policeStateCivil", {1}, "Être en service")
  958. VMenu.AddFunc(menu, "Hors service", "vmenu:policeState", {0}, "Être hors service")
  959.  
  960. local menu = 6
  961. VMenu.AddMenu(menu, "", "armurerie") -- default = Header "Texte" sur fond bleu
  962. VMenu.AddFunc(menu, "Taser", "vmenu:getArmory", {"WEAPON_STUNGUN"}, "Obtenir cette arme")
  963. VMenu.AddFunc(menu, "Matraque", "vmenu:getArmory", {"WEAPON_NIGHTSTICK"}, "Obtenir cette arme")
  964. VMenu.AddFunc(menu, "Lampe", "vmenu:getArmory", {"WEAPON_Flashlight"}, "Obtenir cette arme")
  965. VMenu.AddFunc(menu, "Smoke", "vmenu:getArmory", {"WEAPON_SMOKEGRENADE"}, "Obtenir cette arme")
  966. --VMenu.AddFunc(menu, "Gaz", "vmenu:getArmory", {"WEAPON_BZGAS"}, "Obtenir cette arme")
  967. VMenu.AddFunc(menu, "Pistolet de combat", "vmenu:getArmory", {"WEAPON_COMBATPISTOL"}, "Obtenir cette arme")
  968. VMenu.AddFunc(menu, "Fusil à pompe", "vmenu:getArmory", {"WEAPON_PUMPSHOTGUN"}, "Obtenir cette arme")
  969. VMenu.AddFunc(menu, "M4", "vmenu:getArmory", {"WEAPON_CARBINERIFLE"}, "Obtenir cette arme")
  970. VMenu.AddFunc(menu, "Sniper", "vmenu:getArmory", {"WEAPON_SNIPERRIFLE"}, "Obtenir cette arme")
  971.  
  972.  
  973. local menu = 7
  974. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  975. TriggerServerEvent('vmenu:updateUser', 7)
  976. Citizen.Wait(100)
  977. if User.vehicle == 0 then
  978. if User.enService == 1 then
  979. if User.police >= 1 then
  980. VMenu.AddFunc(menu, "Crown Victoria police", "vmenu:getGarage", {"police7"}, "Obtenir cette voiture")
  981. VMenu.AddFunc(menu, "Impala police", "vmenu:getGarage", {"police8"}, "Obtenir cette voiture")
  982. VMenu.AddFunc(menu, "Charger Sheriff", "vmenu:getGarage", {"sheriff"}, "Obtenir cette voiture")
  983. end
  984. if User.police >= 2 then
  985. VMenu.AddFunc(menu, "Taurus police", "vmenu:getGarage", {"police4"}, "Obtenir cette voiture")
  986. VMenu.AddFunc(menu, "Suberban Sheriff", "vmenu:getGarage", {"sheriff2"}, "Obtenir cette voiture")
  987. VMenu.AddFunc(menu, "Crown Victoria Sheriff", "vmenu:getGarage", {"sheriff3"}, "Obtenir cette voiture")
  988. end
  989. if User.police >= 3 then
  990. VMenu.AddFunc(menu, "Charger police", "vmenu:getGarage", {"police2"}, "Obtenir cette voiture")
  991. end
  992. if User.police >= 4 then
  993. VMenu.AddFunc(menu, "Suberban K9", "vmenu:getGarage", {"police6"}, "Obtenir cette voiture")
  994. end
  995. if User.police >= 5 then
  996. VMenu.AddFunc(menu, "Taho banalisée", "vmenu:getGarage", {"fbi2"}, "Obtenir cette voiture")
  997. VMenu.AddFunc(menu, "Charger banalisée", "vmenu:getGarage", {"fbi"}, "Obtenir cette voiture")
  998. end
  999. if User.police >= 6 then
  1000. VMenu.AddFunc(menu, "Police explorer interceptor", "vmenu:getGarage", {"police3"}, "Obtenir cette voiture")
  1001. VMenu.AddFunc(menu, "Interceptor police 2017", "vmenu:getGarage", {"police5"}, "Obtenir cette voiture")
  1002. end
  1003. end
  1004. else
  1005. VMenu.AddFunc(menu, "Ranger votre véhicule", "vmenu:toGarage", {}, "Il doit être devant vous")
  1006. end
  1007.  
  1008. local menu = 8
  1009. VMenu.AddMenu(menu, "Tenues", "cloth") -- default = Header "Texte" sur fond bleu
  1010. VMenu.AddNum(menu, "Catégorie", "Tenues", 0, 65, "Changer de catégorie")
  1011. VMenu.AddSep(menu, OutfitsCat[1])
  1012. VMenu.AddFunc(menu, "Validez catégories tenues", "vmenu:OutfitsValidate", {getOpt("Tenues")}, "Valider")
  1013.  
  1014. local menu = 9
  1015. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  1016. VMenu.AddNum(menu, "Coiffure", "Hair", 0, 22, "Changer la coiffure")
  1017. VMenu.AddNum(menu, "Coiffure secondaire", "HairSec", 0, 6, "Changer la coiffure")
  1018. VMenu.AddNum(menu, "Couleur", "HairColor", 0, 10, "Changer la couleur des cheveux")
  1019. VMenu.AddNum(menu, "Couleur secondaire", "HairColorSec", 0, 100, "Changer la couleur des cheveux")
  1020. VMenu.AddFunc(menu, "Valider", "vmenu:getclientHair", {getOpt("Hair"),getOpt("HairSec"),getOpt("HairColor"),getOpt("HairColorSec")}, "Obtenir cette coiffure")
  1021.  
  1022. local menu = 10
  1023. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  1024. VMenu.AddNum(menu, "Sexe", "Sexe", 0, 1, "Changer de sexe")
  1025. VMenu.AddNum(menu, "Face", "Face", 0, 45, "Changer de face")
  1026. VMenu.AddFunc(menu, "Valider", "vmenu:getclientFace", {getOpt("Sexe"),getOpt("Face"),0}, "Obtenir ce changement")
  1027.  
  1028. local menu = 11
  1029. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  1030. -- for _, item in pairs(inv_array_legal) do
  1031. -- VMenu.AddFunc(menu, item.name, "inventory:buy", {1, item.id, item.price, item.name}, "Acheter")
  1032. -- end
  1033. VMenu.AddNum(menu, "Quantité", "itemBuy", 1, 30, "Sélection")
  1034. for _, item in pairs(inv_array_legal) do
  1035. VMenu.AddFunc(menu, item.name, "inventory:buy", {getOpt("itemBuy"), item.id, item.price, item.name}, "Prix: " .. item.price .. "$")
  1036. end
  1037.  
  1038.  
  1039. local menu = 12
  1040. VMenu.AddMenu(menu, "", "default")
  1041. VMenu.AddSep(menu, "Cadet")
  1042.  
  1043. ------- MENU POUR ENTREPRISE CAMION
  1044. local menu = 13
  1045. VMenu.AddMenu(menu, "", "default")
  1046. VMenu.AddFunc(menu, "Citerne", "transporter:optionMission", {0}, "Choisir")
  1047. VMenu.AddFunc(menu, "Conteneur", "transporter:optionMission", {1}, "Choisir")
  1048. VMenu.AddFunc(menu, "Réfrigéré", "transporter:optionMission", {2}, "Choisir")
  1049. VMenu.AddFunc(menu, "Bois", "transporter:optionMission", {3}, "Choisir")
  1050.  
  1051. local menu = 14
  1052. VMenu.AddMenu(menu, "", "default")
  1053. VMenu.AddFunc(menu, "Acheter des informations", "menudrogue:info", {0}, "Acheter")
  1054.  
  1055. local menu = 15
  1056. VMenu.AddMenu(menu, "", "default")
  1057. for _, item in pairs(jobs) do
  1058. VMenu.AddFunc(menu, item.name, "vmenu:poleemploi", {item.id}, "Valider")
  1059. end
  1060.  
  1061. local menu = 16
  1062. VMenu.AddMenu(menu, "", "default")
  1063. VMenu.AddFunc(menu, "Laver largent sale (97% de retour)", "vmenu:cleanCash", {}, "Valider")
  1064.  
  1065. local menu = 17
  1066. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  1067. TriggerServerEvent('vmenu:updateUser', 17)
  1068. Citizen.Wait(100)
  1069. if User.enService == 1 then
  1070. if User.police >= 1 then
  1071. VMenu.AddFunc(menu, "Helico de police", "vmenu:getHelicoGarage", {"polmav"}, "Obtenir cet hélicoptère")
  1072. end
  1073. if User.police >= 2 then
  1074. end
  1075. if User.police >= 3 then
  1076. end
  1077. if User.police >= 4 then
  1078. end
  1079. if User.police >= 5 then
  1080. end
  1081. if User.police >= 6 then
  1082. end
  1083. else
  1084. VMenu.AddSep(menu, "Vous devez être en service")
  1085. end
  1086.  
  1087. local menu = 18
  1088. VMenu.AddMenu(menu, "", "default")
  1089. VMenu.AddFunc(menu, "Ouvrir cellule #1", "menupolice:unjail", {1, User.police}, "Ouvrir")
  1090. VMenu.AddFunc(menu, "Ouvrir cellule #2", "menupolice:unjail", {2, User.police}, "Ouvrir")
  1091. VMenu.AddFunc(menu, "Ouvrir cellule #3", "menupolice:unjail", {3, User.police}, "Ouvrir")
  1092.  
  1093. local menu = 19
  1094. VMenu.AddMenu(menu, "", "default")
  1095. TriggerServerEvent('vmenu:updateUser', menu)
  1096. Wait(200)
  1097. VMenu.ResetMenu(menu, "", "default")
  1098. if User.jobs == 13 then
  1099. VMenu.AddFunc(menu, "Helico d'ambulancier", "vmenu:getAmbulanceHelicoGarage", {"polmav"}, "Obtenir cet hélicoptère")
  1100. else
  1101. VMenu.AddSep(menu, "Vous devez être en ambulancier")
  1102. end
  1103.  
  1104. ------- MAIN MENU F7
  1105. local menu = 98
  1106. VMenu.AddMenu(menu, "", "default") -- default = Header "Texte" sur fond bleu
  1107. VMenu.AddSep(menu, "Zone d'achat")
  1108. end
  1109.  
  1110.  
  1111. ----- FUNCTION PERSO
  1112. function getOutfitsMenu(id, OutfitsNo)
  1113. local i = 0
  1114. for _, item in pairs(outfits) do
  1115. if item.id == id then
  1116. i = i + 1
  1117. if i == OutfitsNo then
  1118. args = { item.zero[1],item.zero[2],item.two[1],item.two[2],item.four[1],item.four[2],item.six[1],item.six[2],item.eleven[1],item.eleven[2],item.eight[1],item.eight[2],item.three[1],item.three[2],item.seven[1],item.seven[2],GetHashKey("mp_m_freemode_01") }
  1119. TriggerEvent("vmenu:updateCharInShop", args)
  1120. break
  1121. end
  1122. end
  1123. end
  1124. end
  1125.  
  1126. function getMainMenu()
  1127. if VMenu.police == false and VMenu.telephone == false and VMenu.animations == false then
  1128. TriggerServerEvent('vmenu:updateUser', 98)
  1129. TriggerServerEvent("inventory:getItems_s")
  1130. VMenu.ResetMenu(98, "", "default")
  1131. Wait(10)
  1132. VMenu.AddSep(98, User.prenom .. " " .. User.nom)
  1133. VMenu.AddSep(98, lang.menu.mainmenu.tel .. User.telephone)
  1134. -- LE MENU DE LA POLICE
  1135. if User.police > 0 then
  1136. VMenu.AddFunc(98, lang.menu.mainmenu.police, "menupolice:PoliceOG", {User.police}, lang.common.access)
  1137. end
  1138. -- lE MENU SELON LA JOB
  1139. VMenu.AddSep(98, jobsname[User.job])
  1140.  
  1141. VMenu.AddFunc(98, lang.menu.mainmenu.anim, "menuanim:AnimOG", {}, lang.common.access)
  1142. VMenu.AddFunc(98, lang.menu.mainmenu.reper, "menutel:PhoneOG", {User.telephone}, lang.common.access)
  1143. VMenu.AddFunc(98, lang.menu.mainmenu.givecash, "vmenu:giveCash", {User.money}, lang.common.access)
  1144. VMenu.AddFunc(98, lang.menu.mainmenu.givedcash, "vmenu:giveDCash", {User.dirtymoney}, lang.common.access)
  1145. VMenu.AddSep(98, lang.menu.mainmenu.inventory)
  1146. for ind, value in ipairs(ITEMS) do
  1147. if value.quantity > 0 then
  1148. VMenu.AddFunc(98, tostring(value.libelle), "inventory:useItem", {ind}, lang.menu.mainmenu.quantity .. tostring(value.quantity))
  1149. end
  1150. end
  1151. end
  1152. end
  1153.  
  1154. function getGaragePolice()
  1155. TriggerServerEvent('vmenu:updateUser', 7)
  1156. Wait(200)
  1157. VMenu.ResetMenu(7, "", "default")
  1158. if User.enService == 1 then
  1159. if User.police >= 1 then
  1160. VMenu.AddFunc(7, "Ranger votre véhicule", "vmenu:toGarage", {}, "Il doit être devant vous")
  1161. VMenu.AddFunc(7, "Crown Victoria police", "vmenu:getGarage", {"police7"}, "Obtenir cette voiture")
  1162. VMenu.AddFunc(7, "Impala police", "vmenu:getGarage", {"police8"}, "Obtenir cette voiture")
  1163. VMenu.AddFunc(7, "Crown Victoria", "vmenu:getGarage", {"sheriff3"}, "Obtenir cette voiture")
  1164. end
  1165. if User.police >= 2 then
  1166. VMenu.AddFunc(7, "Taurus police", "vmenu:getGarage", {"police4"}, "Obtenir cette voiture")
  1167. VMenu.AddFunc(7, "Charger", "vmenu:getGarage", {"sheriff"}, "Obtenir cette voiture")
  1168. VMenu.AddFunc(7, "Suberban", "vmenu:getGarage", {"sheriff2"}, "Obtenir cette voiture")
  1169. end
  1170. if User.police >= 3 then
  1171. VMenu.AddFunc(7, "Charger police", "vmenu:getGarage", {"police2"}, "Obtenir cette voiture")
  1172. end
  1173. if User.police >= 4 then
  1174. VMenu.AddFunc(7, "Suberban K9", "vmenu:getGarage", {"police6"}, "Obtenir cette voiture")
  1175. end
  1176. if User.police >= 5 then
  1177. VMenu.AddFunc(7, "Taho banalisée", "vmenu:getGarage", {"fbi2"}, "Obtenir cette voiture")
  1178. VMenu.AddFunc(7, "Charger banalisée", "vmenu:getGarage", {"fbi"}, "Obtenir cette voiture")
  1179. VMenu.AddFunc(7, "Moto", "vmenu:getGarage", {"policeb"}, "Obtenir ce véhicule")
  1180. end
  1181. if User.police >= 6 then
  1182. VMenu.AddFunc(7, "Police Explorer Interceptor", "vmenu:getGarage", {"police3"}, "Obtenir cette voiture")
  1183. VMenu.AddFunc(7, "Police Explorer", "vmenu:getGarage", {"police5"}, "Obtenir cette voiture")
  1184. end
  1185. else
  1186. VMenu.AddSep(7, "Vous n'êtes pas en service")
  1187. end
  1188. end
  1189.  
  1190. function getGarageHelicoAmbulance()
  1191. TriggerServerEvent('vmenu:updateUser', 19)
  1192. Wait(200)
  1193. VMenu.ResetMenu(19, "", "default")
  1194. if User.job == 13 then
  1195. VMenu.AddFunc(19, "Helico d'ambulancier", "vmenu:getAmbulanceHelicoGarage", {"polmav"}, "Obtenir cet hélicoptère")
  1196. else
  1197. VMenu.AddSep(19, "Vous devez être en ambulancier")
  1198. end
  1199. end
  1200.  
  1201. function getGarageHelicoPolice()
  1202. TriggerServerEvent('vmenu:updateUser', 17)
  1203. Wait(200)
  1204. VMenu.ResetMenu(17, "", "default")
  1205. if User.enService == 1 then
  1206. if User.police >= 1 then
  1207. end
  1208. if User.police >= 2 then
  1209. end
  1210. if User.police >= 3 then
  1211. end
  1212. if User.police >= 4 then
  1213. VMenu.AddFunc(17, "Helico de police", "vmenu:getHelicoGarage", {"polmav"}, "Obtenir cet hélicoptère")
  1214. end
  1215. if User.police >= 5 then
  1216. end
  1217. if User.police >= 6 then
  1218. end
  1219. else
  1220. VMenu.AddSep(17, "Vous devez être en service")
  1221. end
  1222. end
  1223.  
  1224. function getLockerPolice()
  1225. VMenu.ResetMenu(5, "", "default")
  1226. VMenu.AddMenu(5, "", "default") -- default = Header "Texte" sur fond bleu
  1227. VMenu.AddFunc(5, "En service", "vmenu:policeState", {1}, "Être en service")
  1228. if User.police >= 4 then
  1229. VMenu.AddFunc(5, "En service civil", "vmenu:policeStateCivil", {1}, "Être en service")
  1230. end
  1231. VMenu.AddFunc(5, "Hors service", "vmenu:policeState", {0}, "Être hors service")
  1232. end
  1233.  
  1234. function getTankerCompany()
  1235. VMenu.ResetMenu(13, "", "default")
  1236. VMenu.AddMenu(13, "", "default")
  1237. VMenu.AddFunc(13, "Citerne", "transporter:optionMission", {0}, "Choisir")
  1238. end
  1239.  
  1240. function getContainerCompany()
  1241. VMenu.ResetMenu(13, "", "default")
  1242. VMenu.AddMenu(13, "", "default")
  1243. VMenu.AddFunc(13, "Conteneur", "transporter:optionMission", {1}, "Choisir")
  1244. end
  1245.  
  1246. function getFrigorifiqueCompany()
  1247. VMenu.ResetMenu(13, "", "default")
  1248. VMenu.AddMenu(13, "", "default")
  1249. VMenu.AddFunc(13, "Réfrigéré", "transporter:optionMission", {2}, "Choisir")
  1250. end
  1251.  
  1252. function getLogCompany()
  1253. VMenu.ResetMenu(13, "", "default")
  1254. VMenu.AddMenu(13, "", "default")
  1255. VMenu.AddFunc(13, "Bois", "transporter:optionMission", {3}, "Choisir")
  1256. end
  1257.  
  1258. -------------------------------------------------------------
  1259. -------------------------- BOUCLE ---------------------------
  1260. -------------------------------------------------------------
  1261.  
  1262.  
  1263. local talkingTarget = -1
  1264. local timerTarget = 0
  1265.  
  1266. Citizen.CreateThread(function()
  1267. if VMenu.checkUser then
  1268. local trig = GetGameTimer()
  1269. while not User.Loaded do
  1270. if GetGameTimer() - trig > 5000 then
  1271. playerSpawned()
  1272. trig = GetGameTimer() + 30000
  1273. end
  1274. Wait(500)
  1275. end
  1276. end
  1277. Construct() -- Construction du menu
  1278. VMenu.curMenu = VMenu.rootMenu -- Définition du menu de départ depuis la configuration.
  1279.  
  1280. while true do ------- Boucle
  1281. Wait(1)
  1282. --[[ -- DEBUG
  1283. if VMenu.debugKeys then
  1284. list_keys()
  1285. end
  1286. ]]
  1287.  
  1288. -- Désactivation des touches en jeu ET Anti Cinematic Camera quand on ferme le menu en voiture
  1289. if VMenu.visible or (not VMenu.visible and (GetGameTimer() - VMenu.closedTime < 1000)) then
  1290. VMenu.DisableControls()
  1291. end
  1292.  
  1293. if VMenu.visible then
  1294. if talkingTarget ~= -1 then
  1295. VMenu.target = talkingTarget
  1296. talkingTarget = -1
  1297. end
  1298.  
  1299. timerTarget = timerTarget + 1
  1300. if timerTarget >= 1500 then
  1301. VMenu.target = -1
  1302. timerTarget = 0
  1303. if VMenu.police then
  1304. if VMenu.curMenu == 98 then
  1305. TriggerEvent("vmenu:closeMenu")
  1306. VMenu.notif("Vous n'avez plus de cible")
  1307. end
  1308. end
  1309. end
  1310.  
  1311. if VOpts.toUpdate ~= nil then -- Ne Pas Toucher
  1312.  
  1313.  
  1314. --------------------------------------------------- EDITION A PARTIR D'ICI ---------------------------------------------------
  1315.  
  1316.  
  1317.  
  1318. ------------ Options Toggle : Changement des options depuis le menu.
  1319.  
  1320. if IsPedInAnyVehicle(GetPlayerPed(-1), false) then
  1321. local veh = GetVehiclePedIsUsing(GetPlayerPed(-1))
  1322.  
  1323. -- Engine
  1324. if VOpts.toUpdate == "Engine" then
  1325. SetVehicleEngineOn(veh, getOpt("Engine"), false)
  1326. SetVehicleUndriveable(veh, not getOpt("Engine"))
  1327. end
  1328.  
  1329. -- Colors
  1330. if VOpts.toUpdate == "VehColor" or VOpts.toUpdate == "VehColorS" then
  1331. SetVehicleColours(veh, getOpt("VehColor"), getOpt("VehColorS"))
  1332. end
  1333. end
  1334.  
  1335. if VOpts.toUpdate == "EscortM" then
  1336. if PEscorthandCuffed or PhandCuffed then
  1337. local pname = GetPlayerName(PlayerId())
  1338. PhandCuffed = not PhandCuffed
  1339. PEscorthandCuffed = not PEscorthandCuffed
  1340. --TriggerServerEvent("menupolice:escortcuff_s", GetPlayerServerId(VMenu.target), pname)
  1341. TriggerEvent("menupolice:wescortcuff", VMenu.target)
  1342. else
  1343. TriggerEvent("itinerance:notif", "Aucun civil à proximité n'est menotté")
  1344. end
  1345.  
  1346. end
  1347.  
  1348. if VOpts.toUpdate == "Menotter" then
  1349. if getOpt("Menotter") then
  1350. PhandCuffed = true
  1351. TriggerServerEvent("menupolice:cuff_s", GetPlayerServerId(VMenu.target))
  1352. TriggerEvent("menupolice:wcuff", VMenu.target)
  1353. else
  1354. PhandCuffed = false
  1355. TriggerServerEvent("menupolice:uncuff_s", GetPlayerServerId(VMenu.target))
  1356. TriggerEvent("menupolice:wuncuff", VMenu.target)
  1357. end
  1358. end
  1359.  
  1360. if VOpts.toUpdate == "itemBuy" then
  1361. -- local curUpdate = getOpt("itemBuy")
  1362. -- VMenu.ResetMenu(11, "", "default")
  1363. -- VMenu.AddNum(11, "Quantité", "itemBuy", curUpdate, 30, "Sélection")
  1364. for _, item in pairs(inv_array_legal) do
  1365. VMenu.EditFunc(11, item.name, "inventory:buy", {getOpt("itemBuy"), item.id, item.price, item.name}, "Acheter")
  1366. end
  1367. end
  1368.  
  1369. if VMenu.police then
  1370. if VOpts.toUpdate == "Amcon" then
  1371. VMenu.EditFunc(98, "Donner contravention", "menupolice:givecon", {getOpt("Amcon")}, "Accéder")
  1372. end
  1373. end
  1374.  
  1375. if VMenu.outfitshop then
  1376. if VOpts.toUpdate == "Tenues" then
  1377. local u = getOpt("Tenues")+1
  1378. VMenu.EditSep(8, OutfitsCat[u])
  1379. VMenu.EditFunc(8, "Validez catégories tenues", "vmenu:OutfitsValidate", {getOpt("Tenues")}, "Valider")
  1380. end
  1381. if VOpts.toUpdate == "OutfitsNo1" then
  1382. getOutfitsMenu(108, getOpt("OutfitsNo1"))
  1383. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo1"), 108}, "Valider")
  1384. end
  1385. if VOpts.toUpdate == "OutfitsNo2" then
  1386. getOutfitsMenu(109, getOpt("OutfitsNo2"))
  1387. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo2"), 109}, "Valider")
  1388. end
  1389. if VOpts.toUpdate == "OutfitsNo3" then
  1390. getOutfitsMenu(110, getOpt("OutfitsNo3"))
  1391. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo3"), 110}, "Valider")
  1392. end
  1393. if VOpts.toUpdate == "OutfitsNo4" then
  1394. getOutfitsMenu(111, getOpt("OutfitsNo4"))
  1395. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo4"), 111}, "Valider")
  1396. end
  1397. if VOpts.toUpdate == "OutfitsNo5" then
  1398. getOutfitsMenu(112, getOpt("OutfitsNo5"))
  1399. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo5"), 112}, "Valider")
  1400. end
  1401. if VOpts.toUpdate == "OutfitsNo6" then
  1402. getOutfitsMenu(113, getOpt("OutfitsNo6"))
  1403. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo6"), 113}, "Valider")
  1404. end
  1405. if VOpts.toUpdate == "OutfitsNo7" then
  1406. getOutfitsMenu(114, getOpt("OutfitsNo7"))
  1407. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo7"), 114}, "Valider")
  1408. end
  1409. if VOpts.toUpdate == "OutfitsNo8" then
  1410. getOutfitsMenu(115, getOpt("OutfitsNo8"))
  1411. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo8"), 115}, "Valider")
  1412. end
  1413. if VOpts.toUpdate == "OutfitsNo9" then
  1414. getOutfitsMenu(116, getOpt("OutfitsNo9"))
  1415. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo9"), 116}, "Valider")
  1416. end
  1417. if VOpts.toUpdate == "OutfitsNo10" then
  1418. getOutfitsMenu(117, getOpt("OutfitsNo10"))
  1419. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo10"), 117}, "Valider")
  1420. end
  1421. if VOpts.toUpdate == "OutfitsNo11" then
  1422. getOutfitsMenu(118, getOpt("OutfitsNo11"))
  1423. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo11"), 118}, "Valider")
  1424. end
  1425. if VOpts.toUpdate == "OutfitsNo12" then
  1426. getOutfitsMenu(119, getOpt("OutfitsNo12"))
  1427. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo12"), 119}, "Valider")
  1428. end
  1429. if VOpts.toUpdate == "OutfitsNo13" then
  1430. getOutfitsMenu(120, getOpt("OutfitsNo13"))
  1431. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo13"), 120}, "Valider")
  1432. end
  1433. if VOpts.toUpdate == "OutfitsNo14" then
  1434. getOutfitsMenu(121, getOpt("OutfitsNo14"))
  1435. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo14"), 121}, "Valider")
  1436. end
  1437. if VOpts.toUpdate == "OutfitsNo15" then
  1438. getOutfitsMenu(122, getOpt("OutfitsNo15"))
  1439. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo15"), 122}, "Valider")
  1440. end
  1441. if VOpts.toUpdate == "OutfitsNo16" then
  1442. getOutfitsMenu(123, getOpt("OutfitsNo16"))
  1443. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo16"), 123}, "Valider")
  1444. end
  1445. if VOpts.toUpdate == "OutfitsNo17" then
  1446. getOutfitsMenu(124, getOpt("OutfitsNo17"))
  1447. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo17"), 124}, "Valider")
  1448. end
  1449. if VOpts.toUpdate == "OutfitsNo18" then
  1450. getOutfitsMenu(125, getOpt("OutfitsNo18"))
  1451. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo18"), 125}, "Valider")
  1452. end
  1453. if VOpts.toUpdate == "OutfitsNo19" then
  1454. getOutfitsMenu(126, getOpt("OutfitsNo19"))
  1455. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo19"), 126}, "Valider")
  1456. end
  1457. if VOpts.toUpdate == "OutfitsNo20" then
  1458. getOutfitsMenu(127, getOpt("OutfitsNo20"))
  1459. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo20"), 127}, "Valider")
  1460. end
  1461. if VOpts.toUpdate == "OutfitsNo21" then
  1462. getOutfitsMenu(128, getOpt("OutfitsNo21"))
  1463. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo21"), 128}, "Valider")
  1464. end
  1465. if VOpts.toUpdate == "OutfitsNo22" then
  1466. getOutfitsMenu(129, getOpt("OutfitsNo22"))
  1467. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo22"), 129}, "Valider")
  1468. end
  1469. if VOpts.toUpdate == "OutfitsNo23" then
  1470. getOutfitsMenu(130, getOpt("OutfitsNo23"))
  1471. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo23"), 130}, "Valider")
  1472. end
  1473. if VOpts.toUpdate == "OutfitsNo24" then
  1474. getOutfitsMenu(131, getOpt("OutfitsNo24"))
  1475. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo24"), 131}, "Valider")
  1476. end
  1477. if VOpts.toUpdate == "OutfitsNo25" then
  1478. getOutfitsMenu(132, getOpt("OutfitsNo25"))
  1479. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo25"), 132}, "Valider")
  1480. end
  1481. if VOpts.toUpdate == "OutfitsNo26" then
  1482. getOutfitsMenu(133, getOpt("OutfitsNo26"))
  1483. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo26"), 133}, "Valider")
  1484. end
  1485. if VOpts.toUpdate == "OutfitsNo27" then
  1486. getOutfitsMenu(134, getOpt("OutfitsNo27"))
  1487. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo27"), 134}, "Valider")
  1488. end
  1489. if VOpts.toUpdate == "OutfitsNo28" then
  1490. getOutfitsMenu(135, getOpt("OutfitsNo28"))
  1491. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo28"), 135}, "Valider")
  1492. end
  1493. if VOpts.toUpdate == "OutfitsNo29" then
  1494. getOutfitsMenu(136, getOpt("OutfitsNo29"))
  1495. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo29"), 136}, "Valider")
  1496. end
  1497. if VOpts.toUpdate == "OutfitsNo30" then
  1498. getOutfitsMenu(137, getOpt("OutfitsNo30"))
  1499. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo30"), 137}, "Valider")
  1500. end
  1501. if VOpts.toUpdate == "OutfitsNo31" then
  1502. getOutfitsMenu(138, getOpt("OutfitsNo31"))
  1503. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo31"), 138}, "Valider")
  1504. end
  1505. if VOpts.toUpdate == "OutfitsNo32" then
  1506. getOutfitsMenu(139, getOpt("OutfitsNo32"))
  1507. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo32"), 139}, "Valider")
  1508. end
  1509. if VOpts.toUpdate == "OutfitsNo33" then
  1510. getOutfitsMenu(140, getOpt("OutfitsNo33"))
  1511. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo33"), 140}, "Valider")
  1512. end
  1513. if VOpts.toUpdate == "OutfitsNo34" then
  1514. getOutfitsMenu(141, getOpt("OutfitsNo34"))
  1515. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo34"), 141}, "Valider")
  1516. end
  1517. if VOpts.toUpdate == "OutfitsNo35" then
  1518. getOutfitsMenu(142, getOpt("OutfitsNo35"))
  1519. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo35"), 142}, "Valider")
  1520. end
  1521. if VOpts.toUpdate == "OutfitsNo36" then
  1522. getOutfitsMenu(143, getOpt("OutfitsNo36"))
  1523. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo36"), 143}, "Valider")
  1524. end
  1525. if VOpts.toUpdate == "OutfitsNo37" then
  1526. getOutfitsMenu(144, getOpt("OutfitsNo37"))
  1527. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo37"), 144}, "Valider")
  1528. end
  1529. if VOpts.toUpdate == "OutfitsNo38" then
  1530. getOutfitsMenu(145, getOpt("OutfitsNo38"))
  1531. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo38"), 145}, "Valider")
  1532. end
  1533. if VOpts.toUpdate == "OutfitsNo39" then
  1534. getOutfitsMenu(146, getOpt("OutfitsNo39"))
  1535. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo39"), 146}, "Valider")
  1536. end
  1537. if VOpts.toUpdate == "OutfitsNo40" then
  1538. getOutfitsMenu(147, getOpt("OutfitsNo40"))
  1539. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo40"), 147}, "Valider")
  1540. end
  1541. if VOpts.toUpdate == "OutfitsNo41" then
  1542. getOutfitsMenu(148, getOpt("OutfitsNo41"))
  1543. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo41"), 148}, "Valider")
  1544. end
  1545. if VOpts.toUpdate == "OutfitsNo42" then
  1546. getOutfitsMenu(149, getOpt("OutfitsNo42"))
  1547. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo42"), 149}, "Valider")
  1548. end
  1549. if VOpts.toUpdate == "OutfitsNo43" then
  1550. getOutfitsMenu(150, getOpt("OutfitsNo43"))
  1551. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo43"), 150}, "Valider")
  1552. end
  1553. if VOpts.toUpdate == "OutfitsNo44" then
  1554. getOutfitsMenu(151, getOpt("OutfitsNo44"))
  1555. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo44"), 151}, "Valider")
  1556. end
  1557. if VOpts.toUpdate == "OutfitsNo45" then
  1558. getOutfitsMenu(152, getOpt("OutfitsNo45"))
  1559. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo45"), 152}, "Valider")
  1560. end
  1561. if VOpts.toUpdate == "OutfitsNo46" then
  1562. getOutfitsMenu(153, getOpt("OutfitsNo46"))
  1563. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo46"), 153}, "Valider")
  1564. end
  1565. if VOpts.toUpdate == "OutfitsNo47" then
  1566. getOutfitsMenu(154, getOpt("OutfitsNo47"))
  1567. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo47"), 154}, "Valider")
  1568. end
  1569. if VOpts.toUpdate == "OutfitsNo48" then
  1570. getOutfitsMenu(155, getOpt("OutfitsNo48"))
  1571. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo48"), 155}, "Valider")
  1572. end
  1573. if VOpts.toUpdate == "OutfitsNo49" then
  1574. getOutfitsMenu(156, getOpt("OutfitsNo49"))
  1575. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo49"), 156}, "Valider")
  1576. end
  1577. if VOpts.toUpdate == "OutfitsNo50" then
  1578. getOutfitsMenu(157, getOpt("OutfitsNo50"))
  1579. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo50"), 157}, "Valider")
  1580. end
  1581. if VOpts.toUpdate == "OutfitsNo51" then
  1582. getOutfitsMenu(158, getOpt("OutfitsNo51"))
  1583. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo51"), 158}, "Valider")
  1584. end
  1585. if VOpts.toUpdate == "OutfitsNo52" then
  1586. getOutfitsMenu(159, getOpt("OutfitsNo52"))
  1587. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo52"), 159}, "Valider")
  1588. end
  1589. if VOpts.toUpdate == "OutfitsNo53" then
  1590. getOutfitsMenu(160, getOpt("OutfitsNo53"))
  1591. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo53"), 160}, "Valider")
  1592. end
  1593. if VOpts.toUpdate == "OutfitsNo54" then
  1594. getOutfitsMenu(161, getOpt("OutfitsNo54"))
  1595. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo54"), 161}, "Valider")
  1596. end
  1597. if VOpts.toUpdate == "OutfitsNo55" then
  1598. getOutfitsMenu(162, getOpt("OutfitsNo55"))
  1599. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo55"), 162}, "Valider")
  1600. end
  1601. if VOpts.toUpdate == "OutfitsNo56" then
  1602. getOutfitsMenu(163, getOpt("OutfitsNo56"))
  1603. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo56"), 163}, "Valider")
  1604. end
  1605. if VOpts.toUpdate == "OutfitsNo57" then
  1606. getOutfitsMenu(164, getOpt("OutfitsNo57"))
  1607. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo57"), 164}, "Valider")
  1608. end
  1609. if VOpts.toUpdate == "OutfitsNo58" then
  1610. getOutfitsMenu(165, getOpt("OutfitsNo58"))
  1611. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo58"), 165}, "Valider")
  1612. end
  1613. if VOpts.toUpdate == "OutfitsNo59" then
  1614. getOutfitsMenu(166, getOpt("OutfitsNo59"))
  1615. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo59"), 166}, "Valider")
  1616. end
  1617. if VOpts.toUpdate == "OutfitsNo60" then
  1618. getOutfitsMenu(167, getOpt("OutfitsNo60"))
  1619. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo60"), 167}, "Valider")
  1620. end
  1621. if VOpts.toUpdate == "OutfitsNo61" then
  1622. getOutfitsMenu(168, getOpt("OutfitsNo61"))
  1623. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo61"), 168}, "Valider")
  1624. end
  1625. if VOpts.toUpdate == "OutfitsNo62" then
  1626. getOutfitsMenu(169, getOpt("OutfitsNo62"))
  1627. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo62"), 169}, "Valider")
  1628. end
  1629. if VOpts.toUpdate == "OutfitsNo63" then
  1630. getOutfitsMenu(170, getOpt("OutfitsNo63"))
  1631. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo63"), 170}, "Valider")
  1632. end
  1633. if VOpts.toUpdate == "OutfitsNo64" then
  1634. getOutfitsMenu(171, getOpt("OutfitsNo64"))
  1635. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo64"), 171}, "Valider")
  1636. end
  1637. if VOpts.toUpdate == "OutfitsNo65" then
  1638. getOutfitsMenu(172, getOpt("OutfitsNo65"))
  1639. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo65"), 172}, "Valider")
  1640. end
  1641. if VOpts.toUpdate == "OutfitsNo66" then
  1642. getOutfitsMenu(173, getOpt("OutfitsNo66"))
  1643. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo66"), 173}, "Valider")
  1644. end
  1645. if VOpts.toUpdate == "OutfitsNo67" then
  1646. getOutfitsMenu(174, getOpt("OutfitsNo67"))
  1647. VMenu.EditFunc(8, "Validez votre tenue", "vmenu:OutfitsVal", {getOpt("OutfitsNo67"), 174}, "Valider")
  1648. end
  1649. end
  1650.  
  1651. if VMenu.barbershop then
  1652. if VOpts.toUpdate == "Hair" or VOpts.toUpdate == "HairSec" or VOpts.toUpdate == "HairColor" or VOpts.toUpdate == "HairColorSec" then
  1653. SetPedComponentVariation(GetPlayerPed(-1), 2, getOpt("Hair"), getOpt("HairSec"), 2)
  1654. SetPedHairColor(GetPlayerPed(-1), getOpt("HairColor"), getOpt("HairColorSec"))
  1655. VMenu.EditFunc(9, "Valider", "vmenu:getclientHair", {getOpt("Hair"),getOpt("HairSec"),getOpt("HairColor"),getOpt("HairColorSec")}, "Obtenir cette tenue")
  1656. end
  1657. if VOpts.toUpdate == "Hair" then
  1658. if (getOpt("Hair") == 1) or (getOpt("Hair") == 2) or (getOpt("Hair") == 3) or (getOpt("Hair") == 5) or (getOpt("Hair") == 6) or (getOpt("Hair") == 10) or (getOpt("Hair") == 11) or (getOpt("Hair") == 13) or (getOpt("Hair") == 15) then
  1659. VMenu.EditNum(9, "Couleur", "HairSec", 0, 5, "Change la couleur des cheveux")
  1660. elseif (getOpt("Hair") == 4) or (getOpt("Hair") == 7) or (getOpt("Hair") == 9) then
  1661. VMenu.EditNum(9, "Couleur", "HairSec", 0, 6, "Change la couleur des cheveux")
  1662. else
  1663. VMenu.EditNum(9, "Couleur", "HairSec", 0, 4, "Change la couleur des cheveux")
  1664. end
  1665. end
  1666. end
  1667.  
  1668. if VMenu.hospital then
  1669. if VOpts.toUpdate == "Sexe" then
  1670. local model = nil
  1671. if getOpt("Sexe") == 0 then
  1672. model = GetHashKey("mp_m_freemode_01")
  1673. else
  1674. model = GetHashKey("mp_f_freemode_01")
  1675. end
  1676.  
  1677. if model ~= nil then
  1678. TriggerServerEvent("vmenu:lastCharInShop", model)
  1679. end
  1680. VMenu.EditFunc(10, "Valider", "vmenu:getclientFace", {getOpt("Sexe"),getOpt("Face"),0}, "Obtenir ce changement")
  1681. elseif VOpts.toUpdate == "Face" or VOpts.toUpdate == "Face_text" then
  1682. -- local id = getOpt("Face")
  1683. SetPedHeadBlendData(GetPlayerPed(-1), getOpt("Face"), getOpt("Face"), getOpt("Face"), getOpt("Face"), getOpt("Face"), getOpt("Face"), 1.0, 1.0, 1.0, true)
  1684. -- La barbe bientôt
  1685. --SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard
  1686. --SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color
  1687. SetPedComponentVariation(GetPlayerPed(-1), 0, getOpt("Face"), 0, 2)
  1688. VMenu.EditFunc(10, "Valider", "vmenu:getclientFace", {getOpt("Sexe"),getOpt("Face"),0}, "Obtenir ce changement")
  1689. end
  1690. end
  1691.  
  1692. if VMenu.Tanker_company then
  1693.  
  1694. end
  1695.  
  1696. if VMenu.Container_company then
  1697.  
  1698. end
  1699.  
  1700. if VMenu.Frigorifique_company then
  1701.  
  1702. end
  1703.  
  1704. if VMenu.Log_company then
  1705.  
  1706. end
  1707.  
  1708.  
  1709. -- Ne Pas Toucher
  1710. VOpts.toUpdate = nil
  1711. end
  1712.  
  1713.  
  1714. ------------ Options Toggle : Récupération des valeurs pour les placer dans le menu. (Uniquement si besoin des valeurs en temps réel)
  1715.  
  1716. if IsPedInAnyVehicle(GetPlayerPed(-1), false) then
  1717. ---- En voiture
  1718. local veh = GetVehiclePedIsUsing(GetPlayerPed(-1))
  1719.  
  1720. if VOpts.LastVeh ~= veh then -- Autre Véhicule ?
  1721. VOpts.LastVeh = veh
  1722.  
  1723. -- Mise à jour des couleurs
  1724. local cp, cs = GetVehicleColours(veh)
  1725. setOpt("VehColor", cp)
  1726. setOpt("VehColorS", cs)
  1727.  
  1728. end
  1729.  
  1730. -- Engine
  1731. setOpt("Engine", IsVehicleEngineOn(veh))
  1732. end
  1733.  
  1734. ---- Hors de voiture
  1735.  
  1736. if (IsNearPoints(LockerPolice, 4.5) == true) then
  1737. VMenu.lockerpolice = true
  1738. elseif (IsNearPoints(Armory, 2) == true) then
  1739.  
  1740. elseif (IsNearPoints(informateur, 3) == true) then
  1741.  
  1742. elseif (IsNearPoints(JailPolice, 1) == true) then
  1743.  
  1744. elseif (IsNearPoints(lavage_argent, 3) == true) then
  1745.  
  1746. elseif (IsNearPoints(changeYourJob, 3) == true) then
  1747.  
  1748. elseif (IsNearPoints(Tanker_company, 3) == true) then
  1749. VMenu.Tanker_company = true
  1750. elseif (IsNearPoints(Container_company, 3) == true) then
  1751. VMenu.Container_company = true
  1752. elseif (IsNearPoints(Frigorifique_company, 3) == true) then
  1753. VMenu.Frigorifique_company = true
  1754. elseif (IsNearPoints(Log_company, 3) == true) then
  1755. VMenu.Log_company = true
  1756. elseif (IsNearPoints(Garage_police, 5) == true) then
  1757. VMenu.garagepolice = true
  1758. elseif (IsNearPoints(Garage_helico_police, 5) == true) then
  1759. VMenu.garagehelicopolice = true
  1760. elseif (IsNearPoints(Garage_helico_ambulance, 5) == true) then
  1761. VMenu.garagehelicoambulance = true
  1762. elseif (IsNearPoints(OutfitsShop, 4) == true) then
  1763. VMenu.outfitshop = true
  1764. elseif (IsNearPoints(BarberShop, 4) == true) then
  1765. VMenu.barbershop = true
  1766. elseif (IsNearPoints(Hospital, 4) == true) then
  1767. VMenu.hospital = true
  1768. elseif (IsNearPoints(Store, 4) == true) then
  1769. VMenu.store = true
  1770. else
  1771. if VMenu.curMenu ~= 98 then
  1772. TriggerEvent("vmenu:toggleMenu")
  1773. end
  1774. end
  1775.  
  1776. if IsControlPressed(0, 322) then
  1777.  
  1778. end
  1779. -------------------------------- FIN EDITION ---------------------------------
  1780.  
  1781. -- elseif VMenu.voiceTarget then
  1782. -- for i = 0,64 do
  1783. -- if (GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(-1)), GetEntityCoords(GetPlayerPed(i))) < 3.0001) then
  1784. -- if NetworkIsPlayerTalking(i) then
  1785. -- talkingTarget = i
  1786. -- break
  1787. -- end
  1788. -- end
  1789. -- end
  1790. else
  1791.  
  1792. local X = GetEntityForwardX(GetPlayerPed(-1))
  1793. local Y = GetEntityForwardY(GetPlayerPed(-1))
  1794.  
  1795.  
  1796. for i = 0,31 do
  1797. if NetworkIsPlayerConnected(i) then
  1798. if NetworkIsPlayerActive(i) and GetPlayerPed(i) ~= nil then
  1799. if GetPlayerServerId(i) ~= GetPlayerServerId(PlayerId()) then
  1800. if (GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(-1)).x+X,GetEntityCoords(GetPlayerPed(-1)).y+Y,GetEntityCoords(GetPlayerPed(-1)).z, GetEntityCoords(GetPlayerPed(i)).x,GetEntityCoords(GetPlayerPed(i)).y,GetEntityCoords(GetPlayerPed(i)).z) < 0.6001) then
  1801. talkingTarget = i
  1802.  
  1803. break
  1804. end
  1805. talkingTarget = -1
  1806. end
  1807. end
  1808. end
  1809. end
  1810.  
  1811. if HandCuffed == true then
  1812. Citizen.Trace("Disabled")
  1813. Wait(1000)
  1814. VMenu.DisableControlsHandCuffed()
  1815. end
  1816.  
  1817. -- if IsControlPressed(0, 167) then
  1818. -- Wait(100)
  1819. -- local player = GetPlayerPed(-1)
  1820. -- local v = GetVehiclePedIsIn(GetPlayerPed(-1), true)
  1821. -- SetVehicleLivery(v, 3)
  1822. -- VMenu.notif(tostring(livery))
  1823. -- livery = livery + 1
  1824. -- end
  1825.  
  1826. if IsControlPressed(0, 311) then
  1827. if User.police >= 1 then
  1828. if talkingTarget ~= -1 then
  1829. if not kpress then
  1830. PhandCuffed = true
  1831. TriggerServerEvent("menupolice:cuff_s", GetPlayerServerId(talkingTarget))
  1832. TriggerEvent("menupolice:wcuff", talkingTarget)
  1833. kpress = not kpress
  1834. else
  1835. PhandCuffed = false
  1836. TriggerServerEvent("menupolice:uncuff_s", GetPlayerServerId(talkingTarget))
  1837. TriggerEvent("menupolice:wuncuff", talkingTarget)
  1838. kpress = not kpress
  1839. end
  1840. else
  1841. TriggerEvent("itinerance:notif", "~r~Vous n'avez pas de cible")
  1842. end
  1843. end
  1844. end
  1845.  
  1846. if IsControlPressed(0, VMenu.mopenKey) then
  1847. timerTarget = 0
  1848. VMenu.curItem = 1
  1849. --TriggerEvent("vmenu:anim", "cellphone@", "text_in")
  1850. TriggerEvent("vmenu:openMenu", 98)
  1851. VMenu.mainMenu = true
  1852. -- TriggerServerEvent("vmenu:updateUser", true)
  1853. if VMenu.police == false and VMenu.telephone == false and VMenu.animations == false then
  1854. getMainMenu()
  1855. end
  1856. Wait(100)
  1857. end
  1858.  
  1859. if IsControlPressed(0, VMenu.openKey) then
  1860. VMenu.curItem = 1
  1861. if (IsNearPoints(LockerPolice, 4.5) == true and User.police >= 1) then
  1862. TriggerEvent("vmenu:openMenu", 5)
  1863. if VMenu.lockerpolice == false then
  1864. getLockerPolice()
  1865. end
  1866. elseif (IsNearPoints(Armory, 2) == true and User.police >= 1) then
  1867. TriggerEvent("vmenu:openMenu", 6)
  1868. elseif (IsNearPoints(Garage_police, 4) == true and User.police >= 1) then
  1869. TriggerEvent("vmenu:openMenu", 7)
  1870. if VMenu.garagepolice == false then
  1871. getGaragePolice()
  1872. end
  1873. elseif (IsNearPoints(Garage_helico_police, 4) == true and User.police >= 1) then
  1874. TriggerEvent("vmenu:openMenu", 17)
  1875. if VMenu.garagehelicopolice == false then
  1876. getGarageHelicoPolice()
  1877. end
  1878. elseif (IsNearPoints(Garage_helico_ambulance, 5) == true) then
  1879. TriggerEvent("vmenu:openMenu", 19)
  1880. if VMenu.garagehelicoambulance == false then
  1881. getGarageHelicoAmbulance()
  1882. end
  1883. elseif (IsNearPoints(Tanker_company, 3) == true) then
  1884. if User.job == 7 then
  1885. TriggerEvent("vmenu:openMenu", 13)
  1886. if VMenu.TankerCompany == false then
  1887. getTankerCompany()
  1888. end
  1889. else
  1890. ShowMsgtime.msg = '~r~ Vous devez être livreur de citerne !'
  1891. ShowMsgtime.time = 150
  1892. end
  1893. elseif (IsNearPoints(Container_company, 3) == true) then
  1894. if User.job == 8 then
  1895. TriggerEvent("vmenu:openMenu", 13)
  1896. if VMenu.ContainerCompany == false then
  1897. getContainerCompany()
  1898. end
  1899. else
  1900. ShowMsgtime.msg = '~r~ Vous devez être livreur de conteneur !'
  1901. ShowMsgtime.time = 150
  1902. end
  1903. elseif (IsNearPoints(Frigorifique_company, 3) == true) then
  1904. if User.job == 9 then
  1905. TriggerEvent("vmenu:openMenu", 13)
  1906. if VMenu.FrigorifiqueCompany == false then
  1907. getFrigorifiqueCompany()
  1908. end
  1909. else
  1910. ShowMsgtime.msg = '~r~ Vous devez être livreur de médicament !'
  1911. ShowMsgtime.time = 150
  1912. end
  1913. elseif (IsNearPoints(Log_company, 3) == true) then
  1914. if User.job == 6 then
  1915. TriggerEvent("vmenu:openMenu", 13)
  1916. if VMenu.LogCompany == false then
  1917. getLogCompany()
  1918. end
  1919. else
  1920. ShowMsgtime.msg = '~r~ Vous devez être livreur de bois !'
  1921. ShowMsgtime.time = 150
  1922. end
  1923. elseif (IsNearPoints(OutfitsShop, 4) == true) then
  1924. VMenu.updatedChar = false
  1925. TriggerEvent("vmenu:openMenu", 8)
  1926. elseif (IsNearPoints(BarberShop, 4) == true) then
  1927. VMenu.updatedChar = false
  1928. TriggerEvent("vmenu:openMenu", 9)
  1929. elseif (IsNearPoints(Hospital, 4) == true) then
  1930. VMenu.updatedChar = false
  1931. TriggerEvent("vmenu:openMenu", 10)
  1932. elseif (IsNearPoints(Store, 4) == true) then
  1933. TriggerEvent("vmenu:openMenu", 11)
  1934. elseif (IsNearPoints(informateur, 3) == true) then
  1935. TriggerEvent("vmenu:openMenu", 14)
  1936. elseif (IsNearPoints(changeYourJob, 3) == true) then
  1937. TriggerEvent("vmenu:openMenu", 15)
  1938. elseif (IsNearPoints(lavage_argent, 3) == true) then
  1939. TriggerEvent("vmenu:openMenu", 16)
  1940. elseif (IsNearPoints(JailPolice, 1) == true) then
  1941. TriggerEvent("vmenu:openMenu", 18)
  1942. else
  1943.  
  1944. end
  1945. end
  1946.  
  1947.  
  1948.  
  1949. if (IsNearPoints(LockerPolice, 4.5) == true and User.police >= 1) then
  1950. VMenu.lockerpolice = false
  1951. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder aux casiers")
  1952. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder aux casiers', false)
  1953. elseif (IsNearPoints(Armory, 2) == true and User.police >= 1) then
  1954. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder à l'armurerie")
  1955. --VMenu.Info("Appuyer sur ~g~E~s~ pour accéder à l'armurerie", false)
  1956. elseif (IsNearPoints(Garage_police, 5) == true and User.police >= 1) then
  1957. VMenu.garagepolice = false
  1958. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au garage")
  1959. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au garage', false)
  1960. elseif (IsNearPoints(Garage_helico_police, 5) == true and User.police >= 1) then
  1961. VMenu.garagehelicopolice = false
  1962. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au garage")
  1963. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au garage', false)
  1964. elseif (IsNearPoints(informateur, 3) == true) then
  1965. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour parler avec l'informateur")
  1966. --VMenu.Info("Appuyer sur ~g~E~s~ pour parler avec l'informateur", false)
  1967. elseif (IsNearPoints(changeYourJob, 3) == true) then
  1968. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au pole emploi")
  1969. --VMenu.Info("Appuyer sur ~g~E~s~ pour accéder au pole emploi", false)
  1970. elseif (IsNearPoints(Tanker_company, 4) == true and User.job == 7) then
  1971. VMenu.TankerCompany = false
  1972. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder à la compagnie de livraison")
  1973. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder à la compagnie de livraison', false)
  1974. elseif (IsNearPoints(Container_company, 4) == true and User.job == 8) then
  1975. VMenu.ContainerCompany = false
  1976. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder à la compagnie de livraison")
  1977. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder à la compagnie de livraison', false)
  1978. elseif (IsNearPoints(Frigorifique_company, 4) == true and User.job == 9) then
  1979. VMenu.FrigorifiqueCompany = false
  1980. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder à la compagnie de livraison")
  1981. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder à la compagnie de livraison', false)
  1982. elseif (IsNearPoints(Log_company, 4) == true and User.job == 6) then
  1983. VMenu.LogCompany = false
  1984. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder à la compagnie de livraison")
  1985. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder à la compagnie de livraison', false)
  1986. elseif (IsNearPoints(OutfitsShop, 4) == true) then
  1987. VMenu.outfitshop = false
  1988. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au shop")
  1989. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au shop', false)
  1990. elseif (IsNearPoints(BarberShop, 4) == true) then
  1991. VMenu.barbershop = false
  1992. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au coiffeur")
  1993. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au coiffeur', false)
  1994. elseif (IsNearPoints(Hospital, 4) == true) then
  1995. VMenu.hospital = false
  1996. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au menu")
  1997. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au menu', false)
  1998. elseif (IsNearPoints(Store, 4) == true) then
  1999. VMenu.store = false
  2000. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au magasin")
  2001. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au magasin', false)
  2002. elseif (IsNearPoints(lavage_argent, 3) == true) then
  2003. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au menu")
  2004. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au menu', false)
  2005. elseif (IsNearPoints(JailPolice, 1) == true) then
  2006. DisplayHelpText("Appuyez sur ~INPUT_CONTEXT~ pour accéder au menu")
  2007. --VMenu.Info('Appuyer sur ~g~E~s~ pour accéder au menu', false)
  2008. else
  2009. if (VMenu.updatedChar == false) then
  2010. if not IsEntityDead(PlayerPedId()) then
  2011. Wait(1200)
  2012. TriggerServerEvent("vmenu:lastChar")
  2013. Wait(200)
  2014. end
  2015. end
  2016. end
  2017. end
  2018. VMenu.Show()
  2019. end
  2020. end)
  2021.  
  2022.  
  2023. VMenu.test_keys() -- Capture de touches
  2024.  
  2025.  
  2026. function DisplayHelpText(str)
  2027. SetTextComponentFormat("STRING")
  2028. AddTextComponentString(str)
  2029. DisplayHelpTextFromStringLabel(0, 0, 1, -1)
  2030. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement