Advertisement
GeekGarage

EPOCH 1.0.3.1 SQL Events and triggers

Dec 30th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.12 KB | None | 0 0
  1. DELIMITER ;
  2. DROP TRIGGER IF EXISTS bliss_3903.`update_owner`;
  3. DELIMITER //
  4. CREATE TRIGGER bliss_3903.`update_owner`
  5. AFTER INSERT ON bliss_3903.Character_DATA
  6. FOR EACH ROW
  7. BEGIN
  8.     UPDATE bliss_3903.Object_DATA SET CharacterID = NEW.CharacterID WHERE CharacterID IN
  9.         (SELECT CharacterID FROM Character_DATA WHERE PlayerUID = NEW.PlayerUID)
  10.     AND NOT (Classname LIKE '%door%' OR Classname LIKE '%vault%' OR Classname LIKE '%box%');
  11. END//
  12. DELIMITER ;
  13.  
  14. DROP EVENT IF EXISTS removeDeadPlayers;
  15. CREATE EVENT removeDeadPlayers
  16.     ON SCHEDULE EVERY 1 DAY
  17.     COMMENT 'Remove Dead Players from database'
  18.     DO
  19.         DELETE FROM `Character_DATA`
  20.             WHERE `Alive` = 0
  21.             AND `LastLogin` <= date_sub(CURRENT_TIMESTAMP, INTERVAL 1 DAY)
  22. ;
  23.  
  24.  DROP EVENT IF EXISTS preventCleanup;
  25.     CREATE EVENT preventCleanup
  26.     ON SCHEDULE EVERY 6 HOUR
  27.     COMMENT 'prevents cleanup of objects build by active player by setting the timestamp to currect'
  28.     DO
  29.  
  30.       UPDATE `Object_DATA`
  31.       SET    `Datestamp`   = NOW()
  32.       WHERE  `ObjectUID`   <> 0
  33.       AND    `CharacterID` <> 0
  34.       AND EXISTS (SELECT 1
  35.                   FROM   `Character_DATA` c
  36.                   WHERE  c.PlayerUID = (SELECT p.PlayerUID
  37.                                         FROM   `Player_DATA` p,
  38.                                                `Character_DATA` c2
  39.                                         WHERE  p.PlayerUID = c2.PlayerUID
  40.                                         AND    c2.CharacterID = Object_DATA.CharacterID)
  41.                   AND    c.Alive = 1
  42.                   AND    c.LastLogin   > NOW() - INTERVAL 1 WEEK)
  43. ;
  44.  
  45. DROP EVENT IF EXISTS removeObjectOld;
  46. CREATE EVENT removeObjectOld
  47.    ON SCHEDULE EVERY 1 DAY
  48.    COMMENT 'Removes old objects and vehicles'
  49.    DO
  50.      DELETE FROM `Object_DATA` WHERE `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 8 DAY AND NOT (Classname LIKE '%door%' OR Classname LIKE '%vault%' OR Classname LIKE '%box%')
  51. ;
  52.  
  53. DROP EVENT IF EXISTS updateStockDaily;
  54. CREATE EVENT updateStockDaily
  55.    ON SCHEDULE EVERY 1 HOUR
  56.    COMMENT 'Updates out of stock vendors'
  57.    DO
  58.      UPDATE `Traders_DATA` SET qty=250 WHERE qty<250;
  59. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement