callum123 Posted August 11, 2012 Share Posted August 11, 2012 local char = (getPlayerName(localPlayer)):gsub( "_", " " ) local health = (getElementHealth(localPlayer)) local armor = (getPedArmor(localPlayer)) local money = (getPlayerMoney(localPlayer)) local hour, minute = getTime() function togHud() mainWindow = guiCreateWindow(484,318,308,166,"Multi Theft Auto Roleplay",false) btnClose = guiCreateButton(200,127,100,30,"Close",false,mainWindow) btnNameLabel = guiCreateLabel(15,28,94,16,"Character Name: ",false,mainWindow) btnTimeLabel = guiCreateLabel(14,53,32,16,"Time: ",false,mainWindow) btnHealthLabel = guiCreateLabel(14,77,38,16,"Health: ",false,mainWindow) btnArmorLabel = guiCreateLabel(13,101,38,18,"Armor: ",false,mainWindow) btnMoneyLabel = guiCreateLabel(14,127,42,15,"Money: ",false,mainWindow) btnChar = guiCreateLabel(105,28,169,17," "..char.."",false,mainWindow) btnTime = guiCreateLabel(44,53,70,15," "..hour..":"..minute.."",false,mainWindow) btnHealth = guiCreateLabel(53,78,169,16,"lol",false,mainWindow) btnArmor = guiCreateLabel(49,101,70,19,"lol",false,mainWindow) btnMoney = guiCreateLabel(53,128,112,17,"lol",false,mainWindow) addEventHandler( "onClientGUIClick", btnClose, DestroyGUI, false) end addCommandHandler("hud", togHud) addEventHandler( "onClientRender", getRootElement(), function() if isElement( localPlayer ) then guiSetText ( btnHealth, "" .. math.floor( getElementHealth(localPlayer ) ) ) guiSetText ( btnArmor, "" .. math.floor( getPedArmor( localPlayer ) ) ) guiSetText ( btnMoney, "" .. math.floor( getPlayerMoney( localPlayer ) ) ) end end ) function DestroyGUI() guiSetVisible(mainWindow, false) end Errors on line 27, 28, 29: Bad argument @ 'guiSetText' [Expected gui-element at argument 1, got nil Been having a look around and still cannot see what I am doing particularly wrong, I check the MTA for this, and the example was not the greatest. Link to comment
Castillo Posted August 11, 2012 Share Posted August 11, 2012 That's because is trying to set the text of a non existing element, as the GUI is not created at the start, you should add the event handler to render it inside "togHud" function, and remove it on "DestroyGUI" function. local char = (getPlayerName(localPlayer)):gsub( "_", " " ) local health = getElementHealth ( localPlayer ) local armor = getPedArmor ( localPlayer ) local money = getPlayerMoney ( ) local hour, minute = getTime ( ) function togHud ( ) mainWindow = guiCreateWindow(484,318,308,166,"Multi Theft Auto Roleplay",false) btnClose = guiCreateButton(200,127,100,30,"Close",false,mainWindow) btnNameLabel = guiCreateLabel(15,28,94,16,"Character Name: ",false,mainWindow) btnTimeLabel = guiCreateLabel(14,53,32,16,"Time: ",false,mainWindow) btnHealthLabel = guiCreateLabel(14,77,38,16,"Health: ",false,mainWindow) btnArmorLabel = guiCreateLabel(13,101,38,18,"Armor: ",false,mainWindow) btnMoneyLabel = guiCreateLabel(14,127,42,15,"Money: ",false,mainWindow) btnChar = guiCreateLabel(105,28,169,17," "..char.."",false,mainWindow) btnTime = guiCreateLabel(44,53,70,15," "..hour..":"..minute.."",false,mainWindow) btnHealth = guiCreateLabel(53,78,169,16,"lol",false,mainWindow) btnArmor = guiCreateLabel(49,101,70,19,"lol",false,mainWindow) btnMoney = guiCreateLabel(53,128,112,17,"lol",false,mainWindow) addEventHandler ( "onClientGUIClick", btnClose, DestroyGUI, false ) addEventHandler ( "onClientRender", getRootElement(), renderData ) end addCommandHandler("hud", togHud) function renderData ( ) guiSetText ( btnHealth, "" .. math.floor ( getElementHealth(localPlayer ) ) ) guiSetText ( btnArmor, "" .. math.floor ( getPedArmor( localPlayer ) ) ) guiSetText ( btnMoney, "" .. math.floor ( getPlayerMoney( ) ) ) end function DestroyGUI ( ) guiSetVisible ( mainWindow, false ) removeEventHandler ( "onClientRender", getRootElement(), renderData ) end Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now