جرب الى Query دة
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
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@
المستوي:
المستوي:
المستوي:
لااسف الجيم سرفر جبلى كراش لما ضبط كول ال فى RefShopGoods