Dev. iLegend
16-02-2015, 02:28 PM
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 للكيوري دي عشان تكريت جدول ..
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 دا
INSERT INTO _User VALUES (@UserJID, @NewCharID)
وخليه كدا
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
وتضيف دي تحت خالص
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 دا عشان يتضاف
مع مراعاة تغيير اسماء الداتا بيز لو متغيرة عندك
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,'Au to 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,'Au to 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,'Au to 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,'Au to 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,'Au to 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,'Au to 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 للـكيوري دي
Update [SRO_VT_SHARDLOG].[dbo].[_LogMurder] Set MurderTimes = 0 , Warned = 0 , BlockTimes = 0
وبكدا اكون خلصت الشرح ومبروك عليك السيستم
تقدر تدخل تجربه بأي كراكتر وتعمله تيست ..
لو قابلك اي خطاً فى السيستم مش فى الاضافة ممكن تعملي ريبورت عشان اصلحه ..
# iLegend #
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 للكيوري دي عشان تكريت جدول ..
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 دا
INSERT INTO _User VALUES (@UserJID, @NewCharID)
وخليه كدا
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
وتضيف دي تحت خالص
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 دا عشان يتضاف
مع مراعاة تغيير اسماء الداتا بيز لو متغيرة عندك
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,'Au to 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,'Au to 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,'Au to 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,'Au to 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,'Au to 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,'Au to 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 للـكيوري دي
Update [SRO_VT_SHARDLOG].[dbo].[_LogMurder] Set MurderTimes = 0 , Warned = 0 , BlockTimes = 0
وبكدا اكون خلصت الشرح ومبروك عليك السيستم
تقدر تدخل تجربه بأي كراكتر وتعمله تيست ..
لو قابلك اي خطاً فى السيستم مش فى الاضافة ممكن تعملي ريبورت عشان اصلحه ..
# iLegend #