تسجيل الدخول دائمآ
ط·آ§ط¸â€‍ط·آ¥ط·آ¹ط¸â€‍ط·آ§ط¸â€ ط·آ§ط·ع¾
قديم 16-09-2014, 12:39 PM   #1

Zeka__Egypt
عضو مجتهد





• الانـتـسـاب » Jun 2013
• رقـم العـضـويـة » 112635
• المشـــاركـات » 123
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 10
Zeka__Egypt صـاعـد

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



افتراضي طلب new payment device



السلام عليكم ....
انا كنت عايز أضيف حاجة في الشوب وعايز اخلي الناس تشتريها بحاجة زي الـ Coins بس مش Coins وطبعاً علشان أعرف أضيفها لازم يبقي ليها رقم في payment device زي الـ Arena = 1024 والـ Gold = 1
فأنا عايز أعرف أزي اخلي الأيتم اللي معايا أعملها payment device خاص بيها علشان لما أضيفها في ال RefPolicy تنضاف صح وتشتغل في السيرفر ..
ياريت اللي يقول الحل يقول حاجة مجربها علشان الغلطة هنا ممكن متشغلش الـ SR_GameServer
Thxxxxxxxxxxxxxxxx


توقيع Zeka__Egypt :
العلم يبني بيوتاً لا عماد لها ..... والجهل يهدم بيت العز والشرف


إعلانات google

قديم 16-09-2014, 01:58 PM   #2

BuiLt4KiLl
عضو متألق



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


• الانـتـسـاب » Jul 2014
• رقـم العـضـويـة » 118364
• المشـــاركـات » 1,842
• الـدولـة » Kuwait
• الـهـوايـة »
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 67
BuiLt4KiLl جـيـد

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



افتراضي



بص أنا أعتقد الحجات دي ليها علاقة بالـ ID بتاع الأيتم


توقيع BuiLt4KiLl :

التعديل الأخير تم بواسطة BuiLt4KiLl ; 16-09-2014 الساعة 02:18 PM

قديم 16-09-2014, 03:13 PM   #3

Zeka__Egypt
عضو مجتهد





• الانـتـسـاب » Jun 2013
• رقـم العـضـويـة » 112635
• المشـــاركـات » 123
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 10
Zeka__Egypt صـاعـد

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



افتراضي



معتقدش أن الحل من RefObjItem
علشان دورت وبرده ماوصلتش لي حاجة


توقيع Zeka__Egypt :
العلم يبني بيوتاً لا عماد لها ..... والجهل يهدم بيت العز والشرف


قديم 16-09-2014, 08:07 PM   #4

Zeka__Egypt
عضو مجتهد





• الانـتـسـاب » Jun 2013
• رقـم العـضـويـة » 112635
• المشـــاركـات » 123
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 10
Zeka__Egypt صـاعـد

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



افتراضي



ايه الصحراااااا ديه ؟


توقيع Zeka__Egypt :
العلم يبني بيوتاً لا عماد لها ..... والجهل يهدم بيت العز والشرف


قديم 16-09-2014, 10:32 PM   #5

komnda
عضو سوبر



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


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

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


إرسال رسالة عبر 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_item, sp_buy_item_cos,sp_buy_cash_item  ¸¸ µé¾î آ؟أƒ ¼أ¶ أ€أ–´أ™.
--    -- 
»أ³أپآ،آ؟آ،¼*¸¸ ±¸¸أ… أ‡أ’ ¼أ¶ أ€أ–´أ™.
--    if @
Operation <> 8 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_item, sp_buy_item_cos,sp_buy_cash_item  ¸¸ µé¾î آ؟أƒ ¼أ¶ أ€أ–´أ™.  
     -- 
»أ³أپآ،آ؟آ،¼*¸¸ ±¸¸أ… أ‡أ’ ¼أ¶ أ€أ–´أ™.  
     if @
Operation <> 8 and @Operation <> 19  and @Operation <> 24   and  @Operation <> 43

    begin
        
return -1
    end

    
-- أ€أژآ؛¥أ…أ¤¸®أ€أ‡ ½½·أ” °¹¼أ¶ ¾أ‹¾أ†³»¾أںأپأ¶.
--------------------------
--<< 
2. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> --  أپأ–أˆ*
--------------------------
--    
set @InventorySize = 0
--    if @Operation = 8 or @Operation = 24
--------------------------
--<< 
2. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --  أپأ–أˆ*
--------------------------
    -- 
أ€أژآ؛¥أ…أ¤¸®أ€أ‡ ½½·أ” °¹¼أ¶ ¾أ‹¾أ†³»¾أںأپأ¶.
    
set @InventorySize = 0
    
if @Operation = 8 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 = 8 or @Operation = 24
--------------------------
--<< 
3. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
    
set @EmptySlotCount = 0
    
if @Operation = 8 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 RefItemCodeName, OptLevel, Variance, Data, MagParamNum,
        
MagParam1, MagParam2, MagParam3, MagParam4,
        
MagParam5, MagParam6, MagParam7, MagParam8,
        
MagParam9, MagParam10, MagParam11, MagParam12        
    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 = 3 and @TypeID2 = 3 and @Data = 0
            begin
                set 
@Data = @Count
            end
        end        

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

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

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

            declare @
FirstEmptySlotIndex tinyint
            
            set 
@FirstEmptySlotIndex = 255
            
            
-- أ€أژآ؛¥آ؟آ، ³أ–أ€»°÷أ€» أƒ£¾أ†¶أ³.
            if @
Operation = 8 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 <> 3 
            begin
                ROLLBACK TRANSACTION t2
                close package_cursor
                deallocate package_cursor
                
