VSRO SERVER ITEM BUG FIX

09/25/2011 22:40 eglennet#1
[Only registered and activated users can see links. Click Here To Register...]


1. _STRG_DEL_ITEM_NoTX delete
2. SRO_VT_SHARD New Query


PHP Code:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_STRG_DEL_ITEM_NoTX] Script Date: 09/24/2011 16:29:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE 
[dbo].[_STRG_DEL_ITEM_NoTX]
@
DelFromPC_Inv AS TINYINT,
@
CharID AS BIGINT, -- ¸ÅÁ÷ Å¥ºê Ãß°¡·Î ÀÎÇØ È®Àå
@Slot AS TINYINT

as
declare @
Rvalue int
declare @ItemToDel bigint

if (@DelFromPC_Inv 1)
select @ItemToDel ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot
else if ( @DelFromPC_Inv )
select @itemToDel ItemID FROM _InventoryForLinkedStorage WHERE LinkedItemID = @CharID AND Slot = @Slot
else
select @ItemToDel ItemID FROM _InvCOS WHERE COSID = @CharID AND Slot = @Slot

if (@ItemToDel IS NULL or @ItemToDel 0)
return -
1

----------------------------------------
-- 
Á¹¶ó ÀÌ ¾Æ·¡ÂÊ ¼øÀüÈ÷ Æê ¼Òȯ¾ÆÀÌÅÛ ¶§¹®¿¡
-- µé¾î°£ ÄÚµåÀ̴ٺиí overheadÀ̱ä ÇÏÁö¸¸
-- _STRG_DEL_ITEM ÀÇ ½Å·Úµµ¿Í °ÔÀÓ¼*¹ö Äڵ堺¹Àâµµ
-- Áõ°¡¸¦ À¯¹ßÇÏÁö ¾Ê±â À§ÇØ ¾î¿ ¼ö ¾ø´Â ÆÇ´ÜÀ̾ú´ÙT_T
----------------------------------------
declare @
BoundCOS int
declare @RefItemID int
select 
@RefItemID RefItemID, @BoundCOS Data from _Items where ID64 = @ItemToDel
if (@@ROWCOUNT 0)
return -
2

----------------------------------------
-- 
Ȥ½Ã ÀÌ´® PET ¼Òȯ¾ÆÀÌÅÛÀΰ¡?
----------------------------------------
declare @
TypeID1 tinyint
declare @TypeID2 tinyint
declare @TypeID3 tinyint
select 
@TypeID1 TypeID1, @TypeID2 TypeID2, @TypeID3 TypeID3 from _RefObjCommon where ID = @RefItemID
if (@TypeID1 and @TypeID2 and @TypeID3 )
begin
----------------------------------------
-- 
¿«¿©Àִ PET ÀÌ ÀÖÀ¸¸é ±×³Ñ »èÁ¦
----------------------------------------
if (@
BoundCOS <> 0)
begin
exec 
@Rvalue _DeleteCharCOS_NoTX @BoundCOS
if (@Rvalue 0)
return @
Rvalue
end
end

----------------------------------------
-- 
Ȥ½Ã ÀÌ´® LinkedStorage¾ÆÀÌÅÛÀΰ¡?
----------------------------------------
else if( @
TypeID1 and @TypeID2 and @TypeID3 )
begin
----------------------------------------
-- 
¿«¿©Àִ Storage ÀÖÀ¸¸é ±×³Ñ »èÁ¦
----------------------------------------
if (@
BoundCOS <> 0)
begin
IF( NOT EXISTSselect LinkedItemID from _InventoryForLinkedStorage where LinkedItemID = @ItemToDel ) )
BEGIN return -1000 END
IF( EXISTSselect top 1 ItemID from _InventoryForLinkedStorage where LinkedItemID = @ItemToDel and ItemID <> and ItemID IS NOT NULL ) )
BEGIN
update _ItemPool Set InUse 
0 from _ItemPool as IP join _InventoryForLinkedStorage as IFLS on IP.ItemID IFLS.ItemID
where IFLS
.LinkedItemID = @ItemToDel AND IFLS.ItemID <> 0
END
DELETE FROM _InventoryForLinkedStorage where LinkedItemID 
= @ItemToDel
IF( @@ERROR <> )
BEGIN return -2 END
end
end


----------------------------------------------------------
-- 
½½·Ô ºñ¿ì±â
----------------------------------------------------------
if (@
DelFromPC_Inv )
update _Inventory SET ItemID 0 WHERE CharID = @CharID AND Slot = @Slot
else if (@DelFromPC_Inv )
update _InventoryForLinkedStorage SET ItemID 0 WHERE LinkedItemID = @CharID AND Slot = @Slot
else
update _InvCOS SET ItemID 0 WHERE COSID = @CharID AND Slot = @Slot

if (@@error <> OR @@rowcount 0)
return -
3

----------------------------------------------------------
-- 
»èÁ¦ ´ë»ó ¾ÆÀÌÅÛ¿¡ ¹*ÀΠÀÓ´ë Á¤º¸ »èÁ¦
----------------------------------------------------------
if 
exists (select 1 from _RentItemInfo with (nolockwhere nItemDBID = @ItemToDel)
begin
delete from _RentItemInfo where nItemDBID 
= @ItemToDel
if (@@ERROR <> OR @@ROWCOUNT 0)
begin
rollback transaction
return -6
end
end

----------------------------------------------------------
-- 
ÇØ´ç ¾ÆÀÌÅÛ »èÁ¦
----------------------------------------------------------
exec @Rvalue _STRG_FREE_ITEM_NoTX @ItemToDel
if (@Rvalue 0)
return -
4

return 
10/04/2011 14:00 vitalik123#2
what bug exacly it fixing?
10/04/2011 14:23 zaza099#3
hi helpme
10/04/2011 20:52 OMGG1#4
hwo this bug was working