الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=289)
-   -   |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄| (https://silkroad4arab.com/vb/showthread.php?t=579022)

Dev. iLegend 16-02-2015 02:28 PM

|►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
http://www2.0zz0.com/2012/10/22/15/311256858.gif

http://www2.0zz0.com/2012/10/22/16/593531309.png

http://im45.gulfup.com/wsCcCQ.png



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) 



صورة للتوضيح

http://www7.0zz0.com/2015/02/16/13/322886119.jpg

وتعمل 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 كوبي للتيبل امشي زي الصور دي

http://www13.0zz0.com/2015/02/17/02/906776896.jpg

http://www13.0zz0.com/2015/02/17/02/966765315.jpg

http://www13.0zz0.com/2015/02/17/02/502719612.jpg

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

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

كود PHP:

Update [SRO_VT_SHARDLOG].[dbo].[_LogMurder] Set MurderTimes = 0 , Warned = 0 , BlockTimes = 0 




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

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

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

# iLegend #

Mr Z!dane 16-02-2015 03:13 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
#Approved

Hamza FiGo 16-02-2015 03:24 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
شغل عالي الصراحة . تسلم ايدك
:thumbsup:

Dev. iLegend 16-02-2015 03:47 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Mr Z!dane (المشاركة 5161918)
#Approved

تسلم يا زيزو

اقتباس:

المشاركة الأصلية كتبت بواسطة hamzafigo (المشاركة 5161924)
شغل عالي الصراحة . تسلم ايدك
:thumbsup:

شكرا على مرورك يا حمزة باشا دي شهادة اعتز بيها

™Dev Microsoft™ 16-02-2015 06:18 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
تماااااام :)

pop2009 16-02-2015 10:57 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
عالمي

™MaR™ 17-02-2015 12:42 AM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
تسلم ايدك بجد بجد شغل عالي
استمرررررررررر:111 (27):

Dev. iLegend 17-02-2015 03:07 AM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ™Dev Microsoft™ (المشاركة 5162035)
تماااااام :)

اقتباس:

المشاركة الأصلية كتبت بواسطة pop2009 (المشاركة 5162196)
عالمي

اقتباس:

المشاركة الأصلية كتبت بواسطة BeAlone (المشاركة 5162253)
تسلم ايدك بجد بجد شغل عالي
استمرررررررررر:111 (27):


شكرا يا جماعة وإنشاء الله يكون في مزيد من المواضيع الجديدة فى القسم

ملحوظة : تم إضافة بعض الصور + كيوري للموضوع عشان تشغل
السيستم على اي كراكتر قديمة كانت موجودة قبل متضيف السيستم



Jaffa 17-02-2015 10:49 AM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
والله بص انا مش عارف اقولك ايه والله سيلك رود 4 عرب محتاح للى زيك والله شغل عالى و جديد

Jaffa 17-02-2015 12:16 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
شغل عالى بس مش شغال للاسف لانى انا جربتوا و عملت mulder فتحت اكونتين عملت mulder مش شغال ولا DC ولا حته كيس قلبظ :D للاسف

ruxana 17-02-2015 12:21 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
وانا زي العضو Jaffa مافيش رساله وال Murder شغال عادي و سمحت راجع الموضوع تاني

Dev. iLegend 17-02-2015 01:41 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
بص يا باشا اولاً انا مقولتش بيدي DC لحد ..

انا قولت بيدي باند مش اكتر .. وبيبعت رسالة بس لازم تكتب اسم

الكراكتر اللي يبعت منها الرسالة ..

انا بحاول اعدل بحيث انه يدي باند و DC وشغال والله مش ساكت


Dev. iLegend 17-02-2015 02:08 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
انا ممكن اعمل بفاية مش موجودة فى الكلينت .. واديهاله فى dbo._TimedJob بكدا هياخد كراش ..

وهيجي يفتح يلاقي نفسه باند .. بس محتاج اني بعد مدهاله اعمله تيليبورت اوتوماتيك ..

لو حد عنده خلفية يفيدني ..

ruxana 17-02-2015 04:05 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
حاول مع المشرفين و انشاء الله تتحل و شكرا علي المساعده

™MaR™ 17-02-2015 09:23 PM

رد: |►(●̮●)♔ Release : Auto Murder Punishment System ♔(●̮●)◄|
 
ارجو من صاحب موضوع الاهتمام لان السيستيم مش شغال


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.