return -4
            end            

            set 
@NewItemID = 0
            set 
@LatestItemSN = 0

            
-- expandables or container
            
if @TypeID2 = 3 or @TypeID2 = 2
            begin
                
-- EnchantAttrStone and EnchantMagicStone
                
if @TypeID3 = 11 and (@TypeID4 = 2 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 = 1 
            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, @RefItemID, 0)
--------------------------
--<< 
5. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
            
insert into _ResultOfPackageItemToMappingWithServerSide
            values 
(@Operation, @CharID, @FirstEmptySlotIndex, @LatestItemSN, @NewItemID, @RefItemID, 0, 1)
            
            IF (@@
ERROR <> 0 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 (nolock) where CharID = @CharID
        set 
@TokenType = 64 --PAYMENT_DEVICE_TOKEN_BRASS(أˆ²µآ؟)
        while(@
TokenType in (64, 128, 256, 512,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(nolock) where CodeName128 = @TokenCodeName
                
--أ‡أک´ç ¾أ†أ€أŒأ…أ›أ€أŒ ¾أ¸´أ™´أ‚ ¼أ’¸®³أ„? ¸»µµ ¾أˆµأˆ´أ™!!!
                if(@
TokenID = 0)
                
begin
                    ROLLBACK TRANSACTION t2
                    
return -100
                end
                
                
-- أ€أژآ؛¥أ…أ¤¸®آ؟آ،¼* أ‡أک´ç أپأ–أˆ* أ…¸أ€أ”أ€أ‡ ¾أ†أ€أŒأ…أ›µéأ€» °أ‹»أ¶أ‡أڈأ€أڑ!!!
                
select I.ID64, I.RefItemID, Inv.slot, I.data into #TokenItem from _Inventory  as Inv with (nolock)
                    
join _Items as I with (nolock) on Inv.ItemID = I.ID64
                    join _ItemPool 
as IP with (nolock) on I.ID64 = IP.ItemID
                where Inv
.CharID = @CharID and IP.Inuse = 1 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 (nolock) where RefPackageItemCodeName = @PackageItemCodeName and PaymentDevice = @TokenType
                
-- ½أ‡أپ¦·أژ أ€¯أ€أ؛°آ، °آ،أپأ¶°أ* أ€أ–´أ‚ أ…أ¤أ…« °¹¼أ¶!!!
                
select @CharTokenCost = sum(data) from #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 ID64, RefItemID, Slot, Data 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, @Slot, 0  
                            
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, @ItemID, 0, 2)
                        IF (@@
ERROR <> 0 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 <> 0 OR @result < 0)
    
BEGIN
        
--------------------------------------------------------------------
        -- 
¼أ¶µآ؟ rollback !!!
        --------------------------------------------------------------------
        -- 
step 1. inventory أƒ»¼أ’
        
if (@Operation <> 19)
        
begin
            
-- Type 0: ¾أ†أ€أŒأ…أ› °ü·أƒ record¶أ³´أ‚ °أ…´أ™. (µ·±î´أ‚ أپ¤آ؛¸¸¦ ´أ£´أ‚ record´أ‚ Type: 1 أ€أŒ´أ™)
            
update _Inventory set ItemID = 0 
            where CharID 
= @CharID
                
and ItemID in 
                
(select RefItemDBID 
                from _ResultOfPackageItemToMappingWithServerSide 
                where CharID 
= @CharID and Type = 0) 
        
end
        
else
        
begin
            update _InvCOS set ItemID 
= 0 
            where COSID 
= @CharID
                
and ItemID in 
                
(select RefItemDBID 
                from _ResultOfPackageItemToMappingWithServerSide 
                where CharID 
= @CharID and Type = 0)
        
end

        
-- step 2. Item ¹أ‌³³
        update _Items set Serial64 
= 0 
        where ID64 in
            
(select RefItemDBID 
            from _ResultOfPackageItemToMappingWithServerSide 
            where CharID 
= @CharID and Type = 0) 

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

        -- 
by novice. 2010-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 novice. 2010-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 Operation, slot, RefItemSerial64, RefItemDBID, RefItemID, Type  
--            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
, slot, RefItemSerial64, RefItemDBID, RefItemID, Type, SubType 
            from _ResultOfPackageItemToMappingWithServerSide
            where CharId 
= @CharID and Operation in (15, 43) 
            
Order by Operation, RefItemDBID, Slot -- أپأ–أˆ* أ…¸أ€أ”°أ؛ ½½·أ”¹أ¸أˆ£·أژ أپ¤·أ„أ‡أڈأ€أڑ!!!
            --
Operation : أپأ–أˆ*·أژ ¾أ†أ€أŒأ…أ› ±¸أ€أ”(43)°أ؛ أپأ–أˆ*¾أ†أ€أŒأ…أ› »èأپ¦(15)
        
end
        
else
        
begin
            select Operation
, slot, RefItemSerial64, RefItemDBID, RefItemID, Type, SubType  
            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

قديم 18-09-2014, 12:20 AM   #6

komnda
عضو سوبر



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


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

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


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

افتراضي



ارجوا الاهتمام ..


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



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



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

SiLkRoAd4aRaB


قديم 18-09-2014, 09:47 PM   #7

komnda
عضو سوبر



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


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

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


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

افتراضي



يغلق @@


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



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



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

SiLkRoAd4aRaB


موضوع مغلق


يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر)
 

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى الردود آخر مشاركة
الحل النهائى لـ Pci Device 3ashek El7ozn بـعـيـدآ عـن سـيـلـك رود 6 06-01-2011 05:51 AM


الساعة الآن 11:21 PM.