Hello!
I need query how tu send items to wh/inventory to empty bag and slot ;(
I need query how tu send items to wh/inventory to empty bag and slot ;(
USE PS_GameData GO CREATE VIEW NewID AS SELECT NewID() AS NewID
USE [PS_GameData]
GO
/****** Object: UserDefinedFunction [dbo].[ItemUID] Script Date: 31.07.2013 00:03:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Euphoria Dev Team
-- =============================================
CREATE FUNCTION [dbo].[ItemUID]
()
RETURNS BIGINT
AS
BEGIN
DECLARE @ItemUID BIGINT
NEWUID:
SET @ItemUID = ABS(CAST(HASHBYTES('SHA1',CAST((SELECT NewID FROM PS_GameData.dbo.NewID) AS NVARCHAR(MAX))) AS BIGINT))
IF EXISTS(SELECT * FROM PS_GameData.dbo.CharItems WHERE ItemUID = @ItemUID) OR
EXISTS(SELECT * FROM PS_GameData.dbo.GuildStoredItems WHERE ItemUID = @ItemUID) OR
EXISTS(SELECT * FROM PS_GameData.dbo.MarketItems WHERE ItemUID = @ItemUID) OR
EXISTS(SELECT * FROM PS_GameData.dbo.UserStoredItems WHERE ItemUID = @ItemUID)
GOTO NEWUID
RETURN @ItemUID
END
GO
USE PS_GameData DECLARE @CharID INT = 1, @ItemID INT = 1001, @ItemCount TINYINT = 1, @MinBag TINYINT = 1, @MinSlot TINYINT = 0 IF (SELECT COUNT(*) FROM CharItems WHERE CharID = @CharID AND Bag != 0) >= 120 BEGIN PRINT 'The character''s inventory is full.' RETURN END WHILE @MinBag <= 5 BEGIN WHILE @MinSlot <= 23 BEGIN IF NOT EXISTS (SELECT * FROM CharItems WHERE CharID = @CharID AND Bag = @MinBag AND Slot = @MinSlot) BEGIN INSERT INTO CharItems (CharID, ItemID, ItemUID, Type, TypeID, Bag, Slot, Quality, Gem1, Gem2, Gem3, Gem4, Gem5, Gem6, Craftname, Count, Maketime, Maketype, Del) VALUES (@CharID, @ItemID, dbo.ItemUID(), @ItemID / 1000, @ItemID % 1000, @MinBag, @MinSlot, (SELECT Quality FROM PS_GameDefs.dbo.Items WHERE ItemID = @ItemID), 0, 0, 0, 0, 0, 0, '00000000000000000000', @ItemCount, GETDATE(), 'S', 0) IF @@ERROR = 0 AND @@ROWCOUNT = 1 PRINT 'Item inserted successfully in Bag ' + CAST(@MinBag AS VARCHAR(1)) + ', Slot ' + CAST(@MinSlot AS VARCHAR(2)) + '.' ELSE PRINT 'An error occured while attempting to insert the item.' RETURN END SET @MinSlot += 1 END SET @MinSlot = 0 SET @MinBag += 1 END
USE PS_GameData
DECLARE @ServerID TINYINT = 1,
@UserUID INT = 1,
@ItemID INT = 17215,
@ItemCount TINYINT = 1,
@MinSlot TINYINT = 1
IF (SELECT COUNT(*) FROM UserStoredItems WHERE UserUID = @UserUID AND Slot != 0) >= 239
BEGIN
PRINT 'The character''s warehouse is full.'
RETURN
END
WHILE @MinSlot <= 239
BEGIN
IF NOT EXISTS (SELECT * FROM UserStoredItems WHERE UserUID = @UserUID AND Slot = @MinSlot)
BEGIN
INSERT INTO UserStoredItems (ServerID, UserUID, ItemID, ItemUID, Type, TypeID, Slot, Quality, Gem1, Gem2, Gem3, Gem4, Gem5, Gem6, Craftname, Count, Maketime, Maketype, Del)
VALUES (@ServerID, @UserUID, @ItemID, dbo.ItemUID(), @ItemID / 1000, @ItemID % 1000, @MinSlot, (SELECT Quality FROM PS_GameDefs.dbo.Items WHERE ItemID = @ItemID), 0, 0, 0, 0, 0, 0, '00000000000000000000', @ItemCount, GETDATE(), 'S', 0)
IF @@ERROR = 0 AND @@ROWCOUNT = 1
PRINT 'Item inserted successfully in Slot ' + CAST(@MinSlot AS VARCHAR(3)) + '.'
ELSE PRINT 'An error occured while attempting to insert the item.'
RETURN
END
SET @MinSlot += 1
END
SET @MinSlot = 0
USE PS_GameData
DECLARE @ServerID TINYINT = 1,
@UserUID INT = 1,
@ItemID INT = 17215,
@ItemCount TINYINT = 1,
@Slot TINYINT = 1
INSERT INTO UserStoredItems (ServerID, UserUID, ItemID, ItemUID, Type, TypeID, Slot, Quality, Gem1, Gem2, Gem3, Gem4, Gem5, Gem6, Craftname, Count, Maketime, Maketype, Del)
VALUES (@ServerID, @UserUID, @ItemID, dbo.ItemUID(), @ItemID / 1000, @ItemID % 1000, @Slot, (SELECT Quality FROM PS_GameDefs.dbo.Items WHERE ItemID = @ItemID), 0, 0, 0, 0, 0, 0, '00000000000000000000', @ItemCount, GETDATE(), 'S', 0)