Yok Arkadaşım bugu bulup ayrılanlardan olmicam ben işte buda bu foruma olan borcumdur.. Serveri burdaki arkadaşlar sayesinde kurdum her zamans öyledim toplamda 4 post attım zaten neden az çünkü ben formu okumaya başladığımda zaten item bugundaydı herkes 3 post sizi yakalayana kadar geçti son noktayıda ben koyuyorum inş zaten problemde sadece bir noktadan kaynaklanıyomuş meğerse
anlatıma geçelim problemli olan prosedürün ismini veriyorum _STRG_DEL_ITEM_NoTX buraya nerden ulaşırız derseniz
SRO_VT_SHARD_INIT/Programmability/stored procedures/_STRG_DEL_ITEM_NoTX yol bu
Prosedürün içine girdiğimizde (Sağ tık Modify yaparak )
aşağıdaki bloğu resimde bulun ve mavi ile göstediğim yere dikkat edin
if (@DelFromPC_Inv = 1)
select @ItemToDel = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot
else if ( @DelFromPC_Inv = 2 )
select
@itemToDel = ItemID FROM _InventoryForLinkedStorage WHERE LinkedItemID = @CharID AND Slot = @Slot
else
select @ItemToDel = ItemID FROM _InvCOS WHERE COSID = @CharID AND Slot = @Slot
diğer @ItemToDel değişkenlerinden farklı olarak bu küçük i kullanılmış aslında editörde zaten uyarı vermiş altında hatalı yazım olduğuna dair kırmızı çizgi var yapacağımız iş bu @itemToDel değişkeni @ItemToDel arkadaşlar yaklaşık 1 saatte yaptım ben sql bilgim olmadığı için belki çok kolay bi yolu da vardır bi çoğunuz biliyodurda belki ben size mantığını verdim benim yapma şeklim şöyle oldu
1 _STRG_DEL_ITEM_NoTX procedürnü tamamen sildim
2 SRO_VT_SHARD_INIT mause sağ tuş a basarak New Query çıkan editöre aşağıdaki kodları yapışıtın ve exucute yapın herkese kolay gelsin umarım faydamız olmuştur. Teşekküre gerek yok ama oldu ve ya olmadı die bilgi verirseniz sevinirim...
USE [SRO_VT_SHARD_INIT]
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 = 2 )
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 = 3 and @TypeID2 = 2 and @TypeID3 = 1 )
begin
----------------------------------------
-- ¿«¿©ÀÖ´Â PET ÀÌ ÀÖÀ¸¸é ±×³Ñ »èÁ¦
----------------------------------------
if (@BoundCOS <> 0)
begin
exec @Rvalue = _DeleteCharCOS_NoTX @BoundCOS
if (@Rvalue < 0)
return @Rvalue
end
end
----------------------------------------
-- Ȥ½Ã ÀÌ´® LinkedStorage¾ÆÀÌşÛÀΰ¡?
----------------------------------------
else if( @TypeID1 = 3 and @TypeID2 = 2 and @TypeID3 = 3 )
begin
----------------------------------------
-- ¿«¿©ÀÖ´Â Storage ÀÖÀ¸¸é ±×³Ñ »èÁ¦
----------------------------------------
if (@BoundCOS <> 0)
begin
IF( NOT EXISTS( select LinkedItemID from _InventoryForLinkedStorage where LinkedItemID = @ItemToDel ) )
BEGIN return -1000 END
IF( EXISTS( select top 1 ItemID from _InventoryForLinkedStorage where LinkedItemID = @ItemToDel and ItemID <> 0 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 <> 0 )
BEGIN return -2 END
end
end
----------------------------------------------------------
-- ½½·Ô ºñ¿ì±â
----------------------------------------------------------
if (@DelFromPC_Inv = 1 )
update _Inventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot
else if (@DelFromPC_Inv = 2 )
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 <> 0 OR @@rowcount = 0)
return -3
----------------------------------------------------------
-- »èÁ¦ ´ë»ó ¾ÆÀÌşÛ¿¡ ¹*ÀÎ ÀÓ´ë Á¤º¸ »èÁ¦
----------------------------------------------------------
if exists (select 1 from _RentItemInfo with (nolock) where nItemDBID = @ItemToDel)
begin
delete from _RentItemInfo where nItemDBID = @ItemToDel
if (@@ERROR <> 0 OR @@ROWCOUNT = 0)
begin
rollback transaction
return -6
end
end
----------------------------------------------------------
-- ÇØ´ç ¾ÆÀÌşÛ »èÁ¦
----------------------------------------------------------
exec @Rvalue = _STRG_FREE_ITEM_NoTX @ItemToDel
if (@Rvalue < 0)
return -4
return 1
Son olarak ise arkadaşlar rateler konusunda bi bilgim yok rateler ile nasıl oynayacağımızı bilen bi arkdaş bilgi verirse çok minnettar kalırız...