Merge pull request #1052 from Fank/patch-9

Added Unlock/Delete vehicle SQL Event
This commit is contained in:
vbawol
2014-01-31 15:38:55 -08:00

View File

@@ -35,4 +35,79 @@ CREATE EVENT setDamageOnAge
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` = '[]') )
;
-- Find Vehicle Key Fund
-- SELECT FindVehicleKeys(CharID/KeyID);
DELIMITER $$
DROP FUNCTION IF EXISTS `FindVehicleKeysCount`$$
CREATE FUNCTION `FindVehicleKeysCount` (`keyId` INT) RETURNS INT
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 ;
-- Unlock
DROP EVENT `UnlockNonKeyVehicles`;
CREATE EVENT `UnlockNonKeyVehicles`
ON SCHEDULE AT NOW()
ON COMPLETION NOT PRESERVE
ENABLE
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%'
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', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ')
AND FindVehicleKeys(object_data.CharacterID) = 0
;
-- Delete
DROP EVENT `DeleteNonKeyVehicles`;
CREATE EVENT `DeleteNonKeyVehicles`
ON SCHEDULE AT NOW()
ON COMPLETION NOT PRESERVE
ENABLE
DO
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%'
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', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ')
AND FindVehicleKeys(object_data.CharacterID) = 0
;