Fermer un menu


#1

● Framework ESX
● Source: clothesmerfik

Salut à tous.

J’ai quelques menu qui ne se retirent pas lorsque j’appui sur la touche effacer ‘effacer’.

J’ai donc voulu essayer de le corriger dans un petit script comme celui-ci. donc le menu s’ouvre avec la touche page_down. Une fois ouvert impossible à fermer sauf avec la touche echap.

J’ai essayé de modifier le fichier client en m’aidant de votre tuto sur les menu et sur d’autre script ou ça fonctionne, mais rien de plus…

	ESX.UI.Menu.Open(
		'default', GetCurrentResourceName(), 'action_menu',
		{
			title    = ('Clothes'),
			align    = 'top-left',
			elements = elements
		},function(data, menu)
			menu.close()


		
		if data.current.value == 'ubie' then			
		ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin)
		TriggerEvent('skinchanger:loadSkin', skin)
		end)
		ESX.UI.Menu.CloseAll()	
		elseif data.current.value == 'tul' then
		TriggerEvent('smerfikubrania:koszulka')
		ESX.UI.Menu.CloseAll()	
		elseif data.current.value == 'spo' then
		TriggerEvent('smerfikubrania:spodnie')
		ESX.UI.Menu.CloseAll()	
		elseif data.current.value == 'but' then
		TriggerEvent('smerfikubrania:buty')
		ESX.UI.Menu.CloseAll()	
	  end
	end)

#2

Bonjour,

Pas d’erreur dans la console quand tu ouvre ou quand tu essaye de fermer ? De base les menus se ferment tu ne devrait même pas avoir à faire un script pour ça.


#3

il te manque la partie qui gère ça.

A mettre avant le dernier end

, function(data, menu)
        menu.close()
end

#4

Oui c’est ce que je me disais aussi mais quand je veux fermer rien. Et non aucune erreurs nul part.


#5

Merci je regarde à ça :blush:


#6

Bon j’ai essayé une quinzaine de possibilité, je n’arrive pas à placer ce bout de script, il met souvent qu’il y a une erreur.

Je met ici la version qui me parait la plus correct mais qui me plante le script avec la fonction complète ^^

function OpenActionMenuInteraction(target)

local elements = {}

table.insert(elements, {label = ('put on clothes'), value = 'ubie'})
table.insert(elements, {label = ('remove shirt'), value = 'tul'})
table.insert(elements, {label = ('remove pants'), value = 'spo'})
table.insert(elements, {label = ('take off shoes'), value = 'but'})
	ESX.UI.Menu.CloseAll()	


ESX.UI.Menu.Open(
	'default', GetCurrentResourceName(), 'action_menu',
	{
		title    = ('Clothes'),
		align    = 'top-left',
		elements = elements
	},
function(data, menu)
	
	if data.current.value == 'ubie' then			
	ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin)
	TriggerEvent('skinchanger:loadSkin', skin)
	end)
	ESX.UI.Menu.CloseAll()	
	elseif data.current.value == 'tul' then
	TriggerEvent('smerfikubrania:koszulka')
	ESX.UI.Menu.CloseAll()	
	elseif data.current.value == 'spo' then
	TriggerEvent('smerfikubrania:spodnie')
	ESX.UI.Menu.CloseAll()	
	elseif data.current.value == 'but' then
	TriggerEvent('smerfikubrania:buty')
	ESX.UI.Menu.CloseAll()	
  end, function(data, menu)
		menu.close()
end)	

end


#7

Fait une indentation propre et tu verras ton erreur (end manquant) de suite :wink: