novo Posted December 23, 2011 Posted December 23, 2011 Hi all. I just made this code: local root = getRootElement() local player = getLocalPlayer() local counter = 0 local starttick local currenttick addEventHandler("onClientRender",root, function(player) if not starttick then starttick = getTickCount() end counter = counter + 1 currenttick = getTickCount() if currenttick - starttick >= 1000 then setElementData(player,"fps",counter) dxText:create('FPS:', screenWidth - 190, 1090, false, 'bankgothic', 1), dxText:create(tostring(getElementData( player, "counter" )), screenWidth - 190, 1110, false, 'bankgothic', 1), counter = 0 starttick = false end end ) I place it on race/race_client.lua, but the race got bugued on resource start. The idea is to make a text where you see your currently fps. Please help me <3 Bye.
Castillo Posted December 23, 2011 Posted December 23, 2011 Try this (not tested): local player = getLocalPlayer() local counter = 0 local starttick local currenttick local screenWidth, screenHeight = guiGetScreenSize() dxText:create('FPS:', screenWidth - 190, 1090, false, 'bankgothic', 1) fpsLabel = dxText:create("0", screenWidth - 190, 1110, false, 'bankgothic', 1) addEventHandler("onClientRender",root, function() if not starttick then starttick = getTickCount() end counter = counter + 1 currenttick = getTickCount() if currenttick - starttick >= 1000 then setElementData(player,"fps",counter) fpsLabel:text(tostring(counter)) counter = 0 starttick = false end end )
novo Posted December 23, 2011 Author Posted December 23, 2011 Mmm.. Race works but, text isn't showing
Castillo Posted December 23, 2011 Posted December 23, 2011 Any errors showing? is the size, position fine?
novo Posted December 23, 2011 Author Posted December 23, 2011 No errors, the position is fine because i took the positions of the starting code where text was showing. PD: Bad English..
Castillo Posted December 23, 2011 Posted December 23, 2011 As I said, the text position is WRONG. local player = getLocalPlayer() local counter = 0 local starttick local currenttick local screenWidth, screenHeight = guiGetScreenSize() fpsLabel = dxText:create('FPS:', screenWidth - 190, 25, false, 'bankgothic', 1) fps = dxText:create("0", screenWidth - 130, 25, false, 'bankgothic', 1) addEventHandler("onClientRender",root, function() if not starttick then starttick = getTickCount() end counter = counter + 1 currenttick = getTickCount() if currenttick - starttick >= 1000 then setElementData(player,"fps",counter) fps:text(tostring(counter)) counter = 0 starttick = false end end ) That works, the text is over the HUD.
Evil-Cod3r Posted December 23, 2011 Posted December 23, 2011 try this FPSLimit = 50 FPSMax = 52 function onClientResourceStart ( resource ) if ( guiFPSLabel == nil ) then FPSLimit = 255 / FPSLimit guiFPSLabel = guiCreateLabel ( 0.03, 0.97, 0.1, 0.1, "FPS: 0", true ) FPSCalc = 0 FPSTime = getTickCount() + 1000 addEventHandler ( "onClientRender", getRootElement (), onClientRender ) end end addEventHandler ( "onClientResourceStart", getRootElement (), onClientResourceStart ) function onClientRender ( ) if ( getTickCount() < FPSTime ) then FPSCalc = FPSCalc + 1 else if ( FPSCalc > FPSMax ) then FPSLimit = 255 / FPSCalc FPSMax = FPSCalc end guiSetText ( guiFPSLabel, "FPS: "..FPSCalc.." Max: "..FPSMax ) guiLabelSetColor ( guiFPSLabel, 255 - math.ceil ( FPSCalc * FPSLimit ), math.ceil ( FPSCalc * FPSLimit ), 0 ) FPSCalc = 0 FPSTime = getTickCount() + 1000 end end
Castillo Posted December 23, 2011 Posted December 23, 2011 @novo: The script is working, maybe your resolution doesn't fit it.
novo Posted December 24, 2011 Author Posted December 24, 2011 Well, yes. I was using a screen of 2560 x 1600 resolution. Thanks :3
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