كود PHP:
CREATE procedure [dbo].[_AutoEquipment] @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 SRO_VT_SHARD.._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 SRO_VT_SHARD.._Inventory I WITH (NOLOCK) INNER JOIN SRO_VT_SHARD.._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 SRO_VT_SHARD.._RefObjCommon WHERE ID = @ReFObjID
SELECT @optLvl = CASE WHEN @optLvl >= 3 THEN @optLvl 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 = @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