|
• الانـتـسـاب » Mar 2014
|
• رقـم العـضـويـة » 116941
|
• المشـــاركـات » 769
|
• الـدولـة » TanTa
|
• الـهـوايـة » SilkRoaD
|
• اسـم الـسـيـرفـر » Pavo
|
• الـجـنـس » Male
|
• نقـاط التقييم » 88
|
|
|
رد: Top 300 Reward System
تسلم ايديك يامعلم على المشاركه ^_^
بعد التجربه فى حاجات خفيفة اوى ناقصه بالنسبة للمبتدا ممكن يلاقيها صعبه شوية بالنسباله
فا انا هقول عليها علشان لو حد واجه مشكله ولا حاجه بس السيستم انا جربتو و شغال تمام
اول حاجة انت ناسى declare @cName
وتانى حاجة و الاخيرة ناسى بروسيدور بتاع الاهيدى سيلك
هيا حاجات عبيطه بس صعبة بالنسبة للجديد الا مش عارف فى ال sql
نيجى بقى للفكره الا انت عاوز تضيفها
انا عاملها انها تشتغل على برنامج Vsro Multi tools
ضيف السطر دا فى اخر البروسيدور
كود PHP:
INSERT INTO SRO_VT_SHARDLOG..iLegend_Tool ([Service],[Type],[Message],[Date]) Values ('1','Notice','[' +@CharName + '] Has Reached Max Level Congratz You Are ['+ CAST(@Count AS NVARCHAR) +'/300]',GETDATE())
او هتغير بس البروسيدور الا معاك بدا
كود PHP:
USE [SRO_VT_SHARDLOG]
GO
/****** Object: StoredProcedure [dbo].[_Top300Sys] Script Date: 8/30/2016 2:35:30 AM ******/
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_SHARDLOG.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_SHARDLOG.dbo._Top300Reward WITH (NOLOCK) WHERE PlayersCount = @StartC
--- Main Items To Help ---
DECLARE @cNAME Varchar(max)
INSERT INTO SRO_VT_SHARDLOG.dbo._Top300 (CharName,CharID,IsNumb) VALUES (@CharName,@CharID,@Count)
INSERT INTO SRO_VT_SHARDLOG..iLegend_Tool ([Service],[Type],[Message],[Date]) Values ('1','Notice','[' +@CharName + '] Has Reached Max Level Congratz You Are ['+ CAST(@Count AS NVARCHAR) +'/300]',GETDATE())
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 ACCOUNT_NOOB_TO.[CGI].[CGI_WebPurchaseSilk_Own] @UserID,@SilkReward
فى البروسيدور انزل عند سطر دا
كود PHP:
INSERT INTO SRO_VT_SHARDLOG..iLegend_Tool ([Service],[Type],[Message],[Date])
وغير مكان داتا بيز بتاعت البرنامج
و الشغال بالبروسيدور الا انا معدل عليه يعمل بروسيدور دا علشان السيلك
كود PHP:
USE [ACCOUNT_NOOB_TO]
GO
/****** Object: StoredProcedure [CGI].[CGI_WebPurchaseSilk_Own] Script Date: 8/30/2016 2:43:31 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
-- =============================================
-- Author: Abdelrhman Elbattawy
-- =============================================
Create PROCEDURE [CGI].[CGI_WebPurchaseSilk_Own]
@UserID INT,
@NumSilk INT
as
DECLARE @SilkRemain INT
DECLARE @OrderID INT
set @SilkRemain = 0
--DECLARE @PointRemain INT
-- BEGIN TRANSACTION
IF( not exists( SELECT * from SK_Silk where JID = @UserID))
BEGIN
INSERT SK_Silk(JID,silk_own,silk_gift,silk_point)VALUES(@UserID,@NumSilk,0,0)
--UPDATE Silk Own
END
ELSE
BEGIN
SET @SilkRemain = CGI.getSilkOwn(@UserID)
UPDATE SK_Silk SET silk_own = silk_own + @NumSilk WHERE JID = @UserID
--INSERT Silk Own
END
SELECT @OrderID = cast(MAX(OrderNumber)+1 as INT) FROM SK_SilkBuyList WHERE UserJID = @UserID
IF(@OrderID is NULL)
BEGIN
set @OrderID = 0
END
INSERT SK_SilkBuyList(UserJID,Silk_Type,Silk_Reason,Silk_Offset,Silk_Remain,ID,BuyQuantity,SlipPaper,RegDate,OrderNumber) VALUES( @UserID,0,0,@NumSilk,@SilkRemain + @NumSilk,0,1,"User Purchase Silk from VDC-Net2E Billing System",GETDATE(),@OrderID)
INSERT SK_SilkChange_BY_Web(JID,silk_remain,silk_offset,silk_type,reason) VALUES(@UserID,@SilkRemain + @NumSilk,@NumSilk,0,4)
IF (@@error <> 0 or @@rowcount = 0)
BEGIN
SELECT Result = "FAIL"
-- ROLLBACK TRANSACTION
RETURN
END
SELECT Result = "SUCCESS"
-- COMMIT TRANSACTION
RETURN
SET QUOTED_IDENTIFIER OFF
GO
|