Code:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_STRG_ADD_PACKAGEITEM_CORE] Script Date: 12/01/2012 07:10:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-- »óÁ¡°³Æí (ÃÖ¼±È£)
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ALTER PROCEDURE [dbo].[_STRG_ADD_PACKAGEITEM_CORE]
@Operation tinyint,
@CharID int,
@PaymentDevice int,
@RefPackageItemID int,
@Count smallint,
@RemainGold bigint,
@OwnSilkToPay int,
@GiftSilkToPay int,
@OffsetOptionalPoint int,
@MileageToPay int,
@createrName varchar(17)
AS
declare @PackageItemCodeName varchar(129)
declare @RefItemCodeName varchar(129)
declare @RefItemID int
declare @OptLevel tinyint
declare @Variance bigint
declare @Data int
declare @MagParamNum tinyint
declare @MagParam1 bigint
declare @MagParam2 bigint
declare @MagParam3 bigint
declare @MagParam4 bigint
declare @MagParam5 bigint
declare @MagParam6 bigint
declare @MagParam7 bigint
declare @MagParam8 bigint
declare @MagParam9 bigint
declare @MagParam10 bigint
declare @MagParam11 bigint
declare @MagParam12 bigint
declare @ScrapItemCount int
declare @EmptySlotCount int
declare @InventorySize int
declare @PackageItemCount tinyint
--------------------------
--<< 1. ¼öÁ¤ Àü ÄÚµå >> -- ÁÖÈ
--------------------------
-- -- #define SP_BUY_ITEM (BYTE)8
-- -- #define SP_BUY_ITEM_COS (BYTE)19
-- -- #define SP_BUY_CASH_ITEM (BYTE)24
-- -- ÇöÀç´Â sp_buy_item, sp_buy_item_cos,sp_buy_cash_item ¸¸ µé¾î ¿Ã ¼ö ÀÖ´Ù.
-- -- »óÁ¡¿¡¼¸¸ ±¸¸Å ÇÒ ¼ö ÀÖ´Ù.
-- if @Operation <> 8 and @Operation <> 19 and @Operation <> 24
--------------------------
--<< 1. ¼öÁ¤ ÈÄ ÄÚµå >> -- ÁÖÈ
--------------------------
-- #define SP_BUY_ITEM (BYTE)8
-- #define SP_BUY_ITEM_COS (BYTE)19
-- #define SP_BUY_CASH_ITEM (BYTE)24
-- #define SP_BUY_ITEM_WITH_TOKEN (BYTE)43
-- ÇöÀç´Â sp_buy_item, sp_buy_item_cos,sp_buy_cash_item ¸¸ µé¾î ¿Ã ¼ö ÀÖ´Ù.
-- »óÁ¡¿¡¼¸¸ ±¸¸Å ÇÒ ¼ö ÀÖ´Ù.
if @Operation <> 8 and @Operation <> 19 and @Operation <> 24 and @Operation <> 43
begin
return -1
end
-- Àκ¥Å丮ÀÇ ½½·Ô °¹¼ö ¾Ë¾Æ³»¾ßÁö.
--------------------------
--<< 2. ¼öÁ¤ Àü ÄÚµå >> -- ÁÖÈ
--------------------------
-- set @InventorySize = 0
-- if @Operation = 8 or @Operation = 24
--------------------------
--<< 2. ¼öÁ¤ ÈÄ ÄÚµå >> -- ÁÖÈ
--------------------------
-- Àκ¥Å丮ÀÇ ½½·Ô °¹¼ö ¾Ë¾Æ³»¾ßÁö.
set @InventorySize = 0
if @Operation = 8 or @Operation = 24 or @Operation = 43
begin
select @InventorySize = InventorySize
from _Char
where CharID = @CharID
end
else if @Operation = 19
begin
select @InventorySize = InventorySize
from _RefObjChar with (nolock)
where id =
(select Link
from _RefObjCommon with (nolock)
where ID = (select RefCharID from _CharCos where id = @CharId))
end
-- Àκ¥Å丮 ¾ø´Â³ðÀÌ´Ù.
if @InventorySize = 0
begin
return -2
end
-- Àκ¥Å丮¿¡´Â ºó½½·ÔÀÌ ¸î°³³ª ÀÖ³ª?
--------------------------
--<< 3. ¼öÁ¤ Àü ÄÚµå >> -- ÁÖÈ
--------------------------
-- set @EmptySlotCount = 0
-- if @Operation = 8 or @Operation = 24
--------------------------
--<< 3. ¼öÁ¤ ÈÄ ÄÚµå >> -- ÁÖÈ
--------------------------
set @EmptySlotCount = 0
if @Operation = 8 or @Operation = 24 or @Operation = 43
begin
select @EmptySlotCount = count(*)
from _Inventory
where charid = @CharID AND 13 <= Slot and Slot < @InventorySize and ItemID = 0
end
else if @Operation = 19
begin
select @EmptySlotCount = count(*)
from _InvCos
where CosID = @CharID AND Slot < @InventorySize and ItemID = 0
end
select @PackageItemCodeName = CodeName128
from _RefPackageItem
where ID = @RefPackageItemID
if @@rowcount = 0
begin
return -4
end
-- ´ÜǰÀ̳Ä?
exec @ScrapItemCount = _GetScrapItemCount @PackageItemCodeName
-- Àκ¥Å丮¿¡ ÆÐŰÁö ¾ÆÀÌÅÛ µé¾î °¥¼ö ÀÖ´Ï?
exec @PackageItemCount = _GetNeededSlotCountByBuyPackageItem @PackageItemCodeName, @Count
if @PackageItemCount > @EmptySlotCount
begin
return -3
end
-- ÀÏ´Ü clear Çѹæ ÇØÁÖ°í ½ÃÀÛÇÏÀÚ.
delete _ResultOfPackageItemToMappingWithServerSide where CharId = @CharID
BEGIN TRANSACTION t2
declare package_cursor cursor fast_forward for
-- ÆÐŰÁö ¾ÆÀÌÅÛ¿¡ µé¾î ÀÖ´Â ¾ÆÀÌÅÛµéÀ» ²¨³»¿Â´Ù.
select RefItemCodeName, OptLevel, Variance, Data, MagParamNum,
MagParam1, MagParam2, MagParam3, MagParam4,
MagParam5, MagParam6, MagParam7, MagParam8,
MagParam9, MagParam10, MagParam11, MagParam12
from _RefScrapOfPackageItem with (nolock)
where RefPackageItemCodeName = @PackageItemCodeName AND Service = 1
open package_cursor
fetch next from package_cursor into @RefItemCodeName, @OptLevel, @Variance, @Data, @MagParamNum,
@MagParam1, @MagParam2, @MagParam3, @MagParam4,
@MagParam5, @MagParam6, @MagParam7, @MagParam8,
@MagParam9, @MagParam10, @MagParam11, @MagParam12
while @@fetch_status = 0
begin
-- ¾ÆÀÌÅÛÀÇ Å¸ÀÔÀ» ¾ò¾î¿Í¶ó.
declare @TypeID1 tinyint
declare @TypeID2 tinyint declare @TypeID3 tinyint
declare @TypeID4 tinyint
select @RefItemID = id, @TypeID1 = TypeID1, @TypeID2 = TypeID2, @TypeID3 = TypeID3, @TypeID4 = TypeID4
from _RefObjCommon with (nolock)
where CodeName128 = @RefItemCodeName
-- ¾ÆÀÌÅÛÀ» Çϳª¾¿ ½½·Ô¿¡ ³Ö¾îÁà¶ó.
declare @NewItemID bigint
declare @LatestItemSN bigint
-- ÆÐŰÁö ÀÚü¸¦ ¿©·¯°³ »ì ¼ö ÀÖÀ¸¹Ç·Î,
declare @PackageCount int
set @PackageCount = 0
-- ÆÐŰÁö ¾ÆÀÌÅ۾ȿ¡ ÇѰ³¸¸ µé¾î ÀÖ´Ù¸é, ¿¹Àü°ú °°ÀÌ
-- ¾ÆÀÌÅÛ °³¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
if @ScrapItemCount = 1
begin
-- expandable ÀÌ°í ¼ö·®ÀÌ ¼¼ÆÃ µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ³Ñ¾î¿Â °ªÀ¸·Î ¼ö·® ¼¼ÆÃ ÇØ¾ßÁö.
if @TypeID1 = 3 and @TypeID2 = 3 and @Data = 0
begin
set @Data = @Count
end
end
while (@PackageCount < @PackageItemCount)
begin
----------------------------------------------------------
-- Step1. ¹«°á¼º °Ë»ç
----------------------------------------------------------
--------------------------
--<< 4. ¼öÁ¤ Àü ÄÚµå >> -- ÁÖÈ
--------------------------
-- declare @FirstEmptySlotIndex tinyint
-- set @FirstEmptySlotIndex = 255
-- Àκ¥¿¡ ³ÖÀ»°÷À» ã¾Æ¶ó.
-- if @Operation = 8 or @Operation = 24
--------------------------
--<< 4. ¼öÁ¤ ÈÄ ÄÚµå >> -- ÁÖÈ
--------------------------
declare @FirstEmptySlotIndex tinyint
set @FirstEmptySlotIndex = 255
-- Àκ¥¿¡ ³ÖÀ»°÷À» ã¾Æ¶ó.
if @Operation = 8 or @Operation = 24 or @Operation = 43
begin
exec _Find_First_Empty_Slotindex_Inventory @FirstEmptySlotIndex output, @CharID
end
else if @Operation = 19
begin
exec _Find_First_Empty_Slotindex_Inventory_Cos @FirstEmptySlotIndex output, @CharID
end
-- ½½·Ô¿¡ °ø°£ÀÌ ¾øÀÚ³×?
if @FirstEmptySlotIndex = 255
begin
ROLLBACK TRANSACTION t2
close package_cursor
deallocate package_cursor
return -3
end
-- ¾ÆÀÌÅÛµµ ¾Æ´Ñµ¥?
if @TypeID1 <> 3
begin
ROLLBACK TRANSACTION t2
close package_cursor
deallocate package_cursor
return -4
end
set @NewItemID = 0
set @LatestItemSN = 0
-- expandables or container
if @TypeID2 = 3 or @TypeID2 = 2
begin
-- EnchantAttrStone and EnchantMagicStone
if @TypeID3 = 11 and (@TypeID4 = 2 or @TypeID4 = 1)
begin
exec _STRG_ADD_ALCHEMYSTONE_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Data
end
--GachaExchangingCard
else if @TypeID3 = 14 and @TypeID4 = 2
begin
exec _STRG_ADD_ITEM_MAGIC_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data,
@MagParamNum, @MagParam1, @MagParam2, @MagParam3, @MagParam4,
@MagParam5, @MagParam6, @MagParam7, @MagParam8,
@MagParam9, @MagParam10, @MagParam11, @MagParam12
end
-- Specialty
else if @TypeID3 = 8
begin
exec _STRG_ADD_SPECIALTY_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @Data, @createrName
end
-- etc
else
begin
exec _STRG_ADD_EXPENDABLE_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @Data
end
end
-- equip
else if @TypeID2 = 1
begin
-- normal
if @MagParamNum = 0
begin
exec _STRG_ADD_EQUIP_NORMAL_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data
end
-- magic
else
begin
exec _STRG_ADD_ITEM_MAGIC_NoTX @NewItemID output, @LatestItemSN output, @Operation, @CharID, @FirstEmptySlotIndex, @RefItemID, @OptLevel, @Variance, @Data,
@MagParamNum, @MagParam1, @MagParam2, @MagParam3, @MagParam4,
@MagParam5, @MagParam6, @MagParam7, @MagParam8,
@MagParam9, @MagParam10, @MagParam11, @MagParam12
end
end
IF (@NewItemID <= 0)
BEGIN
ROLLBACK TRANSACTION t2
close package_cursor
deallocate package_cursor
RETURN -5
END
---------------------------------------------------------------
-- Step5. ¼¹öÂÊ¿¡¼ ¸Þ¸ð¸®»óÀÇ À¯Àú Àκ¥Å丮¿Í µðºñ À¯Àú Àκ¥Å丮¿ÍÀÇ
-- ¹«°á¼º üũ¸¦ À§ÇØ ¼¹öÂÊÀ¸·Î °á°ú¸¦ ³Ñ°ÜÁÖ±â À§ÇÑ ÀÛ¾÷
---------------------------------------------------------------
--------------------------
--<< 5. ¼öÁ¤ Àü ÄÚµå >> -- ÁÖÈ
--------------------------
-- insert into _ResultOfPackageItemToMappingWithServerSide
-- values (@Operation, @CharID, @FirstEmptySlotIndex, @LatestItemSN, @NewItemID, @RefItemID, 0)
--------------------------
--<< 5. ¼öÁ¤ ÈÄ ÄÚµå >> -- ÁÖÈ
--------------------------
insert into _ResultOfPackageItemToMappingWithServerSide
values (@Operation, @CharID, @FirstEmptySlotIndex, @LatestItemSN, @NewItemID, @RefItemID, 0, 1)
IF (@@ERROR <> 0 OR @@ROWCOUNT <= 0)
BEGIN
ROLLBACK TRANSACTION t2
close package_cursor
deallocate package_cursor
RETURN -6
END
set @PackageCount = @PackageCount + 1
end
fetch next from package_cursor into @RefItemCodeName, @OptLevel, @Variance, @Data, @MagParamNum,
@MagParam1, @MagParam2, @MagParam3, @MagParam4,
@MagParam5, @MagParam6, @MagParam7, @MagParam8,
@MagParam9, @MagParam10, @MagParam11, @MagParam12
end
close package_cursor
deallocate package_cursor
--------------------------
--<< 6. Ãß°¡µÉ ÄÚµå >> --
--------------------------
--@@@@@@@@@@@@@@@@@
-- ÁÖÈ ¾ÆÀÌÅÛ Ãß°¡ by kkongs
--@@@@@@@@@@@@@@@@@
-- ÁÖÈ·Î ±¸ÀÔÇÏ´Â ¾ÆÀÌÅÛÀ̸é ÀÏ´Ü ÁÖÈ ¾ÆÀÌÅÛÀ» »èÁ¦ÇØÁÖÀÚ!!!
if(@Operation = 43) -- SP_BUY_ITEM_WITH_TOKEN
begin
-- << TokenType >>
-- 1. Ȳµ¿ : PAYMENT_DEVICE_TOKEN_BRASS(64)
-- 2. °Ã¶ : PAYMENT_DEVICE_TOKEN_STEEL(128)
-- 3. ÁøÀº : PAYMENT_DEVICE_TOKEN_SILVER(256)
-- 4. Ȳ±Ý : PAYMENT_DEVICE_TOKEN_GOLD(512)
-- 5. ÄÚÀÎ : PAYMENT_DEVICE_TOKEN_MEDAL(1024)
-- 5. DIA? : PAYMENT_DEVICE_TOKEN_DIAMOND(2048)
declare @TokenID int
declare @RequireTokenCost int
declare @CharTokenCost int
declare @Error_Code int
declare @TokenType int
declare @TokenCodeName varchar(129)
declare @CharName16 varchar(64)
declare @ID64 bigint
declare @Slot tinyint
declare @Cost int
declare @ItemID int
-- ij¸¯Å͸íÀ» ¾ò¾î¿ÀÀÚ!!!
select @CharName16 = CharName16 from _Char with (nolock) where CharID = @CharID
set @TokenType = 64 --PAYMENT_DEVICE_TOKEN_BRASS(Ȳµ¿)
while(@TokenType in (64, 128, 256, 512, 1024, 2048)) -- ÁÖÈŸÀÔº°·Î ´Ù È®ÀÎÇØ º¸ÀÚ!!!
begin
if(@PaymentDevice & @TokenType <> 0)
begin
set @TokenID = 0
set @RequireTokenCost = 0
set @CharTokenCost = 0
if(@TokenType = 64)
begin
set @TokenCodeName = 'ITEM_ETC_SD_TOKEN_01'
end
else if (@TokenType = 128)
begin
set @TokenCodeName = 'ITEM_ETC_SD_TOKEN_02'
end
else if (@TokenType = 256)
begin
set @TokenCodeName = 'ITEM_ETC_SD_TOKEN_03'
end
else if (@TokenType = 512)
begin
set @TokenCodeName = 'ITEM_ETC_SD_TOKEN_04'
end
else if (@TokenType = 1024)
begin
set @TokenCodeName = 'ITEM_ETC_ARENA_COIN'
end
else if (@TokenType = 2048)
begin
set @TokenCodeName = 'ITEM_ETC_SD_TOKEN_05'
end
select @TokenID = ID from _RefObjCommon with(nolock) where CodeName128 = @TokenCodeName
--ÇØ´ç ¾ÆÀÌÅÛÀÌ ¾ø´Ù´Â ¼Ò¸®³Ä? ¸»µµ ¾ÈµÈ´Ù!!!
if(@TokenID = 0)
begin
ROLLBACK TRANSACTION t2
return -100
end
-- Àκ¥Å丮¿¡¼ ÇØ´ç ÁÖÈ Å¸ÀÔÀÇ ¾ÆÀÌÅÛµéÀ» °Ë»öÇÏÀÚ!!!
select I.ID64, I.RefItemID, Inv.slot, I.data into #TokenItem from _Inventory as Inv with (nolock)
join _Items as I with (nolock) on Inv.ItemID = I.ID64
join _ItemPool as IP with (nolock) on I.ID64 = IP.ItemID
where Inv.CharID = @CharID and IP.Inuse = 1 and I.RefItemID = @TokenID
order by Inv.slot
--ÁÖȰ¡ ¾ø´Ù¸é!!!¸»ÀÌ ¾ÈµÈ´Ù!!! °ÔÀÓ»ó¿¡´Â ÀÌ¹Ì »èÁ¦¸¦ ÇØÁá´Âµ¥, DB¿¡´Â ¾ø´Ù°í???
if(@@rowcount = 0)
begin
ROLLBACK TRANSACTION t2
return -101
end
-- ¾ÆÀÌÅÛÀ» ±¸ÀÔÇϴµ¥ ÇÊ¿äÇÑ ÁÖÈÀÇ °¹¼ö!!!
select @RequireTokenCost = Cost * @Count from _RefPricePolicyOfItem with (nolock) where RefPackageItemCodeName = @PackageItemCodeName and PaymentDevice = @TokenType
-- ½ÇÁ¦·Î À¯Àú°¡ °¡Áö°í ÀÖ´Â ÅäÅ« °¹¼ö!!!
select @CharTokenCost = sum(data) from #TokenItem
if(@RequireTokenCost > @CharTokenCost)
begin
declare @Result_Slot tinyint
declare @Result_RefItemSerial64 bigint
declare @Result_RefItemDBID bigint
declare @Result_RefItemID int
declare @Result_Type tinyint
declare @Result_SubType tinyint
set @Result_Slot = 0x4a -- error_num ¼¹ö¿¡¼ »ç¿ëÇÏ´Â ¿¡·¯
set @Result_RefItemSerial64 = 0
set @Result_RefItemDBID = 0
set @Result_RefItemID = 0
set @Result_Type = 2
set @Result_SubType = 0
select @Operation, @Result_Slot, @Result_RefItemSerial64, @Result_RefItemDBID, @Result_RefItemID, @Result_Type, @Result_SubType
ROLLBACK TRANSACTION t2
return -102
end
else
begin
declare Token_cursor cursor fast_forward for
select ID64, RefItemID, Slot, Data from #TokenItem
open Token_cursor
fetch next from Token_cursor into @ID64, @ItemID, @Slot, @Cost
while @@fetch_status = 0
begin
if(@RequireTokenCost >= @Cost)
begin
--¾ÆÀÌÅÛÀ» »èÁ¦ÇØ ÁÖÀÚ!!!
exec @Error_Code = _STRG_DEL_ITEM 15, @CharID, @Slot, 0
if(@Error_Code < 0)
begin
ROLLBACK TRANSACTION t2
close Token_cursor
deallocate Token_cursor
return -103
end
set @RequireTokenCost = @RequireTokenCost - @Cost
set @Cost = 0
end
else
begin
--°¹¼ö¸¸ Â÷°¨µÇ´Â °ÍÀ̹ǷÎ, updateÇØÁÖÀÚ!!!
set @Cost = @Cost - @RequireTokenCost
set @RequireTokenCost = 0
update _Items set Data = @Cost where ID64 = @ID64
end
insert into _ResultOfPackageItemToMappingWithServerSide
values (@Operation, @CharID, @Slot,@Cost, @TokenType, @ItemID, 0, 2)
IF (@@ERROR <> 0 OR @@ROWCOUNT <= 0)
BEGIN
ROLLBACK TRANSACTION t2
close Token_cursor
deallocate Token_cursor
RETURN -104
END
-- ÇÊ¿äÇÑ ÁÖȸ¦ ´Ù Â÷°¨Çß´Ù¸é...
if(@RequireTokenCost = 0)
begin
break
end
fetch next from Token_cursor into @ID64, @ItemID, @Slot, @Cost
end
-- ¼³¸¶;;;;
if(@RequireTokenCost > 0)
begin
ROLLBACK TRANSACTION t2
close Token_cursor
deallocate Token_cursor
RETURN -105
end
close Token_cursor
deallocate Token_cursor
drop table #TokenItem
end
end
--´ÙÀ½ ÁÖÈ Å¸ÀÔÀ» °Ë»çÇϱâ À§ÇØ!!!
set @TokenType = @TokenType * 2
end
end
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
COMMIT TRANSACTION t2
-- °¡°Ý ºÎÅÍ ±î³ö.
declare @result int
exec @result = _UPDATE_COST @Operation, @CharID, @PaymentDevice, @PackageItemCodeName, @RemainGold, @OwnSilkToPay, @GiftSilkToPay, @OffsetOptionalPoint, @MileageToPay
IF (@@ERROR <> 0 OR @result < 0)
BEGIN
--------------------------------------------------------------------
-- ¼öµ¿ rollback !!!
--------------------------------------------------------------------
-- step 1. inventory û¼Ò
if (@Operation <> 19)
begin
-- Type 0: ¾ÆÀÌÅÛ °ü·Ã record¶ó´Â °Å´Ù. (µ·±î´Â Á¤º¸¸¦ ´ã´Â record´Â Type: 1 ÀÌ´Ù)
update _Inventory set ItemID = 0
where CharID = @CharID
and ItemID in
(select RefItemDBID
from _ResultOfPackageItemToMappingWithServerSide
where CharID = @CharID and Type = 0)
end
else
begin
update _InvCOS set ItemID = 0
where COSID = @CharID
and ItemID in
(select RefItemDBID
from _ResultOfPackageItemToMappingWithServerSide
where CharID = @CharID and Type = 0)
end
-- step 2. Item ¹Ý³³
update _Items set Serial64 = 0
where ID64 in
(select RefItemDBID
from _ResultOfPackageItemToMappingWithServerSide
where CharID = @CharID and Type = 0)
update _ItemPool set InUse = 0
where ItemID in
(select RefItemDBID
from _ResultOfPackageItemToMappingWithServerSide
where CharID = @CharID and Type = 0)
-- by novice. 2010-01-15 ¿¡·¯ÄÚµå µ¥ÀÌÅÍÇü È®Àå
--------------------------
--<< 7. ¼öÁ¤ Àü ÄÚµå >> --
--------------------------
-- -- declare @temp_Slot tinyint
-- declare @temp_Slot int
-- declare @temp_RefItemSerial64 bigint
-- declare @temp_RefItemDBID bigint
-- declare @temp_RefItemID int
-- declare @temp_Type tinyint
-- declare @temp_SubType tinyint
-- -- by novice. 2010-01-15 ¿¡·¯ÄÚµå µ¥ÀÌÅÍÇü È®Àå
-- -- 0x00 ¶ó¼ SRO_SP_ERR °ú SROERR Binding À» ÇÏÁö ¾Ê¾Ò´Ù
-- -- set @temp_Slot = 0x00 -- error_num ¼¹ö¿¡¼ »ç¿ëÇÏ´Â ¿¡·¯
-- set @temp_Slot = 0x00 -- error_num ¼¹ö¿¡¼ »ç¿ëÇÏ´Â ¿¡·¯
-- set @temp_RefItemSerial64 = 0
-- set @temp_RefItemDBID = 0
-- set @temp_RefItemID = 0
-- set @temp_Type = 2
-- set @temp_SubType = 0
-- select @Operation, @temp_Slot, @temp_RefItemSerial64, @temp_RefItemDBID, @temp_RefItemID, @temp_Type
-- END
-- else
-- begin
-- select Operation, slot, RefItemSerial64, RefItemDBID, RefItemID, Type
-- from _ResultOfPackageItemToMappingWithServerSide
-- where CharId = @CharID and Operation = @Operation
--------------------------
--<< 7. ¼öÁ¤ ÈÄ ÄÚµå >> --
--------------------------
declare @temp_Slot tinyint
declare @temp_RefItemSerial64 bigint
declare @temp_RefItemDBID bigint
declare @temp_RefItemID int
declare @temp_Type tinyint
declare @temp_SubType tinyint
set @temp_Slot = 0x00 -- error_num ¼¹ö¿¡¼ »ç¿ëÇÏ´Â ¿¡·¯
set @temp_RefItemSerial64 = 0
set @temp_RefItemDBID = 0
set @temp_RefItemID = 0
set @temp_Type = 2
set @temp_SubType = 0
select @Operation, @temp_Slot, @temp_RefItemSerial64, @temp_RefItemDBID, @temp_RefItemID, @temp_Type, @temp_SubType
END
else
begin
if(@Operation = 43) --ÁÖÈ ¾ÆÀÌÅÛ ±¸ÀÔÀ̸é..
begin
select Operation, slot, RefItemSerial64, RefItemDBID, RefItemID, Type, SubType
from _ResultOfPackageItemToMappingWithServerSide
where CharId = @CharID and Operation in (15, 43)
Order by Operation, RefItemDBID, Slot -- ÁÖÈ Å¸ÀÔ°ú ½½·Ô¹øÈ£·Î Á¤·ÄÇÏÀÚ!!!
--Operation : ÁÖÈ·Î ¾ÆÀÌÅÛ ±¸ÀÔ(43)°ú ÁÖȾÆÀÌÅÛ »èÁ¦(15)
end
else
begin
select Operation, slot, RefItemSerial64, RefItemDBID, RefItemID, Type, SubType
from _ResultOfPackageItemToMappingWithServerSide
where CharId = @CharID and Operation = @Operation
end
----------------------------------------------------------------------------------------------------
end
delete _ResultOfPackageItemToMappingWithServerSide where CharId = @CharID
RETURN @result
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@