|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة [ قسم خاص لأسئلة واستفسارات عمل السيرفرات الخاصة ] [ يرجى الالتزام بقوانين قسم الأسئلة والاستفسارات ] |
31-12-2016, 01:43 PM
|
#1
|
مشرف قسم CrossFire
|
• الانـتـسـاب » May 2010
|
• رقـم العـضـويـة » 70996
|
• المشـــاركـات » 3,556
|
• الـدولـة » مــصــر
|
• الـهـوايـة » Silkroad Service
|
• اسـم الـسـيـرفـر » Private Server
|
• الـجـنـس » Male
|
• نقـاط التقييم » 15
|
|
|
C-Sro Upgrade items
السلام عليكم
مشكله مع الـ Upgrade Items بعد الإستخدام بتجيب DC لكن العمليه بتتنفذ والجيم سيرفر طبعاً بيجيب كده :
كود PHP:
AQ succeeded but AsyncQueryCompleted() error occurred [AQType: 40]
حاولت اعمل حاجات كتيره علشان احاول احلها بس مش عارف اصلاً انا بقيت ماشى صح ولا غلط ولا انا بقيت بعمل ايه وديه اخر حاجه وصلت ليها
ده البروسيدور
كود PHP:
USE [Test]
GO
/****** Object: StoredProcedure [dbo].[_STRG_EQUIP_ITEM_UPGRADE] Script Date: 31/12/2016 11:51:19 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_STRG_EQUIP_ITEM_UPGRADE]
@CharID INT,
@UgdSuccess TINYINT,
@UgdEquipSlot TINYINT,
@UgdStoneSlot TINYINT,
@UgdRefItemID INT = 0,
@UgdOptLevel TINYINT = 0,
@UgdVariance BIGINT = 0,
@UgdData INT = 0,
@UgdCreateName VARCHAR(64) = '',
@UgdMagParamNum TINYINT = 0,
@UgdMagParam1 BIGINT = 0,
@UgdMagParam2 BIGINT = 0,
@UgdMagParam3 BIGINT = 0,
@UgdMagParam4 BIGINT = 0,
@UgdMagParam5 BIGINT = 0,
@UgdMagParam6 BIGINT = 0,
@UgdMagParam7 BIGINT = 0,
@UgdMagParam8 BIGINT = 0,
@UgdMagParam9 BIGINT = 0,
@UgdMagParam10 BIGINT = 0,
@UgdMagParam11 BIGINT = 0,
@UgdMagParam12 BIGINT = 0
AS
DECLARE @UgdEquipID64 BIGINT
DECLARE @UgdEquipRefID INT
DECLARE @UgdEquipSerial64 BIGINT
DECLARE @UgdEquipTID2 TINYINT
DECLARE @UgdEquipTID3 TINYINT
DECLARE @UgdEquipItemClass TINYINT
DECLARE @UgdStoneID64 BIGINT
DECLARE @UgdStoneRefID INT
DECLARE @UgdStoneSerial64 BIGINT
DECLARE @UgdStoneCount INT
DECLARE @CheckTID3_1 INT
DECLARE @CheckTID3_2 INT
SET @UgdEquipID64 = 0
SET @UgdEquipRefID = 0
SET @UgdEquipSerial64 = 0
SET @UgdEquipTID2 = 0
SET @UgdEquipTID3 = 0
SET @UgdEquipItemClass = 0
SET @UgdStoneRefID = 0
SET @UgdStoneID64 = 0
SET @UgdStoneSerial64 = 0
SET @UgdStoneCount = 0
SET @CheckTID3_1 = 0
SET @CheckTID3_2 = 0
-- ى—…ê·¸ë*ˆى´ë“œ ى„±ê³µ / ى‹¤يŒ¨ى—گ 대ي•œ 결과값 ى*€ى¥
DECLARE @UpgradeResult TABLE
(
Type TINYINT,
RefItemID INT,
Slot TINYINT,
[Count] INT,
ID64 BIGINT,
Serial64 BIGINT
)
-- ي•´ë‹¹ ى؛گë¦*ي„°ê°€ ى،´ى¬ي•کëٹ”ى§€ ي™•ى¸
IF NOT EXISTS ( SELECT * FROM _Char WITH (NOLOCK) WHERE CharID = @CharID )
BEGIN
INSERT @UpgradeResult VALUES( 0, -1, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ى—…ê·¸ë*ˆى´ë“œي•* ى¥ë¹„ ى•„ى´ي…œê³¼ ى„±ى¥ى„ىک ItemID를 ي™•ى¸
SELECT @UgdEquipID64 = ISNULL( MAX(ItemID), 0 ) FROM _Inventory WITH (NOLOCK) WHERE CharID = @CharID AND Slot = @UgdEquipSlot
SELECT @UgdStoneID64 = ISNULL( MAX(ItemID), 0 ) FROM _Inventory WITH (NOLOCK) WHERE CharID = @CharID AND Slot = @UgdStoneSlot
IF( @UgdEquipID64 = 0 OR @UgdStoneID64 = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -2, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ى—…ê·¸ë*ˆى´ë“œي•* ى¥ë¹„ ى•„ى´ي…œىک ëچ°ى´ي„°ë¥¼ ى–»ى–´ىک¨ë‹¤!!!
SELECT @UgdEquipRefID = ISNULL( MAX(RefItemID), 0 ), @UgdEquipSerial64 = ISNULL( MAX(Serial64), 0 )
FROM _Items AS I WITH (NOLOCK)
JOIN _ItemPool AS IP WITH (NOLOCK) ON I.ID64 = IP.ItemID
WHERE ID64 = @UgdEquipID64 AND IP.InUse = 1
IF( @UgdEquipRefID = 0 OR @UgdEquipSerial64 = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -3, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ي•´ë‹¹ ى—…ê·¸ë*ˆى´ë“œي•* ى•„ى´ي…œى´ ى¥ë¹„ ى•„ى´ي…œى´ê³* 11ى°¨ ى´ىƒپ, Rarityê°€ 2(ë*ˆى–´) OR 6(ë*ˆى–´ى…‹يٹ¸)ى¸ى§€ ي™•ى¸ (11ى°¨ ى´ىƒپ만 ى—…ê·¸ë*ˆى´ë“œ ê°€ëٹ¥!!!)
SELECT @UgdEquipTID2 = ISNULL( MAX(ROC.TypeID2), 0 ), @UgdEquipTID3 = ISNULL( MAX(ROC.TypeID3), 0 ), @UgdEquipItemClass = ( ( ISNULL( MAX(ROI.ItemClass), 0 ) + 2 ) / 3 )
FROM _RefObjCommon AS ROC JOIN _RefObjItem AS ROI ON ROC.Link = ROI.ID
WHERE ROC.ID = @UgdEquipRefID AND ROC.TypeID1= 3 AND ROC.TypeID2 = 1 AND ROI.ItemClass > 30
IF( @UgdEquipTID2 = 0 OR @UgdEquipTID3 = 0 OR @UgdEquipItemClass = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -4, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ى„±ى¥ى„ ى•„ى´ي…œى—گ 대ي•œ ëچ°ى´ي„°ë¥¼ ى–»ى–´ىک¨ë‹¤.
SELECT @UgdStoneRefID = ISNULL( MAX(RefItemID), 0 ), @UgdStoneCount = ISNULL( MAX(Data), 0 ), @UgdStoneSerial64= ISNULL( MAX(Serial64), 0 )
FROM _Items AS I WITH (NOLOCK)
JOIN _ItemPool AS IP WITH (NOLOCK) ON I.ID64 = IP.ItemID
WHERE ID64 = @UgdStoneID64 AND IP.InUse = 1
IF( @UgdStoneRefID = 0 OR @UgdStoneSerial64 = 0 OR @UgdStoneCount = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -5, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ى„±ى¥ى„ ى•„ى´ي…œى´ ى‹¤ى*œ ى„±ى¥ى„ ى•„ى´ي…œ يƒ€ى…ى¸ى§€ ي™•ى¸ي•کىگ!!!
-- ى„±ى¥ى„ىک FreeParam1 : 대ىƒپ ى¥ë¹„ ى•„ى´ي…œىک ى°¨ىˆک
-- ى„±ى¥ى„ىک FreeParam2 : 대ىƒپ ى¥ë¹„ ى•„ى´ي…œىک TypeID2
-- ى„±ى¥ى„ىک FreeParam3 : 대ىƒپ ى¥ë¹„ ى•„ى´ي…œىک TypeID3(비يٹ¸ë§ˆىٹ¤ي‚¹)
-- ى„±ى¥ى„ىک FreeParam4 : 대ىƒپ ى¥ë¹„ ى•„ى´ي…œىک TypeID3(비يٹ¸ë§ˆىٹ¤ي‚¹)
SELECT @CheckTID3_1 = ISNULL( MAX(ROI.Param3), 0 ), @CheckTID3_2 = ISNULL( MAX(ROI.Param4), 0 )
FROM _RefObjCommon AS ROC JOIN _RefObjItem AS ROI ON ROC.Link = ROI.ID
WHERE ROC.ID = @UgdStoneRefID AND ROI.Param1 = @UgdEquipItemClass AND ROI.Param2 = @UgdEquipTID2
IF ( @CheckTID3_1 = 0 AND @CheckTID3_2 = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -6, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
DECLARE @Cnt TINYINT
DECLARE @TID3_1 TINYINT
DECLARE @TID3_2 TINYINT
DECLARE @IsEqualTID3 TINYINT
SET @Cnt = 0
SET @TID3_1 = 0
SET @TID3_2 = 0
SET @IsEqualTID3 = 0
WHILE( @Cnt <= 3 )
BEGIN
SET @TID3_1 = ( @CheckTID3_1 / POWER( 2 , 8 * @Cnt ) ) & 0xFF
SET @TID3_2 = ( @CheckTID3_2 / POWER( 2 , 8 * @Cnt ) ) & 0xFF
IF( @UgdEquipTID3 IN ( @TID3_1, @TID3_2) )
BEGIN
-- ى¥ë¹„ ى•„ى´ي…œê³¼ ى„±ى¥ى„ىک 대ىƒپ TID3ى´ ëڈ™ى¼ي•ک구ë‚ک!!!
SET @IsEqualTID3 = 1
BREAK
END
SET @Cnt = @Cnt + 1
END
-- ى¥ë¹„ ى•„ى´ي…œê³¼ ى„±ى¥ى„ىک 대ىƒپ TID3ى´ ëڈ™ى¼ي•کى§€ ى•ٹ구ë‚ک!!!
IF( @IsEqualTID3 = 0 )
BEGIN
INSERT @UpgradeResult VALUES( 0, -7, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
DECLARE @ErrorCode INT
SET @ErrorCode = 0
BEGIN TRANSACTION
-- ى¼ë‹¨ ى—…ê·¸ë*ˆى´ë“œ ى„±ê³µ/ى‹¤يŒ¨ ى—¬ë¶€ë¥¼ ë–*ë‚کى„œ ى„±ى¥ى„ى€ ى‚*ى*œي•´ى£¼ىگ!!!
IF( @UgdStoneCount > 1 )
BEGIN
-- ى„±ى¥ى„ىک ê°¯ىˆکê°€ 1ى´ىƒپى´ë‹¤;;;
UPDATE _Items Set Data = @UgdStoneCount - 1 WHERE ID64 = @UgdStoneID64
IF( @@ERROR <> 0 )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -8, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
SET @UgdStoneCount = @UgdStoneCount -1
END
ELSE
BEGIN
EXEC @ErrorCode = _STRG_DEL_ITEM_NoTX 1, @CharID, @UgdStoneSlot
IF( @ErrorCode < 0 )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -9, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
SET @UgdStoneCount = 0
END
SET @UgdStoneCount = @UgdStoneCount - 1
IF( @UgdSuccess = 1 )
BEGIN
-- ي•´ë‹¹ ى¥ë¹„ ى•„ى´ي…œى„ ى—…ê·¸ë*ˆى´ë“œ ي•کىگ!!!
IF NOT EXISTS ( SELECT * FROM _RefObjCommon WHERE ID = @UgdRefItemID )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -10, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- ىٹ¹ê³„ي•œ ىکµë*ˆë²¨ى€ 12ى´ي•کى´ë‹¤!!! (12ى°¨ ى´ىƒپى€ ىکµë*ˆë²¨ 15ê°€ ىµىک¤!!!)
DECLARE @MAX_OPT_LEVEL TINYINT
SET @MAX_OPT_LEVEL = 15
IF( @UgdOptLevel > @MAX_OPT_LEVEL )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -11, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- 매ى§پىکµى…ک ê°¯ىˆکëٹ” 12개를 ى´ˆê³¼ي•* ىˆک ى—†ë‹¤!!!
DECLARE @MAX_MGC_OPT_NUM TINYINT
SET @MAX_OPT_LEVEL = 12
IF( @UgdMagParamNum > @MAX_MGC_OPT_NUM )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -12, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- 문ى*œê°€ ى—†ë‹¤ë©´ ي•´ë‹¹ ى•„ى´ي…œى„ ى—…ê·¸ë*ˆى´ë“œ ي•کىگ!!!
UPDATE _Items SET RefItemID = @UgdRefItemID, OptLevel = @UgdOptLevel, Variance = @UgdVariance, Data = @UgdData, CreaterName = @UgdCreateName,
MagParamNum = @UgdMagParamNum, MagParam1 = @UgdMagParam1, MagParam2 = @UgdMagParam2, MagParam3 = @UgdMagParam3,
MagParam4 = @UgdMagParam4, MagParam5 = @UgdMagParam5, MagParam6 = @UgdMagParam6, MagParam7 = @UgdMagParam7, MagParam8 = @UgdMagParam8,
MagParam9 = @UgdMagParam9, MagParam10 = @UgdMagParam10, MagParam11 = @UgdMagParam11, MagParam12 = @UgdMagParam12
WHERE ID64 = @UgdEquipID64
IF( @@ROWCOUNT = 0 OR @@ERROR <> 0 )
BEGIN
ROLLBACK TRANSACTION
INSERT @UpgradeResult VALUES( 0, -13, 0, 0, 0, 0 )
SELECT * FROM @UpgradeResult
RETURN
END
-- يٹ¹ىˆک ى—کë¦*ى‹œë¥´ى—گ ىکي•´ ى¦ê°€ëگœ ىکµë*ˆë²¨ى´ ىˆىœ¼ë©´ ى‚*ى*œي•´ى£¼ىگ!!!
IF EXISTS (SELECT * FROM sysobjects WHERE Name = '_BindingOptionWithItem' AND Type = 'U' )
BEGIN
DELETE _BindingOptionWithItem WHERE nItemDBID = @UgdEquipID64 AND bOptType = 2
END
-- Type : 1 (ى•„ى´ي…œ ى—…ê·¸ë*ˆى´ë“œ), TypeID : 2 ( ى•„ى´ي…œ ى‚*ى*œ )
INSERT @UpgradeResult VALUES( 1, @UgdRefItemID, @UgdEquipSlot, 0, @UgdEquipID64, @UgdEquipSerial64 )
END
-- Type : 1 (ى•„ى´ي…œ ى—…ê·¸ë*ˆى´ë“œ), TypeID : 2 ( ى•„ى´ي…œ ى‚*ى*œ )
-- ى„±ى¥ى„ ى‚*ى*œى—گ 대ي•œ ë،œê·¸ë¥¼ 기ë،ي•کىگ!!!
INSERT @UpgradeResult VALUES( 2, @UgdStoneRefID, @UgdStoneSlot, @UgdStoneCount, @UgdStoneID64, @UgdStoneSerial64 )
COMMIT TRANSACTION
SELECT * FROM @UpgradeResult
التابل
كود PHP:
nItemDBID bOptType nSlot nOptID nOptLvl nOptValue nParam1 nParam2
174 1 0 31734 1 0 32166 0
174 1 1 0 0 0 0 0
174 1 2 0 0 0 0 0
189 1 0 31738 2 0 32161 0
189 1 1 31743 1 0 32163 0
189 1 2 31755 2 0 32167 0
468 1 0 31734 1 0 32166 0
468 1 1 0 0 0 0 0
468 1 2 0 0 0 0 0
832 1 0 60046 2 0 101626 0
832 1 1 0 0 0 0 0
832 1 2 0 0 0 0 0
1171 1 0 0 0 0 0 0
1171 1 1 60045 1 0 101626 0
1171 1 2 0 0 0 0 0
1182 1 0 0 0 0 0 0
1182 1 1 0 0 0 0 0
1182 1 2 60047 3 0 101626 0
1724 1 0 31756 3 0 32167 0
1724 1 1 31751 1 0 32165 0
1724 1 2 0 0 0 0 0
1732 1 0 0 0 0 0 0
1732 1 1 31730 3 0 32159 0
1732 1 2 0 0 0 0 0
1826 1 0 31753 3 0 32165 0
1826 1 1 31755 2 0 32167 0
2556 1 0 0 0 0 0 0
2556 1 1 31739 3 0 32161 0
2556 1 2 31747 5 0 32163 0
2803 1 0 31753 3 0 32165 0
2803 1 1 31756 3 0 32167 0
2803 1 2 31739 3 0 32161 0
3088 1 0 31739 3 0 32161 0
3088 1 1 31756 3 0 32167 0
3088 1 2 31753 3 0 32165 0
3283 1 0 0 0 0 0 0
3283 1 1 0 0 0 0 0
3283 1 2 0 0 0 0 0
3725 1 0 31737 1 0 32161 0
3725 1 1 0 0 0 0 0
3725 1 2 0 0 0 0 0
4090 1 0 60046 2 0 101626 0
4090 1 1 0 0 0 0 0
4090 1 2 0 0 0 0 0
4864 1 0 31738 2 0 32161 0
4864 1 1 0 0 0 0 0
4864 1 2 0 0 0 0 0
4872 1 0 31751 1 0 32165 0
4872 1 1 0 0 0 0 0
4872 1 2 31754 1 0 32167 0
4873 1 0 0 0 0 0 0
4873 1 1 31738 2 0 32161 0
4873 1 2 31743 1 0 32163 0
4874 1 0 31737 1 0 32161 0
4874 1 1 0 0 0 0 0
4874 1 2 0 0 0 0 0
4931 1 0 0 0 0 0 0
5039 1 0 60096 1 0 101636 0
5039 1 1 0 0 0 0 0
5039 1 2 0 0 0 0 0
5394 1 2 60085 5 0 101633 0
5403 1 2 60126 1 0 101642 0
5489 1 0 0 0 0 0 0
5489 1 1 60091 1 0 101635 0
5503 1 0 60090 5 0 101634 0
5503 1 1 0 0 0 0 0
5503 1 2 0 0 0 0 0
5563 1 0 0 0 0 0 0
5563 1 1 0 0 0 0 0
5563 1 2 60123 3 0 101641 0
5775 1 0 0 0 0 0 0
5775 1 1 60097 2 0 101636 0
5775 1 2 0 0 0 0 0
103428 1 0 33061 1 0 35027 0
103428 1 1 33053 1 0 35025 0
NULL NULL NULL NULL NULL NULL NULL NULL
وده التصميم بتاعه :
كود PHP:
nItemDBID bigint Unchecked
bOptType tinyint Unchecked
nSlot tinyint Unchecked
nOptID int Unchecked
nOptLvl tinyint Unchecked
nOptValue int Unchecked
nParam1 int Checked
nParam2 int Checked
وده كمان له علاقه بالموضوع وحاسس ان المشكله فيه مش عارف ليه :D
كود PHP:
USE [test]
GO
/****** Object: StoredProcedure [dbo].[_STRG_DEL_ITEM_NoTX] Script Date: 31/12/2016 12:48:10 م ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER 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 if ( @DelFromPC_Inv = 3 ) -- #ifdef ADD_TRADE_BAG_INVENTORY
select @itemToDel = ItemID FROM _TradeBagInventory WHERE CharID = @CharID AND Slot = @Slot
else if ( @DelFromPC_Inv = 4 ) -- #ifdef ADD_TRADE_EQUIP_INVENTORY
select @itemToDel = ItemID FROM _TradeEquipInventory WHERE CharID = @CharID AND Slot = @Slot
--#ifdef PET_SYSTEM_RENEWAL
else if( @DelFromPC_Inv = 5 )
select @ItemToDel = ItemID FROM _EquipInvCos WHERE NewCOSID = @CharID AND Slot = @Slot
--#endif // PET_SYSTEM_RENEWAL
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
-- ADD_BINDING_OPTION_INSTANCE_TABLE
----------------------------------------------------------
-- 삭제 대상 아이템에 묶인 바인드 옵션 삭제
----------------------------------------------------------
if exists (select 1 from _BindingOptionWithItem with (nolock) where nItemDBID = @ItemToDel)
begin -- 데이터가 들어 있다면..
delete from _BindingOptionWithItem where nItemDBID = @ItemToDel
if (@@ERROR <> 0 OR @@ROWCOUNT = 0)
begin
rollback transaction
return -5
end
end
-- ADD_BINDING_OPTION_INSTANCE_TABLE
----------------------------------------------------------
-- 슬롯 비우기
----------------------------------------------------------
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 if (@DelFromPC_Inv = 3 ) -- #ifdef ADD_TRADE_BAG_INVENTORY
update _TradeBagInventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot
else if (@DelFromPC_Inv = 4 ) -- #ifdef ADD_TRADE_EQUIP_INVENTORY
update _TradeEquipInventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot
-- #ifdef PET_SYSTEM_RENEWAL
else if( @DelFromPC_Inv = 5 )
update _EquipInvCos SET ItemID = 0 WHERE NEWCOSID = @CharID AND Slot = @Slot
--#endif // PET_SYSTEM_RENEWAL
else
update _InvCOS SET ItemID = 0 WHERE COSID = @CharID AND Slot = @Slot
if (@@error <> 0 OR @@rowcount = 0)
return -3
-- SYSTEM_RENT_ITEM
----------------------------------------------------------
-- 삭제 대상 아이템에 묶인 임대 정보 삭제
----------------------------------------------------------
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
-- SYSTEM_RENT_ITEM
----------------------------------------------------------
-- 해당 아이템 삭제
----------------------------------------------------------
exec @Rvalue = _STRG_FREE_ITEM_NoTX @ItemToDel
if (@Rvalue < 0)
return -4
return 1
_InventoryForLinkedStorage
Invalid Object Name
و
ItemID
LinkedItemID
Slot
Invaild Culmn name
كود PHP:
IF EXISTS (SELECT * FROM sysobjects WHERE Name = '_BindingOptionWithItem' AND Type = 'U' )
BEGIN
DELETE _BindingOptionWithItem WHERE nItemDBID = @UgdEquipID64 AND bOptType = 2
END
دلوقتى انا عاوز افهم انا ماشى صح ولا ده اصلاً ملهوش علاقه بالموضوع ولا في ايه بالظبط واحل المشكله ديه ازاى :D ؟
ولو حد عنده حل للمشكله يقول عليه بصرف النظر اذا كان يخص Vsro أو C-sro المهم نعرف ايه اللى بيعمل المشكله ديه البروسيدور سليم ومفهوش مشاكل وانا مش عارف صراحه ممكن تكون فين
طبعاً عارف ان معظم اللى اشتغلو على الملفات ديه عارفين الموضوع ده فقولت أعمل بيه موضوع واجيبه هنا علشان كلنا نبص بصه سوا :D واى حد عنده رأى او جرب حاجه ونفعت معاه يقولنا :)
|
|
التعديل الأخير تم بواسطة Dev.Myth ; 31-12-2016 الساعة 02:09 PM
|
إعلانات google |
|
يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر)
|
|
ضوابط المشاركة
|
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك
كود HTML معطلة
|
|
|
المواضيع المتشابهه
|
الموضوع |
كاتب الموضوع |
المنتدى |
الردود |
آخر مشاركة |
upgrade
|
hodamoseba |
قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة |
4 |
10-01-2017 03:49 PM |
set & acc upgrade
|
hodamoseba |
قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة |
2 |
02-01-2017 04:24 AM |
upgrade
|
HraZ |
قسم المواضيع المكررة و المخالفة |
2 |
25-09-2014 11:15 AM |
بخصوص Upgrade To D13 Items!
|
shireeee |
قـسـم الاسـئـلـه و الاسـتـفـسـارات حـول الـلـعـبـة |
6 |
12-09-2014 07:06 AM |
الساعة الآن 08:39 AM.
|