aka Blue Posted January 17, 2016 Posted January 17, 2016 Buenas, quiero crear un intervalo que vaya por MySQL. Es decir, que por ejemplo, si yo ejecuto el comando /pedirAhora, calcule un día desde que lo pedí y que no deje utilizar el comando hasta que no se haya cambiado el valor en el SQL. Demostración: MySQL = 0 /pedirAhora = MySQL (1), intervalo 1 día MySQL = 1 /pedirAhora = "Tienes que esperar 1 día" Al día siguiente MySQL = 0 /pedirAhora = MySQL (1), intervalo 1 día Espero que me haya explicado bien, . Gracias de antemano.
starksZ Posted January 17, 2016 Posted January 17, 2016 Lo puedes hacer si Calculas el tiempo con https://wiki.multitheftauto.com/wiki/GetRealTime Guardando la fecha en que guardaste el intervalo.
Tomas Posted January 17, 2016 Posted January 17, 2016 local now = getRealTime().timestamp local tomorrow = now+86400 Guardas el timestamp de cuando lo usó, si ese timestamp + 86400 es mayor o igual ya ha pasado un día.
aka Blue Posted January 17, 2016 Author Posted January 17, 2016 Esto lo encontré en una GM de Mr.Aleks. ¿Se puede hacer? local qh = dbQuery( mysql, "INSERT INTO table_name VALUES (charID, time, weapon)", exports.players:getCharacterID(player), "NOW() + interval 7 day)", weapon )
Arsilex Posted January 17, 2016 Posted January 17, 2016 Esto lo encontré en una GM de Mr.Aleks. ¿Se puede hacer? local qh = dbQuery( mysql, "INSERT INTO table_name VALUES (charID, time, weapon)", exports.players:getCharacterID(player), "NOW() + interval 7 day)", weapon ) Antes que nada es gamemode es no es Mr.Aleks si no mio por que que yo sepa Mr.Aleks no hizo ningún GM de 0 por si mismo, y si perfectamente por ser mta el mysql no cambia para nada osea puedes usar el NOW() + interval 1 day o otra cosa para sumar dias ya sea en timestamp o fechas. Te dejo algunos ejemplos "UPDATE players SET jail = NOW() + INTERVAL 7 day WHERE ID = 1" "UPDATE players SET lastjoin = NOW() + INTERVAL 7 minute WHERE ID = 1" "UPDATE players SET lastjoin = NOW() + INTERVAL 10/30 hour_minute WHERE ID = 1" Otra cosa es que si quieres que mysql automaticamente lo haga por ti es decir cambiar el valor de 1 a 0 al pasar ese X tiempo para eso vas a tener que activar los EVENT de mysql con SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; y después podrás crear eventos como este: CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE DO UPDATE players SET money = 1 WHERE ID = 1; Tendrias un resultado parecido a este: Si necesitas algo mas sobre mysql o no entiendes bien como funcionan los eventos avísame y te lo explico en este mismo post.
Mr.Aleks Posted January 17, 2016 Posted January 17, 2016 Como dice Asus ese GM no es mío, si no entiendes muy bien su comentario y conoces paradise puedes fijarte como sacan la última conexión en el sistema de facciones y hacerte una idea de como hacerlo.
Arsilex Posted January 17, 2016 Posted January 17, 2016 Como dice Asus ese GM no es mío, si no entiendes muy bien su comentario y conoces paradise puedes fijarte como sacan la última conexión en el sistema de facciones y hacerte una idea de como hacerlo. Es mas bien tuyo y mio no solo tuyo por eso lo decía ( se refería al RC)
aka Blue Posted January 20, 2016 Author Posted January 20, 2016 Otia, se me olvidó comentar. Ya está solucionado, thanks PD: Sí, me lie con eso del RC .
Recommended Posts