البقاء مسجل دائمآ
الإعلانات
قديم 16-02-2015, 02:28 PM   #1

Dev. iLegend
عضو لامع



الصورة الرمزية Dev. iLegend


• الانـتـسـاب » Jul 2013
• رقـم العـضـويـة » 112689
• المشـــاركـات » 1,050
• الـدولـة » Egypt - Tanta
• الـهـوايـة » always try for a best features
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 34
Dev. iLegend صـاعـد

Dev. iLegend غير متواجد حالياً


إرسال رسالة عبر Yahoo إلى Dev. iLegend

افتراضي |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|











Murder Auto Banned System




أولاً الموضوع كامل من مجهودي الخاص ومش منقول

السيستم دا عبارة عن اي حد يعمل PK على حد الداتا بيز اوتوماتيك تحس انه عمل PK على حد ..

اول مرة يعمل PK يتبعتله Warning Message تعرفه انه متراقب
وتحذره انه ميعملش PK تاني عشان يتجنب انه ياخد Block


لو عمل PK تاني ياخد Block 3 days

لو عمل PK تالت بعد ما Block 3 days يخلصوا ياخد Block 7 days
وهكذا .. لحد ما يبقا Block 4 ever


والكلام دا بيتسجل فى جدول تقدر انت تدخل تعرف منه مين عمل PK

مرة او مرتين ومين جاله رسالة تحذير ومين واخد Block

انا عامله عشان اللى عايز يسيب الـ PK system شغال عادي ويحطله Rules بالسيستم دا ..

عايز تقفل الـ PK خالص مش مشكلة دي حاجة ترجعلك ..

ندخل فى المفيد بقا ..

أرجوا مراعاة تغيير اسم اللوج داتا بيز باللي عندك انا عاملها

SRO_VT_SHARDLOG


هتعمل Execute للكيوري دي عشان تكريت جدول ..

كود PHP:
Use [SRO_VT_SHARDLOG]
Create Table _LogMurder
CharID    INT PRIMARY KEY NOT NULL,
  
MurderTimes            INT,
  
Warned                INT,
  
WarnedTime            datetime,
  
BlockTimes            INT,
  
LastBlockDateStart    datetime,
  
LastBlockDateEnd        datetime 


بعد كدا تروح على

SRO_VT_SHARD > Programmability > Stored Procedure > dbo._AddNewChar

دور ع الـ Line دا

