الموضوع: Item mall/npc dc bug
عرض مشاركة واحدة
قديم 13-04-2018, 04:49 PM   #4

Dev.Ri3o
عضو ذهبى



الصورة الرمزية Dev.Ri3o


• الانـتـسـاب » Apr 2015
• رقـم العـضـويـة » 121546
• المشـــاركـات » 4,027
• الـدولـة » https://t.me/pump_upp
• الـهـوايـة » MIS
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 45
Dev.Ri3o صـاعـد

Dev.Ri3o غير متواجد حالياً

9264  


إرسال رسالة عبر ICQ إلى Dev.Ri3o إرسال رسالة عبر AIM إلى Dev.Ri3o إرسال رسالة عبر Yahoo إلى Dev.Ri3o إرسال رسالة عبر Skype إلى Dev.Ri3o

افتراضي رد: Item mall/npc dc bug



اولا اتأكد ان سعر ال Database زى سعر ال Media غير كدة اعمل ده
كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_UPDATE_COST]    Script Date: 02/02/2012 16:10:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
--  »أ³أپآ،°³أ†أ* (أƒأ–¼±أˆ£)  
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
  
ALTER PROCEDURE [dbo].[_UPDATE_COST]  
    @Operation           tinyint,  
    @CharID           int,  
    @PaymentDevice      int,  
    @PackageItemCodeName     varchar(129),  
    @RemainGold           bigint,  
    @OwnSilkToPay          int,  
    @GiftSilkToPay      int,  
    @OffsetOptionalPoint     int,  
    @MileageToPay          int  
AS

    SET NOCOUNT ON

    declare @PaymentDeviceTemp     int
    declare @RemainOwnSilk        int
    declare @RemainGiftSilk     int
    declare @RemainMileage         int
    declare @Result         int
    
    set @RemainOwnSilk = 0  
    set @RemainGiftSilk = 0  
    set @RemainMileage = 0   
    
    IF (@RemainGold < 0 or  @MileageToPay < 0  or @OwnSilkToPay < 0 or @GiftSilkToPay < 0 or @OffsetOptionalPoint < 0)  
    BEGIN  
        RETURN -2001
    END  
   
    DECLARE @PC_ID INT  
    set @PC_ID = @CharID  
    ----------------------------------------------------------  
    -- Operationآ؟آ، µû¶أ³¼* أ€¯أ€أ؛ أ„³¸¯أ…أچ ¾أ†أ€أŒµأ°°آ، ³أ‘¾î آ؟أƒ¼أ¶µµ أ€أ–°أ*, cos ¾أ†أ€أŒµأ°°آ، ³أ‘¾î آ؟أƒ ¼أ¶µµ أ€أ–´أ™.  
    -- أ„³¸¯أ…أچ ¾أ†أ€أŒµأ°¸¦ ¾îأ‚¶´أ¸ ¾أ‹¾أ†³»¾أں أ‡أڈ°أڑ´أ™.  
    ----------------------------------------------------------   
    if (@Operation = 19)  
    begin  
        -- COS آ؟ë ¹°أ‡°أ€» ±¸أ€أ”أ‡أ‘°أ…´أڈ±أ±... أ„³¸¯ أƒ£¾أ†¼* µ· »©أپà¾أںأپأ¶...  
        SELECT @PC_ID = OwnerCharID FROM _CharCOS WHERE ID = @PC_ID  
        IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)  
        BEGIN      
            RETURN -2002  
        END  
    end  
    /*  
    #define EXPAND_DEVICE_GOLDPRICE 1  
    #define EXPAND_DEVICE_SILKPRICE 2  
    #define EXPAND_DEVICE_GIFTSILKPRICE 4  
    #define EXPAND_DEVICE_GUILDPOINT 8  
    #define EXPAND_DEVICE_MILEAGE 16  
    */  

    if  ((@PaymentDevice & (2 | 4 | 16 )) > 0)  
    begin   
        -- ½أ‡أ…©, ¼±¹°½أ‡أ…©, ¸¶أ€أڈ¸®أپأ¶¸¦ ±î¾أں أ‡أڈ´أ‚±¸¸¸.  
        -- ´أœ, ¸¶أ€أڈ¸®أپأ¶´أ‚ آ؟أ‰¼أ‡أ€أŒ´أ™.  
     
        -- أ„³¸¯أ…أچأ€أ‡ JID¸¦ ¾أ²¾îآ؟أ€³أٹ¶أ³.  
        declare @JID         int  
        select top 1 @JID = UserJID  from _User  
        where CharID = @PC_ID  
        IF (@@ROWCOUNT = 0 OR @@ERROR <> 0)  
        BEGIN  
            RETURN -2006  
        END   
    
        DECLARE @PackageItemID int  
        select @PackageItemID = ID from dbo._RefPackageItem where codename128 = @PackageItemCodeName  
  
        DECLARE @rvalue int  
        -- EXEC @rvalue = SRO_VT_ACCOUNT.DBO._ConsumeSilkByGameServer @JID, @OwnSilkToPay OUTPUT, @GiftSilkToPay OUTPUT, @MileageToPay output, 1, @CharID  
        EXEC @rvalue = SRO_VT_ACCOUNT.DBO._ConsumeSilkByGameServer @JID, @OwnSilkToPay OUTPUT, @GiftSilkToPay OUTPUT, @MileageToPay output,  0, @CharID, @PackageItemID  , 0  
   
        IF (@rvalue < 0 OR @@ERROR <> 0)  
        BEGIN  
            RETURN -2012  
        END  
