05.12.2015, 01:13
Una consulta a una base de datos es bastante costosa, uses hilos secundarios o lo ejecutes en el principal, hacer eso que planteas es una mala prбctica.
Yo para evitar perder los datos cuando el servidor "crashea", lo que harнa seria almacenar, desde que el jugador se conecta hasta que se desconecta, en un archivo log, las transacciones mas relevantes, como venta o compra de armas, casas, movimientos de dinero, etc... Cuando el jugador salve sus datos en la base de datos al desconectarse, eliminas el archivo. Los accesos/escritura a ficheros son poco costosos y se realizan bastante rбpido.
Si te resulta relativamente complejo interpretar un fichero de log y recuperar la informaciуn dejando la base de datos en un estado no consistente, quizбs deberнas probar alternativas directamente en SQL, como almacenar solo cosas excesivamente importantes, como compras de excesivo costo ... guardar aleatoriamente algъn usuario de nivel mбs alto, o mas bajo si no quieres dar mala imagen.
De todas maneras te aseguro que deberнas evitar las operaciones con la bases de datos, las bases de datos no son para realizar intercambios constantemente, ademбs de eso te recomiendo que revises algъn tema acerca de modelos relacionales para construir tu base de datos, la mayorнa de la gente en esta comunidad cree saber algo de MySQL o bases de datos, y el lenguaje SQL no es mбs que la punta del iceberg de todo un modelo que lleva aсos de estudio, no es muy apropiado para SA-MP la verdad a no ser que almacenes grandes cantidades de datos y te pueda brindar numerosas facilidades el procesar relaciones o eventos automбticos que surjan del tratamiento de los datos.
Lo ideal serнa minimizar los "Crasheos", pero si no puede ser la alternativa del fichero log con las transacciones, que no son mas que acciones del tipo "jug 1 +50$ jug2" y una fecha o algo identificativo, en caso de crashear el server, no se borra, por lo tanto en el proximo inicio podrнas leer todos estos archivos de log y restablecer los datos.
Yo para evitar perder los datos cuando el servidor "crashea", lo que harнa seria almacenar, desde que el jugador se conecta hasta que se desconecta, en un archivo log, las transacciones mas relevantes, como venta o compra de armas, casas, movimientos de dinero, etc... Cuando el jugador salve sus datos en la base de datos al desconectarse, eliminas el archivo. Los accesos/escritura a ficheros son poco costosos y se realizan bastante rбpido.
Si te resulta relativamente complejo interpretar un fichero de log y recuperar la informaciуn dejando la base de datos en un estado no consistente, quizбs deberнas probar alternativas directamente en SQL, como almacenar solo cosas excesivamente importantes, como compras de excesivo costo ... guardar aleatoriamente algъn usuario de nivel mбs alto, o mas bajo si no quieres dar mala imagen.
De todas maneras te aseguro que deberнas evitar las operaciones con la bases de datos, las bases de datos no son para realizar intercambios constantemente, ademбs de eso te recomiendo que revises algъn tema acerca de modelos relacionales para construir tu base de datos, la mayorнa de la gente en esta comunidad cree saber algo de MySQL o bases de datos, y el lenguaje SQL no es mбs que la punta del iceberg de todo un modelo que lleva aсos de estudio, no es muy apropiado para SA-MP la verdad a no ser que almacenes grandes cantidades de datos y te pueda brindar numerosas facilidades el procesar relaciones o eventos automбticos que surjan del tratamiento de los datos.
Lo ideal serнa minimizar los "Crasheos", pero si no puede ser la alternativa del fichero log con las transacciones, que no son mas que acciones del tipo "jug 1 +50$ jug2" y una fecha o algo identificativo, en caso de crashear el server, no se borra, por lo tanto en el proximo inicio podrнas leer todos estos archivos de log y restablecer los datos.