Silkroad Online

Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   Item mall/npc dc bug (https://silkroad4arab.com/vb/showthread.php?t=623134)

Dev.LumiusCux 04-04-2018 02:35 AM

Item mall/npc dc bug
 
itemmall. dc
npc dc

HB# 05-04-2018 12:09 AM

: Item mall/npc dc bug
 
Billing server

testmis 05-04-2018 07:40 AM

: Item mall/npc dc bug
 
Database Media

Dev.Ri3o 13-04-2018 04:49 PM

: 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 
 
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@



01:46 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.