تسجيل الدخول دائمآ
ط·آ§ط¸â€‍ط·آ¥ط·آ¹ط¸â€‍ط·آ§ط¸â€ ط·آ§ط·ع¾

الـجـروب الـخـاص بـالـمـنـتـدي Silkroad4arab Facebook | Official Group 



قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة [ قسم متخصص فى شروحات و البرامج في عمل السيرفرات الخاصة ] [ يرجى عدم وضع الأسئلة والاستفسارات في هذا القسم ]

 
 
أدوات الموضوع انواع عرض الموضوع
قديم 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,BlockTimes) VALUES (@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].[_Char] Where CharID = @CharID)
    Declare @
UserJID INT = (Select UserJID From [SRO_VT_SHARD].[dbo].[_User] Where 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].[_LogMurder] Where CharID = @CharID)
    Declare @
BlockTimes INT  = (Select BlockTimes From [SRO_VT_SHARDLOG].[dbo].[_LogMurder] Where CharID = @CharID)
    Declare @
LastWarning INT = (Select Warned From [SRO_VT_SHARDLOG].[dbo].[_LogMurder] Where 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].[_LogMurder] Set 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].[_LogMurder] Where CharID = @CharID)

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

    
-- Case 2 : IF murder times = 2
    
-- Block 3 day
   
IF @LastMurderTimes = 2
    Begin
      Set 
@EndTime = DATEADD (D,3, GETDATE())
       
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].[_LogMurder] Set BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now , LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case 3 : IF murder times = 3
    
-- Block 7 days
   
IF @LastMurderTimes = 3
    Begin
      Set 
@EndTime = DATEADD (D,7, GETDATE())
       
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].[_LogMurder] Set BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now , LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case 4 : IF murder times = 4
    
-- Block 15 days
   
IF @LastMurderTimes = 4
    Begin
      Set 
@EndTime = DATEADD (D,15, GETDATE())
       
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].[_LogMurder] Set BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now , LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case 5 : IF murder times = 5
    
-- Block 1 Month
   
IF @LastMurderTimes = 5
    Begin
      Set 
@EndTime = DATEADD (M,1, GETDATE())
       
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].[_LogMurder] Set BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now , LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case 6 : IF murder times = 6
    
-- Block 1 Year
   
IF @LastMurderTimes = 6
    Begin
      Set 
@EndTime = DATEADD (Y,1, GETDATE())
       
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].[_LogMurder] Set BlockTimes = (@BlockTimes +1) ,  LastBlockDateStart = @Now , LastBlockDateEnd = @EndTime  Where CharID =  @CharID
    End
    
    
-- Case 7 : IF murder times = 7
    
-- Block 15 Years
   
IF @LastMurderTimes = 7
    Begin
      Set 
@EndTime = DATEADD (Y,15, GETDATE())
       
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].[_LogMurder] Set 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].[_LogMurder] Set MurderTimes = 0 , Warned = 0 , BlockTimes = 0 



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

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

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

# iLegend #



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

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

 


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

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

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

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى الردود آخر مشاركة
|►(●̮●)♔حصريا: جميع حلول مشاكل في عمل السيرفر ♔(●̮●)◄|← ™Shi6on قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة 39 22-05-2020 05:11 AM
|►(●̮●)♔ Released : Donation Package Scroll ♔(●̮●)◄| Dev. iLegend قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة 0 19-09-2014 12:04 PM
|►(●̮●)♔ Released : Honor Buff Scroll 28 Days 4 In1 ♔(●̮●)◄| Dev. iLegend قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة 0 07-09-2014 05:26 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


الساعة الآن 11:59 AM.