الموضوع: مشكلة فى _AddLogChar
عرض مشاركة واحدة
قديم 10-12-2015, 04:09 AM   #3

cairoke
عضو نشيك





• الانـتـسـاب » Aug 2015
• رقـم العـضـويـة » 124945
• المشـــاركـات » 55
• الـدولـة » مصر
• الـهـوايـة »
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 10
cairoke صـاعـد

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


إرسال رسالة عبر Yahoo إلى cairoke

افتراضي رد: مشكلة فى _AddLogChar



اتفضل ادى الكود لو تقدر تقولى ايه الا ناقص فيها

كود PHP:
IF (@EventID 20) -- PVP
  BEGIN
     
IF  @Desc LIKE '%Trader, Neutral, no freebattle team%'    -- Trader
         
OR @Desc LIKE '%Hunter, Neutral, no freebattle team%'    -- Hunter
         
OR @Desc LIKE '%Robber, Neutral, no freebattle team%'    -- Thief
         
OR @Desc like '%no job, Neutral, %no job, Neutral%'    -- Free PVP
     
)
     
BEGIN
         
-- Get killer name
         
DECLARE @killername VARCHAR(512) = @Desc
         
DECLARE @killeriD INT 0
         SELECT 
@killername REPLACE @killernameLEFT @killernameCHARINDEX('(', @killername)), '')
         
SELECT @killername REPLACE @killernameRIGHT @killernameCHARINDEX(')'REVERSE @killername))), '')
         
SELECT @killeriD CharID FROM [SRO_VT_SHARD].[dbo].[_CharWHERE CharName16 = @killername
         
-- Get job type
         
DECLARE @jobString VARCHAR(10) = LTRIM(RTRIM(SUBSTRING @Desc57)))
         DECLARE @
jobType INT = CASE
             
WHEN @jobString LIKE 'Trader' THEN 1
             WHEN 
@jobString LIKE 'Robber' THEN 2
             WHEN 
@jobString LIKE 'Hunter' THEN 3
             
ELSE 0 END
         
-- Delete original log
         DELETE FROM _LogEventChar WHERE CharID 
= @charID AND EventID 20
             
AND (strDesc LIKE '%Trader, Neutral, no freebattle team%'
             
OR strDesc LIKE '%Hunter, Neutral, no freebattle team%'
             
OR strDesc LIKE '%Robber, Neutral, no freebattle team%'
             
OR @Desc like '%no job, Neutral, %no job, Neutral%')
         -- 
Get additional info for notice message
         
DECLARE @charname VARCHAR(64) = (SELECT CharName16 FROM [SRO_VT_SHARD].[dbo].[_CharWHERE CharID = @charID)
         DECLARE @
jobDesc VARCHAR(32) = CASE WHEN @jobType BETWEEN 1 AND 3 THEN 'Job Conflict' ELSE 'Free PVP' END
         
DECLARE @strDesc VARCHAR(512)
         IF  @
jobString LIKE 'Trader' OR @jobString LIKE 'Robber' OR @jobString LIKE 'Hunter')
         
BEGIN
             
-- If it's a Job Kill, then write character nicknames
             DECLARE @killerNickName VARCHAR(64) = (SELECT NickName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @killeriD)
             DECLARE @charnickName VARCHAR(64) = (SELECT NickName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @charID)
             SET @strDesc = '
[' + @killerNickName + 'has just killed ['  + @charnickName + 'in [' + @jobDesc + 'mode on [' +  CONVERT(NVARCHAR(30), GETDATE(), 0) + ']'
         END
         ELSE BEGIN
             -- If it'
s normal PVP Killwrite real character names
             SET 
@strDesc '[' + @killername '] has just killed [' +  @charname '] in [' + @jobDesc '] mode on [' CONVERT(NVARCHAR(30),  GETDATE(), 0) + ']'
         
END
         
-- Update the log
         INSERT INTO _LogEventPVP VALUES 
(0, @killeriD, @charID, @jobTypeGETDATE(), @strPos, @strDesc)
         -- 
Flag notice if it's not sent more than 5 minutes
         UPDATE _LogEventPVP SET isSent = 1 WHERE CharID = @charID AND EventTime < DATEADD(MINUTE, -5, GETDATE())
     END
  END