ÑÏ: ãÓÇÚÏå
ßæÏ 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¿¡ µû¶Ã³¼* À¯Ã€Ãº ij¸¯Ã…Ã� ¾Ã†Ã€ÃŒµÃ°°Â¡ ³Ã‘¾î ¿Ã¼Ã¶µµ ÀÖ°Ã*, cos ¾Ã†Ã€ÃŒµÃ°°Â¡ ³Ã‘¾î ¿Ã ¼Ã¶µµ ÀִÙ. -- ij¸¯Ã…Ã� ¾Ã†Ã€ÃŒµÃ°¸¦ ¾î¶´Ã¸ ¾Ã‹¾Ã†³»¾ÃŸ ÇÃ�°Ãš´Ã™. ---------------------------------------------------------- if (@Operation = 19) begin -- COS Â¿ë ¹°Ã‡°Ã€» ±¸Ã€Ã”ÇѰÅ´Ã�±Ã±... ij¸¯ ã¾Ã†¼* µ· »©Ã�à¾ÃŸÃ�ö... 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
|