كود بلغة HTML:
USE [sro_vt_shardlog]
GO
/****** Object: StoredProcedure [dbo].[_AddLogItem] Script Date: 5/21/2017 4:54:11 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-------------------------------------------------------------------------------------------------------------------
-- Step 2
-- ±âأپ¸ ¾أ†أ€أŒأ…أ› ·أژ±× أ€أ”·أ‚ Stored procedure ¼أ¶أپ¤
-- DataBase : Shard Log
ALTER procedure [dbo].[_AddLogItem]
@CharID int,
@ItemRefID int,
@ItemSerial bigint,
@dwData int,
@TargetStorage tinyint,
@Operation tinyint,
@Slot_From tinyint,
@Slot_To tinyint,
@EventPos varchar(64),
@strDesc varchar(128),
@Gold bigint -- #ifdef EXTEND_GOLD_TYPE »أ°أ€أ”
as
IF @ItemRefID = '41853' AND @Operation = '41'
BEGIN
DELETE FROM SRO_VT_HYRIEUS.dbo._GemSkillLog WHERE CharID = @CharID
DELETE FROM SRO_VT_SHARD.dbo._CharSkill WHERE CharID = @CharID AND SkillID BETWEEN '39236' AND '39441'
EXEC SRO_VT_SHARD.[dbo].[_RoyalAddEquipment] @CharID , 24668,'11','0'
END
IF @ItemRefID = '22926' AND @Operation = '41'
BEGIN
DECLARE @CharName21 varchar(128) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char With(NoLOCK) where CharID = @CharID)
INSERT INTO SRO_VT_HYRIEUS.dbo._Chat ([send],[sendto],[Message],[date]) VALUES ('0',@CharName21,'Please remember to teleport in order to activate the item you ve used!',GETDATE())
END
-- Gem Mastery Scroll Setting
IF @Operation = '41' AND @ItemRefID BETWEEN '47747' AND '47768'
BEGIN
EXEC SRO_VT_HYRIEUS.dbo._GemScrollsz @CharID,@ItemRefID,@Operation
END
-- Skill Scroll System
IF (@ItemRefID BETWEEN '47726' AND '47770' OR @ItemRefID BETWEEN '47840' AND '47843') AND @Operation = '41'
BEGIN
DECLARE @SkillID INT = (SELECT ItemID FROM SRO_VT_HYRIEUS.dbo._SSys WITH (NOLOCK) WHERE ScrollID = @ItemRefID)
IF @SkillID IS NOT NULL
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._CharSkill (CharID,SkillID,[Enable]) VALUES (@CharID,@SkillID,1)
END
END
-- Dye Effect System
IF @ItemRefID Between '47644' AND '47657' AND @Operation = '41'
BEGIN
EXEC SRO_VT_HYRIEUS.dbo._EffectSystem_Weapon @CharID , @ItemRefID
END
IF @ItemRefID Between '47658' AND '47671' AND @Operation = '41'
BEGIN
EXEC SRO_VT_HYRIEUS.dbo._EffectSystem_Shield @CharID , @ItemRefID
END
--- Egy Box System
IF ( @Operation = '41') AND @ItemRefID BETWEEN '41847' AND '41848'
BEGIN
DECLARE @Type Varchar(16)
IF @ItemRefID = '41847'
BEGIN
SET @Type = 'EGY_A'
END
ELSE IF @ItemRefID = '41848'
BEGIN
SET @Type = 'EGY_B'
END
DECLARE @RandomID int = (SELECT TOP 1 ItemID FROM SRO_VT_HYRIEUS.dbo._EgyBoxs WITH(NOLOCK) WHERE [Type] = @Type ORDER BY NEWID() )
EXEC SRO_VT_SHARD.dbo._RoyalAddEquipment @CharID,@RandomID,1,'0'
END
--- Rec System
IF ( @Operation = '41') AND @ItemRefID BETWEEN '41911' AND '41958'
BEGIN
DECLARE @ItemIDS int = (SELECT ItemID FROM SRO_VT_HYRIEUS.dbo._RecSystemT WITH(NOLOCK) WHERE ScrollID = @ItemRefID)
EXEC SRO_VT_SHARD.dbo._RoyalAddEquipment @CharID,@ItemIDS,1,'8'
END
IF ( @Operation = '41') AND (@ItemRefID BETWEEN '41841' AND '41846')
BEGIN
EXEC SRO_VT_HYRIEUS.dbo.[_RecSystem] @CharID,@ItemRefID
END
--- Treasure Box System
IF ( @Operation = '41') AND (@ItemRefID BETWEEN '41835' AND '41837' OR @ItemRefID BETWEEN '41838' AND '41840')
BEGIN
EXEC SRO_VT_HYRIEUS.dbo.[_TreasureBox] @CharID,@ItemRefID,@Operation
END
--- Full Blue System
IF ( @Operation = '41') AND @ItemRefID BETWEEN '41821' AND '41832'
BEGIN
EXEC [SRO_VT_HYRIEUS].dbo.[_FbScroll] @CharID,@ItemRefID,@Operation
END
-- Guild Penalty Remover
IF ( @Operation = '41') AND @ItemRefID = '41833'
BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where JobID = '1'AND CharID = @CharID END
-- Job Penalty Remover
IF ( @Operation = '41') AND @ItemRefID = '41834'
BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where JobID = '2'AND CharID = @CharID END
/* -- Pk Remover
IF(@ItemRefID = '41820' AND @Operation = '41') -- Pk Remover
BEGIN
UPDATE SRO_VT_SHARD.dbo._Char
SET DailyPK = 0 , TotalPK = 0 ,PKPenaltyPoint = 0 WHERE CharID = @CharID
END*/
-- SP Scroll To Char
DECLARE @SPCount int
SELECT @SPCount =
CASE WHEN @ItemRefID = '41811' Then '100000'
WHEN @ItemRefID = '41812' Then '200000'
WHEN @ItemRefID = '41813' Then '350000'
WHEN @ItemRefID = '41814' Then '500000'
ELSE 0 END
IF ( @Operation = '41') AND (@ItemRefID BETWEEN '41811' AND '41814')
BEGIN
EXEC SRO_VT_SHARD.[CGI].[CGI_SkillPoint_Charger] @CharID,@SPCount
END
--- Skill Reset Scroll
if(@ItemRefID = '41810' )
BEGIN
IF ( @Operation = '41')
begin
Declare @cname16 varchar(256);
SET @cname16 = (Select charname16 from SRO_VT_SHARD.DBO._Char WITH(NOLOCK) where CharID = @CharID)
declare @TotalSP int
declare @TotalSPMastery int
SELECT @TotalSP = SUM(SRO_VT_SHARD.DBO._RefSkill.ReqLearn_SP) FROM SRO_VT_SHARD.DBO._RefSkill, SRO_VT_SHARD.DBO._CharSkill WHERE SRO_VT_SHARD.DBO._RefSkill.ID=SRO_VT_SHARD.DBO._CharSkill.SkillID AND SRO_VT_SHARD.DBO._CharSkill.CharID=@CharID AND SRO_VT_SHARD.DBO._RefSkill.ReqCommon_MasteryLevel1 <= '110'
SELECT @TotalSPMastery = SUM(SRO_VT_SHARD.DBO._RefLevel.Exp_M) FROM SRO_VT_SHARD.DBO._CharSkillMastery, SRO_VT_SHARD.DBO._RefLevel WHERE SRO_VT_SHARD.DBO._RefLevel.Lvl=SRO_VT_SHARD.DBO._CharSkillMastery.Level AND SRO_VT_SHARD.DBO._CharSkillMastery.CharID=@CharID AND SRO_VT_SHARD.DBO._CharSkillMastery.Level <= '110'
UPDATE SRO_VT_SHARD.DBO._Char SET RemainSkillPoint=RemainSkillPoint+@TotalSP+@TotalSPMastery+'1200000' WHERE CharID=@CharID
DELETE SRO_VT_SHARD.DBO._CharSkill FROM SRO_VT_SHARD.DBO._RefSkill, SRO_VT_SHARD.DBO._CharSkill WITH(NOLOCK) WHERE SRO_VT_SHARD.DBO._RefSkill.ID=SRO_VT_SHARD.DBO._CharSkill.SkillID AND SRO_VT_SHARD.DBO._CharSkill.CharID=@CharID AND SRO_VT_SHARD.DBO._RefSkill.ReqCommon_MasteryLevel1 <= '110' AND SRO_VT_SHARD.DBO._RefSkill.ID NOT IN (1,70,40,2,8421,9354,9355,11162,9944,8419,8420,11526,10625)
UPDATE SRO_VT_SHARD.DBO._CharSkillMastery SET Level='0' WHERE CharID=@CharID AND Level <= '110'
END
END
-- Prem Remover
IF ( @Operation = '41') AND (@ItemRefID = '41815')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID AND JobID = '9277'
OR JobID = '9278' AND CharID = @CharID
OR JobID = '5412' AND CharID = @CharID
OR JobID = '35567' AND CharID = @CharID
OR JobID = '34048' AND CharID = @CharID
OR JobID = '22924' AND CharID = @CharID
OR JobID = '34049' AND CharID = @CharID
END
IF ( @Operation = '41') AND (@ItemRefID = '41816')
BEGIN
DECLARE @ItemID int
SELECT @ItemID=ItemID from SRO_VT_SHARD.dbo._Inventory WITH(NOLOCK) where CharID = @CharID AND Slot = '13'
DELETE FROM SRO_VT_SHARD.dbo._BindingOptionWithItem WHERE nItemDBID = @ItemID and bOptType=2
END
-- Avatar Remover
DECLARE @Slot int
SELECT @Slot =
CASE WHEN @ItemRefID = '41817' Then '0'
WHEN @ItemRefID = '41818' Then '1'
WHEN @ItemRefID = '41819' Then '2'
ELSE 0
END
DECLARE @ItemID_1 int
SELECT @ItemID_1=ItemID from SRO_VT_SHARD.dbo._InventoryForAvatar WITH(NOLOCK) where CharID = @CharID AND Slot = @Slot -- HaT
IF (@ItemRefID BETWEEN '41817' AND '41819')
BEGIN
IF ( @Operation = '41')
BEGIN
Update SRO_VT_SHARD.dbo._Items Set MagParamNum = 0, MagParam1 = NULL, MagParam2 = NULL
, MagParam3 = NULL, MagParam4 = NULL, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL
, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL
, MagParam12 = NULL where ID64 = @ItemID_1
END
END
declare @len_pos int
declare @len_desc int
set @len_pos = len(@EventPos)
set @len_desc = len(@strDesc)
if (@len_pos > 0 and @len_desc > 0)
begin
return -1
end
else if (@len_pos > 0 and @len_desc = 0)
begin
return -1
end
else if (@len_pos = 0 and @len_desc > 0)
begin
return -1
end
else if (@len_pos = 0 and @len_desc = 0)
begin
return -1
end
-- أ€¯·أ، ¾أ†أ€أŒأ…أ› ±¸أ€أ”أ€أŒ¸é!
-- #define LOG_ITEMEVENT_BUY_CASHITEM (BYTE)35
if (@Operation = 35)
begin
return -1
end