Silkroad Online

Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   (https://silkroad4arab.com/vb/showthread.php?t=622220)

comannda 19-02-2018 10:11 PM


 
dc

Dev.Ri3o 20-02-2018 02:58 AM

:
 
Query
:

USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_UPDATE_COST]    Script Date: 2/20/2018 1:58:16 AM ******/
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 
 
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


comannda 20-02-2018 08:43 PM

:
 

Dev.BigBear 20-02-2018 09:31 PM

:
 
##


08:29 PM.

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