الموضوع: طلب new payment device
عرض مشاركة واحدة
قديم 16-09-2014, 10:32 PM   #5

komnda
عضو سوبر


KomNDA

الصورة الرمزية komnda


• الانـتـسـاب » Jan 2013
• رقـم العـضـويـة » 109373
• المشـــاركـات » 2,820
• الـدولـة » الجيزه )))))))) kOMNDA (((((((((((
• الـهـوايـة » مساعده الاعضاء واحترام الاخرين
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 1574
komnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزهkomnda منفـرد بتميـزه

komnda غير متواجد حالياً

1429  


إرسال رسالة عبر Yahoo إلى komnda

افتراضي



بوص يا ريس قبل اى حاجه خد باك اب تمام
بعد كده حضرتك شوف الكويرى ده هوا تقريبا شوف كده عدل على الكويرى واعملو وشوف
اتفضل

كود PHP:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_STRG_ADD_PACKAGEITEM_CORE]    Script Date: 07/10/2012 15:30:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--        
»أ³أپآ،°³أ†أ* (أƒأ–¼±أˆ£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ALTER      PROCEDURE [dbo].[_STRG_ADD_PACKAGEITEM_CORE]
    @
Operation        tinyint,
    @
CharID        int,
    @
PaymentDevice    int,
    @
RefPackageItemID    int,
    @
Count            smallint,
    @
RemainGold        bigint,
    @
OwnSilkToPay    int,
    @
GiftSilkToPay    int,
    @
OffsetOptionalPoint    int,    
    @
MileageToPay        int,
    @
createrName        varchar(17)
AS

    declare @
PackageItemCodeName varchar(129)    
    declare @
RefItemCodeName    varchar(129)
    declare @
RefItemID    int
    
declare @OptLevel    tinyint
    
declare @Variance    bigint
    
declare @Data        int
    
declare @MagParamNum    tinyint
    
declare @MagParam1    bigint
    
declare @MagParam2    bigint
    
declare @MagParam3    bigint
    
declare @MagParam4    bigint
    
declare @MagParam5    bigint
    
declare @MagParam6    bigint
    
declare @MagParam7    bigint
    
declare @MagParam8    bigint
    
declare @MagParam9    bigint
    
declare @MagParam10    bigint
    
declare @MagParam11    bigint
    
declare @MagParam12    bigint
    
declare @ScrapItemCount    int
    
declare @EmptySlotCount    int
    
declare @InventorySize     int
    
declare @PackageItemCount tinyint

--------------------------
--<< 
1. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> -- أپأ–أˆ
--------------------------
--    -- 
#define SP_BUY_ITEM                    (BYTE)8
--    -- #define SP_BUY_ITEM_COS                (BYTE)19
--    -- #define SP_BUY_CASH_ITEM                (BYTE)24        
--    -- أ‡أ¶أ€ç´أ‚ sp_buy_itemsp_buy_item_cos,sp_buy_cash_item  ¸¸ µé¾î آ؟أƒ ¼أ¶ أ€أ–´أ™.
--    -- 
»أ³أپآ،آ؟آ،¼*¸¸ ±¸¸أ… أ‡أ’ ¼أ¶ أ€أ–´أ™.
--    if @
Operation <> and @Operation <> 19  and @Operation <> 24 

--------------------------
--<< 
1. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
    -- 
#define SP_BUY_ITEM                (BYTE)8
    
-- #define SP_BUY_ITEM_COS                (BYTE)19
    
-- #define SP_BUY_CASH_ITEM                (BYTE)24        
    
-- #define SP_BUY_ITEM_WITH_TOKEN            (BYTE)43    
    
-- أ‡أ¶أ€ç´أ‚ sp_buy_itemsp_buy_item_cos,sp_buy_cash_item  ¸¸ µé¾î آ؟أƒ ¼أ¶ أ€أ–´أ™.  
     -- 
»أ³أپآ،آ؟آ،¼*¸¸ ±¸¸أ… أ‡أ’ ¼أ¶ أ€أ–´أ™.  
     if @
Operation <> and @Operation <> 19  and @Operation <> 24   and  @Operation <> 43

    begin
        
return -1
    end

    
-- أ€أژآ؛¥أ…أ¤¸®أ€أ‡ ½½·أ” °¹¼أ¶ ¾أ‹¾أ†³»¾أںأپأ¶.
--------------------------
--<< 
2. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> --  أپأ–أˆ*
--------------------------
--    
set @InventorySize 0
--    if @Operation or @Operation 24
--------------------------
--<< 
2. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --  أپأ–أˆ*
--------------------------
    -- 
أ€أژآ؛¥أ…أ¤¸®أ€أ‡ ½½·أ” °¹¼أ¶ ¾أ‹¾أ†³»¾أںأپأ¶.
    
set @InventorySize 0
    
if @Operation or @Operation 24 or @Operation 43
    begin
        select 
@InventorySize InventorySize
        from _Char
        where CharID 
= @CharID
    end
    
else if @Operation 19
    begin
        select 
@InventorySize InventorySize
        from _RefObjChar with 
(nolock)
        
where id 
        (
select Link
        from _RefObjCommon with 
(nolock)
        
where ID = (select RefCharID from _CharCos where id = @CharId))

    
end

    
-- أ€أژآ؛¥أ…أ¤¸® ¾أ¸´أ‚³أ°أ€أŒ´أ™.
    if @
InventorySize 0
    begin
        
return -2
    end
    
    
-- أ€أژآ؛¥أ…أ¤¸®آ؟آ،´أ‚ آ؛أ³½½·أ”أ€أŒ ¸î°³³آھ أ€أ–³آھ?
--------------------------
--<< 
3. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
--    
set @EmptySlotCount 0
--    if @Operation or @Operation 24
--------------------------
--<< 
3. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
    
set @EmptySlotCount 0
    
if @Operation or @Operation 24 or @Operation 43

    begin
        select 
@EmptySlotCount count(*)
        
from _Inventory
        where charid 
= @CharID AND 13  <= Slot and Slot < @InventorySize and ItemID 0
    end
    
else if @Operation 19
    begin
        select 
@EmptySlotCount count(*)
        
from _InvCos
        where CosID 
= @CharID AND  Slot < @InventorySize and ItemID 0
    end

    select 
@PackageItemCodeName CodeName128
    from _RefPackageItem
    where ID 
= @RefPackageItemID

    
if @@rowcount 0
    begin
        
return -4
    end
    
    
-- ´أœأ‡°أ€أŒ³أ„?
    
exec @ScrapItemCount _GetScrapItemCount @PackageItemCodeName
    
    
-- أ€أژآ؛¥أ…أ¤¸®آ؟آ، أ†أگأ…°أپأ¶ ¾أ†أ€أŒأ…أ› µé¾î °¥¼أ¶ أ€أ–´أڈ?
    
exec @PackageItemCount _GetNeededSlotCountByBuyPackageItem @PackageItemCodeName, @Count
    
if @PackageItemCount > @EmptySlotCount
    begin
        
return -3
    end

    
-- أ€أڈ´أœ clear أ‡أ‘¹أ¦ أ‡أکأپأ–°أ½أƒأ€أ›أ‡أڈأ€أڑ.
    
delete _ResultOfPackageItemToMappingWithServerSide where CharId = @CharID

BEGIN TRANSACTION t2

    
declare package_cursor  cursor fast_forward for    
    
    -- 
أ†أگأ…°أپأ¶ ¾أ†أ€أŒأ…أ›آ؟آ، µé¾î أ€أ–´أ‚ ¾أ†أ€أŒأ…أ›µéأ€» ²¨³»آ؟أ‚´أ™.
    
select RefItemCodeNameOptLevelVarianceDataMagParamNum,
        
MagParam1MagParam2MagParam3MagParam4,
        
MagParam5MagParam6MagParam7MagParam8,
        
MagParam9MagParam10MagParam11MagParam12        
    from _RefScrapOfPackageItem with 
(nolock)
    
where RefPackageItemCodeName = @PackageItemCodeName AND Service 1

    open package_cursor

    fetch next from package_cursor into 
@RefItemCodeName, @OptLevel, @Variance, @Data, @MagParamNum,
                @
MagParam1, @MagParam2, @MagParam3, @MagParam4,
                @
MagParam5, @MagParam6, @MagParam7, @MagParam8,
                @
MagParam9, @MagParam10, @MagParam11, @MagParam12

    
while @@fetch_status 0
    begin    

        
-- ¾أ†أ€أŒأ…أ›أ€أ‡ أ…¸أ€أ”أ€» ¾أ²¾îآ؟أچ¶أ³.
        declare @
TypeID1    tinyint
        
declare @TypeID2    tinyint        declare @TypeID3    tinyint
        
declare @TypeID4    tinyint

        select 
@RefItemID id, @TypeID1 TypeID1, @TypeID2 TypeID2, @TypeID3 TypeID3, @TypeID4 TypeID4
        from _RefObjCommon with 
(nolock)
        
where CodeName128 = @RefItemCodeName
    
        
-- ¾أ†أ€أŒأ…أ›أ€» أ‡أڈ³آھ¾آ؟ ½½·أ”آ؟آ، ³أ–¾îأپà¶أ³.
        declare @
NewItemID bigint
        
declare @LatestItemSN bigint
        
        
-- أ†أگأ…°أپأ¶ أ€أڑأƒ¼¸¦ آ؟©·¯°³ »أ¬ ¼أ¶ أ€أ–أ€¸¹أ‡·أژ
        declare @
PackageCount int
        set 
@PackageCount 0

        
-- أ†أگأ…°أپأ¶ ¾أ†أ€أŒأ…أ›¾أˆآ؟آ، أ‡أ‘°³¸¸ µé¾î أ€أ–´أ™¸éآ؟¹أ€ü°أ؛ °°أ€أŒ
        
-- ¾أ†أ€أŒأ…أ› °³¼أ¶¸¦ أپأ¶أپ¤أ‡أ’ ¼أ¶ أ€أ–´أ™.
        if @
ScrapItemCount 1
        begin
            
-- expandable أ€أŒ°أ¼أ¶·®أ€أŒ ¼¼أ†أƒ µأ‡¾î أ€أ–أپأ¶ ¾أٹأ€¸¸é ³أ‘¾îآ؟أ‚ °آھأ€¸·أژ ¼أ¶·® ¼¼أ†أƒ أ‡أک¾أںأپأ¶.
            if @
TypeID1 and @TypeID2 and @Data 0
            begin
                set 
@Data = @Count
            end
        end        

        
while (@PackageCount < @PackageItemCount)
        
begin
            
----------------------------------------------------------
            -- 
Step1¹«°أ،¼آ؛ °أ‹»ç
            
----------------------------------------------------------    

--------------------------
--<< 
4. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
    --        declare @
FirstEmptySlotIndex tinyint
    
    
--        set @FirstEmptySlotIndex 255
    
            
-- أ€أژآ؛¥آ؟آ، ³أ–أ€»°÷أ€» أƒ£¾أ†¶أ³.
    --        if @
Operation or @Operation 24

--------------------------
--<< 
4. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------

            declare @
FirstEmptySlotIndex tinyint
            
            set 
@FirstEmptySlotIndex 255
            
            
-- أ€أژآ؛¥آ؟آ، ³أ–أ€»°÷أ€» أƒ£¾أ†¶أ³.
            if @
Operation or @Operation 24 or @Operation 43

            begin
                exec _Find_First_Empty_Slotindex_Inventory 
@FirstEmptySlotIndex output, @CharID
            end
            
else if @Operation 19
            begin
                exec _Find_First_Empty_Slotindex_Inventory_Cos 
@FirstEmptySlotIndex output, @CharID
            end

            
-- ½½·أ”آ؟آ، °أ¸°£أ€أŒ ¾أ¸أ€أڑ³×?
            if @
FirstEmptySlotIndex 255
            begin
                ROLLBACK TRANSACTION t2
                close package_cursor
                deallocate package_cursor
                
return -3
            end

            
-- ¾أ†أ€أŒأ…أ›µµ ¾أ†´أ‘µ¥?
            if @
TypeID1 <> 
            begin
                ROLLBACK TRANSACTION t2
                close package_cursor
                deallocate package_cursor
                
return -4
            end            

            set 
@NewItemID 0
            set 
@LatestItemSN 0

            
-- expandables or container
            
if @TypeID2 or @TypeID2 2
            begin
                
-- EnchantAttrStone and EnchantMagicStone
                
if @TypeID3 11 and (@TypeID4 or @TypeID4 1)
                
begin
                    exec _STRG_ADD_ALCHEMYSTONE_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Data
                end
                
--GachaExchangingCard
                
else if @TypeID3 14 and @TypeID4 2
                begin

                    exec _STRG_ADD_ITEM_MAGIC_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data,
                        @
MagParamNum, @MagParam1, @MagParam2, @MagParam3, @MagParam4,
                        @
MagParam5, @MagParam6, @MagParam7, @MagParam8,
                        @
MagParam9, @MagParam10, @MagParam11, @MagParam12
                end
                
-- Specialty
                
else if @TypeID3 8
                begin

                    exec _STRG_ADD_SPECIALTY_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex,  @RefItemID, @Data, @createrName
                    
                end
                
-- etc
                
else
                
begin
                    exec _STRG_ADD_EXPENDABLE_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID,  @FirstEmptySlotIndex, @RefItemID, @Data
                end
                
            end
            
-- equip
            
else if @TypeID2 
            begin

                
-- normal
                
if @MagParamNum 0
                begin
                    exec _STRG_ADD_EQUIP_NORMAL_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data
                end
                
-- magic
                
else                    
                
begin

                    exec _STRG_ADD_ITEM_MAGIC_NoTX 
@NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data,
                        @
MagParamNum, @MagParam1, @MagParam2, @MagParam3, @MagParam4,
                        @
MagParam5, @MagParam6, @MagParam7, @MagParam8,
                        @
MagParam9, @MagParam10, @MagParam11, @MagParam12
                    
                end
            end
    
            
IF (@NewItemID <= 0)
            
BEGIN
                ROLLBACK TRANSACTION t2
                close package_cursor
                deallocate package_cursor
                
RETURN -5
            END
                
            
---------------------------------------------------------------
            -- 
Step5¼*¹أ¶أ‚أٹآ؟آ،¼¸أ‍¸أ°¸®»أ³أ€أ‡ أ€¯أ€أ؛ أ€أژآ؛¥أ…أ¤¸®آ؟أچ µأ°آ؛أ± أ€¯أ€أ؛ أ€أژآ؛¥أ…أ¤¸®آ؟أچأ€أ‡ 
            
--            ¹«°أ،¼آ؛ أƒ¼أ…©¸¦ أ€§أ‡أک ¼*¹أ¶أ‚أٹأ€¸·أژ °أ،°أ؛¸¦ ³أ‘°أœأپأ–±â أ€§أ‡أ‘ أ€أ›¾÷
            
---------------------------------------------------------------

--------------------------
--<< 
5. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
        --    
insert into _ResultOfPackageItemToMappingWithServerSide
        
--    values (@Operation, @CharID, @FirstEmptySlotIndex, @LatestItemSN, @NewItemID, @RefItemID0)
--------------------------
--<< 
5. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
            
insert into _ResultOfPackageItemToMappingWithServerSide
            values 
(@Operation, @CharID, @FirstEmptySlotIndex, @LatestItemSN, @NewItemID, @RefItemID01)
            
            IF (@@
ERROR <> OR @@ROWCOUNT <= 0)
            
BEGIN
                ROLLBACK TRANSACTION t2
                close package_cursor
                deallocate package_cursor
                
RETURN -6
            END

            set 
@PackageCount = @PackageCount 1
        end

        fetch next from package_cursor into 
@RefItemCodeName, @OptLevel, @Variance, @Data, @MagParamNum,
                @
MagParam1, @MagParam2, @MagParam3, @MagParam4,
                @
MagParam5, @MagParam6, @MagParam7, @MagParam8,
                @
MagParam9, @MagParam10, @MagParam11, @MagParam12
    end    

        
    close package_cursor
    deallocate package_cursor    

--------------------------
--<< 
6. أƒأں°آ،µأ‰ أ„أڑµأ¥ >> --
--------------------------
    --@@@@@@@@@@@@@@@@@
    -- 
أپأ–أˆ¾أ†أ€أŒأ…أ› أƒأں°آ،     by kkongs
    
--@@@@@@@@@@@@@@@@@

    -- 
أپأ–أˆ*·أژ ±¸أ€أ”أ‡أڈ´أ‚ ¾أ†أ€أŒأ…أ›أ€أŒ¸é أ€أڈ´أœ أپأ–أˆ¾أ†أ€أŒأ…أ›أ€» »èأپ¦أ‡أکأپأ–أ€أڑ!!!
    if(@
Operation 43) -- SP_BUY_ITEM_WITH_TOKEN
    begin
    
-- << TokenType >>
    -- 
1. أˆ²µآ؟ PAYMENT_DEVICE_TOKEN_BRASS(64)
    -- 
2. °*أƒ¶ PAYMENT_DEVICE_TOKEN_STEEL(128)
    -- 
3. أپأ¸أ€آ؛ PAYMENT_DEVICE_TOKEN_SILVER(256)
    -- 
4. أˆ²±أ‌ PAYMENT_DEVICE_TOKEN_GOLD(512)
    -- 
5. أ„أڑأ€أژ PAYMENT_DEVICE_TOKEN_MEDAL(1024)
    -- 
5. أ„أڑأ€أژ PAYMENT_DEVICE_TOKEN_UPGADE(2048)

        declare @
TokenID             int
        
declare @RequireTokenCost         int
        
declare @CharTokenCost        int
        
declare @Error_Code             int
        
declare @TokenType             int
        
declare @TokenCodeName         varchar(129)
        declare @
CharName16         varchar(64)
    
        declare @
ID64            bigint
        
declare @Slot            tinyint
        
declare @Cost             int
        
declare @ItemID            int

        
-- أ„³¸¯أ…أچ¸أ*أ€» ¾أ²¾îآ؟أ€أ€أڑ!!!
        
select @CharName16 CharName16 from _Char with (nolockwhere CharID = @CharID
        set 
@TokenType 64 --PAYMENT_DEVICE_TOKEN_BRASS(أˆ²µآ؟)
        while(@
TokenType in (64128256512,1024,2048)) -- أپأ–أˆ*أ…¸أ€أ”آ؛°·أژ ´أ™ أˆ®أ€أژأ‡أک آ؛¸أ€أڑ!!!
        
begin
            
if(@PaymentDevice & @TokenType <> 0
            
begin
                set 
@TokenID 0
                set 
@RequireTokenCost 0
                set 
@CharTokenCost 0
                    
                
if(@TokenType 64)
                
begin
                    set 
@TokenCodeName 'ITEM_ETC_SD_TOKEN_01'
                
end
                
else if (@TokenType 128)
                
begin
                    set 
@TokenCodeName 'ITEM_ETC_SD_TOKEN_02'
                
end
                
else if (@TokenType 256)
                
begin
                    set 
@TokenCodeName 'ITEM_ETC_SD_TOKEN_03'
                
end
                
else if (@TokenType 512)
                
begin
                    set 
@TokenCodeName 'ITEM_ETC_SD_TOKEN_04'
                
end
                
else if (@TokenType 1024)
                
begin
                    set 
@TokenCodeName 'ITEM_ETC_ARENA_COIN'
                
end
                
if(@TokenType 2048)
                
begin
                    set 
@TokenCodeName 'ITEM_CH_TBLADE_11_C_RARE'
                
end
                select 
@TokenID ID  from _RefObjCommon with(nolockwhere CodeName128 = @TokenCodeName
                
--أ‡أک´ç ¾أ†أ€أŒأ…أ›أ€أŒ ¾أ¸´أ™´أ‚ ¼أ’¸®³أ„¸»µµ ¾أˆµأˆ´أ™!!!
                if(@
TokenID 0)
                
begin
                    ROLLBACK TRANSACTION t2
                    
return -100
                end
                
                
-- أ€أژآ؛¥أ…أ¤¸®آ؟آ،¼أ‡أک´ç أپأ–أˆأ…¸أ€أ”أ€أ‡ ¾أ†أ€أŒأ…أ›µéأ€» °أ‹»أ¶أ‡أڈأ€أڑ!!!
                
select I.ID64I.RefItemIDInv.slotI.data into #TokenItem from _Inventory  as Inv with (nolock)
                    
join _Items as I with (nolockon Inv.ItemID I.ID64
                    join _ItemPool 
as IP with (nolockon I.ID64 IP.ItemID
                where Inv
.CharID = @CharID and IP.Inuse and I.RefItemID = @TokenID
                order by Inv
.slot
                
--أپأ–أˆ*°آ، ¾أ¸´أ™¸é!!!¸»أ€أŒ ¾أˆµأˆ´أ™!!! °أ”أ€أ“»أ³آ؟آ،´أ‚ أ€أŒ¹أŒ »èأپ¦¸¦ أ‡أکأپأ،´أ‚µ¥DBآ؟آ،´أ‚ ¾أ¸´أ™°أ*???
                if(@@
rowcount 0)
                
begin
                    ROLLBACK TRANSACTION t2
                    
return -101
                end
                
-- ¾أ†أ€أŒأ…أ›أ€» ±¸أ€أ”أ‡أڈ´أ‚µ¥ أ‡أٹآ؟أ¤أ‡أ‘ أپأ–أˆ*أ€أ‡ °¹¼أ¶!!!
                
select @RequireTokenCost Cost * @Count  from _RefPricePolicyOfItem with (nolockwhere RefPackageItemCodeName = @PackageItemCodeName and PaymentDevice = @TokenType
                
-- ½أ‡أپ¦·أژ أ€¯أ€أ؛°آ، °آ،أپأ¶°أأ€أ–´أ‚ أ…أ¤أ…« °¹¼أ¶!!!
                
select @CharTokenCost sum(datafrom #TokenItem
                
if(@RequireTokenCost > @CharTokenCost)
                
begin
                    
declare @Result_Slot tinyint  
                     
declare @Result_RefItemSerial64 bigint  
                     
declare @Result_RefItemDBID bigint  
                     
declare @Result_RefItemID int  
                     
declare @Result_Type tinyint  
                     
declare @Result_SubType tinyint  
                  
                     set 
@Result_Slot 0x4a -- error_num ¼*¹أ¶آ؟آ،¼»çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯  
                    set 
@Result_RefItemSerial64 0  
                    set 
@Result_RefItemDBID 0  
                    set 
@Result_RefItemID 0  
                    set 
@Result_Type 2
                     set 
@Result_SubType 0  

                    select 
@Operation, @Result_Slot, @Result_RefItemSerial64, @Result_RefItemDBID, @Result_RefItemID, @Result_Type, @Result_SubType   
          
                    ROLLBACK TRANSACTION t2
                    
return -102
                end
                
else
                
begin
                    
declare Token_cursor cursor fast_forward for
                    
select ID64RefItemIDSlotData from #TokenItem
                    
                    
open Token_cursor
                    fetch next from Token_cursor into 
@ID64, @ItemID, @Slot, @Cost

                    
while @@fetch_status 0
                    begin
                        
if(@RequireTokenCost >= @Cost)
                        
begin
                            
--¾أ†أ€أŒأ…أ›أ€» »èأپ¦أ‡أک أپأ–أ€أڑ!!!
                            
exec @Error_Code _STRG_DEL_ITEM 15, @CharID, @Slot0  
                            
if(@Error_Code 0)
                            
begin
                                ROLLBACK TRANSACTION t2
                                close Token_cursor
                                deallocate Token_cursor
                                
return -103
                            end
                            set 
@RequireTokenCost = @RequireTokenCost - @Cost
                            set 
@Cost 0
                        end
                        
else
                        
begin
                            
--°¹¼أ¶¸¸ أ‚÷°¨µأ‡´أ‚ °أچأ€أŒ¹أ‡·أژupdateأ‡أکأپأ–أ€أڑ!!!
                            
set @Cost = @Cost - @RequireTokenCost
                            set 
@RequireTokenCost 0
                            update _Items set Data 
= @Cost where ID64 = @ID64
                        end
                        insert into _ResultOfPackageItemToMappingWithServerSide
                        values 
(@Operation, @CharID, @Slot,@Cost, @TokenType, @ItemID02)
                        IF (@@
ERROR <> OR @@ROWCOUNT <= 0)
                        
BEGIN
                            ROLLBACK TRANSACTION t2
                            close Token_cursor
                            deallocate Token_cursor
                            
RETURN -104
                        END
                            
-- أ‡أٹآ؟أ¤أ‡أ‘ أپأ–أˆ*¸¦ ´أ™ أ‚÷°¨أ‡أں´أ™¸é...
                        if(@
RequireTokenCost 0)
                        
begin
                            
break
                        
end
                    fetch next from Token_cursor into 
@ID64, @ItemID, @Slot, @Cost
                    end
                    
                    
-- ¼³¸¶;;;;
                    if(@
RequireTokenCost 0)
                    
begin
                            ROLLBACK TRANSACTION t2
                            close Token_cursor
                            deallocate Token_cursor
                            
RETURN -105
                    end
                    close Token_cursor
                    deallocate Token_cursor
                    drop table 
#TokenItem
                
end
            end
            
--´أ™أ€½ أپأ–أˆأ…¸أ€أ”أ€» °أ‹»çأ‡أڈ±â أ€§أ‡أک!!!
            
set @TokenType = @TokenType 2
        end
    end        


----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------

    
COMMIT TRANSACTION t2

    
-- °آ،°أ‌ آ؛أژأ…أچ ±î³أ¶.
    declare @
result int
    exec 
@result _UPDATE_COST @Operation, @CharID, @PaymentDevice, @PackageItemCodeName, @RemainGold, @OwnSilkToPay, @GiftSilkToPay, @OffsetOptionalPoint, @MileageToPay
    
IF (@@ERROR <> OR @result 0)
    
BEGIN
        
--------------------------------------------------------------------
        -- 
¼أ¶µآ؟ rollback !!!
        --------------------------------------------------------------------
        -- 
step 1. inventory أƒ»¼أ’
        
if (@Operation <> 19)
        
begin
            
-- Type 0¾أ†أ€أŒأ…أ› °ü·أƒ record¶أ³´أ‚ °أ…´أ™. (µ·±î´أ‚ أپ¤آ؛¸¸¦ ´أ£´أ‚ record´أ‚ Type1 أ€أŒ´أ™)
            
update _Inventory set ItemID 
            where CharID 
= @CharID
                
and ItemID in 
                
(select RefItemDBID 
                from _ResultOfPackageItemToMappingWithServerSide 
                where CharID 
= @CharID and Type 0
        
end
        
else
        
begin
            update _InvCOS set ItemID 

            where COSID 
= @CharID
                
and ItemID in 
                
(select RefItemDBID 
                from _ResultOfPackageItemToMappingWithServerSide 
                where CharID 
= @CharID and Type 0)
        
end

        
-- step 2. Item ¹أ‌³³
        update _Items set Serial64 

        where ID64 in
            
(select RefItemDBID 
            from _ResultOfPackageItemToMappingWithServerSide 
            where CharID 
= @CharID and Type 0

        
update _ItemPool set InUse 
        where ItemID in
            
(select RefItemDBID 
            from _ResultOfPackageItemToMappingWithServerSide 
            where CharID 
= @CharID and Type 0

        -- 
by novice2010-01-15 آ؟آ،·¯أ„أڑµأ¥ µ¥أ€أŒأ…أچأ‡ü أˆ®أ€أ¥
--------------------------
--<< 
7. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> --
--------------------------
--        -- declare @
temp_Slot            tinyint
--        declare @temp_Slot                int
--        declare @temp_RefItemSerial64    bigint
--        declare @temp_RefItemDBID        bigint
--        declare @temp_RefItemID            int    
--        declare @temp_Type                tinyint
--        declare @temp_SubType           tinyint  

--        -- by novice2010-01-15 آ؟آ،·¯أ„أڑµأ¥ µ¥أ€أŒأ…أچأ‡ü أˆ®أ€أ¥
--        -- 0x00 ¶أ³¼SRO_SP_ERR °أ؛ SROERR Binding أ€» أ‡أڈأپأ¶ ¾أٹ¾أ’´أ™
--        -- set @temp_Slot 0x00    -- error_num ¼*¹أ¶آ؟آ،¼»çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯
--        set @temp_Slot 0x00        -- error_num ¼*¹أ¶آ؟آ،¼»çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯
--        set @temp_RefItemSerial64 0
--        set @temp_RefItemDBID 0
--        set @temp_RefItemID 0
--        set @temp_Type 2
--        set @temp_SubType 0

--        select @Operation, @temp_Slot, @temp_RefItemSerial64, @temp_RefItemDBID, @temp_RefItemID, @temp_Type
--    END
--    else
--    
begin
--            select OperationslotRefItemSerial64RefItemDBIDRefItemIDType  
--            from _ResultOfPackageItemToMappingWithServerSide
--            where CharId = @CharID and Operation = @Operation

--------------------------
--<< 
7. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --
--------------------------
        declare @
temp_Slot            tinyint
        
declare @temp_RefItemSerial64        bigint
        
declare @temp_RefItemDBID        bigint
        
declare @temp_RefItemID        int    
        
declare @temp_Type            tinyint
        
declare @temp_SubType           tinyint  

        set 
@temp_Slot 0x00    -- error_num ¼*¹أ¶آ؟آ،¼»çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯
        set 
@temp_RefItemSerial64 0
        set 
@temp_RefItemDBID 0
        set 
@temp_RefItemID 0
        set 
@temp_Type 2
        set 
@temp_SubType 0

        select 
@Operation, @temp_Slot, @temp_RefItemSerial64, @temp_RefItemDBID, @temp_RefItemID, @temp_Type, @temp_SubType
    END
    
else
    
begin
        
if(@Operation 43) --أپأ–أˆ¾أ†أ€أŒأ…أ› ±¸أ€أ”أ€أŒ¸é..    
        
begin
            select Operation
slotRefItemSerial64RefItemDBIDRefItemIDTypeSubType 
            from _ResultOfPackageItemToMappingWithServerSide
            where CharId 
= @CharID and Operation in (1543
            
Order by OperationRefItemDBIDSlot -- أپأ–أˆأ…¸أ€أ”°أ؛ ½½·أ”¹أ¸أˆ£·أژ أپ¤·أ„أ‡أڈأ€أڑ!!!
            --
Operation أپأ–أˆ*·أژ ¾أ†أ€أŒأ…أ› ±¸أ€أ”(43)°أ؛ أپأ–أˆ*¾أ†أ€أŒأ…أ› »èأپ¦(15)
        
end
        
else
        
begin
            select Operation
slotRefItemSerial64RefItemDBIDRefItemIDTypeSubType  
            from _ResultOfPackageItemToMappingWithServerSide
            where CharId 
= @CharID and Operation = @Operation  
        end

----------------------------------------------------------------------------------------------------


    
end    

    delete _ResultOfPackageItemToMappingWithServerSide where CharId 
= @CharID

    
RETURN @result
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
وتقريبا بردو شغلك كلو هيكون هنا ومتعملش حاجه فى المديا
[dbo].[_STRG_ADD_PACKAGEITEM_CORE]

لولسا يبا انتا محتاج تعدل على sr_gameserver and sro_client


توقيع komnda :
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]



عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]



الصدمه ... تفعل بك شيئان اما ان تدمرك او تصنع منك شخص يصعب
هزيمته
#KomNdA

SiLkRoAd4aRaB

التعديل الأخير تم بواسطة komnda ; 16-09-2014 الساعة 10:38 PM