ÇáãæÞÚ ÇáÚÑÈí ÇáÇæá ááÚÈÉ 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=609444)

MohamedLol 31-12-2016 06:15 AM

ãÓÇÚÏå
 
ãÓÇÚÏå Ýí ÇíÊã Ýí F10 ãÔ ÈÚÑÝ ÇÔÊÑíå ããßä Íá

Levi 31-12-2016 03:08 PM

ÑÏ: ãÓÇÚÏå
 
ßæÏ PHP:

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 ¾Ã†Ã€ÃŒµÃ°°Â¡ ³Ã‘¾î Â¿Ãƒ ¼Ã¶µµ Ã€Ã–´Ã™.  
    -- 
ij¸¯Ã…Ã� ¾Ã†Ã€ÃŒµÃ°¸¦ ¾î¶´Ã¸ ¾Ã‹¾Ã†³»¾ÃŸ Ã‡Ã�°Ãš´Ã™.  
    ----------------------------------------------------------   
    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   
        
-- ½Ã‡Ã…©, ¼±¹°½Ã‡Ã…©, ¸¶Ã€Ã�¸®Ã�ö¸¦ ±î¾ÃŸ Ã‡Ã�´Ã‚±¸¸¸.  
        -- 
´Ãœ, ¸¶Ã€Ã�¸®Ã�ö´Ã‚ Â¿Ã‰¼Ã‡Ã€ÃŒ´Ã™.  
     
        -- 
ij¸¯Ã…Ã�ÀÇ 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 


ÇÝäÏíäÇ ™Hamboka™ 31-12-2016 11:54 PM

ÑÏ: ãÓÇÚÏå
 
äÝÓ Çáí ÞæáÊåæáß ÞÈá ßÏ ÎÏ Çáí 4 ÊÇÈá
refpoliceofitem
refpackdgitem
refscarbofpackdgitem
refshopgoods
ÍØåã Ý ãÏíÇ

Jayden 02-01-2017 04:17 AM

ÑÏ: ãÓÇÚÏå
 
ÇÊÃßÏ ãä Çá DBConnect æ ÇáUPDATE_COST


ÇáÓÇÚÉ ÇáÂä 10:22 AM.

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