Hello im a begginer in LUA and i created the GUI for a personal menu using NativeUI.
So i added a list to change the voice volume with : Faible Normal Fort (Low Normal High)
And i don’t know how to add it to the menu and the change take effect.
Here its the code for the voice volume :
local defaultdistance = 5.001 -- Default distance to voice
local highdistance = 12.001 -- Hight distance to voice
local lowdistance = 1.001 -- Low distance to voice
local currentdistancevoice = 0 -- Current distance to voice (0 to 2)
function Notify(text)
SetNotificationTextEntry('STRING')
AddTextComponentString(text)
DrawNotification(false, true)
end
AddEventHandler('onClientMapStart', function()
if currentdistancevoice == 0 then
NetworkSetTalkerProximity(defaultdistance) -- 5 meters range
elseif currentdistancevoice == 1 then
NetworkSetTalkerProximity(highdistance) -- 12 meters range
elseif currentdistancevoice == 2 then
NetworkSetTalkerProximity(lowdistance) -- 1 meters range
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if IsControlJustPressed(1, defaultkey) then
currentdistancevoice = (currentdistancevoice + 1) % 3
if currentdistancevoice == 0 then
NetworkSetTalkerProximity(defaultdistance) -- 5 meters range
Notify("~w~Niveau vocal : ~b~normal")
elseif currentdistancevoice == 1 then
NetworkSetTalkerProximity(highdistance) -- 12 meters range
Notify("~w~Niveau vocal : ~b~crier")
elseif currentdistancevoice == 2 then
NetworkSetTalkerProximity(lowdistance) -- 1 meters range
Notify("~w~Niveau vocal : ~b~chuchoter")
end
end
end
end)
And here it’s my code with the personnal menu :
-- Creer le parent des menus avec un titre en gros et un petit pour la barre des titres --
_menuPool = NativeUI.CreatePool()
mainMenu = NativeUI.CreateMenu("Menu Personnel", "~h~~b~Menu personnel", 0.10, 0)
_menuPool:Add(mainMenu)
-- Creer un menu nommé InventaireMenu --
function InventaireMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Inventaire")
submenu:AddItem(NativeUI.CreateItem("Appuyer va déclancher une notification", "Déclenchement d'une notification !"))
end
-- Creer un menu nommé PortefeuilleMenu --
function PortefeuilleMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Portefeuille")
end
-- Creer un menu nommé VetementMenu --
function VetementMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Vêtement")
local lunette = {
"Lunette 1",
"Lunette 2",
}
local newitem = NativeUI.CreateListItem("Lunette", lunette, 1)
submenu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Vous avez remis vos ~b~" .. dish .. "~w~.")
end
end
local chapeau = {
"Chapeau 1",
"Chapeau 2",
}
local newitem = NativeUI.CreateListItem("Chapeau", chapeau, 1)
submenu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Vous avez remis votre ~b~" .. dish .. "~w~.")
end
end
end
-- Creer un menu nommé AnimationMenu --
function AnimationMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Animations")
local othermenu = _menuPool:AddSubMenu(submenu, "Saluer")
for i = 1, 1, 1 do
othermenu:AddItem(NativeUI.CreateItem("Saluer 1", ""))
othermenu:AddItem(NativeUI.CreateItem("Saluer 2", ""))
othermenu:AddItem(NativeUI.CreateItem("Saluer 3", ""))
othermenu:AddItem(NativeUI.CreateItem("Saluer 4", ""))
othermenu:AddItem(NativeUI.CreateItem("Saluer 5", ""))
othermenu:AddItem(NativeUI.CreateItem("Saluer 6", ""))
end
local othermenu1 = _menuPool:AddSubMenu(submenu, "Humeur")
for i = 1, 1, 1 do
othermenu1:AddItem(NativeUI.CreateItem("Humeur 1", ""))
othermenu1:AddItem(NativeUI.CreateItem("Humeur 2", ""))
othermenu1:AddItem(NativeUI.CreateItem("Humeur 3", ""))
othermenu1:AddItem(NativeUI.CreateItem("Humeur 4", ""))
othermenu1:AddItem(NativeUI.CreateItem("Humeur 5", ""))
othermenu1:AddItem(NativeUI.CreateItem("Humeur 6", ""))
end
local othermenu2 = _menuPool:AddSubMenu(submenu, "Sportives")
for i = 1, 1, 1 do
othermenu2:AddItem(NativeUI.CreateItem("Sportive 1", ""))
othermenu2:AddItem(NativeUI.CreateItem("Sportive 2", ""))
othermenu2:AddItem(NativeUI.CreateItem("Sportive 3", ""))
othermenu2:AddItem(NativeUI.CreateItem("Sportive 4", ""))
othermenu2:AddItem(NativeUI.CreateItem("Sportive 5", ""))
othermenu2:AddItem(NativeUI.CreateItem("Sportive 6", ""))
end
local othermenu3 = _menuPool:AddSubMenu(submenu, "Festives")
for i = 1, 1, 1 do
othermenu3:AddItem(NativeUI.CreateItem("Danse 1", ""))
othermenu3:AddItem(NativeUI.CreateItem("Danse 2", ""))
othermenu3:AddItem(NativeUI.CreateItem("Danse 3", ""))
othermenu3:AddItem(NativeUI.CreateItem("Danse 4", ""))
othermenu3:AddItem(NativeUI.CreateItem("Danse 5", ""))
othermenu3:AddItem(NativeUI.CreateItem("Danse 6", ""))
end
local othermenu4 = _menuPool:AddSubMenu(submenu, "Autres")
for i = 1, 1, 1 do
othermenu4:AddItem(NativeUI.CreateItem("Autre 1", ""))
othermenu4:AddItem(NativeUI.CreateItem("Autre 2", ""))
othermenu4:AddItem(NativeUI.CreateItem("Autre 3", ""))
othermenu4:AddItem(NativeUI.CreateItem("Autre 4", ""))
othermenu4:AddItem(NativeUI.CreateItem("Autre 5", ""))
othermenu4:AddItem(NativeUI.CreateItem("Autre 6", ""))
end
end
-- Creer un menu nommé GestionvehiculeMenu --
function GestionvehiculeMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Gestion du véhicule")
submenu:AddItem(NativeUI.CreateItem("Allumer/Eteindre le moteur", ""))
submenu:AddItem(NativeUI.CreateItem("Donner un double des clés", ""))
submenu:AddItem(NativeUI.CreateItem("Ouvrir coffre", ""))
submenu:AddItem(NativeUI.CreateItem("Ouvrir capôt avant", ""))
end
-- Creer un menu nommé GestionvehiculeMenu --
function DemarcheMenu(menu)
local demarche = {
"Nom de la démarche 1",
"Nom de la démarche 2",
"Nom de la démarche 3",
"Nom de la démarche 4",
"Nom de la démarche 5",
"Nom de la démarche 6",
}
local newitem = NativeUI.CreateListItem("Démarche", demarche, 1)
menu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Changement de la démarche en : ~b~" .. dish .. "~w~.")
end
end
end
-- Creer un menu nommé VoixMenu --
function VoixMenu(menu)
local voix = {
"Faible",
"Normal",
"Forte",
}
local newitem = NativeUI.CreateListItem("Niveau de la voix", voix, 1)
menu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Niveau de la voix : ~b~" .. dish .. "~w~.")
end
end
end
-- Creer un menu nommé ParametreMenu --
function ParametreMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Paramètres")
submenu:AddItem(NativeUI.CreateItem("Menu 1", ""))
submenu:AddItem(NativeUI.CreateItem("Menu 2", ""))
submenu:AddItem(NativeUI.CreateItem("Menu 3", ""))
submenu:AddItem(NativeUI.CreateItem("Menu 4", ""))
submenu:AddItem(NativeUI.CreateItem("Menu 5", ""))
end
-- Creer un menu nommé SauvegardepositionMenu --
function SauvegardepositionMenu(menu)
local submenu = _menuPool:AddSubMenu(menu, "Sauvegarder votre position")
end
-- Raccourcis pour les menus au lieu de les appeler a chaque fois --
InventaireMenu(mainMenu)
PortefeuilleMenu(mainMenu)
VetementMenu(mainMenu)
AnimationMenu(mainMenu)
GestionvehiculeMenu(mainMenu)
DemarcheMenu(mainMenu)
VoixMenu(mainMenu)
ParametreMenu(mainMenu)
SauvegardepositionMenu(mainMenu)
_menuPool:RefreshIndex()
-- Ouvrir le menu via F5 --
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
_menuPool:ProcessMenus()
if IsControlJustPressed(1, 167) then
mainMenu:Visible(not mainMenu:Visible())
end
end
end)
-- Si le joueur veut bouger, arreter l'animation --
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if IsPedUsingAnyScenario(GetPlayerPed(-1)) then
if IsControlJustPressed(1, 32) or IsControlJustPressed(1, 33) or IsControlJustPressed(1, 34) or IsControlJustPressed(1, 35) or IsControlJustPressed(1, 8) or IsControlJustPressed(1, 9) then
ClearPedTasks(GetPlayerPed(-1))
end
end
end
end)
-- Fonction utiles --
-- Afficher les infos du joueur --
function DrawPlayerInfo(target)
drawTarget = target
drawInfo = true
end
-- Arreter d'Afficher les infos du joueur --
function StopDrawPlayerInfo()
drawInfo = false
drawTarget = 0
end
-- Affichage des notifications --
function ShowNotification(text)
SetNotificationTextEntry("STRING")
AddTextComponentString(text)
DrawNotification(false, false)
end
-- Jouer une animation --
function animsAction(animObj)
RequestAnimDict( animObj.lib )
while not HasAnimDictLoaded( animObj.lib ) do
Citizen.Wait(0)
end
if HasAnimDictLoaded( animObj.lib ) then
TaskPlayAnim( GetPlayerPed(-1), animObj.lib , animObj.anim ,8.0, -8.0, -1, 0, 0, false, false, false )
end
end
-- Jouer une animation de Scénario --
function animsActionScenario(animObj)
local ped = GetPlayerPed(-1);
if ped then
local pos = GetEntityCoords(ped);
local head = GetEntityHeading(ped);
--TaskStartScenarioAtPosition(ped, animObj.anim, pos['x'], pos['y'], pos['z'] - 1, head, -1, false, false);
TaskStartScenarioInPlace(ped, animObj.anim, 0, false)
if IsControlJustPressed(1,188) then
end
end
end
-- Avoir l'ID d'un joueur --
function getPlayerID(source)
local identifiers = GetPlayerIdentifiers(source)
local player = getIdentifiant(identifiers)
return player
end
-- Avoir son ID --
function getIdentifiant(id)
for _, v in ipairs(id) do
return v
end
end
-- Avoir les joueurs sur le serveur --
function getPlayers()
local playerList = {}
for i = 0, 32 do
local player = GetPlayerFromServerId(i)
if NetworkIsPlayerActive(player) then
table.insert(playerList, player)
end
end
return playerList
end
-- Distance par defaut du volume de la voix --
local defaultdistance = 5.001
local highdistance = 12.001
local lowdistance = 1.001
local currentdistancevoice = 0 -- Current distance to voice (0 to 2)
-- Quand un joueur se connecte, met le niveau par defaut --
AddEventHandler('onClientMapStart', function()
if currentdistancevoice == 0 then
NetworkSetTalkerProximity(defaultdistance) -- 5 meters range
elseif currentdistancevoice == 1 then
NetworkSetTalkerProximity(highdistance) -- 12 meters range
elseif currentdistancevoice == 2 then
NetworkSetTalkerProximity(lowdistance) -- 1 meters range
end
end)
So at this point i don’t know how it can work, because i want to just have to scroll on the right and it change to low, scroll again Normal etc… (To know what i’m talking http://prntscr.com/jfukz3) :
-- Creer un menu nommé VoixMenu --
function VoixMenu(menu)
local voix = {
"Faible",
"Normal",
"Forte",
}
local newitem = NativeUI.CreateListItem("Niveau de la voix", voix, 1)
menu:AddItem(newitem)
menu.OnListChange = function(sender, item, index)
if item == newitem then
dish = item:IndexToItem(index)
ShowNotification("Niveau de la voix : ~b~" .. dish .. "~w~.")
end
end
end