Snow-Man Posted November 22, 2013 Share 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 Link to comment
Castillo Posted November 22, 2013 Share Posted November 22, 2013 Why it doesn't work? Link to comment
Snow-Man Posted November 22, 2013 Author Share 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 ] Link to comment
Desaster Posted November 22, 2013 Share Posted November 22, 2013 post a bit more of the script Link to comment
Snow-Man Posted November 22, 2013 Author Share 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") Link to comment
TAPL Posted November 22, 2013 Share 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)) Link to comment
Snow-Man Posted November 22, 2013 Author Share 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)) Link to comment
Stanley Sathler Posted November 22, 2013 Share 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)) Link to comment
Snow-Man Posted November 22, 2013 Author Share 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 Link to comment
TAPL Posted November 23, 2013 Share Posted November 23, 2013 Occupation: getElementData Hours: Real: getRealTime Game: getTime Serial: getPlayerSerial Country: exports.admin:getPlayerCountry(player) Link to comment
Snow-Man Posted November 23, 2013 Author Share 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) Link to comment
BieHDC Posted November 23, 2013 Share 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 Link to comment
TAPL Posted November 23, 2013 Share Posted November 23, 2013 gerElementData exports.admin.getPlayerCountry(source) ?? 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