ALTER Proc [dbo].[usp_Check_Pet_Timer]
@
D intAS
SET NOCOUNT ON
DECLARE @
Time datetimeDECLARE @
ID int DECLARE @
intDECLARE @
t intDECLARE @
smallintDECLARE @
UID bigintSELECT @
ID=UserUID FROM PS_GameData.dbo.Chars WHERE CharID @
DIF EXISTS(SELECT ItemUID FROM PS_GameData.dbo.CharItems WHERE [Type] IN (120,150) AND CharID @
D)BEGIN
SELECT * INTO #TempTable FROM PS_GameData.dbo.CharItems WHERE ([Type]=120 or [Type]=150) AND CharID @
DSET @
=(SELECT COUNT(ItemUID) FROM #TempTable)SET @
t = 1 WHILE @
@
t)BEGIN
SET @
UID =(SELECT TOP 1 ItemUID FROM #TempTable)SET @
= (SELECT [Range] FROM PS_GameDefs.dbo.Items WHERE ItemID=(SELECT ItemID FROM #TempTable WHERE ItemUID @
UID))SET @
Time = (SELECT Maketime FROM #TempTable WHERE ItemUID @
UID) IF(GETDATE() > DATEADD(DD, @
@
Time) AND @
> 0)BEGIN
DELETE FROM PS_GameData.dbo.CharItems WHERE CharID @
D AND ([Type]=120 or [Type]=150) AND ItemUID @
UIDEND
DELETE FROM #TempTable WHERE ItemUID @
UIDSET @
t @
t+1END
END
IF EXISTS(SELECT ItemUID FROM PS_GameData.dbo.UserStoredItems WHERE [Type] IN (120,150) AND UserUID @
ID)BEGIN
SELECT * INTO #TempTableWH FROM PS_GameData.dbo.UserStoredItems WHERE ([Type]=120 or [Type]=150) AND UserUID @
IDSET @
=(SELECT COUNT(ItemUID) FROM #TempTableWH)SET @
t=1 WHILE @
@
t)BEGIN
SET @
UID=(SELECT TOP 1 ItemUID FROM #TempTableWH)SET @
= (SELECT [Range] FROM PS_GameDefs.dbo.Items WHERE ItemID=(SELECT ItemID FROM #TempTableWH WHERE ItemUID @
UID))SET @
Time= (SELECT Maketime FROM #TempTableWH WHERE ItemUID @
UID) IF(GETDATE() > DATEADD(DD, @
@
Time) AND @
> 0)BEGIN
DELETE FROM PS_GameData.dbo.UserStoredItems WHERE ([Type]=120 or [Type]=150) AND UserUID @
ID AND ItemUID @
UIDEND
DELETE FROM #TempTableWH WHERE ItemUID @
UIDSET @
t @
t+1END
END
SET NOCOUNT OFF
I'm using. The count of days works, however the item is not deleted.






