|
• الانـتـسـاب » Jul 2017
|
• رقـم العـضـويـة » 133179
|
• المشـــاركـات » 472
|
• الـدولـة » Daquhlia - Mansoura
|
• الـهـوايـة »
|
• اسـم الـسـيـرفـر » Private Server
|
• الـجـنـس » Male
|
• نقـاط التقييم » 10
|
|
|
PVP Recorder Table
هو مش موضوع كبير بس ممكن يساعد ناس كتير ويسهل عليهم انهم يعملوا pvp rank في السايت بتاعهم فا حبيت اعملهم ال table دي ... الموضوع كله عباره عن table بتسجل ال pvp ال بيحصل .. table بيبقا فيها اسم الكاركتر وال ID بتاعه وعدد ال kills وعدد ال deaths في ال pvp ... نخش في الموضوع :
اولا : هنعمل ال table ال هتلاقي فيها اللوج بتاع الpvp :
كود:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: Table [dbo].[_CharactersKillsRecord] Script Date: 9/25/2017 2:21:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_CharactersKillsRecord](
[CharName] [varchar](max) NOT NULL,
[CharID] [int] NOT NULL,
[Kills] [int] NOT NULL,
[Deaths] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
بعد كده هنخش في البروسيدور في المسار ده : SRO_VT_SHARDLOG >>> Programmability >> Stored Procedures >> _AddLogChar وتضيف الكلام دا :
كود:
--Characters kills table recorder , all credits goes to #HB
declare @LoserCharName varchar(max)
declare @WinnerCharName varchar(max)
declare @WinnerCharID varchar(max)
declare @TableCheckKiller varchar(max)
declare @TableCheckKilled varchar(max)
set @LoserCharName = (select CharName16 from [SRO_VT_SHARD].dbo._Char where CharID = @CharID)
IF (@EventID = 20)
begin
Select @Desc = REPLACE(@Desc, LEFT(@Desc, CHARINDEX('(', @Desc)),'')
Select @Desc = REPLACE(@Desc, RIGHT(@Desc, CHARINDEX(')', REVERSE(@Desc))),'')
set @WinnerCharName = @Desc
set @WinnerCharID = (select CharID from [SRO_VT_SHARD].dbo._Char where CharName16 = @WinnerCharName)
set @TableCheckKiller = (Select CharName from _CharactersKillsRecord where CharID = @WinnerCharID)
set @TableCheckKilled = (select CharName from _CharactersKillsRecord where CharID = @CharID)
IF (@TableCheckKiller is NULL) and (@TableCheckKilled is NULL)
begin
INSERT INTO _CharactersKillsRecord (CharName,CharID,Kills,Deaths) values (@WinnerCharName,@WinnerCharID,'1','0')
INSERT INTO _CharactersKillsRecord (CharName,CharID,Kills,Deaths) values (@LoserCharName,@CharID,'0','1')
end
delete from _LogEventChar where CharID = @CharID
end
IF (@EventID = 20)
begin
Select @Desc = REPLACE(@Desc, LEFT(@Desc, CHARINDEX('(', @Desc)),'')
Select @Desc = REPLACE(@Desc, RIGHT(@Desc, CHARINDEX(')', REVERSE(@Desc))),'')
set @WinnerCharName = @Desc
set @WinnerCharID = (select CharID from [SRO_VT_SHARD].dbo._Char where CharName16 = @WinnerCharName)
set @TableCheckKiller = (Select CharName from _CharactersKillsRecord where CharID = @WinnerCharID)
set @TableCheckKilled = (select CharName from _CharactersKillsRecord where CharID = @CharID)
IF (@TableCheckKiller is not null) and (@TableCheckKilled is not NULL)
begin
UPDATE _CharactersKillsRecord set Kills = Kills + '1' where CharName = @WinnerCharName
UPDATE _CharactersKillsRecord set Deaths = Deaths + '1' where CharName = @LoserCharName
end
delete from _LogEventChar where CharID = @CharID
end
IF (@EventID = 20)
begin
Select @Desc = REPLACE(@Desc, LEFT(@Desc, CHARINDEX('(', @Desc)),'')
Select @Desc = REPLACE(@Desc, RIGHT(@Desc, CHARINDEX(')', REVERSE(@Desc))),'')
set @WinnerCharName = @Desc
set @WinnerCharID = (select CharID from [SRO_VT_SHARD].dbo._Char where CharName16 = @WinnerCharName)
set @TableCheckKiller = (Select CharName from _CharactersKillsRecord where CharID = @WinnerCharID)
set @TableCheckKilled = (select CharName from _CharactersKillsRecord where CharID = @CharID)
IF (@TableCheckKiller is null) and (@TableCheckKilled is not NULL)
begin
INSERT INTO _CharactersKillsRecord (CharName,CharID,Kills,Deaths) values (@WinnerCharName,@WinnerCharID,'1','0')
UPDATE _CharactersKillsRecord set Deaths = Deaths + '1' where CharName = @LoserCharName
end
delete from _LogEventChar where CharID = @CharID
end
IF (@EventID = 20)
begin
Select @Desc = REPLACE(@Desc, LEFT(@Desc, CHARINDEX('(', @Desc)),'')
Select @Desc = REPLACE(@Desc, RIGHT(@Desc, CHARINDEX(')', REVERSE(@Desc))),'')
set @WinnerCharName = @Desc
set @WinnerCharID = (select CharID from [SRO_VT_SHARD].dbo._Char where CharName16 = @WinnerCharName)
set @TableCheckKiller = (Select CharName from _CharactersKillsRecord where CharID = @WinnerCharID)
set @TableCheckKilled = (select CharName from _CharactersKillsRecord where CharID = @CharID)
IF (@TableCheckKiller is not null) and (@TableCheckKilled is NULL)
begin
UPDATE _CharactersKillsRecord set Kills = Kills + '1' where CharName = @WinnerCharName
INSERT INTO _CharactersKillsRecord (CharName,CharID,Kills,Deaths) values (@LoserCharName,@CharID,'0','1')
end
delete from _LogEventChar where CharID = @CharID
end
--Character kills table recorder (finish) , all credits goes to #HB
بس كده وهتلاقي كل الpvp في الtable دي في الSRO_VT_SHARDLOG ولو عاوز تعمل reset للtable اعمل الكويري دي :
كود:
USE [SRO_VT_SHARDLOG]
UPDATE _CharactersKillsRecord Set Kills = '0' , Deaths = '0'
DELETE from _LogEventChar where EventID = '20'
لل Anti-Cheat اعمل الكويري دي قبل ما تعمل السيستم :
كود:
USE [SRO_VT_SHARDLOG]
DELETE from _LogEventChar where EventID = '20'
ان شاء الله تساعدكم 
|