كود PHP:
INSERT INTO _User VALUES (@UserJID, @NewCharID


وخليه كدا

كود PHP:
INSERT INTO _User VALUES (@UserJID, @NewCharID)
INSERT INTO [SRO_VT_SHARDLOG].[dbo].[_LogMurder] (CharID,MurderTimes,Warned,BlockTimesVALUES (@NewCharID,0,0,0


صورة للتوضيح



وتعمل Execute بعد ما تغير زي الصورة

بعد كدا تروح على

SRO_VT_SHARDLOG > Programmability > Stored Procedure > dbo._AddLogChar

وتضيف دي تحت خالص

كود PHP:
IF @EventID 19 and 
      (@
Desc Like '%My: Robber, Murderer%'    -- Pk by Thief
    
Or @Desc Like '%My: Trader, Murderer%'    -- Pk by Trader
    
Or @Desc Like '%My: Hunter, Murderer%'    -- Pk by Hunter
    
Or @Desc Like '%My: no job, Murderer%')    -- Pk by Normal Status
     Begin
      Execute 
[dbo].[_MurdererAutoBanned] @CharID
     End 


وتعمل Execute بعد ما تضيفهم

بعد كدا تعمل Execute للـ Procedure دا عشان يتضاف

مع مراعاة تغيير اسماء الداتا بيز لو متغيرة عندك

كود PHP:
USE [SRO_VT_SHARDLOG
GO
/****** Object:  StoredProcedure [dbo].[_MurdererAutoBanned]    Script Date: 02/11/2015 23:02:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

---> Full System Coded by iLegend
---> Facebook https://www.facebook.com/designer.ramy.saied

CREATE PROCEDURE [dbo].[_MurdererAutoBanned
@
CharID        INT
 
AS

                                  -- 
Start Auto PK Punishment system --
     
    Declare @
CharName Varchar (128) = (Select CharName16 From [SRO_VT_SHARD].[dbo].[_CharWhere CharID = @CharID)
    Declare @
UserJID INT = (Select UserJID From [SRO_VT_SHARD].[dbo].[_UserWhere CharID = @CharID)
    Declare @
Now DateTime GETDATE()
    Declare @
EndTime DateTime
    
Declare @SystemStartTime DateTime '2015-02-10 00:00:00.000'
    
Declare @MurderTimes INT = (Select MurderTimes From [SRO_VT_SHARDLOG].[dbo].[_LogMurderWhere CharID = @CharID)
    Declare @
BlockTimes INT  = (Select BlockTimes From [SRO_VT_SHARDLOG].[dbo].[_LogMurderWhere CharID = @CharID)
    Declare @
LastWarning INT = (Select Warned From [SRO_VT_SHARDLOG].[dbo].[_LogMurderWhere CharID = @CharID)
    Declare @
WarningCharName Varchar (128) , @Message Varchar(max)
    
Set @WarningCharName 'Write Here Character Name to Send Warning Msg from it' -- Write here Warning char name.
    
Set @Message 'Hey you!
PK is not allowed at our server, who do it get a penalties :
1- First time of pk, just warning and remind for our rules.
2-  If u do it again, you will punished directly for 3 days, second time by  7 days, then 15 days, then 1 month, then 1 year, then for ever.'

    
-- Step 1 add +1 to murder times of character name in _LogMurder
    Update 
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet MurderTimes = @MurderTimes +1 Where CharID = @CharID

    
-- Step 2 Check murder times after first step and give punishment.
    Declare @
LastMurderTimes INT = (Select MurderTimes From [SRO_VT_SHARDLOG].[dbo].[_LogMurderWhere CharID = @CharID)

    -- Case 
: IF murder times 1
    
-- Warning the player by Send Msg.
   IF @
LastMurderTimes 1
    Begin
      Update 
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet Warned = (@LastWarning +1Where CharID = @CharID
      Execute 
[SRO_VT_SHARD].[dbo].[_Memo_Add] @CharName,@WarningCharName,@Message,20
    End

    
-- Case : IF murder times 2
    
-- Block 3 day
   
IF @LastMurderTimes 2
    Begin
      Set 
@EndTime DATEADD (D,3GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case : IF murder times 3
    
-- Block 7 days
   
IF @LastMurderTimes 3
    Begin
      Set 
@EndTime DATEADD (D,7GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case : IF murder times 4
    
-- Block 15 days
   
IF @LastMurderTimes 4
    Begin
      Set 
@EndTime DATEADD (D,15GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case : IF murder times 5
    
-- Block 1 Month
   
IF @LastMurderTimes 5
    Begin
      Set 
@EndTime DATEADD (M,1GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case : IF murder times 6
    
-- Block 1 Year
   
IF @LastMurderTimes 6
    Begin
      Set 
@EndTime DATEADD (Y,1GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case : IF murder times 7
    
-- Block 15 Years
   
IF @LastMurderTimes 7
    Begin
      Set 
@EndTime DATEADD (Y,15GETDATE())
       
Execute [SRO_VT_ACCOUNT].[dbo].[_RegisterPunishment]  @UserJID,1,'iLegend',64,@CharName,'Murderer',1,'Auto Punishment Murder  System','Auto Punishment Murder  System',@SystemStartTime,@Now,@EndTime,@Now
      Update  
[SRO_VT_SHARDLOG].[dbo].[_LogMurderSet BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
                                   
-- End Auto PK Punishment system -- 



ملحوظة : السيستم دا عشان يشتغل لازم تكون مشغل الـ LOG

لو بتستخدم SR_GameServer Evangelion

ادخل عدل الكلام دا

cfg > misc.ini > disableLog = 0

ملحوظة أخيرة : كل اللى فات دا هيشتغل على اي كراكتر جديدة لو كراكتر قديمة قبل متعمل الجدول

لازم تروح تجيب كل الكراكترس اللي عندك فى dbo._Char كوبي للتيبل امشي زي الصور دي







بعد متخلص وتعمل زي مانا شارح فى الصور

اعمل Execute للـكيوري دي

كود PHP:
Update [SRO_VT_SHARDLOG].[dbo].[_LogMurderSet MurderTimes Warned BlockTimes 



وبكدا اكون خلصت الشرح ومبروك عليك السيستم

تقدر تدخل تجربه بأي كراكتر وتعمله تيست ..

لو قابلك اي خطاً فى السيستم مش فى الاضافة ممكن تعملي ريبورت عشان اصلحه ..

# iLegend #



التعديل الأخير تم بواسطة Dev. iLegend ; 17-02-2015 الساعة 02:56 AM

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

 


يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر)
 

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى الردود آخر مشاركة
|►(●̮●)♔حصريا: جميع حلول مشاكل في عمل السيرفر ♔(●̮●)◄|← ™Shi6on قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة 38 22-05-2020 05:11 AM
|►(●̮●)♔حصريا: Celestial Knight Avatar♔(●̮●)◄|← Ayman shawky قـسـم تـعـديـل [ PK2 Edit ] 13 31-08-2014 04:42 PM
|►(●̮●)♔حصريا:تغير ارضية Jangan♔(●̮●)◄|← °•.♥Mimo ♥.•° قـسـم تـعـديـل [ PK2 Edit ] 27 30-11-2013 03:53 AM


الساعة الآن 09:15 AM.