Технический форум Проблема с onClientGUIClick
Typnickman 19.12.2018 в 02:05

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Делаю систему контроля над автомобилем через гуи, немогу запустить функцию при нажатии на элемент гуи.

Клиентский код



GUIEditor = {
button = {},
window = {},
label = {}
}
addEventHandler("onClientResourceStart", resourceRoot,
function()
local screenW, screenH = guiGetScreenSize()

GUIEditor.window[2] = guiCreateWindow(10, (screenH - 257) / 2, 216, 257, "", false)
guiWindowSetSizable(GUIEditor.window[2], false)
guiSetAlpha(GUIEditor.window[2], 0.88)

buttonhood = guiCreateButton(12, 56, 191, 39, "Hood", false, GUIEditor.window[2])
buttontrunk = guiCreateButton(12, 105, 191, 39, "Trunk", false, GUIEditor.window[2])
buttonrldoor = guiCreateButton(12, 154, 191, 39, "Rear left door", false, GUIEditor.window[2])
buttonrrdoor = guiCreateButton(12, 203, 191, 39, "Rear right door", false, GUIEditor.window[2])
GUIEditor.label[2] = guiCreateLabel(15, 24, 188, 22, "Vehicle control menu", false, GUIEditor.window[2])
guiSetFont(GUIEditor.label[2], "default-bold-small")
closemenubtn = guiCreateButton(178, 24, 35, 22, "X", false, GUIEditor.window[2])
guiSetFont(GUIEditor.labelExit, "default-bold-small")
guiSetProperty(GUIEditor.labelExit, "AlwaysOnTop", "True")
guiLabelSetColor(GUIEditor.labelExit, 255, 254, 254)
guiLabelSetHorizontalAlign(GUIEditor.labelExit, "center", false)
guiSetVisible(GUIEditor.window[2], false)
showCursor(false)
end
)


function openMenu (source)
outputChatBox("open")
guiSetVisible(GUIEditor.window[2], true)
showCursor(true)
end

addEvent("openControlPanel", true)
addEventHandler("openControlPanel", getResourceRootElement(getThisResource()), openMenu)


function closeMenu()
outputChatBox("close")
guiSetVisible(GUIEditor.window[2], false)
showCursor(false)

end

addEvent("closeControlPanel",true)
addEventHandler("closeControlPanel", getResourceRootElement(getThisResource()),closeMenu)
--addEventHandler ( "onClientGUIClick", closemenubtn, closeMenu)




function hoodOpen(localPlayer)
outputChatBox("Nie je2312332steś w Pogotowiu")
local vehicle = getPedOccupiedVehicle ( localPlayer )
setVehicleDoorOpenRatio(vehicle,0,1 - getVehicleDoorOpenRatio ( vehicle,0),500)

end
addEventHandler ( "onClientGUIClick", buttonhood,hoodOpen, false )





Серверный код




function openMenu(player)
triggerClientEvent(player,"openControlPanel", getRootElement())
end
addCommandHandler ("vehcontrols", openMenu)


function hoodOpen (playerSource)
local vehicle = getPedOccupiedVehicle ( playerSource )
setVehicleDoorOpenRatio(vehicle,0,1 - getVehicleDoorOpenRatio ( vehicle,0),500)
end
addEvent("onHoodOpen", true)
addEventHandler("onHoodOpen",getRootElement(), hoodOpen)
addCommandHandler("hood",hoodOpen)



NickelBlack 23.12.2018 в 13:46

Проверенный

Репутация: 11 бал.

Замечания: 0 бал.

Внеси функции обработки нажатий на кнопку (вместе с хандлерами) в функцию, где у тебя отрисовывается окно. Т.е. отрисовал окно в функции, после этого сделал функции для обработки нажатий (https://wiki.multitheftauto.com/wiki/GuiCreateButton). И будет тебе счастье.

Это конечно не критично, но у тебя есть массив button, а ты используешь новые переменные с названиями кнопок. И хз почему, но ты везде в массивах используешь второй элемент (массивы в lua начинаются с 1).
Войдие или зарегистрируйтесь что бы написать сообщение