Dev.Ri3o |
24-12-2017 03:36 PM |
Top Levels Reward
http://www11.0zz0.com/2017/11/30/19/141684450.png
http://www14.0zz0.com/2017/11/30/19/644210138.png
http://www4.0zz0.com/2015/11/27/18/702514124.gif
الموضوع باين من عنوانه بتدى Reward لاول 300 واحد يوصلو Max Level اللى انت تحددو وتقدر تحدد لكل عدد معين Reward معين يعنى مثلا اول 100 و تانى 100 و تالت 100
http://www14.0zz0.com/2017/11/30/19/819176216.gif
ملحوظة : ال system مش بيشتغل غير لل Normal Player بس يعنى لو اى حاجة غير ال Normal Player مش هيتحسب فى ال Log
هتعمل ال Tables دى
كود:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: Table [dbo].[_Top100] Script Date: 12/24/2017 12:54:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_Top100](
[CharID] [int] NULL,
[Data2] [tinyint] NULL,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_Top200](
[CharID] [int] NULL,
[Data2] [tinyint] NULL,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_Top300](
[CharID] [int] NULL,
[Data2] [tinyint] NULL,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_ToplevelsReward](
[Silk1] [smallint] NULL,
[Silk2] [smallint] NULL,
[Silk3] [smallint] NULL,
[Reward1Top100] [varchar](50) NULL,
[Reward1Count100] [smallint] NULL,
[Reward2Top100] [varchar](50) NULL,
[Reward2Count100] [smallint] NULL,
[Reward3Top100] [varchar](50) NULL,
[Reward3Count100] [smallint] NULL,
[Reward1Top200] [varchar](50) NULL,
[Reward1Count200] [smallint] NULL,
[Reward2Top200] [varchar](50) NULL,
[Reward2Count200] [smallint] NULL,
[Reward3Top200] [varchar](50) NULL,
[Reward3Count200] [smallint] NULL,
[Reward1Top300] [varchar](50) NULL,
[Reward1Count300] [smallint] NULL,
[Reward2Top300] [varchar](50) NULL,
[Reward2Count300] [smallint] NULL,
[Reward3Top300] [varchar](50) NULL,
[Reward3Count300] [smallint] NULL,
[RewardMale] [varchar](50) NULL,
[RewardMaleCount] [smallint] NULL,
[RewardFemale] [varchar](50) NULL,
[RewardFemaleCount] [smallint] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
http://www14.0zz0.com/2017/11/30/19/819176216.gif
وهتعمل ال Procedure ده
كود:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: StoredProcedure [dbo].[TopLevelsReward] Script Date: 12/24/2017 1:24:22 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[TopLevelsReward]
@CharID int,
@Data2 tinyint
as
--==================--
-- Created By : Ri3o :
--==================--
Declare @Silk1Reward smallint , @Silk2Reward smallint , @Silk3Reward smallint
,@Reward1Top100 varchar(50),@Reward2Top100 varchar(50),@Reward3Top100 varchar(50),@Reward1Count100 smallint,@Reward2Count100 smallint,@Reward3Count100 smallint
,@Reward1Top200 varchar(50),@Reward2Top200 varchar(50),@Reward3Top200 varchar(50),@Reward1Count200 smallint,@Reward2Count200 smallint,@Reward3Count200 smallint
,@Reward1Top300 varchar(50),@Reward2Top300 varchar(50),@Reward3Top300 varchar(50),@Reward1Count300 smallint,@Reward2Count300 smallint,@Reward3Count300 smallint
,@RewardMale Varchar(50),@RewardFemale Varchar(50),@RewardMaleCount smallint,@RewardFemaleCount smallint
Declare @CharName varchar(64) = (select CharName16 from SRO_VT_SHARD.dbo._Char Where CharID = @CharID)
DECLARE @UserJID varchar(10) = (SELECT JID FROM SRO_VT_ACCOUNT.dbo.TB_User U WITH(NOLOCK) INNER JOIN SRO_VT_SHARD.dbo._User U2 WITH(NOLOCK) ON U.JID = U2.UserJID WHERE CharID = @CharID)
Declare @Top smallint = (Select Count(*) From SRO_VT_SHARD.dbo._Char inner Join SRO_VT_SHARD.dbo._User on SRO_VT_SHARD.dbo._Char.CharID = SRO_VT_SHARD.dbo._User.CharID inner join SRO_VT_ACCOUNT.dbo.TB_User on SRO_VT_SHARD.dbo._User.UserJID = SRO_VT_ACCOUNT.dbo.TB_User.JID Where sec_content = 3 And sec_primary = 3 )
Select @Silk1Reward=Silk1,@Silk2Reward=Silk2,@Silk3Reward=Silk3,@Reward1Top100=Reward1Top100,@Reward2Top100=Reward2Top100,@Reward3Top100=Reward3Top100,@Reward1Top200=Reward1Top200,@Reward2Top200=Reward2Top200,@Reward3Top200=Reward3Top200,@Reward1Top300=Reward1Top300,@Reward2Top300=Reward2Top300,@Reward3Top300=Reward3Top300,@Reward1Count100=Reward1Count100,@Reward2Count100=Reward2Count100,@Reward3Count100=Reward3Count100,@Reward1Count200=Reward1Count200,@Reward2Count200=Reward2Count200,@Reward3Count200=Reward3Count200,@Reward1Count300=Reward1Count300,@Reward2Count300=Reward2Count300,@Reward3Count300=Reward3Count300,@RewardMale=RewardMale,@RewardFemale=RewardFemale,@RewardMaleCount=RewardMaleCount,@RewardFemaleCount=RewardFemaleCount From SRO_VT_SHARDLOG.dbo._ToplevelsReward
DECLARE @CharGender int =(select RefObjID from SRO_VT_SHARD.dbo._Char where CharID = @CharID)
if (@CharGender between 1907 and 1919 or @CharGender between 14875 and 14887)
begin
SET @CharGender = 1
end
if (@CharGender between 1920 and 1932 or @CharGender between 14888 and 14900)
begin
SET @CharGender = 0
end
IF @Top < 100
Begin
if not exists (select CharID,Data2 From SRO_VT_SHARDLOG.dbo._Top100 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top100 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top100,@Reward1Count100,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top100,@Reward2Count100,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top100,@Reward3Count100,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk1Reward Where JID=@UserJID
End
End
IF @Top Between 100 and 200
Begin
if not exists (select CharID,Data2 From _Top200 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top200 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top200,@Reward1Count200,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top200,@Reward2Count200,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top200,@Reward3Count200,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk2Reward Where JID=@UserJID
End
End
IF @Top Between 200 and 300
Begin
if not exists (select CharID,Data2 From _Top300 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top300 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top300,@Reward1Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top300,@Reward2Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top300,@Reward3Count300,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk3Reward Where JID=@UserJID
End
End
IF (@CharGender = 1)
Begin
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@RewardMale,@RewardMaleCount,1
END
IF (@CharGender = 0)
Begin
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@RewardFemale,@RewardFemaleCount,1
END
GO
http://www14.0zz0.com/2017/11/30/19/819176216.gif
ودى للى شغال بال Vsro Multi Tool
كود:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: StoredProcedure [dbo].[TopLevelsReward] Script Date: 12/24/2017 1:24:22 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[TopLevelsReward]
@CharID int,
@Data2 tinyint
as
--==================--
-- Created By : Ri3o :
--==================--
Declare @Silk1Reward smallint , @Silk2Reward smallint , @Silk3Reward smallint
,@Reward1Top100 varchar(50),@Reward2Top100 varchar(50),@Reward3Top100 varchar(50),@Reward1Count100 smallint,@Reward2Count100 smallint,@Reward3Count100 smallint
,@Reward1Top200 varchar(50),@Reward2Top200 varchar(50),@Reward3Top200 varchar(50),@Reward1Count200 smallint,@Reward2Count200 smallint,@Reward3Count200 smallint
,@Reward1Top300 varchar(50),@Reward2Top300 varchar(50),@Reward3Top300 varchar(50),@Reward1Count300 smallint,@Reward2Count300 smallint,@Reward3Count300 smallint
,@RewardMale Varchar(50),@RewardFemale Varchar(50),@RewardMaleCount smallint,@RewardFemaleCount smallint
Declare @CharName varchar(64) = (select CharName16 from SRO_VT_SHARD.dbo._Char Where CharID = @CharID)
DECLARE @UserJID varchar(10) = (SELECT JID FROM SRO_VT_ACCOUNT.dbo.TB_User U WITH(NOLOCK) INNER JOIN SRO_VT_SHARD.dbo._User U2 WITH(NOLOCK) ON U.JID = U2.UserJID WHERE CharID = @CharID)
Declare @Top smallint = (Select Count(*) From SRO_VT_SHARD.dbo._Char inner Join SRO_VT_SHARD.dbo._User on SRO_VT_SHARD.dbo._Char.CharID = SRO_VT_SHARD.dbo._User.CharID inner join SRO_VT_ACCOUNT.dbo.TB_User on SRO_VT_SHARD.dbo._User.UserJID = SRO_VT_ACCOUNT.dbo.TB_User.JID Where sec_content = 3 And sec_primary = 3 )
Select @Silk1Reward=Silk1,@Silk2Reward=Silk2,@Silk3Reward=Silk3,@Reward1Top100=Reward1Top100,@Reward2Top100=Reward2Top100,@Reward3Top100=Reward3Top100,@Reward1Top200=Reward1Top200,@Reward2Top200=Reward2Top200,@Reward3Top200=Reward3Top200,@Reward1Top300=Reward1Top300,@Reward2Top300=Reward2Top300,@Reward3Top300=Reward3Top300,@Reward1Count100=Reward1Count100,@Reward2Count100=Reward2Count100,@Reward3Count100=Reward3Count100,@Reward1Count200=Reward1Count200,@Reward2Count200=Reward2Count200,@Reward3Count200=Reward3Count200,@Reward1Count300=Reward1Count300,@Reward2Count300=Reward2Count300,@Reward3Count300=Reward3Count300,@RewardMale=RewardMale,@RewardFemale=RewardFemale,@RewardMaleCount=RewardMaleCount,@RewardFemaleCount=RewardFemaleCount From SRO_VT_SHARDLOG.dbo._ToplevelsReward
DECLARE @CharGender int =(select RefObjID from SRO_VT_SHARD.dbo._Char where CharID = @CharID)
if (@CharGender between 1907 and 1919 or @CharGender between 14875 and 14887)
begin
SET @CharGender = 1
end
if (@CharGender between 1920 and 1932 or @CharGender between 14888 and 14900)
begin
SET @CharGender = 0
end
IF @Top < 100
Begin
if not exists (select CharID,Data2 From SRO_VT_SHARDLOG.dbo._Top100 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top100 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top100,@Reward1Count100,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top100,@Reward2Count100,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top100,@Reward3Count100,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk1Reward Where JID=@UserJID
insert into [RI3O].[dbo].[iLegend_Tool] ([Service],[Type],[Message],[Date]) Values ('1','Notice','** Attention !!** : ['+@CharName+'] is Rewarded for reaching The Max Level , ['+@Top+'] Players Are Rewarded ',GETDATE())
End
End
IF @Top Between 100 and 200
Begin
if not exists (select CharID,Data2 From _Top200 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top200 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top200,@Reward1Count200,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top200,@Reward2Count200,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top200,@Reward3Count200,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk2Reward Where JID=@UserJID
insert into [RI3O].[dbo].[iLegend_Tool] ([Service],[Type],[Message],[Date]) Values ('1','Notice','** Attention !!** : ['+@CharName+'] is Rewarded for reaching The Max Level , ['+@Top+'] Players Are Rewarded ',GETDATE())
End
End
IF @Top Between 200 and 398
Begin
if not exists (select CharID,Data2 From _Top300 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top300 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top300,@Reward1Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top300,@Reward2Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top300,@Reward3Count300,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk3Reward Where JID=@UserJID
insert into [RI3O].[dbo].[iLegend_Tool] ([Service],[Type],[Message],[Date]) Values ('1','Notice','** Attention !!** : ['+@CharName+'] is Rewarded for reaching The Max Level , ['+@Top+'] Players Are Rewarded ',GETDATE())
End
End
IF @Top = 299
Begin
if not exists (select CharID,Data2 From _Top300 Where CharID = @CharID and Data2 = @Data2)
begin
insert into SRO_VT_SHARDLOG.dbo._Top300 values (@CharID,@Data2)
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward1Top300,@Reward1Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward2Top300,@Reward2Count300,1
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@Reward3Top300,@Reward3Count300,1
Update SRO_VT_ACCOUNT.dbo.SK_Silk Set silk_own = silk_own + @Silk3Reward Where JID=@UserJID
insert into [RI3O].[dbo].[iLegend_Tool] ([Service],[Type],[Message],[Date]) Values ('1','Notice','** Attention !!** : ['+@CharName+'] is Rewarded for reaching The Max Level , ['+300+'] Player Are Rewarded ',GETDATE())
insert into [RI3O].[dbo].[iLegend_Tool] ([Service],[Type],[Message],[Date]) Values ('1','Notice','There Are No More Rewards for reaching The Max Level',GETDATE())
End
End
IF (@CharGender = 1)
Begin
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@RewardMale,@RewardMaleCount,1
END
IF (@CharGender = 0)
Begin
exec SRO_VT_SHARD.dbo._ADD_ITEM_EXTERN @CharName,@RewardFemale,@RewardFemaleCount,1
END
Go
واخيرا هتحط ده فى ال AddLogChar
كود:
--======================--
--Top Levels Reward System
--======================--
Declare @LimitReward int , @GM tinyint
Set @LimitReward = (Select Count(CharID) From SRO_VT_SHARD.dbo._Char Where CurLevel = 110 And CharID in (Select CharID From SRO_VT_SHARD.dbo._User Where UserJID in (Select JID From SRO_VT_ACCOUNT.dbo.TB_User Where sec_content = 3 And sec_primary = 3 )))
Set @GM = (Select sec_content From SRO_VT_ACCOUNT.dbo.TB_User Where JID in (Select UserJID From SRO_VT_SHARD.dbo._User Where CharID =@CharID))
IF (@EventID = 22) And (@Data2 = 110) And (@LimitReward < 300) And (@GM =3)
begin
exec [SRO_VT_SHARDLOG].[dbo].[TopLevelsReward] @CharID , @Data2
end
----------------------------------------------------------------------------
هتغير 110 على حسب ال Max level عندك
http://www14.0zz0.com/2017/11/30/19/819176216.gif
نيجى بقى للتعديل هتعمل Refresh لل SQL وبعدها تروح لل Table الى اسمو _ToplevelsReward واظن مش محتاج شرح
https://dev-point.co/uploads1/50b009bdec991.jpg
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Silk1
ده عدد ال silk لاول 100
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Silk2
ده عدد ال silk لتانى 100
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Silk3
ده عدد ال silk لتالت 100
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward1Top100
ده ال CodeName بتاع اول Reward لاول 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward1Count100 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward2Top100
ده ال CodeName بتاع تانى Reward لاول 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward2Count100 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward3Top100
ده ال CodeName بتاع تالت Reward لاول 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward3Count100 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward1Top200
ده ال CodeName بتاع اول Reward لتانى 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward1Count200 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward2Top200
ده ال CodeName بتاع تانى Reward لتانى 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward2Count200 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward3Top200
ده ال CodeName بتاع تالت Reward لتانى 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward3Count200 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward1Top300
ده ال CodeName بتاع اول Reward لتالت 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward1Count300 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward2Top300
ده ال CodeName بتاع تانى Reward لتالت 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward2Count300 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
Reward3Top300
ده ال CodeName بتاع تالت Reward لتالت 100 اللى هو مثلا ITEM_ETC_ARENA_COIN
و Reward3Count300 ده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
RewardMale
ده ال CodeName بتاع Reward ل MaleCharacter اللى هو مثلا ITEM_ETC_ARENA_COIN
و RewardMaleCountده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
RewardFemale
ده ال CodeName بتاع Reward ل FemaleCharacter اللى هو مثلا ITEM_ETC_ARENA_COIN
و RewardFemaleCountده العدد اللى عايز تديهوله
http://www14.0zz0.com/2017/11/30/19/819176216.gif
دى صورة انا عامل عندى ال lvl 130 عدلها انت فى ال AddLogChar زى ما انت عايز
https://dev-point.co/uploads1/5edd118b85801.jpg
http://www14.0zz0.com/2017/11/30/19/819176216.gif
http://www12.0zz0.com/2017/11/30/19/519339988.jpeg
|