Mr.Rover
26-08-2016, 01:33 AM
السلام عليكم يا شباب انا كنت بتفحص داتابيز عندى ف لقيت فيها السيستم ده كويس جدا
ف حبيت اشاركه مع حضراتكم
شرح السيستم
هو عبارة عن هدية بتوصل للاعب تلقائيا لما بيوصل اخر لفل فى الجيم
طيب فيه سؤال مهم ! هل السيستم موجود على طول ؟
بمعنى ان كل واحد لما يوصل اخر لفل يجيله الهدية ؟ مش هيقف خالص ؟
لأ السيستم بيقف لما بيوصل عدد اللاعبين اللى وصله اخر لفل مثلا 300 لاعب
أو على حسب منتا هتحدد زى مهشرح فى اللى جاى
Create Procedure
USE [SRO_VT_SYSTEMS]
GO
/****** Object: StoredProcedure [dbo].[_Top300Sys] Script Date: 7/22/2016 10:41:05 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[_Top300Sys]
@CharID INT
AS
DECLARE @Count int = (SELECT COUNT(*) FROM SRO_VT_SYSTEMS.dbo._Top300)
,@CharName varchar(64) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK) WHERE CharID = @CharID)
,@UserID VARCHAR(50) = (SELECT UserJID FROM SRO_VT_SHARD.dbo._User WITH(NOLOCK) WHERE CharID = @CharID)
DECLARE @UserID2 VARCHAR(50) = (SELECT AccountID FROM SRO_VT_SHARD.dbo._AccountJID WITH(NOLOCK) WHERE JID = @UserID)
DECLARE @StartC int
SELECT @StartC = CASE WHEN @Count <= '99' THEN '100'
WHEN @Count <= '199' THEN '200'
WHEN @Count <= '299' THEN '300'
ELSE 0 END
DECLARE @RewardNo1 Varchar(65)
, @RewardNo2 Varchar(65)
, @Notice Varchar(512)
, @SilkReward int
SELECT @RewardNo1 = [Reward-No1], @RewardNo2 = [Reward-No2],@SilkReward=SilkCountReward , @Notice = Notice FROM SRO_VT_SYSTEMS.dbo._Top300Reward WITH (NOLOCK) WHERE PlayersCount = @StartC
--- Main Items To Help ---
INSERT INTO SRO_VT_SYSTEMS.dbo._Top300 (CharName,CharID,IsNumb) VALUES (@CharName,@CharID,@Count)
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_COS_P_EXTENSION' ,@data = 1,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_COS_P_RABBIT_SCROLL' ,@data = 1,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_REVERSE_RETURN_SCROLL' ,@data = 10,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_GLOBAL_CHATTING' ,@data = 10,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_PREMIUM_GLOBAL_SILVERTIME' ,@data = 1,@charname = @cNAME ,@opt_level = 0
---- SILK For All Types ----
EXEC SRO_VT_ACCOUNT.[CGI].[CGI_WebPurchaseSilkPServer] @UserID,@SilkReward
ركز بقى معايا واحدة واحدة انا عامل الهدايا تبقى
1- Grap Pet
2- Pet Extension
3- 10x Reverse Scroll
4- 10x Global Chatting
5- Premium Silver Time
لو عايز تغيرها تعمل ايه ؟
http://up.dev-point.com/uploads1/bc511c1fba9b1.png
هتغير الأكواد بتاعتهم و
@data = 1
دى يعنى عدد الأيتم واحدة بس تغيرها على حسب منتا عايز برضو
http://up.dev-point.com/uploads1/bafeccbf26ad3.png
العدد من 1 حتى 300
يعنى السيستم هيقف لما اللاعب رقم 300 يوصل اخر لفل
بعد كده مفيش حاجة هتتبعت تانى
طيب لو عايز اخليها مثلا 500 بدل 300 اعمل ايه ؟
هتبقى كده
http://up.dev-point.com/uploads1/6ebdca1676b62.png
اظن اتفهمت كده انتهينا من الأساسيات
Create Table [ 1 ]
USE [SRO_VT_SYSTEMS]
GO
/****** Object: Table [dbo].[_Top300] Script Date: 7/22/2016 10:41:45 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Top300](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CharName] [varchar](64) NULL,
[CharID] [int] NULL,
[IsNumb] [int] NULL,
CONSTRAINT [PK__Top300] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
Create Table [ 2 ]
USE [SRO_VT_SYSTEMS]
GO
/****** Object: Table [dbo].[_Top300Reward] Script Date: 7/22/2016 10:42:23 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Top300Reward](
[Reward-No1] [varchar](65) NULL,
[Reward-No2] [varchar](65) NULL,
[SilkCountReward] [int] NULL,
[PlayersCount] [int] NULL,
[Notice] [varchar](512) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
_AddLogChar
-- Top #300 --By Mr.Rover
IF @EventID = '22' AND @Data2 = '100'
AND NOT EXISTS (SELECT * FROM SRO_VT_SYSTEMS.dbo._Top300 WITH (NOLOCK) WHERE CharID = @CharID)
BEGIN
EXEC SRO_VT_SYSTEMS.dbo.[_Top300Sys] @CharID
ENDركز بقى ف دى كمان هنا معمول اخر لفل 100
انت عدلها على حسب السيرفر بتاعك اذا كان اكتر أو اقل
http://up.dev-point.com/uploads1/936ac2e34b101.png
Table [ 2 ] Lines :
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 250 100 Hyrray! youre on the top 100 players to reach 100, therefore a reward will be automatically sent to your storage!
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 200 200 Hyrray! youre on the top 200 players to reach 100, therefore a reward will be automatically sent to your storage!
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 180 300 Hyrray! youre on the top 300 players to reach 100, therefore a reward will be automatically sent to your storage!
http://up.dev-point.com/uploads1/7946745f09b79.png
دى معناها ان اول 100 لاعب ياخده 500 سيلك
و ال100 اللى بعديهم 400 سيلك
و ال 100 اللى بعديهم 300 سيلك
عدلها على حسب منتا عايز بقى
فى أمان الله
ف حبيت اشاركه مع حضراتكم
شرح السيستم
هو عبارة عن هدية بتوصل للاعب تلقائيا لما بيوصل اخر لفل فى الجيم
طيب فيه سؤال مهم ! هل السيستم موجود على طول ؟
بمعنى ان كل واحد لما يوصل اخر لفل يجيله الهدية ؟ مش هيقف خالص ؟
لأ السيستم بيقف لما بيوصل عدد اللاعبين اللى وصله اخر لفل مثلا 300 لاعب
أو على حسب منتا هتحدد زى مهشرح فى اللى جاى
Create Procedure
USE [SRO_VT_SYSTEMS]
GO
/****** Object: StoredProcedure [dbo].[_Top300Sys] Script Date: 7/22/2016 10:41:05 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[_Top300Sys]
@CharID INT
AS
DECLARE @Count int = (SELECT COUNT(*) FROM SRO_VT_SYSTEMS.dbo._Top300)
,@CharName varchar(64) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK) WHERE CharID = @CharID)
,@UserID VARCHAR(50) = (SELECT UserJID FROM SRO_VT_SHARD.dbo._User WITH(NOLOCK) WHERE CharID = @CharID)
DECLARE @UserID2 VARCHAR(50) = (SELECT AccountID FROM SRO_VT_SHARD.dbo._AccountJID WITH(NOLOCK) WHERE JID = @UserID)
DECLARE @StartC int
SELECT @StartC = CASE WHEN @Count <= '99' THEN '100'
WHEN @Count <= '199' THEN '200'
WHEN @Count <= '299' THEN '300'
ELSE 0 END
DECLARE @RewardNo1 Varchar(65)
, @RewardNo2 Varchar(65)
, @Notice Varchar(512)
, @SilkReward int
SELECT @RewardNo1 = [Reward-No1], @RewardNo2 = [Reward-No2],@SilkReward=SilkCountReward , @Notice = Notice FROM SRO_VT_SYSTEMS.dbo._Top300Reward WITH (NOLOCK) WHERE PlayersCount = @StartC
--- Main Items To Help ---
INSERT INTO SRO_VT_SYSTEMS.dbo._Top300 (CharName,CharID,IsNumb) VALUES (@CharName,@CharID,@Count)
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_COS_P_EXTENSION' ,@data = 1,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_COS_P_RABBIT_SCROLL' ,@data = 1,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_REVERSE_RETURN_SCROLL' ,@data = 10,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_GLOBAL_CHATTING' ,@data = 10,@charname = @cNAME ,@opt_level = 0
EXEC [SRO_VT_SHARD].[dbo].[_ADD_ITEM_EXTERN] @codename = 'ITEM_MALL_PREMIUM_GLOBAL_SILVERTIME' ,@data = 1,@charname = @cNAME ,@opt_level = 0
---- SILK For All Types ----
EXEC SRO_VT_ACCOUNT.[CGI].[CGI_WebPurchaseSilkPServer] @UserID,@SilkReward
ركز بقى معايا واحدة واحدة انا عامل الهدايا تبقى
1- Grap Pet
2- Pet Extension
3- 10x Reverse Scroll
4- 10x Global Chatting
5- Premium Silver Time
لو عايز تغيرها تعمل ايه ؟
http://up.dev-point.com/uploads1/bc511c1fba9b1.png
هتغير الأكواد بتاعتهم و
@data = 1
دى يعنى عدد الأيتم واحدة بس تغيرها على حسب منتا عايز برضو
http://up.dev-point.com/uploads1/bafeccbf26ad3.png
العدد من 1 حتى 300
يعنى السيستم هيقف لما اللاعب رقم 300 يوصل اخر لفل
بعد كده مفيش حاجة هتتبعت تانى
طيب لو عايز اخليها مثلا 500 بدل 300 اعمل ايه ؟
هتبقى كده
http://up.dev-point.com/uploads1/6ebdca1676b62.png
اظن اتفهمت كده انتهينا من الأساسيات
Create Table [ 1 ]
USE [SRO_VT_SYSTEMS]
GO
/****** Object: Table [dbo].[_Top300] Script Date: 7/22/2016 10:41:45 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Top300](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CharName] [varchar](64) NULL,
[CharID] [int] NULL,
[IsNumb] [int] NULL,
CONSTRAINT [PK__Top300] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
Create Table [ 2 ]
USE [SRO_VT_SYSTEMS]
GO
/****** Object: Table [dbo].[_Top300Reward] Script Date: 7/22/2016 10:42:23 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Top300Reward](
[Reward-No1] [varchar](65) NULL,
[Reward-No2] [varchar](65) NULL,
[SilkCountReward] [int] NULL,
[PlayersCount] [int] NULL,
[Notice] [varchar](512) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
_AddLogChar
-- Top #300 --By Mr.Rover
IF @EventID = '22' AND @Data2 = '100'
AND NOT EXISTS (SELECT * FROM SRO_VT_SYSTEMS.dbo._Top300 WITH (NOLOCK) WHERE CharID = @CharID)
BEGIN
EXEC SRO_VT_SYSTEMS.dbo.[_Top300Sys] @CharID
ENDركز بقى ف دى كمان هنا معمول اخر لفل 100
انت عدلها على حسب السيرفر بتاعك اذا كان اكتر أو اقل
http://up.dev-point.com/uploads1/936ac2e34b101.png
Table [ 2 ] Lines :
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 250 100 Hyrray! youre on the top 100 players to reach 100, therefore a reward will be automatically sent to your storage!
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 200 200 Hyrray! youre on the top 200 players to reach 100, therefore a reward will be automatically sent to your storage!
ITEM_COS_P_EXTENSION ITEM_COS_P_RABBIT_SCROLL 180 300 Hyrray! youre on the top 300 players to reach 100, therefore a reward will be automatically sent to your storage!
http://up.dev-point.com/uploads1/7946745f09b79.png
دى معناها ان اول 100 لاعب ياخده 500 سيلك
و ال100 اللى بعديهم 400 سيلك
و ال 100 اللى بعديهم 300 سيلك
عدلها على حسب منتا عايز بقى
فى أمان الله