USE [SRO_VT_LOG]
GO
/****** Object: StoredProcedure [dbo].[_AddLogChar] Script Date: 4/22/2024 2:16:12 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_AddLogChar]
@CharID int,
@EventID tinyint,
@Data1 int,
@Data2 int,
@strPos varchar(64),
@Desc varchar(128)
AS
BEGIN
DECLARE @Charname16 varchar(64)
DECLARE @ItemCodename varchar(128)
DECLARE @ItemQuantity int = 1
DECLARE @ItemName varchar(128)
DECLARE @RewardLevel varchar(20)
DECLARE @NoticeMessage varchar(200)
DECLARE @AlreadyRewarded BIT
SELECT @Charname16 = CharName16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID
IF @Data2 IN (10, 20, 30)
BEGIN
-- Her seviye için farklı item kodlarını ayarlayın
SET @ItemCodename = CASE
WHEN @Data2 = 10 THEN 'ITEM_ETC_SD_TOKEN_02'
WHEN @Data2 = 20 THEN 'ITEM_ETC_SD_TOKEN_03'
WHEN @Data2 = 30 THEN 'ITEM_ETC_SD_TOKEN_04'
ELSE NULL
END
SELECT @ItemName = NameStrID128 FROM SRO_VT_SHARD.._RefObjCommon WHERE CodeName128 = @ItemCodename
SET @RewardLevel = 'Level ' + CAST(@Data2 AS VARCHAR) + ' Reward'
SELECT @AlreadyRewarded = CASE
WHEN EXISTS (SELECT 1 FROM _RewardedLevels WHERE CharID = @CharID AND Level = @Data2) THEN 1
ELSE 0
END
IF @AlreadyRewarded = 0
BEGIN
EXEC MaxiGuard_User.._AddItemToChest @CharID, @ItemCodename, @ItemQuantity, @RewardLevel
SET @NoticeMessage = FORMATMESSAGE('[%%s] Levele [%%s] Kazandın!', @Charname16, @ItemName)
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES (500, 'GameServer', @Charname16, @NoticeMessage, @RewardLevel, GETDATE())
INSERT INTO _LogEventChar (CharID, EventTime, EventID, Data1, Data2, strDesc)
VALUES (@CharID, GETDATE(), @EventID, @Data1, @Data2, @NoticeMessage)
INSERT INTO _RewardedLevels (CharID, Level)
VALUES (@CharID, @Data2)
END
END
END
declare @len_pos int
declare @len_desc int
set @len_pos = len(@strPos)
set @len_desc = len(@Desc)
if (@len_pos > 0 and @len_desc > 0)
begin
insert _LogEventChar values(@CharID, GetDate(), @EventID, @Data1, @Data2, @strPos, @Desc)
end
else if (@len_pos > 0 and @len_desc = 0)
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2, EventPos) values(@CharID, GetDate(), @EventID, @Data1, @Data2, @strPos)
end
else if (@len_pos = 0 and @len_desc > 0)
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2, strDesc) values(@CharID, GetDate(), @EventID, @Data1, @Data2, @Desc)
end
else
begin
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2) values(@CharID, GetDate(), @EventID, @Data1, @Data2)
end