mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-25 10:49:11 +00:00
47 lines
2.3 KiB
MySQL
47 lines
2.3 KiB
MySQL
|
CREATE TABLE IF NOT EXISTS `fso_outfits` (
|
|||
|
`outfit_id` int(11) NOT NULL AUTO_INCREMENT,
|
|||
|
`avatar_owner` int(10) unsigned DEFAULT NULL,
|
|||
|
`object_owner` int(11) unsigned DEFAULT NULL,
|
|||
|
`asset_id` bigint(20) unsigned DEFAULT NULL,
|
|||
|
`sale_price` int(11) NOT NULL,
|
|||
|
`purchase_price` int(11) NOT NULL,
|
|||
|
`outfit_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'See VMPersonSuits',
|
|||
|
`outfit_source` enum('cas','rack') NOT NULL DEFAULT 'cas',
|
|||
|
PRIMARY KEY (`outfit_id`),
|
|||
|
KEY `FK_fso_outfits_fso_avatars` (`avatar_owner`),
|
|||
|
KEY `FK_fso_outfits_fso_objects` (`object_owner`),
|
|||
|
CONSTRAINT `FK_fso_outfits_fso_avatars` FOREIGN KEY (`avatar_owner`) REFERENCES `fso_avatars` (`avatar_id`) ON DELETE CASCADE,
|
|||
|
CONSTRAINT `FK_fso_outfits_fso_objects` FOREIGN KEY (`object_owner`) REFERENCES `fso_objects` (`object_id`) ON DELETE CASCADE
|
|||
|
)
|
|||
|
COLLATE='utf8_general_ci'
|
|||
|
ENGINE=InnoDB;
|
|||
|
|
|||
|
CREATE TRIGGER `fso_outfits_before_insert` BEFORE INSERT ON `fso_outfits` FOR EACH ROW BEGIN
|
|||
|
IF NEW.object_owner IS NOT NULL THEN
|
|||
|
IF (SELECT COUNT(*) FROM fso_outfits o WHERE NEW.object_owner = o.object_owner) >= 20 THEN
|
|||
|
SIGNAL SQLSTATE '45000'
|
|||
|
SET MESSAGE_TEXT = 'Cannot have more than 20 outfits in a rack.';
|
|||
|
END IF;
|
|||
|
END IF;
|
|||
|
END;
|
|||
|
|
|||
|
CREATE TRIGGER `fso_outfits_before_update` BEFORE UPDATE ON `fso_outfits` FOR EACH ROW BEGIN
|
|||
|
IF NEW.avatar_owner IS NOT NULL THEN
|
|||
|
IF (SELECT COUNT(*) FROM fso_outfits o WHERE NEW.avatar_owner = o.avatar_owner AND o.outfit_type = NEW.outfit_type) >= 5 THEN
|
|||
|
SIGNAL SQLSTATE '45000'
|
|||
|
SET MESSAGE_TEXT = 'Cannot have more than 5 outfits per category in backpack.';
|
|||
|
END IF;
|
|||
|
END IF;
|
|||
|
END;
|
|||
|
|
|||
|
-- Migrate existing daywear --
|
|||
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|||
|
SELECT avatar_id, body, 0, 0, 0, 'cas' FROM fso_avatars;
|
|||
|
|
|||
|
-- Give everyone default sleepswear --
|
|||
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|||
|
SELECT avatar_id, if(gender = 'male', CAST(0x5440000000D as UNSIGNED), CAST(0x5150000000D as UNSIGNED)), 0, 0, 5, 'cas' FROM fso_avatars;
|
|||
|
|
|||
|
-- Give everyone default swimwear --
|
|||
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|||
|
SELECT avatar_id, if(gender = 'male', CAST(0x5470000000D as UNSIGNED), CAST(0x620000000D as UNSIGNED)), 0, 0, 2, 'cas' FROM fso_avatars;
|