الموضوع: PVP Recorder Table
عرض مشاركة واحدة
قديم 25-09-2017, 03:30 PM   #1

HB#
عضو فعال



الصورة الرمزية HB#


• الانـتـسـاب » Jul 2017
• رقـم العـضـويـة » 133179
• المشـــاركـات » 472
• الـدولـة » Daquhlia - Mansoura
• الـهـوايـة »
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 10
HB# صـاعـد

HB# غير متواجد حالياً

617  


إرسال رسالة عبر Yahoo إلى HB#

(20) 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'
ان شاء الله تساعدكم


توقيع HB# :
Unknown language

التعديل الأخير تم بواسطة HB# ; 27-10-2017 الساعة 01:44 PM

رد مع اقتباس
إعلانات google