İlk Olarak AddLogChar'a
[HIDE]
[/HIDE]
[HIDE]
SQL:
IF (@EventID = 22 and @Data2 = 100) ---- Data2 = 100 olarak ayarlandı istediğiniz seviyeye Göre ayarlayabilirisniz.
BEGIN
Exec sro_vt_log.._EventMaxLevel @CharID
END
SQL:
USE [SRO_VT_LOG]
GO
/****** Nesne: StoredProcedure [dbo].[_EventMaxLevel] Script Tarihi: 5.09.2023 15:43:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[_EventMaxLevel]
@CharID INT
AS
BEGIN
DECLARE @Charname16 VARCHAR(16)
DECLARE @JID INT
SELECT @Charname16 = C.CharName16, @JID = U.UserJID
FROM SRO_VT_SHARD.._Char AS C
INNER JOIN SRO_VT_SHARD.dbo._User AS U ON C.CharID = U.CharID
WHERE C.CharID = @CharID
DECLARE @EventLevel INT = 100 --- Seviye Sınırı Bildirim
IF NOT EXISTS (SELECT CharName FROM _EventMaxLevelChar WHERE CharName = @Charname16)
BEGIN
INSERT INTO _EventMaxLevelChar (UserJID, CharID, CharName, '1', '0', GETDATE())
VALUES (@JID, @CharID, @Charname16, '1', '0', GETDATE())
END
DECLARE @Total INT = (SELECT SUM(Total) FROM _EventMaxLevelChar)
DECLARE @Active INT = (SELECT Active FROM _EventMaxLevelChar WHERE CharName = @Charname16)
IF @Total <= 100
BEGIN
DECLARE @SilkAmount INT
IF (@Total = 1) SET @SilkAmount = 300
ELSE IF (@Total BETWEEN 2 AND 10) SET @SilkAmount = 200
ELSE IF (@Total BETWEEN 11 AND 20) SET @SilkAmount = 140
ELSE IF (@Total BETWEEN 21 AND 30) SET @SilkAmount = 130
ELSE IF (@Total BETWEEN 31 AND 40) SET @SilkAmount = 120
ELSE IF (@Total BETWEEN 41 AND 50) SET @SilkAmount = 110
ELSE IF (@Total BETWEEN 51 AND 60) SET @SilkAmount = 100
ELSE IF (@Total BETWEEN 61 AND 70) SET @SilkAmount = 90
ELSE IF (@Total BETWEEN 71 AND 80) SET @SilkAmount = 80
ELSE IF (@Total BETWEEN 81 AND 90) SET @SilkAmount = 70
ELSE IF (@Total BETWEEN 91 AND 100) SET @SilkAmount = 60
IF (@Active = 0)
BEGIN
IF EXISTS (SELECT * FROM SRO_VT_ACCOUNT.dbo.SK_Silk WHERE JID = @JID)
BEGIN
UPDATE SRO_VT_ACCOUNT.dbo.SK_Silk SET silk_own = silk_own + @SilkAmount WHERE JID = @JID
END
ELSE
BEGIN
INSERT INTO SRO_VT_ACCOUNT.dbo.SK_Silk (JID, silk_own, silk_gift, silk_point) VALUES (@JID, @SilkAmount, 0, 0)
END
DECLARE @Message NVARCHAR(MAX) = FORMATMESSAGE('[%s]. Karakter Seviye %s : [%s] %s kadar Silk kazandı.', @Total, @EventLevel, @Charname16, @SilkAmount)
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES (500, 'Sistem', '17', @Message, 'Duyuru', GETDATE())
UPDATE _EventMaxLevelChar SET Active = 1 WHERE CharID = @CharID
IF (@Total = 100)
BEGIN
INSERT INTO MaxiGuard_User.._BridgeCommands (CommandID, Executor, Data1, Data2, Data3, Date)
VALUES (500, 'Sistem', '17', 'TOP 100 ('+CAST(@EventLevel AS VARCHAR(20))+') Seviye Etkinliği sona erdi.', 'Duyuru', GETDATE())
END
END
END
END
SQL:
USE [SRO_VT_LOG]
GO
/****** Object: Table [dbo].[_EventMaxLevelChar] Script Date: 5.09.2023 16:05:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_EventMaxLevelChar](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserJID] [int] NULL,
[CharID] [int] NULL,
[CharName] [varchar](16) NULL,
[Total] [int] NULL,
[Active] [int] NULL,
[Zaman] [datetime] NULL,
CONSTRAINT [PK__EventMaxLevel] 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]
GO
SET ANSI_PADDING OFF
GO