:
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 ÆÀÌð¡ Ñ ¿Ã ö ÀÖÙ. -- ÄÅÍ ÆÀÌð Âø ËÆß ÇÏÚÙ. ---------------------------------------------------------- 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
|