Junior Spellweaver
- Joined
- Jan 14, 2013
- Messages
- 167
- Reaction score
- 59
How to use:
Copy paste the table structure and execute it. Copy paste the stored procedure and execute it. Fill up the config table with the possible items.. the blues params and the white params.
I'm not going to share the part where I auto-calculate the blue and white params... You guys aren't worth it. Therefore, you gotta search & put them into the config table directly.
If you have problems setting this up then too bad. I'm not gonna provide support to idiots.
Config table:
Proper Formatting:
Copy paste the table structure and execute it. Copy paste the stored procedure and execute it. Fill up the config table with the possible items.. the blues params and the white params.
I'm not going to share the part where I auto-calculate the blue and white params... You guys aren't worth it. Therefore, you gotta search & put them into the config table directly.
If you have problems setting this up then too bad. I'm not gonna provide support to idiots.
Code:
CREATE procedure [dbo].[_AutoEquipment] @[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID INT, @[I][B][URL="http://forum.ragezone.com/members/1333359883.html"]data[/URL][/B][/I]2 INT AS
DECLARE @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] INT = 0, @ID64 INT, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID INT, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ItemID INT, @T1 TINYINT, @T2 TINYINT, @T3 TINYINT, @T4 TINYINT, @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl TINYINT, @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] BIT, @Gen TINYINT;
SELECT @Gen = CASE WHEN RefObjID BETWEEN 1920 AND 1932 THEN 2 WHEN RefObjID <= 1919 THEN 1 WHEN RefObjID BETWEEN 14875 AND 14887 THEN 3 WHEN RefObjID BETWEEN 14888 AND 14900 THEN 4 ELSE 0 END FROM SRO_VT_SHARD.._Char WITH (NOLOCK) WHERE CharID = @[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] = CASE WHEN @Gen IN (1,2) THEN 0 WHEN @Gen IN (3,4) THEN 1 ELSE NULL END
IF @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] IS NULL) RETURN;
WHILE @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] <13 BEGIN
SELECT @ID64 = 0, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ItemID = 0, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID = 0, @T1 = 0, @T2 =0, @T3 = 0, @T4 = 0
IF @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] != 8 BEGIN
SELECT @ID64 = I.ItemID, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID = IT.RefItemID, @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl = IT.OptLevel FROM SRO_VT_SHARD.._Inventory I WITH (NOLOCK) INNER JOIN SRO_VT_SHARD.._Items IT WITH (NOLOCK) ON I.ItemID = IT.ID64 WHERE I.Slot = @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] AND I.CharID @[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID AND IT.RefItemID NOT IN (62,3655, 3823, 24459, 38345, 10383, 10885,19644, 24460, 38346) -- Arrows & Bolts...
IF @ID64 != 0 AND @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID IS NOT NULL BEGIN
SELECT @T1 = TypeID1,@T2 = TypeID2, @T3 = TypeID3, @T4 = TypeID4 FROM SRO_VT_SHARD.._RefObjCommon WHERE ID = @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID
SELECT @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl = CASE WHEN @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl >= 3 THEN @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl ELSE 3 END
UPDATE SRO_VT_SHARD.._Items SET RefItemID = Q.ID, Variance = ISNULL(Q.Va, 0), MagParam1 = Q.P1, MagParam2 = Q.P2, MagParam3 = Q.P3, MagParam4 = Q.P4, MagParam5 = Q.P5, MagParam6 = Q.P6, MagParam7 = Q.P7, MagParam8 = Q.P8, MagParam9 = Q.P9, MagParamNum = Q.MagParamNum, OptLevel = @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl FROM (SELECT TOP 1 ID, P1, P2, P3, P4, P5, P6, P7, P8, P9, Va, CASE WHEN P1 = 0 THEN 0 WHEN P5 = 0 THEN 4 WHEN P6 = 0 THEN 5 WHEN P7 = 0 THEN 6 WHEN P8 = 0 THEN 7 ELSE 0 END AS MagParamNum FROM SRO_VT_ROYAL.._royalitempoolautoequipment P WITH (NOLOCK) WHERE typeid1 = @T1 AND typeid2 = @T2 AND typeid3 = @T3 AND typeid4 = @T4 AND (Gender = @Gen OR Gender = 0) AND Race = @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] AND ReqLevel1 <= @[I][B][URL="http://forum.ragezone.com/members/1333359883.html"]data[/URL][/B][/I]2 ORDER BY reqlevel1 DESC) AS Q WHERE ID64 = @ID64 AND ID64 != 0 AND Q.ID != 0 END END
SET @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] += 1 END
Config table:
Code:
CREATE TABLE [dbo].[_RoyalItemPoolAutoEquipment](
[service] [int] NOT NULL,
[ID] [int] NOT NULL,
[CodeName128] [varchar](129) NOT NULL,
[TypeID1] [tinyint] NOT NULL,
[TypeID2] [tinyint] NOT NULL,
[TypeID3] [tinyint] NOT NULL,
[TypeID4] [tinyint] NOT NULL,
[ReqLevel1] [tinyint] NOT NULL,
[Gender] [tinyint] NULL,
[P1] [bigint] NULL,
[P2] [bigint] NULL,
[P3] [bigint] NULL,
[P4] [bigint] NULL,
[P5] [bigint] NULL,
[P6] [bigint] NULL,
[P7] [bigint] NULL,
[P8] [bigint] NULL,
[P9] [bigint] NULL,
[MagParamNum] [tinyint] NULL,
[Va] [bigint] NULL,
[Race] [bit] NULL,
CONSTRAINT [PK__RoyalItemPoolAutoEquipment] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Proper Formatting:
Code:
ALTER procedure [dbo].[_AutoEquipmentTEST]
@[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID INT,
@[I][B][URL="http://forum.ragezone.com/members/1333359883.html"]data[/URL][/B][/I]2 INT
AS
DECLARE @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] INT = 0, @ID64 INT, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID INT, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ItemID INT, @T1 TINYINT, @T2 TINYINT, @T3 TINYINT, @T4 TINYINT, @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl TINYINT, @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] BIT, @Gen TINYINT;
SELECT @Gen =
CASE
WHEN RefObjID BETWEEN 1920 AND 1932
THEN 2
WHEN RefObjID <= 1919
THEN 1
WHEN RefObjID BETWEEN 14875 AND 14887
THEN 3
WHEN RefObjID BETWEEN 14888 AND 14900
THEN 4
ELSE 0
END
FROM DATABASE_SRO.._Char WITH (NOLOCK)
WHERE CharID = @[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] =
CASE
WHEN @Gen IN (1,2)
THEN 0
WHEN @Gen IN (3,4)
THEN 1
ELSE NULL
END
IF @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I] IS NULL)
RETURN;
WHILE @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] <13
BEGIN
SELECT @ID64 = 0, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ItemID = 0, @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID = 0, @T1 = 0, @T2 =0, @T3 = 0, @T4 = 0
IF @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] != 8
BEGIN
SELECT @ID64 = I.ItemID,
@[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID = IT.RefItemID,
@[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl = IT.OptLevel
FROM DATABASE_SRO.._Inventory I WITH (NOLOCK)
INNER JOIN DATABASE_SRO.._Items IT WITH (NOLOCK) ON I.ItemID = IT.ID64
WHERE I.Slot = @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I]
AND I.CharID @[I][B][URL="http://forum.ragezone.com/members/551894.html"]Char[/URL][/B][/I]ID
AND IT.RefItemID NOT IN (62,3655, 3823, 24459, 38345, 10383, 10885,19644, 24460, 38346) -- Arrows & Bolts...
IF @ID64 != 0 AND @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID IS NOT NULL
BEGIN
SELECT @T1 = TypeID1,@T2 = TypeID2, @T3 = TypeID3, @T4 = TypeID4
FROM DATABASE_SRO.._RefObjCommon
WHERE ID = @[I][B][URL="http://forum.ragezone.com/members/18171.html"]ReF[/URL][/B][/I]ObjID
SELECT @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl =
CASE WHEN @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl >= 3
THEN @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl
ELSE 3
END
UPDATE DATABASE_SRO.._Items
SET RefItemID = Q.ID,
Variance = ISNULL(Q.Va, 0),
MagParam1 = Q.P1,
MagParam2 = Q.P2,
MagParam3 = Q.P3,
MagParam4 = Q.P4,
MagParam5 = Q.P5,
MagParam6 = Q.P6,
MagParam7 = Q.P7,
MagParam8 = Q.P8,
MagParam9 = Q.P9,
MagParamNum = Q.MagParamNum,
OptLevel = @[I][B][URL="http://forum.ragezone.com/members/792141.html"]opt[/URL][/B][/I]Lvl
FROM (
SELECT TOP 1 ID,
P1,
P2,
P3,
P4,
P5,
P6,
P7,
P8,
P9,
Va,
CASE
WHEN P1 = 0
THEN 0
WHEN P5 = 0
THEN 4
WHEN P6 = 0
THEN 5
WHEN P7 = 0
THEN 6
WHEN P8 = 0
THEN 7
ELSE 0
END
AS MagParamNum
FROM SRO_VT_ROYAL.._royalitempoolautoequipment P WITH (NOLOCK)
WHERE typeid1 = @T1
AND typeid2 = @T2
AND typeid3 = @T3
AND typeid4 = @T4
AND (Gender = @Gen OR Gender = 0)
AND Race = @[I][B][URL="http://forum.ragezone.com/members/1333455812.html"]race[/URL][/B][/I]
AND ReqLevel1 <= @[I][B][URL="http://forum.ragezone.com/members/1333359883.html"]data[/URL][/B][/I]2
ORDER BY reqlevel1 DESC
)
AS Q
WHERE ID64 = @ID64
AND ID64 != 0
AND Q.ID != 0
END
END
SET @[I][B][URL="http://forum.ragezone.com/members/2000067212.html"]Flag[/URL][/B][/I] += 1
END
Last edited by a moderator: