MrZombie Posted January 28, 2019 Share Posted January 28, 2019 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
aka Blue Posted January 28, 2019 Share Posted January 28, 2019 ¿Podrías explicar mejor o compartir algún fragmento del código para entendernos? Link to comment
MrZombie Posted January 28, 2019 Author Share Posted January 28, 2019 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
Peti Posted January 29, 2019 Share Posted January 29, 2019 ¿Creas un timer por cada jugador que ingresa al servidor? No suena como la cosa más optimizada posible. ¿Por qué no guardas la hora que se conectó y la hora que se desconectó y luego haces una diferencia entre ambas? 1 Link to comment
aka Blue Posted January 29, 2019 Share Posted January 29, 2019 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. 1 Link to comment
Alexs Posted January 29, 2019 Share Posted January 29, 2019 (edited) 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 January 29, 2019 by Alexs 1 Link to comment
MrZombie Posted January 29, 2019 Author Share Posted January 29, 2019 Solucionado, gracias a todos por responder. 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