Advertisement
Guest User

test

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