Код почти такой же?
bindKey( "F2", "down", showGUI );
GUIEditor_Window = {}
GUIEditor_Button = {}
GUIEditor_Window[1] = guiCreateWindow(0.3,0.2,0.4,0.5,"Панель разговоров",true)
guiSetAlpha( GUIEditor_Window[1],225) -- Альфа GUI указывается в процентах, т.е. от 0,0 до 1,0
guiSetVisible( GUIEditor_Window[1],true)
GUIEditor_Button[ 1 ] = guiCreateButton(0.52,0.55,0.45,0.1,"Молодец",true,GUIEditor_Window[1])
addEventHandler( "onClientGUIClick", GUIEditor_Button[1], -- достаточно повесить событие сразу на елемент и ...
function ( player )
-- if (source == GUIEditor_Button[1]) then -- ... и убрать вот эту проверку (меньше нагрузки на CPU)
-- player = getLocalPlayer() -- Зачем это?
outputChatBox ( --[[ .. это зачем? ]]getPlayerName(source).."сказал: Молодец", --[[ getRootElement(), зачем это? ]]255, 0, 0, true )
-- getPlayerName(source) вы пытаетесь получить имя игрока, а в аргумент даёте GUI-кнопку..
guiSetVisible (GUIEditor_Window[1],false)
showCursor (false)
-- end
end,
false -- это нужно чтобы событие не срабатывало на другие елементы.
);
addEvent( "molodca", true )
function molodec ( player )
if (source == GUIEditor_Button[1]) then -- тоже не понятно зачем это.
elseif (isElement(player)) then
local Zx,Zy,Zz = getElementPosition( ped ) -- откуда появилась переменная ped?
local sound = playSound3D("molodca.ogg", Zx, Zy, Zz, true) -- true указывает на loop, Т.е. будет бесконечно повторяться.
setSoundMaxDistance(sound, 20)
end
end
addEventHandler( "molodca", getRootElement(), molodec )
function showGUI() -- немного переделал
local visible = not guiGetVisible( GUIEditor_Window[1] );
guiSetVisible( GUIEditor_Window[1], visible );
showCursor( visible );
end