Jump to content

Crear intervalo por MySQL


aka Blue

Recommended Posts

Posted

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, xD.

Gracias de antemano.

Posted
  
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.

Posted

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 ) 
  

Posted
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: 9466cc4b3cfaee8cd900ed7a47f2b98a.png

Si necesitas algo mas sobre mysql o no entiendes bien como funcionan los eventos avísame y te lo explico en este mismo post.

Posted

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.

Posted
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)

  • Recently Browsing   0 members

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