:
30-03-2014, 07:17 PM   #2

Hero



  Hero


Jan 2014
116050
7,017
Egypt
;"#string n = "C
No Server
Male
85
Hero

Hero







Query
HTML:
USE [SRO_VT_SHARD_Tito]
GO
/****** Object:  StoredProcedure [dbo].[_UPDATE_COST]    Script Date: 3/16/2014 9:28:37 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_Tito.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  
  
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@