mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 16:10:49 +01:00
Fixed issues with displaying sockets/enchants/durability on heroic items --HG-- branch : trunk
88 lines
3.6 KiB
SQL
88 lines
3.6 KiB
SQL
-- Add new fields
|
|
ALTER TABLE `item_instance`
|
|
ADD `creatorGuid` int(10) unsigned NOT NULL default '0' AFTER `owner_guid`,
|
|
ADD `giftCreatorGuid` int(10) unsigned NOT NULL default '0' AFTER `creatorGuid`,
|
|
ADD `count` int(10) unsigned NOT NULL default '1' AFTER `giftCreatorGuid`,
|
|
ADD `duration` int(10) unsigned NOT NULL AFTER `count`,
|
|
ADD `charges` text NOT NULL AFTER `duration`,
|
|
ADD `flags` int(10) unsigned NOT NULL default '0' AFTER `charges`,
|
|
ADD `enchantments` text NOT NULL AFTER `flags`,
|
|
ADD `randomPropertyId` int(11) NOT NULL default '0' AFTER `enchantments`,
|
|
ADD `durability` int(10) unsigned NOT NULL default '0' AFTER `randomPropertyId`,
|
|
ADD `playedTime` int(10) unsigned NOT NULL default '0' AFTER `durability`;
|
|
|
|
-- Function to convert ints from unsigned to signed
|
|
DROP FUNCTION IF EXISTS `uint32toint32`;
|
|
CREATE FUNCTION `uint32toint32`(input INT(10) UNSIGNED) RETURNS INT(11) SIGNED DETERMINISTIC
|
|
BEGIN
|
|
RETURN input;
|
|
END;
|
|
|
|
-- Move data to new fields
|
|
UPDATE `item_instance` SET
|
|
`creatorGuid` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',10))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',10+1))-length(SUBSTRING_INDEX(data,' ',10))-1),
|
|
|
|
`giftCreatorGuid` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',12))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',12+1))-length(SUBSTRING_INDEX(data,' ',12))-1),
|
|
|
|
`count` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',14))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',14+1))-length(SUBSTRING_INDEX(data,' ',14))-1),
|
|
|
|
`duration` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',15))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',15+1))-length(SUBSTRING_INDEX(data,' ',15))-1),
|
|
|
|
`charges` = CONCAT_WS(' ',
|
|
uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',16))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',16+1))-length(SUBSTRING_INDEX(data,' ',16))-1)),
|
|
uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',17))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',17+1))-length(SUBSTRING_INDEX(data,' ',17))-1)),
|
|
uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',18))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',18+1))-length(SUBSTRING_INDEX(data,' ',18))-1)),
|
|
uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',19))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',19+1))-length(SUBSTRING_INDEX(data,' ',19))-1)),
|
|
uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',20))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',20+1))-length(SUBSTRING_INDEX(data,' ',20))-1))),
|
|
|
|
`flags` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',21))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',21+1))-length(SUBSTRING_INDEX(data,' ',21))-1),
|
|
|
|
`enchantments` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',22))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',57+1))-length(SUBSTRING_INDEX(data,' ',22))-1),
|
|
|
|
`randomPropertyId` = uint32toint32(SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',58))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',58+1))-length(SUBSTRING_INDEX(data,' ',58))-1)),
|
|
|
|
`durability` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',60))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',60+1))-length(SUBSTRING_INDEX(data,' ',60))-1),
|
|
|
|
`playedTime` = SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',62))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',62+1))-length(SUBSTRING_INDEX(data,' ',62))-1);
|
|
|
|
-- Drop function
|
|
DROP FUNCTION IF EXISTS `uint32toint32`;
|
|
|
|
-- Fix heroic item flag
|
|
UPDATE `item_instance` SET `flags`=`flags`&~0x8 WHERE
|
|
SUBSTRING(`data`,
|
|
length(SUBSTRING_INDEX(`data`,' ',3))+2,
|
|
length(SUBSTRING_INDEX(`data`,' ',3+1))-length(SUBSTRING_INDEX(data,' ',3))-1)
|
|
NOT IN (5043,5044,17302,17305,17308,21831);
|
|
|
|
-- Drop old field
|
|
ALTER TABLE `item_instance` DROP `data`;
|