Narutimmy Posted July 17, 2015 Share Posted July 17, 2015 Hola ocupo algo de ayuda... pienso hacer un resource pero no se me ocurre el como... quiero crear un registro o algo que me diga cuantas horas a la semana pasa online una cuenta... Supongamos hoy juego 2 horas... mañana 2... que se sume y en toda la semana marque un total nose 8 horas... por ejemplo y a la proxima semana comienze de nuevo sin borrar el anterior y crear un log Semana 1 - Narutimmy - 8 Horas Semana 2 - Narutimmy 3 Horas Semana 3 - Narutimmy 15 Horas por ejemplo. Link to comment
Enargy, Posted July 17, 2015 Share Posted July 17, 2015 Puedes usar setAccountData para guardar el tiempo y fileCreate para el log. Para contar las horas no estoy seguro, podrias calcular las horas de un dia que son 24 horas por los 7 dias de la semana. Link to comment
MTA Team 0xCiBeR Posted July 18, 2015 MTA Team Share Posted July 18, 2015 https://community.multitheftauto.com/index.php?p= ... ls&id=9655 Ahi tenes una base. Link to comment
Tomas Posted July 18, 2015 Share Posted July 18, 2015 local cacheTable = {} setTimer( function () for k,v in ipairs(getElementsByType("player")) do local account = getPlayerAccount ( v ) if ( isGuestAccount ( account ) ) then return end -- Chequeamos si el jugador no esta logueado, si no lo esta terminamos la funcion. local accountName = getAccountName ( account ) if not ( isObjectInACLGroup ( aclGetGroup("Admin"), "user."..accountName ) ) then -- Si no es un administrador, le colocamos un off-set de 0. setAccountData( getPlayerAccount(v), "off-set_on-duty_hours", 0) else if not cacheTable[v] then -- Si no existe un registro del jugador en la cache, la buscamos en su cuenta. local prevDuration = getAccountData( getPlayerAccount(v), "off-set_on-duty_hours") or 0 cacheTable[v] = {tick = getTickCount() - prevDuration, account = getPlayerAccount(v)} -- Lo agregamos a la cache. end if (getTickCount() - cacheTable[v].tick >= 1000 * 60 * 60) then -- Si cumplio una hora, se la agregamos a su cuenta. local currentHours = getAccountData( account, "On-Duty_hours" ) or 0 setAccountData ( getPlayerAccount(v), "On-Duty_hours", currentHours + 1) cacheTable[v].tick = getTickCount() -- Y reiniciamos el tick. end end end for k,v in pairs(cacheTable) do if not isElement(k) then -- Si el jugador no existe, guardamos el tiempo que duro logueado esta sesion en su cuenta. local lastDuration = getTickCount() - cacheTable[k].tick setAccountData(cacheTable[k].account, "off-set_on-duty_hours", lastDuration) cacheTable[k] = nil -- Borramos registros del jugador en la cache. end end end , 60000, 0) Link to comment
Recommended Posts