Code:
ALTER procedure [dbo].[_AutoEquipmentTEST]
@CharID INT,
@data2 INT
AS
DECLARE @Flag INT = 0, @ID64 INT, @ReFObjID INT, @ReFItemID INT, @T1 TINYINT, @T2 TINYINT, @T3 TINYINT, @T4 TINYINT, @optLvl TINYINT, @race 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 = @CharID
SELECT @race =
CASE
WHEN @Gen IN (1,2)
THEN 0
WHEN @Gen IN (3,4)
THEN 1
ELSE NULL
END
IF @race IS NULL)
RETURN;
WHILE @Flag <13
BEGIN
SELECT @ID64 = 0, @ReFItemID = 0, @ReFObjID = 0, @T1 = 0, @T2 =0, @T3 = 0, @T4 = 0
IF @Flag != 8
BEGIN
SELECT @ID64 = I.ItemID,
@ReFObjID = IT.RefItemID,
@optLvl = 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 = @Flag
AND I.CharID @CharID
AND IT.RefItemID NOT IN (62,3655, 3823, 24459, 38345, 10383, 10885,19644, 24460, 38346) -- Arrows & Bolts...
IF @ID64 != 0 AND @ReFObjID IS NOT NULL
BEGIN
SELECT @T1 = TypeID1,@T2 = TypeID2, @T3 = TypeID3, @T4 = TypeID4
FROM DATABASE_SRO.._RefObjCommon
WHERE ID = @ReFObjID
SELECT @optLvl =
CASE WHEN @optLvl >= 3
THEN @optLvl
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 = @optLvl
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 = @race
AND ReqLevel1 <= @data2
ORDER BY reqlevel1 DESC
)
AS Q
WHERE ID64 = @ID64
AND ID64 != 0
AND Q.ID != 0
END
END
SET @Flag += 1
END