aka Blue Posted January 17, 2016 Share 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. Link to comment
starksZ Posted January 17, 2016 Share 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. Link to comment
Tomas Posted January 17, 2016 Share 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. Link to comment
aka Blue Posted January 17, 2016 Author Share 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 ) Link to comment
Arsilex Posted January 17, 2016 Share 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. Link to comment
Mr.Aleks Posted January 17, 2016 Share 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. Link to comment
Arsilex Posted January 17, 2016 Share 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) Link to comment
aka Blue Posted January 20, 2016 Author Share Posted January 20, 2016 Otia, se me olvidó comentar. Ya está solucionado, thanks PD: Sí, me lie con eso del RC . Link to comment
Recommended Posts