wanted system عملت كل حاجه و ظبطه وكل حاجه تمام من غير اي مشاكل في اللعبه لما thief او hunter بيموتو بعض مش بيتسجل فال RowKills مع ان البروسودر مظبوط و ماكد عليه اكتر من مره سواء في addlogchar او الي معمول _wanted في حل للموضوع ده ؟
/****** Object: StoredProcedure [dbo].[_Wanted] Script Date: 9/12/2014 6:25:37 PM ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE procedure [dbo].[_Wanted] @CharID int, @eventID tinyint, @desc varchar(128) as
Declare @Kc int Declare @CharName VARCHAR(52) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @CharID) DECLARE @K_Name VARCHAR(512) = @desc SELECT @K_Name = REPLACE(@K_Name, LEFT(@K_Name, CHARINDEX('(', @K_Name)), '') SELECT @K_Name = REPLACE(@K_Name, RIGHT(@K_Name, CHARINDEX(')', REVERSE(@K_Name))), '') ----- Killed CharID DECLARE @K_CharID INT =(SELECT CharID FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharName16 = @K_Name) ------ -- Check if he kills the char more than 3 times DECLARE @PKill int = (select COUNT(*) from _RowKills where KillerID = @CharID and KilledID = @K_CharID) DECLARE @MaxK int = (select COUNT(Kills) from _RowKills where KillerID = @CharID and Kills = '1') IF ( @PKill <= '9' and @MaxK <= '50' ) BEGIN INSERT INTO _RowKills (KillerID , KilledID , Kills) VALUES @CharID , @K_CharID,'1') END ----- End inserting
SET @Kc = (SELECT COUNT(Kills) FROM _RowKills WHERE KillerID = @CharID and Kills = '1' )--and Recived = 'OFF') --- if he kills 10 in row give him the buff -- give Wanted level 1 IF @Kc = '10' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34247') BEGIN INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) ---- Values VALUES @CharID , 0 , 34243 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 10Kills in row [Wanted Lv1]"',GETDATE()) END
--- if he kills 20 in row give him the buff -- give Wanted level 2 IF @Kc = '20' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34244' and '34247') BEGIN INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 20Kills in row [Wanted Lv2]"',GETDATE()) IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243') BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243' INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34244 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243') BEGIN INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34244 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END END --- if he kills 30 in row give him the buff -- give Wanted level 3 IF @Kc = '30' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34245' and '34247') BEGIN INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 30Kills in row [Wanted Lv3]"',GETDATE()) IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244') BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244' INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34245 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244') BEGIN INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34245 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END END --- if he kills 40 in row give him the buff -- give Wanted level 4 IF @Kc = '40' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34246' and '34247') BEGIN INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 40Kills in row [Wanted Lv4]"',GETDATE()) IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245') BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245' INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34246 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245') BEGIN INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34246 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END END --- if he kills 50 in row give him the buff -- give Wanted level 5 IF @Kc = '50' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34247') BEGIN INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 50Kills in row [Wanted Lv5]"',GETDATE()) DELETE FROM _RowKills WHERE KillerID = @CharID IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246') BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246' INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34247 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246') BEGIN INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34247 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 ) END END
Create Table
كود PHP:
USE [SHARDLOG] GO
/****** Object: Table [dbo].[_RowKills] Script Date: 09/13/2014 11:35:20 ******/ SET ANSI_NULLS ON GO
AddLogChar -> (SRO_VT_LOG -> Programmability -> Stored Procedures -> Right click on _AddLogChar and press on 'Modify')
كود PHP:
--- Wanted System if @eventID = '19' -- Count kills BEGIN if (@strPos like '%(0x679a)%') 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 ) BEGIN
DECLARE @killedName VARCHAR(512) = @desc DECLARE @ReqLevel INT = 0 SELECT @killedName = REPLACE @killedName, LEFT @killedName, CHARINDEX('(', @killedName)), '') SELECT @killedName = REPLACE @killedName, RIGHT @killedName, CHARINDEX(')', REVERSE @killedName))), '') SELECT @ReqLevel = CurLevel FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharName16 = @killedName if @ReqLevel >= 90 BEGIN Exec [_Wanted] @CharID , @eventID , @desc End END END END if @eventID = '20' -- if dies 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 ) BEGIN UPDATE _RowKills SET Kills = '0' WHERE KillerID = @CharID IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob WHERE CharID = @CharID AND JobID = '33862' or CharID = @CharID and JobID between '50021' and '50024') BEGIN DELETE FROM SRO_VT_SHARD.dbo._TimedJob WHERE CharID = @CharID and JobID = '33862' or CharID = @CharID and JobID between '50021' and '50024' END END END --------- End of wanted system
المشاركة الأصلية كتبت بواسطة Mahmoud Rashwan
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
جرب كدا الـ producer دول
SRO_VT_SHARD
كود PHP:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: StoredProcedure [dbo].[_Wanted] Script Date: 9/12/2014 6:25:37 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[_Wanted] @CharID int, @eventID tinyint, @desc varchar(128)
as
Declare @Kc int
Declare @CharName VARCHAR(52) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @CharID)
DECLARE @K_Name VARCHAR(512) = @desc
SELECT @K_Name = REPLACE(@K_Name, LEFT(@K_Name, CHARINDEX('(', @K_Name)), '')
SELECT @K_Name = REPLACE(@K_Name, RIGHT(@K_Name, CHARINDEX(')', REVERSE(@K_Name))), '')
----- Killed CharID
DECLARE @K_CharID INT =(SELECT CharID FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharName16 = @K_Name)
------
-- Check if he kills the char more than 3 times
DECLARE @PKill int = (select COUNT(*) from _RowKills where KillerID = @CharID and KilledID = @K_CharID)
DECLARE @MaxK int = (select COUNT(Kills) from _RowKills where KillerID = @CharID and Kills = '1')
IF ( @PKill <= '9' and @MaxK <= '50' )
BEGIN
INSERT INTO _RowKills (KillerID , KilledID , Kills) VALUES @CharID , @K_CharID,'1')
END
----- End inserting
SET @Kc = (SELECT COUNT(Kills) FROM _RowKills WHERE KillerID = @CharID and Kills = '1' )--and Recived = 'OFF')
--- if he kills 10 in row give him the buff -- give Wanted level 1
IF @Kc = '10' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34247')
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID )
---- Values
VALUES @CharID , 0 , 34243 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 10Kills in row [Wanted Lv1]"',GETDATE())
END
--- if he kills 20 in row give him the buff -- give Wanted level 2
IF @Kc = '20' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34244' and '34247')
BEGIN
INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 20Kills in row [Wanted Lv2]"',GETDATE())
IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243'
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34244 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34243')
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34244 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
END
--- if he kills 30 in row give him the buff -- give Wanted level 3
IF @Kc = '30' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34245' and '34247')
BEGIN
INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 30Kills in row [Wanted Lv3]"',GETDATE())
IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244'
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34245 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between'34243' and '34244')
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34245 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
END
--- if he kills 40 in row give him the buff -- give Wanted level 4
IF @Kc = '40' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34246' and '34247')
BEGIN
INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 40Kills in row [Wanted Lv4]"',GETDATE())
IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245'
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34246 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34245')
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34246 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
END
--- if he kills 50 in row give him the buff -- give Wanted level 5
IF @Kc = '50' AND NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID = '34247')
BEGIN
INSERT INTO SRO_VT_SHARDLOG.dbo.PlusNotice VALUES ('0', @CharName+' : is Wanted "Hero Mode - 50Kills in row [Wanted Lv5]"',GETDATE())
DELETE FROM _RowKills WHERE KillerID = @CharID
IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246'
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34247 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
ElSE IF NOT EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob where CharID = @CharID and JobID between '34243' and '34246')
BEGIN
INSERT INTO SRO_VT_SHARD.dbo._TimedJob (CharID ,Category , JobID , TimeToKeep , Data1 , Data2 , Data3 , Data4 , Data5 , Data6, Data7 , Data8 , Serial64 , JID ) VALUES @CharID , 0 , 34247 , 3600 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 72339069015696862 , 0 )
END
END
Create Table
كود PHP:
USE [SHARDLOG]
GO
/****** Object: Table [dbo].[_RowKills] Script Date: 09/13/2014 11:35:20 ******/
SET ANSI_NULLS ON
GO
AddLogChar -> (SRO_VT_LOG -> Programmability -> Stored Procedures -> Right click on _AddLogChar and press on 'Modify')
كود PHP:
--- Wanted System
if @eventID = '19' -- Count kills
BEGIN
if (@strPos like '%(0x679a)%')
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
) BEGIN
DECLARE @killedName VARCHAR(512) = @desc
DECLARE @ReqLevel INT = 0
SELECT @killedName = REPLACE @killedName, LEFT @killedName, CHARINDEX('(', @killedName)), '')
SELECT @killedName = REPLACE @killedName, RIGHT @killedName, CHARINDEX(')', REVERSE @killedName))), '')
SELECT @ReqLevel = CurLevel FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharName16 = @killedName
if @ReqLevel >= 90
BEGIN
Exec [_Wanted] @CharID , @eventID , @desc
End
END
END
END
if @eventID = '20' -- if dies
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
) BEGIN
UPDATE _RowKills SET Kills = '0' WHERE KillerID = @CharID
IF EXISTS (SELECT * FROM SRO_VT_SHARD.dbo._TimedJob WHERE CharID = @CharID AND JobID = '33862' or CharID = @CharID and JobID between '50021' and '50024')
BEGIN
DELETE FROM SRO_VT_SHARD.dbo._TimedJob WHERE CharID = @CharID and JobID = '33862' or CharID = @CharID and JobID between '50021' and '50024'
END
END
END
--------- End of wanted system
جربتهم و نفس المشكله لما thief بيموت hunter او العكس مفيش حاجه بتتسجل فال rowkills