USE [PS_GameData]
GO
/****** Object: Trigger [dbo].[GM_Enchant] Script Date: 7/2/2015 2:44:24 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[GM_Enchant]
ON [dbo].[CharQuests]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @QuestID INT = (SELECT QuestID FROM INSERTED)
IF(@QuestID = 1970)
BEGIN
DECLARE @CharID INT = (SELECT CharID FROM inserted)
DECLARE @UserUID INT = (SELECT UserUID FROM Chars WHERE CharID = @CharID)
DECLARE @ItemType TINYINT
DECLARE @EnchantItemId INT
DECLARE @EnchantItem TABLE (EnchantID INT)
DECLARE @GearTypes TABLE (GearTypes TINYINT)
DECLARE @ArmorTypes TABLE (ArmorTypes TINYINT)
DECLARE @WeaponTypes TABLE (WeaponTypes TINYINT)
SET @ItemType = (SELECT Type FROM UserStoredItems WHERE UserUID = @UserUID AND Slot = 0)
SET @EnchantItemId = (SELECT ItemID FROM UserStoredItems WHERE UserUID = @UserUID AND Slot = 1)
-- The perfect lapisia itemid, change it for you needs
INSERT INTO @EnchantItem VALUES (100230),(100001)
-- Add all the gear types you want to use here
INSERT INTO @ArmorTypes VALUES (16),(17),(18),(19),(20),(21),(24),(31),(32),(33), (34),(35),(36),(39)
INSERT INTO @WeaponTypes VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12) ,(13),(14),(15),(45),
(46),(47),(48),(49),(50),(41),(52),(53),(54),(55), (56),(57),(58),(59),(60),(61),(62),(63),(64),(65)
IF ((@ItemType IN (SELECT ArmorTypes FROM @ArmorTypes) OR (@ItemType IN (SELECT WeaponTypes FROM @WeaponTypes))) AND (@EnchantItemID IN (SELECT EnchantID FROM @EnchantItem)))
BEGIN
DECLARE @Enchant TINYINT = (SELECT CAST(SUBSTRING(Craftname, 19, 2) AS TINYINT) FROM UserStoredItems WHERE UserUID = @UserUID AND Slot = 0)
--- max enchant its [10]
IF @Enchant > = 60
GOTO FAIL
ELSE IF @Enchant > = 10 AND @Enchant < 50
GOTO FAIL
SET @Enchant += 1 -- this will increase the enchant by 1
DECLARE @EnchantString CHAR(2) = @Enchant
IF (@ItemType IN (SELECT ArmorTypes FROM @ArmorTypes))
BEGIN
IF LEN(@EnchantString) = 1
SET @EnchantString = '5' + @EnchantString
END
IF (@ItemType IN (SELECT WeaponTypes FROM @WeaponTypes))
BEGIN
IF LEN(@EnchantString) = 1
SET @EnchantString = '0' + @EnchantString
END
UPDATE UserStoredItems
SET Craftname = SUBSTRING(Craftname, 1, 18) + @EnchantString
WHERE UserUID = @UserUID AND Slot = 0
END
ELSE GOTO FAIL
UPDATE UserStoredItems SET [Count] -= 1 WHERE UserUID = @UserUID AND Slot = 1
DELETE FROM UserStoredItems WHERE UserUID = @UserUID AND Slot = 1 AND [Count] = 0
FAIL:
DELETEQUEST:
DELETE FROM CharQuests
WHERE CharID = @CharID AND QuestID = @QuestID
END
END
|