--------------------------
--<< 1. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> -- أپأ–أˆ*
--------------------------
--        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.  
--        insert into _ResultOfPackageItemToMappingWithServerSide  
--        values (@Operation, @CharID, 255, @OwnSilkToPay, 2, 0, 1)  
 -- 
--        if (@@ERROR <> 0 or @@ROWCOUNT = 0)  
--        begin      
--            return -2007  
--        end  
 --   
--        insert into _ResultOfPackageItemToMappingWithServerSide  
--        values (@Operation, @CharID, 254,@GiftSilkToPay,  4, 0, 1)  
 -- 
--        if (@@ERROR <> 0 or @@ROWCOUNT = 0)  
--        begin      
--            return -2007  
--        end  
 --   
--        insert into _ResultOfPackageItemToMappingWithServerSide  
--        values (@Operation, @CharID, 253,@MileageToPay,  16, 0, 1)  
--------------------------
--<< 1. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --
--------------------------
        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.
        insert into _ResultOfPackageItemToMappingWithServerSide
        values (@Operation, @CharID, 255, @OwnSilkToPay, 2, 0, 1, 0)
        
        if (@@ERROR <> 0 or @@ROWCOUNT = 0)
        begin                
            return -2007
        end
            
        insert into _ResultOfPackageItemToMappingWithServerSide
        values (@Operation, @CharID, 254,@GiftSilkToPay,  4, 0, 1, 0)
            
        if (@@ERROR <> 0 or @@ROWCOUNT = 0)
        begin                
            return -2007
        end
        
        insert into _ResultOfPackageItemToMappingWithServerSide
        values (@Operation, @CharID, 253,@MileageToPay,  16, 0, 1, 0)


