Jump to content

Raro problema con timer


MrZombie

Recommended Posts

Hola este es mi primer post, no se donde ponerlo si aca o scripting.. Mi problema es que yo tengo un sistema que cuando el jugador se conecta empieza un timer, el problema es que yo lo tomo desde OnPlayerLogin, por lo tanto, si tiene una PC de carton que no se le spawnea mas el Personaje, corre el tiempo pero, si pongo un contador de timer no sincronizan, no se si me explico, Gracias y saludos.

Link to comment
1 hour ago, aka Blue said:

¿Podrías explicar mejor o compartir algún fragmento del código para entendernos?

Hola, estoy en el trabajo y no puedo enviarte el codigo, te explico:

Yo tengo un timer que va pasando, y a traves del cliente lo muestro en pantalla (con onClientRender), ese tiempo lo guardo, cuando el jugador se desconecta, y lo cargo cuando se logea. Y ese es el problema ya que lo probe con mi PC q no tiene delay al entrar y funciona bien, pero si la pc tiene delay, y pasan segundos del logear, los tiempos no sincronizan, por ejemplo:

Tiempo Jugado: 10 segundos(esto seria el texto mostrado en pantalla a traves de la funcion onClientRender), y en la DB, me da el tiempo desde que yo logeo al personaje, q si tuvo nose, un delay de 4 segs, tendria 14 segundos de tiempo jugado.

Pensaba cargar ese dato cuando spawnea el jugador, tu crees q funcione? Saludos.

Link to comment

En la base de datos no se actualiza momentáneamente, es decir:

Si tu guardas el tiempo jugado a la hora de salirse el jugador se guardará entonces, no antes. De hecho es la mejor forma porque si haces que se vaya actualizando en la db constantemente podria generar lag.

Espero haberte entendido.

  • Like 1
Link to comment

Creo que tampoco comprendí la situación por completo, así que daré algunas ideas generales.

Si la intención es mantener una referencia a la cantidad de tiempo que algo lleva activo, mantener un conteo de esto no es la mejor opción posible, pues fácilmente puede desincronizarse o generar problemas de eficiencia.

Por el contrario, sugiero almacenar referencias temporales, por ejemplo, si quisieras saber cuanto tiempo lleva el jugador activo, guardas la fecha y hora en que el jugador se conectó y calculas el tiempo transcurrido hasta el momento actual.

Si quisieras almacenar la cantidad total que un jugador ha estado activo en toda la historia, entonces tomas el momento en que se conectó y el momento en que se desconectó, calculas la distancia entre ambos momentos y la sumas a la cantidad que el jugador previamente ha estado activo.

Puede sonar lioso al principio, pero se simplifica una vez que decides una manera para obtener referencias temporales, de las cuales hay muchas, nombraré algunas palabras clave que puedan servir para buscar documentación: datetime, timestamp, tick count.

En cualquier caso, también puedes mostrarnos tu código a ver lo que falla con tu método, si es que prefieres no modificarlo demasiado.

Edited by Alexs
  • Like 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...