From 27ae25f636b52216c6bbace7a3ecd09920dc9b36 Mon Sep 17 00:00:00 2001 From: oiad Date: Fri, 19 Jun 2020 08:07:57 +1200 Subject: [PATCH] Remove more config trader stuff Move old SQL update files to Archives\ dir --- .../{ => Archive}/SQL/1.0.6.2_Updates.sql | 0 .../{ => Archive}/SQL/1.0.6.3_Updates.sql | 0 .../{ => Archive}/SQL/1.0.6_Updates.sql | 0 .../SQL/add_recommended_mysql_events.sql | 133 ++++++++++++++++++ .../SQL/add_recommended_mysql_events.sql | 9 -- 5 files changed, 133 insertions(+), 9 deletions(-) rename Server Files/{ => Archive}/SQL/1.0.6.2_Updates.sql (100%) rename Server Files/{ => Archive}/SQL/1.0.6.3_Updates.sql (100%) rename Server Files/{ => Archive}/SQL/1.0.6_Updates.sql (100%) create mode 100644 Server Files/Archive/SQL/add_recommended_mysql_events.sql diff --git a/Server Files/SQL/1.0.6.2_Updates.sql b/Server Files/Archive/SQL/1.0.6.2_Updates.sql similarity index 100% rename from Server Files/SQL/1.0.6.2_Updates.sql rename to Server Files/Archive/SQL/1.0.6.2_Updates.sql diff --git a/Server Files/SQL/1.0.6.3_Updates.sql b/Server Files/Archive/SQL/1.0.6.3_Updates.sql similarity index 100% rename from Server Files/SQL/1.0.6.3_Updates.sql rename to Server Files/Archive/SQL/1.0.6.3_Updates.sql diff --git a/Server Files/SQL/1.0.6_Updates.sql b/Server Files/Archive/SQL/1.0.6_Updates.sql similarity index 100% rename from Server Files/SQL/1.0.6_Updates.sql rename to Server Files/Archive/SQL/1.0.6_Updates.sql diff --git a/Server Files/Archive/SQL/add_recommended_mysql_events.sql b/Server Files/Archive/SQL/add_recommended_mysql_events.sql new file mode 100644 index 000000000..5525ad6e2 --- /dev/null +++ b/Server Files/Archive/SQL/add_recommended_mysql_events.sql @@ -0,0 +1,133 @@ +-- +-- http://epochmod.gamepedia.com/A2Epoch:Server_Installation_Instructions_Extended +-- + +-- ---------------------------- +-- Function structure for FindVehicleKeysCount +-- ---------------------------- +DROP FUNCTION IF EXISTS `FindVehicleKeysCount`; +DELIMITER ;; +CREATE FUNCTION `FindVehicleKeysCount`(`keyId` INT) + RETURNS int(11) + DETERMINISTIC +BEGIN + DECLARE totalKeys INT DEFAULT 0; + DECLARE keyName VARCHAR(32) DEFAULT ""; + DECLARE keysInChar INT DEFAULT 0; + DECLARE keysInObj INT DEFAULT 0; + + SET keyName = (CASE + WHEN `keyId` < 2501 THEN CONCAT('ItemKeyGreen', `keyId`) + WHEN `keyId` < 5001 THEN CONCAT('ItemKeyRed', `keyId` - 2500) + WHEN `keyId` < 7501 THEN CONCAT('ItemKeyBlue', `keyId` - 5000) + WHEN `keyId` < 10001 THEN CONCAT('ItemKeyYellow', `keyId` - 7500) + WHEN `keyId` < 12501 THEN CONCAT('ItemKeyBlack', `keyId` - 10000) + ELSE 'ERROR' + END); + + SET keysInChar = (SELECT COUNT(*) FROM `Character_DATA` WHERE `Alive` = '1' AND (`Inventory` LIKE CONCAT('%', keyName, '%') OR `Backpack` LIKE CONCAT('%', keyName, '%'))); + SET keysInObj = (SELECT COUNT(*) FROM `Object_DATA` WHERE `Inventory` LIKE CONCAT('%', keyName, '%')); + + RETURN (keysInChar + keysInObj); +END +;; +DELIMITER ; + +-- ---------------------------- +-- Function structure for DeleteNonKeyVehicles +-- Example usage: SELECT DeleteNonKeyVehicles(); +-- ---------------------------- +DROP FUNCTION IF EXISTS `DeleteNonKeyVehicles`; +DELIMITER ;; +CREATE FUNCTION `DeleteNonKeyVehicles`() + RETURNS int(11) + DETERMINISTIC +BEGIN + DELETE FROM + `Object_DATA` + WHERE + `Object_DATA`.`CharacterID` <> 0 + AND `Object_DATA`.`CharacterID` <= 12500 + AND `Object_DATA`.`Classname` NOT LIKE 'Tent%' + AND `Object_DATA`.`Classname` NOT LIKE '%Locked' + AND `Object_DATA`.`Classname` NOT LIKE 'Land\_%' -- added escape character so LandRover vehicles are not ignored + AND `Object_DATA`.`Classname` NOT LIKE 'Cinder%' + AND `Object_DATA`.`Classname` NOT LIKE 'Wood%' + AND `Object_DATA`.`Classname` NOT LIKE 'Metal%' + AND `Object_DATA`.`Classname` NOT LIKE '%Storage%' + AND `Object_DATA`.`Classname` NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'DesertLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ', 'BagFenceRound_DZ') + AND FindVehicleKeysCount(Object_DATA.CharacterID) = 0; + + RETURN ROW_COUNT(); +END +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for removeDamagedVehicles +-- ---------------------------- +DROP EVENT IF EXISTS `removeDamagedVehicles`; +DELIMITER ;; +CREATE EVENT `removeDamagedVehicles` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes damaged vehicles' DO DELETE FROM `Object_DATA` WHERE Damage >= 1 +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for removeObjectEmpty +-- ---------------------------- +DROP EVENT IF EXISTS `removeObjectEmpty`; +DELIMITER ;; +CREATE EVENT `removeObjectEmpty` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes abandoned storage objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') ) +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for removeObjectOld +-- ---------------------------- +DROP EVENT IF EXISTS `removeObjectOld`; +DELIMITER ;; +CREATE EVENT `removeObjectOld` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes old objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 42 DAY) +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for setDamageOnAge +-- ---------------------------- +DROP EVENT IF EXISTS `setDamageOnAge`; +DELIMITER ;; +CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Classname` IN ('Land_DZE_GarageWoodDoorLocked','Land_DZE_LargeWoodDoorLocked','Land_DZE_WoodDoorLocked','CinderWallDoorLocked_DZ','CinderWallDoorSmallLocked_DZ','Plastic_Pole_EP1_DZ')) ) +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for updateStockDaily +-- ---------------------------- +DROP EVENT IF EXISTS `updateStockDaily`; +DELIMITER ;; +CREATE EVENT `updateStockDaily` ON SCHEDULE EVERY 1 DAY COMMENT 'Updates out of stock vendors' DO UPDATE `Traders_DATA` SET qty=10 WHERE qty=0 AND afile<>'trade_any_vehicle' AND afile<>'trade_any_boat' +;; +DELIMITER ; + +-- ---------------------------- +-- Event structure for UnlockNonKeyVehicles +-- ---------------------------- +DROP EVENT IF EXISTS `UnlockNonKeyVehicles`; +DELIMITER ;; +CREATE EVENT `UnlockNonKeyVehicles` ON SCHEDULE EVERY 1 DAY DO UPDATE + `Object_DATA` + SET + `Object_DATA`.`CharacterID` = 0 + WHERE + `Object_DATA`.`CharacterID` <> 0 + AND `Object_DATA`.`CharacterID` <= 12500 + AND `Object_DATA`.`Classname` NOT LIKE 'Tent%' + AND `Object_DATA`.`Classname` NOT LIKE '%Locked' + AND `Object_DATA`.`Classname` NOT LIKE 'Land\_%' -- added escape character so LandRover vehicles are not ignored + AND `Object_DATA`.`Classname` NOT LIKE 'Cinder%' + AND `Object_DATA`.`Classname` NOT LIKE 'Wood%' + AND `Object_DATA`.`Classname` NOT LIKE 'Metal%' + AND `Object_DATA`.`Classname` NOT LIKE '%Storage%' + AND `Object_DATA`.`Classname` NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'DesertLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ', 'BagFenceRound_DZ') + AND FindVehicleKeysCount(Object_DATA.CharacterID) = 0 +;; +DELIMITER ; diff --git a/Server Files/SQL/add_recommended_mysql_events.sql b/Server Files/SQL/add_recommended_mysql_events.sql index 5525ad6e2..09369f2ac 100644 --- a/Server Files/SQL/add_recommended_mysql_events.sql +++ b/Server Files/SQL/add_recommended_mysql_events.sql @@ -99,15 +99,6 @@ CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage ;; DELIMITER ; --- ---------------------------- --- Event structure for updateStockDaily --- ---------------------------- -DROP EVENT IF EXISTS `updateStockDaily`; -DELIMITER ;; -CREATE EVENT `updateStockDaily` ON SCHEDULE EVERY 1 DAY COMMENT 'Updates out of stock vendors' DO UPDATE `Traders_DATA` SET qty=10 WHERE qty=0 AND afile<>'trade_any_vehicle' AND afile<>'trade_any_boat' -;; -DELIMITER ; - -- ---------------------------- -- Event structure for UnlockNonKeyVehicles -- ----------------------------