Ich habe hier ein Script, welches die Spielzeit des Spieler im Scoreboard anzeigt. Es funktioniert wunderbar, nur leider teilt das Script die Minuten nicht in Stunden auf.
Normalerweise sollte es so aussehen: H:M (Stunden:Minuten), wie gesagt teilt das Script die Minuten aber nicht in Stunden auf, das sieht dann so aus: '0:240', sollte aber so aussehen: '4:0', hoffe ihr versteht, was ich meine.
Hier der Code:
Spoiler anzeigen
Lua
exports.scoreboard:addScoreboardColumn( 'Playtime' )
local t = { }
local uTimers = { }
function checkValues( source,arg1,arg2 )
if arg1 > 60 then
t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1
t[ source ][ 'sec' ] = 0
elseif arg2 > 3600 then
t[ source ][ 'sec' ] = 0
t[ source ][ 'min' ] = 0
t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1
end
end
function onPlayerLogOut ( _,account )
if ( account ) and not isGuestAccount ( account ) then
local sValue = getElementData( source,'Playtime' )
setAccountData ( account, "Playtime", tostring( sValue ) )
end
if isTimer( uTimers[ source ] ) then
killTimer( uTimers[ source ] )
end
uTimers[ source ] = nil
t[ source ] = nil
end
function onPlayerQuit ( )
local playeraccount = getPlayerAccount ( source )
if ( playeraccount ) and not isGuestAccount ( playeraccount ) then
local sValue = getElementData( source,'Playtime' )
setAccountData ( playeraccount, "Playtime", tostring( sValue ) )
end
if isTimer( uTimers[ source ] ) then
killTimer( uTimers[ source ] )
end
uTimers[ source ] = nil
t[ source ] = nil
end
function subFind( str,mod )
if mod == 'hour' then
return str:sub( 1,str:find( ':' ) -1 )
else
return str:sub( str:find( ':' ) + 1,str:len( ) )
end
end
function onPlayerLogin (_, account )
if account then
uTimers[ source ] = setTimer(
function( player,acc )
local time = getAccountData ( acc, "Playtime" )
if time then
if not t[ player ] then
t[ player ] = {
["hour"] = tonumber( subFind( time,'hour' ) ),
["min"] = tonumber( subFind( time ) ),
["sec"] = 0
}
end
else
if not t[ player ] then
t[ player ] = {
["hour"] = 0,
["min"] = 0,
["sec"] = 0
}
end
end
t[ player ][ 'sec' ] = tonumber( t[ player ][ 'sec' ] or 0 ) + 1
checkValues (
player,
t[ player ][ 'sec' ] or 0,
t[ player ][ 'min' ] or 0
)
setElementData (
player,
"Playtime",
tostring( t[ player ][ 'hour' ] or 0 )..':'..tostring( t[ player ][ 'min' ] or 0 )
)
end,
1000,
0 ,source,account )
end
end
addEventHandler ( "onPlayerQuit", root, onPlayerQuit )
addEventHandler ( "onPlayerLogin", root, onPlayerLogin )
addEventHandler( 'onPlayerLogout',root, onPlayerLogOut )
Alles anzeigen
Wäre dankbar, wenn mir jemand helfen würde.
//edit: Rechtschreibfehler