----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
  
        if (@@ERROR <> 0 or @@ROWCOUNT = 0)  
        begin      
            return -2007  
        end  
    end  

    -- gold  
    if ((@PaymentDevice & 1) > 0)  
    begin  
        UPDATE _Char SET RemainGold = @RemainGold WHERE CharID = @PC_ID  
        IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
        BEGIN
            RETURN -2003
        END
    end
   
    -- guildpoint  
    if ((@PaymentDevice & 8) > 0)  
    BEGIN
        -- ±أ¦µأ¥¸¦ ¾أ‹¾أ†آ؟أچ¶أ³.  
        declare @GuildID int  
        select @GuildID = GuildID from _GuildMember  
        where CharID = @PC_ID  
    
        IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)  
        BEGIN        
            RETURN -2004  
        END  
    
        -- ±أ¦µأ¥ أ†÷أ€أژأ†® ±î¶أ³.  
        update _Guild set GatheredSP = GatheredSP - @OffsetOptionalPoint  
        where GatheredSP >= @OffsetOptionalPoint and ID = @GuildID  
    
        IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)  
        BEGIN  
    /*
            -- ¾أ¸أ€»¼أ¶µµ أ€أ–´أ‚°أ…´أ™.

            -- by novice. 2010-01-15 آ؟آ،·¯أ„أڑµأ¥ µ¥أ€أŒأ…أچأ‡ü أˆ®أ€أ¥
            -- آ؟أ¸·آ، أپأ–¼®µأ‡¾î أ€أ–´أ¸ أ„أڑµأ¥أ€أŒأپأ¶¸¸, أƒأںأˆأ„ °³¹أںأ‡أڈ´أ‚ »ç¶÷µéأ€أŒ
            -- ¼أ¶أپ¤µأ‡أپأ¶ ¾أٹأ€آ؛ ³»آ؟ëأ€» آ؛¸°أ* أˆ¥¶أµ½آ؛·¯آ؟أ¶ أ‡أ’ ¼أ¶ أ€أ–¾î¼*
            -- أ€أŒ آ؛أژآ؛أگ±îأپأ¶ ¼أ¶أپ¤أ‡أک¹أ¶¸²!
            -- declare @Slot            tinyint
            declare @Slot                int
            declare @RefItemSerial64    bigint
            declare @RefItemDBID    bigint
            declare @RefItemID        int    
            declare @Type            tinyint
    
            -- by novice. 2010-01-15 آ؟آ،·¯أ„أڑµأ¥ µ¥أ€أŒأ…أچأ‡ü أˆ®أ€أ¥
            -- set @Slot = 0xd0    -- error_num ¼*¹أ¶آ؟آ،¼* »çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯

            -- MAKE_SRO_SP_ERR_TYPE(        _UPDATE_COST,                        0x0004);
            -- DEFINE_SRO_SP_ERR(            SRO_SP_ERR_NOT_ENOUGH_GUILD_POINT,    _UPDATE_COST,    0x8001 );                // ==> 0x80010004
            -- BIND_SRO_SP_ERR_TO_SRO_ERR(    SRO_SP_ERR_NOT_ENOUGH_GUILD_POINT,    STRGERR_NOT_ENOUGH_GUILDPOINT );
            set @Slot = 0x80010004    -- error_num ¼*¹أ¶آ؟آ،¼* »çآ؟ëأ‡أڈ´أ‚ آ؟آ،·¯
            set @RefItemSerial64 = 0
            set @RefItemDBID = 0
            set @RefItemID = 0
            set @Type = 2
            select @Operation, @Slot, @RefItemSerial64, @RefItemDBID, @RefItemID, @Type
    */
            RETURN -2005  
        END  
--------------------------
--<< 2. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> --
--------------------------
        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.  
--        insert into _ResultOfPackageItemToMappingWithServerSide  
--        values (@Operation, @CharID, 252, @OffsetOptionalPoint, 8, 0, 1)  
--------------------------
--<< 2. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --
--------------------------
        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.
        insert into _ResultOfPackageItemToMappingWithServerSide
        values (@Operation, @CharID, 252, @OffsetOptionalPoint, 8, 0, 1, 0)


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

        if (@@ERROR <> 0 or @@ROWCOUNT = 0)  
        begin      
            return -2007  
        end
    end

    -- honorpoint
    else if ((@PaymentDevice & 32) > 0)
    begin
        -- honorpoint ±î¶أ³.
        update _TrainingCampMember set HonorPoint = HonorPoint - @OffsetOptionalPoint
        where HonorPoint >= @OffsetOptionalPoint and CharID = @PC_ID

        if (@@ERROR <> 0 or @@ROWCOUNT = 0)
        begin                
            return -2006
        end
--------------------------
--<< 3. ¼أ¶أپ¤ أ€ü أ„أڑµأ¥ >> --
--------------------------
        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.
--        insert into _ResultOfPackageItemToMappingWithServerSide
--        values (@Operation, @CharID, 252, @OffsetOptionalPoint, 32, 0, 1)

--------------------------
--<< 3. ¼أ¶أپ¤ أˆأ„ أ„أڑµأ¥ >> --
--------------------------
        -- °أ”أ€أ“ ¼*¹أ¶أ‚أٹآ؟آ،¼* °»½أ… ¹أ‍±â أ€§أ‡أک cost °آھأ€» °أ،°أ؛ أ…×أ€أŒآ؛أ*آ؟آ، ³أ–¾îµأگ´أ™.
        insert into _ResultOfPackageItemToMappingWithServerSide
        values (@Operation, @CharID, 252, @OffsetOptionalPoint, 32, 0, 1, 0)


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

        if (@@ERROR <> 0 or @@ROWCOUNT = 0)
        begin                
            return -2007
        end
    end    

    SET NOCOUNT OFF
  
    
 return 1  
  
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


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


رد مع اقتباس