Snow-Man Posted November 22, 2013 Posted November 22, 2013 Hey Guys , i making Stats panel of Players but this function won't work guiSetText (label[1] , getPlayerName(localPlayer)) someone give me correct functions
Snow-Man Posted November 22, 2013 Author Posted November 22, 2013 Why it doesn't work? WARNING: stats/client.lua:77: bad argument @'guiSetText' [Expected gui-element at argument 1, got nil ]
Snow-Man Posted November 22, 2013 Author Posted November 22, 2013 label[1] isnt defined. label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small")
TAPL Posted November 22, 2013 Posted November 22, 2013 label table is not defined then. OR You maybe used guiSetText before the label created. guiSetText (label[1] , getPlayerName(localPlayer)) label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") Should be label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") guiSetText (label[1] , getPlayerName(localPlayer))
Snow-Man Posted November 22, 2013 Author Posted November 22, 2013 label table is not defined then.OR You maybe used guiSetText before the label created. guiSetText (label[1] , getPlayerName(localPlayer)) label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") Should be label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") guiSetText (label[1] , getPlayerName(localPlayer)) label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") guiSetText (label[1] , getPlayerName(localPlayer)) i used like this i made Gui with BindKey then i used guiSetText (label[1] , getPlayerName(localPlayer))
Stanley Sathler Posted November 22, 2013 Posted November 22, 2013 Guess your table wasn't declared. You need use: label = {} -- this line means the table is being declared label[1] = guiCreateLabel(20, 97, 224, 33, "Name : ", false, window[1]) guiSetFont(label[1], "default-bold-small") guiSetText (label[1] , getPlayerName(localPlayer))
Snow-Man Posted November 22, 2013 Author Posted November 22, 2013 Please another question I want to add other things like Occupation, hours, serial Country Someone give me example of Functions to Add it in Script But Function won't work about getPlayerName
TAPL Posted November 23, 2013 Posted November 23, 2013 Occupation: getElementData Hours: Real: getRealTime Game: getTime Serial: getPlayerSerial Country: exports.admin:getPlayerCountry(player)
Snow-Man Posted November 23, 2013 Author Posted November 23, 2013 addEvent( "onPlayerLoadStats", true ) addEventHandler ( "onPlayerLoadStats" , root, function ( ) local name = getPlayerName(source) local occ = gerElementData(source, "Occupation") local playtime = getElementData(source, "Playtime") local serial = getPlayerSerial(source) exports.admin.getPlayerCountry(source) triggerClientEvent ("onClientPlayerLoadStats", source, name, occ, playtime, serial, country ) end ) Error: Stats-Panel/client.lua:60: attempt to concatenate local 'playtime' (a boolear)
BieHDC Posted November 23, 2013 Posted November 23, 2013 (edited) this means the "Playtime" isnt given you need a script which count players play time edit it like you need --serverside exports.scoreboard:addScoreboardColumn('PlayTime') local t = { } function checkValues( source,arg1,arg2) if (arg2 >= 60) then t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1 t[ source ][ 'sec' ] = 0 end if (arg1 >= 60) then t[ source ][ 'min' ] = 0 t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1 end return arg1, arg2 end setTimer( function( ) for _, v in pairs( getElementsByType( "player" ) ) do if (not t[ v ]) then t[ v ] = { ["hour"] = 0, ["min"] = 0, ["sec"] = 0 } end t[ v ][ 'sec' ] = tonumber( t[ v ][ 'sec' ] or 0 ) + 1 local min,sec = checkValues ( v, t[ v ][ 'min' ] or 0, t[ v ][ 'sec' ] or 0 ) local hour = tonumber( t[ v ][ 'hour' ] or 0 ) setElementData( v, "PlayTime", tostring( hour )..':'..tostring( min )..':'..tostring( sec ) ) end end, 1000, 0 ) function onPlayerQuit ( ) local playeraccount = getPlayerAccount ( source ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local sValue = getElementData( source,'PlayTime' ) local hour = tonumber( t[ source ][ 'hour' ] or 0 ) local min = tonumber( t[ source ][ 'min' ] or 0 ) local sec = tonumber( t[ source ][ 'sec' ] or 0 ) setAccountData ( playeraccount, "PlayTime-hour", tostring(hour) ) setAccountData ( playeraccount, "PlayTime-min", tostring(min) ) setAccountData ( playeraccount, "PlayTime-sec", tostring(sec) ) setAccountData ( playeraccount, "PlayTime", tostring(sValue) ) end t[ source ] = nil end function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local time = getAccountData ( playeraccount, "PlayTime" ) local hou = getAccountData ( playeraccount, "PlayTime-hour") local min = getAccountData ( playeraccount, "PlayTime-min") local sec = getAccountData ( playeraccount, "PlayTime-sec") if ( time ) then setElementData ( source, "PlayTime", time ) t[ source ]["hour"] = tonumber(hou) t[ source ]["min"] = tonumber(min) t[ source ]["sec"] = tonumber(sec) else setElementData ( source, "PlayTime",0 ) setAccountData ( playeraccount, "PlayTime",0 ) end end end addEventHandler ( "onPlayerQuit", root, onPlayerQuit ) addEventHandler ( "onPlayerLogin", root, onPlayerLogin ) Edited November 23, 2013 by Guest
TAPL Posted November 23, 2013 Posted November 23, 2013 gerElementData exports.admin.getPlayerCountry(source) ??
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