الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   C-Sro Upgrade items (https://silkroad4arab.com/vb/showthread.php?t=609449)

Dev.Myth 31-12-2016 01:43 PM

C-Sro Upgrade items
 
السلام عليكم
مشكله مع الـ Upgrade Items بعد الإستخدام بتجيب DC لكن العمليه بتتنفذ والجيم سيرفر طبعاً بيجيب كده :
كود PHP:

AQ succeeded but AsyncQueryCompleted() error occurred [AQType40

حاولت اعمل حاجات كتيره علشان احاول احلها بس مش عارف اصلاً انا بقيت ماشى صح ولا غلط ولا انا بقيت بعمل ايه وديه اخر حاجه وصلت ليها
ده البروسيدور

كود 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 (NOLOCKWHERE CharID = @CharID )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -1000)
        
SELECT FROM @UpgradeResult 
        
RETURN
    
END

    
-- ى—…ê·¸ë*ˆى‌´ë“œي•ى‍¥ë¹„ ى•„ى‌´ي…œê³¼ ى„±ى‍¥ى„‌ى‌ک ItemID를 ي™•ى‌¸
    SELECT 
@UgdEquipID64 ISNULLMAX(ItemID), FROM _Inventory WITH (NOLOCKWHERE CharID = @CharID AND Slot = @UgdEquipSlot
    SELECT 
@UgdStoneID64 ISNULLMAX(ItemID), FROM _Inventory WITH (NOLOCKWHERE CharID = @CharID AND  Slot = @UgdStoneSlot

    
IF( @UgdEquipID64 OR @UgdStoneID64 )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -2000)
        
SELECT FROM @UpgradeResult 
        
RETURN
    
END

    
-- ى—…ê·¸ë*ˆى‌´ë“œي•ى‍¥ë¹„ ى•„ى‌´ي…œى‌ک ëچ°ى‌´ي„°ë¥¼ ى–»ى–´ىک¨ë‹¤!!!
    
SELECT @UgdEquipRefID ISNULLMAX(RefItemID), ), @UgdEquipSerial64 ISNULLMAX(Serial64), )
    
FROM _Items  AS I WITH (NOLOCK)
    
JOIN _ItemPool AS IP WITH (NOLOCKON I.ID64 IP.ItemID
    WHERE ID64 
= @UgdEquipID64 AND IP.InUse 1

    
IF( @UgdEquipRefID OR @UgdEquipSerial64 )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -3000)
        
SELECT FROM @UpgradeResult 
        
RETURN
    
END

     
-- ي•´ë‹¹ ى—…ê·¸ë*ˆى‌´ë“œي•ى•„ى‌´ي…œى‌´ ى‍¥ë¹„ ى•„ى‌´ي…œى‌´ê³11ى°¨ ى‌´ىƒپRarityê°€ 2(ë*ˆى–´) OR 6(ë*ˆى–´ى…‹يٹ¸)ى‌¸ى§€ ي™•ى‌¸ (11ى°¨ ى‌´ىƒپë§Œ ى—…ê·¸ë*ˆى‌´ë“œ ê°€ëٹ¥!!!)  
     
SELECT @UgdEquipTID2 ISNULLMAX(ROC.TypeID2), ), @UgdEquipTID3 ISNULLMAX(ROC.TypeID3), ),  @UgdEquipItemClass = ( ( ISNULLMAX(ROI.ItemClass), ) + ) / )   
     
FROM _RefObjCommon AS ROC JOIN _RefObjItem AS ROI ON ROC.Link ROI.ID   
     WHERE ROC
.ID = @UgdEquipRefID AND ROC.TypeID1AND ROC.TypeID2 AND  ROI.ItemClass 30
      
     
IF( @UgdEquipTID2 OR @UgdEquipTID3 OR @UgdEquipItemClass )  
     
BEGIN  
      INSERT 
@UpgradeResult VALUES0, -4000)  
      
SELECT FROM @UpgradeResult   
      
RETURN    
     
END  
    
-- ى„±ى‍¥ى„‌ ى•„ى‌´ي…œى—گ ëŒ€ي•œ ëچ°ى‌´ي„°ë¥¼ ى–»ى–´ىک¨ë‹¤.
    
SELECT @UgdStoneRefID ISNULLMAX(RefItemID), ), @UgdStoneCount ISNULLMAX(Data), ), @UgdStoneSerial64ISNULLMAX(Serial64), )
    
FROM _Items  AS I WITH (NOLOCK)
    
JOIN _ItemPool AS IP WITH (NOLOCKON I.ID64 IP.ItemID
    WHERE ID64 
= @UgdStoneID64 AND IP.InUse 1

    
IF( @UgdStoneRefID OR @UgdStoneSerial64 OR @UgdStoneCount )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -5000)
        
SELECT FROM @UpgradeResult 
        
RETURN
    
END

    
-- ى„±ى‍¥ى„‌ ى•„ى‌´ي…œى‌´ ى‹¤ى*œ ى„±ى‍¥ى„‌ ى•„ى‌´ي…œ يƒ€ى‍…ى‌¸ى§€ ي™•ى‌¸ي•کى‍گ!!!
    -- 
ى„±ى‍¥ى„‌ى‌ک FreeParam1 ëŒ€ىƒپ ى‍¥ë¹„ ى•„ى‌´ي…œى‌ک ى°¨ىˆک
    
-- ى„±ى‍¥ى„‌ى‌ک FreeParam2 ëŒ€ىƒپ ى‍¥ë¹„ ى•„ى‌´ي…œى‌ک TypeID2
    
-- ى„±ى‍¥ى„‌ى‌ک FreeParam3 ëŒ€ىƒپ ى‍¥ë¹„ ى•„ى‌´ي…œى‌ک TypeID3(비يٹ¸ë§ˆىٹ¤ي‚¹)
    -- 
ى„±ى‍¥ى„‌ى‌ک FreeParam4 ëŒ€ىƒپ ى‍¥ë¹„ ى•„ى‌´ي…œى‌ک TypeID3(비يٹ¸ë§ˆىٹ¤ي‚¹)
    
SELECT @CheckTID3_1 ISNULLMAX(ROI.Param3), ), @CheckTID3_2 ISNULLMAX(ROI.Param4), )  
    
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 AND @CheckTID3_2 )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -6000)
        
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 <= )
    
BEGIN
        SET 
@TID3_1  = ( @CheckTID3_1 POWER* @Cnt ) ) & 0xFF
        SET 
@TID3_2  = ( @CheckTID3_2 POWER* @Cnt ) ) & 0xFF

        
IF( @UgdEquipTID3 IN ( @TID3_1, @TID3_2) )
        
BEGIN
            
-- ى‍¥ë¹„ ى•„ى‌´ي…œê³¼ ى„±ى‍¥ى„‌ى‌ک  ëŒ€ىƒپ TID3ى‌´ ëڈ™ى‌¼ي•ک구ë‚ک!!!
            
SET @IsEqualTID3 1
            
BREAK
        
END

        SET 
@Cnt = @Cnt 1
    END

    
-- ى‍¥ë¹„ ى•„ى‌´ي…œê³¼ ى„±ى‍¥ى„‌ى‌ک  ëŒ€ىƒپ TID3ى‌´ ëڈ™ى‌¼ي•کى§€ ى•ٹ구ë‚ک!!!    
    IF( @
IsEqualTID3 )
    
BEGIN
        INSERT 
@UpgradeResult VALUES0, -7000)
        
SELECT FROM @UpgradeResult 
        
RETURN        
    
END

    
DECLARE @ErrorCode INT
    SET 
@ErrorCode 0
    
    BEGIN TRANSACTION

    
-- ى‌¼ë‹¨ ى—…ê·¸ë*ˆى‌´ë“œ ى„±ê³µ/ى‹¤يŒ¨ ى—¬ë¶€ë¥¼ ë–*ë‚کى„œ ى„±ى‍¥ى„‌ى‌€ ى‚*ى*œي•´ى£¼ى‍گ!!!
    IF( @
UgdStoneCount )
    
BEGIN
        
-- ى„±ى‍¥ى„‌ى‌ک ê°¯ىˆکê°€ 1ى‌´ىƒپى‌´ë‹¤;;; 
        
UPDATE _Items Set Data = @UgdStoneCount 1 WHERE ID64 = @UgdStoneID64
        
IF( @@ERROR <> )
        
BEGIN
            ROLLBACK TRANSACTION
            INSERT 
@UpgradeResult VALUES0, -8000)
            
SELECT FROM @UpgradeResult 
            
RETURN        
        
END

        SET 
@UgdStoneCount = @UgdStoneCount  -1
    END
    
ELSE
    
BEGIN
        EXEC 
@ErrorCode =  _STRG_DEL_ITEM_NoTX 1, @CharID, @UgdStoneSlot
        
IF( @ErrorCode )
        
BEGIN
            ROLLBACK TRANSACTION
            INSERT 
@UpgradeResult VALUES0, -9000)
            
SELECT FROM @UpgradeResult 
            
RETURN        
        
END

        SET 
@UgdStoneCount 0
    END

    SET 
@UgdStoneCount = @UgdStoneCount 1
    
    
IF( @UgdSuccess )
    
BEGIN
        
-- ي•´ë‹¹ ى‍¥ë¹„ ى•„ى‌´ي…œى‌„ ى—…ê·¸ë*ˆى‌´ë“œ ي•کى‍گ!!!
        IF 
NOT EXISTS SELECT FROM _RefObjCommon WHERE ID = @UgdRefItemID )
        
BEGIN
            ROLLBACK TRANSACTION
            INSERT 
@UpgradeResult VALUES0, -10000)
            
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 VALUES0, -11000)
            
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 VALUES0, -12000)
            
SELECT FROM @UpgradeResult 
            
RETURN        
        
END

        
-- ë¬¸ى*œê°€ ى—†ë‹¤ë©´ ي•´ë‹¹ ى•„ى‌´ي…œى‌„ ى—…ê·¸ë*ˆى‌´ë“œ ي•کى‍گ!!!
        
UPDATE _Items SET RefItemID = @UgdRefItemIDOptLevel =  @UgdOptLevelVariance = @UgdVarianceData = @UgdDataCreaterName = @UgdCreateName,
            
MagParamNum = @UgdMagParamNumMagParam1 = @UgdMagParam1MagParam2 = @UgdMagParam2MagParam3 = @UgdMagParam3,
            
MagParam4 = @UgdMagParam4MagParam5 = @UgdMagParam5MagParam6 = @UgdMagParam6MagParam7 = @UgdMagParam7MagParam8 = @UgdMagParam8,
            
MagParam9 = @UgdMagParam9MagParam10 = @UgdMagParam10MagParam11 = @UgdMagParam11MagParam12 = @UgdMagParam12
            WHERE ID64 
= @UgdEquipID64
        
IF( @@ROWCOUNT OR @@ERROR <> )
        
BEGIN
            ROLLBACK TRANSACTION
            INSERT 
@UpgradeResult VALUES0, -13000)
            
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 (ى•„ى‌´ي…œ ى—…ê·¸ë*ˆى‌´ë“œ), TypeID ى•„ى‌´ي…œ ى‚*ى*œ )
        
INSERT @UpgradeResult VALUES1, @UgdRefItemID, @UgdEquipSlot0, @UgdEquipID64, @UgdEquipSerial64 )

    
END

    
-- Type (ى•„ى‌´ي…œ ى—…ê·¸ë*ˆى‌´ë“œ), TypeID ى•„ى‌´ي…œ ى‚*ى*œ )
    -- 
ى„±ى‍¥ى„‌ ى‚*ى*œى—گ ëŒ€ي•œ ë،œê·¸ë¥¼ ê¸°ë،‌ي•کى‍گ!!!
    
INSERT @UpgradeResult VALUES2, @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,  -- &#47588;직 큐브 추가로 인해 확장
@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 if ( @DelFromPC_Inv ) -- #ifdef ADD_TRADE_BAG_INVENTORY 
        
select @itemToDel ItemID FROM _TradeBagInventory WHERE CharID = @CharID AND Slot = @Slot
    
else if ( @DelFromPC_Inv ) -- #ifdef ADD_TRADE_EQUIP_INVENTORY 
        
select @itemToDel ItemID FROM _TradeEquipInventory WHERE CharID = @CharID AND Slot = @Slot
    
--#ifdef PET_SYSTEM_RENEWAL
    
else if(  @DelFromPC_Inv 
        
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

    
----------------------------------------
    -- &
#51320;라 이 아래쪽 순전히 펫 소환아이템 때문에 
    
-- &#46308;어간 코드이다. 분명 overhead이긴 하지만
    
-- _STRG_DEL_ITEM &#51032; 신뢰도와 게임서버 코드 복잡도
    
-- &#51613;가를 유발하지 않기 위해 어쩔 수 없는 판단이었다. T_T
    
----------------------------------------
    declare @
BoundCOS int
    
declare @RefItemID int
    select 
@RefItemID RefItemID, @BoundCOS Data from _Items where ID64 = @ItemToDel
    
if (@@ROWCOUNT 0)
        return -
2

    
----------------------------------------
    -- &
#54841;시 이눔 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
        
----------------------------------------
        -- &
#50670;여있는 PET 이 있으면 그넘 삭제
        
----------------------------------------
        if (@
BoundCOS <> 0)    
        
begin
            exec 
@Rvalue _DeleteCharCOS_NoTX @BoundCOS
            
if (@Rvalue 0)
                return @
Rvalue
        end
    end

    
----------------------------------------          
    -- &
#54841;시 이눔 LinkedStorage아이템인가?          
    
----------------------------------------          
    else if( @
TypeID1 and @TypeID2 and @TypeID3 )          
    
begin        
        
----------------------------------------          
        -- &
#50670;여있는 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


    
-- ADD_BINDING_OPTION_INSTANCE_TABLE
     
----------------------------------------------------------  
     -- &
#49325;제 대상 아이템에 묶인 바인드 옵션 삭제
     
----------------------------------------------------------  
    if 
exists (select 1 from _BindingOptionWithItem with (nolockwhere nItemDBID = @ItemToDel)
    
begin -- &#45936;이터가 들어 있다면..
        
delete from _BindingOptionWithItem where nItemDBID = @ItemToDel
        
if (@@ERROR <> OR @@ROWCOUNT 0)
        
begin
            rollback transaction
            
return -5
        end
    end
    
-- ADD_BINDING_OPTION_INSTANCE_TABLE

     
----------------------------------------------------------    
     -- &
#49836;롯 비우기    
     
----------------------------------------------------------     
     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 if (@DelFromPC_Inv ) -- #ifdef ADD_TRADE_BAG_INVENTORY     
         
update _TradeBagInventory SET ItemID 0 WHERE CharID = @CharID AND Slot = @Slot    
     
else if (@DelFromPC_Inv ) -- #ifdef ADD_TRADE_EQUIP_INVENTORY     
         
update _TradeEquipInventory SET ItemID 0 WHERE CharID = @CharID AND Slot = @Slot
     
-- #ifdef PET_SYSTEM_RENEWAL
    
else if(  @DelFromPC_Inv )  
        
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 <> OR @@rowcount 0)
        return -
3
    
-- SYSTEM_RENT_ITEM
    
----------------------------------------------------------  
    -- &
#49325;제 대상 아이템에 묶인 임대 정보 삭제
    
----------------------------------------------------------  
        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
    
-- SYSTEM_RENT_ITEM
    
----------------------------------------------------------
    -- &
#54644;당 아이템 삭제 
    
----------------------------------------------------------
    
exec @Rvalue _STRG_FREE_ITEM_NoTX  @ItemToDel
    
if (@Rvalue 0)

        return -
4

    
return 


_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 واى حد عنده رأى او جرب حاجه ونفعت معاه يقولنا :)

Levi 31-12-2016 03:00 PM

رد: C-Sro Upgrade items
 
هو في vsro كل ده مش موجود اصلاً
بمعني ان الحوار مش مستاهل كل procedures دي كلها .. هو تابل واحد و procedure و واحد كمان عشان يعملو exec
بس كل ده اكيد في حاجه
+ ان c-sro مخلتفه جداً عن vsro صراحه مجربت ادخلها لانها شبه المتاها و مفيش ناس كتير اشتغلت فيها ..
قارن بينه وبين الموضوع ده هتلاقي ان في اختلاف مع العلم
. البروسيدير طبعا بيتغير ع حسب لي عملو
هنا

Dev.Myth 01-01-2017 05:47 AM

رد: C-Sro Upgrade items
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Levi (المشاركة 5291874)
هو في vsro كل ده مش موجود اصلاً
بمعني ان الحوار مش مستاهل كل procedures دي كلها .. هو تابل واحد و procedure و واحد كمان عشان يعملو exec
بس كل ده اكيد في حاجه
+ ان c-sro مخلتفه جداً عن vsro صراحه مجربت ادخلها لانها شبه المتاها و مفيش ناس كتير اشتغلت فيها ..
قارن بينه وبين الموضوع ده هتلاقي ان في اختلاف مع العلم
. البروسيدير طبعا بيتغير ع حسب لي عملو
هنا

طبعاً فاهم الفرق لكن ديه هتلاقيها اكيد سكرول وشغلها كله على RefItem و RefObjcommon بس هنا مش شغاله على RefObjCommon بس لوحدها ديه مربوطه بجداول تانيه وسيستم خاص ليها هيا ومكان مخصوص ليها فى ال alchemy وكل حاجه على حدى فمشكلة الديسكونكت ديه بتيجى بعد ماالعمليه بتتنفذ وتبان قصادك النتايج يعنى ديه لو مثلاً بتستخدمها مع ال alchemy العادى فانت بتربطها بيه وخلاص يعنى اعتقادى هنا ان المشكله ديه حلها عند نقطة النهايه وخاصةً فى ال alchemy فيه حاجه ناقصه بس ايه هيا مش قادر لسه اوصلها علشان كده عملت موضوع هنا واللى يقدر يوصل لحاجه يتفضل :D
وعلفكره C-sro اكبر مشاكلها هيا ديه وكام بروسيدور تانين والباقى كله كلام تافه حاجات فى F10 وشغل اى حد يقدر يعدل عليه :)
يعنى لو قدرنا نصلح الكلام ده أى حد بعد كده هيقدر يشتغل على ملفات C-Sro وطبعاً ديه خياال مقارنه بVsro فهيا جمبها ولا حاجه صراحه :D

Dev.Myth 01-01-2017 12:42 PM

رد: C-Sro Upgrade items
 
تعديل كمان
نفس المشكله موجوده فى الماجيك بوب Magic pop
متهيقلى كده المشكله ممكن تكون فى الجيم سيرفر لو حد فاضى يدينا رأيه ياريت يتفضل ده هيفيد ناس كتير :)

Levi 01-01-2017 03:00 PM

رد: C-Sro Upgrade items
 
اكيد و مؤكد بيبقي في البروسيديرز .. اكيد 100%

مش هتلاقي حد لعب في حكايه c-sro كتير

انصحك بلاش منها خليها vsro والمصحف جميله :birgits_tiredcoffee

Dev.Myth 01-01-2017 05:04 PM

رد: C-Sro Upgrade items
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Levi (المشاركة 5292082)
اكيد و مؤكد بيبقي في البروسيديرز .. اكيد 100%

مش هتلاقي حد لعب في حكايه c-sro كتير

انصحك بلاش منها خليها vsro والمصحف جميله :birgits_tiredcoffee


بقيت شاكك ان المشكله تكون فى البروسيدور لأن نفس المشكله موجوده فى الماجيك بوب ديه حاجه فى السيستم نفسه وشكلها ملهاش علاقه بالبروسيدور بس انا وراها :D
C-SRO فيها سيستمات زى مابيقول الكتاب بصراحه وبعدين VSRO سهله وممكن اعمل فيها اى حاجه نفسى فيها :D
بس انا حاسس 70% إن المشكله فى الجيم سيرفر والمشكله انى مش بفهم قد كده فيه

Jayden 02-01-2017 04:10 AM

رد: C-Sro Upgrade items
 
البروسيدر ده معقد جدا والموضوع يتعمل بأبسط من كده وانا شاكك انها ممكن تكون من RETURN اللى موجوده كتير دى
وزى ما قولتلك الموضوع ابسط من كده بص مثلا على موضوعى بتاع الModel Switchers وخد نفس الفكرة على ال Upgrade

Dev.Myth 02-01-2017 10:19 AM

رد: C-Sro Upgrade items
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Jayden (المشاركة 5292169)
البروسيدر ده معقد جدا والموضوع يتعمل بأبسط من كده وانا شاكك انها ممكن تكون من RETURN اللى موجوده كتير دى
وزى ما قولتلك الموضوع ابسط من كده بص مثلا على موضوعى بتاع الModel Switchers وخد نفس الفكرة على ال Upgrade

ده سيستم لوحده زى السوكت او البلص وعرفت اوصل للسيستم بتاعه مفهوش مشكله
وعلشان كده مليان ومعقد شويتين و نفس المشكله قابلتنى فى الماجيك بوب انا عاوز اعرف هيا ممكن تكون من الجيم سيرفر ولا لأ؟ لأن كمان الجيم سيرفر اللى شغال بيه ده بيطلعلى GreenBook وده المفروض ميكونش موجود فى ملفات C-Sro ده غير ان فيه برضو مشكله فى الF10 لما تيجى تشترى اى حاجه جديده غير اللى موجوده فى VSro
لو الجيم سيرفر ملهوش علاقه يبقى على ما أعتقد واللى انا شاكك فيه ان المشكله تكون فى @UpgradeResult او السطر الاخير ده
عموماً انا هشوف موضوعك برضو يمكن اطلع منه بحاجه ونسيب الموضوع مفتوح يمكن انا اقدر اوصل لشئ او حد غيرى

Jayden 03-01-2017 01:52 AM

رد: C-Sro Upgrade items
 
ممكن برضو يكون من ال Gameserver
ال GS ملوش امان ابدا اسألنى أنا ^^
بس برضو انا متأكد ان الموضوع يتعمل ابسط من كده بكتير ده بروسيدر بطىء جدا

Dev.Myth 03-01-2017 04:15 PM

رد: C-Sro Upgrade items
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Jayden (المشاركة 5292336)
ممكن برضو يكون من ال Gameserver
ال GS ملوش امان ابدا اسألنى أنا ^^
بس برضو انا متأكد ان الموضوع يتعمل ابسط من كده بكتير ده بروسيدر بطىء جدا

ارخم حاجه ومش بفهم فيه بجد رخم اوى :@
و انت كده مش واصله ليك لسه :D
ده سيستم زى البلص والسوكت كده موجود فى Y فلازم يكون معقد كده وكبير لأن ليه كذا مرحله وكذا امر وشروط كتيره وشغاال تمام 10/10 بدون اى مشاكل وبتتنفذ العمليات وبتشوف النتيجه بس بعد ده كله تلاقى نفسك طلعت DC ونفس المشكله فى الماجيك بوب برضو تنجح العمليه وتشوف النتايج بعد كده DC انا متأكد إن فيه حاجه مشتركه مابينهم بس اللى محيرنى هيا فى الداتا بيز ولا الجيم سيرفر -.- ؟
لو الداتا بيز تبقى مش صعبه اوى لكن لو الجيم السيرفر انا كده هتقعد :D

عموماً انا مستنى اللى معدل على الداتا بيز اللى انا شغال بيها وبيقول انها عنده شغاله كويس ومفيش دى سى طلبت منه الداتا بس هوا عنده امتحانات وكده فهجرب بيها لو اتحلت تبقى مش من الجيم سيرفر وده اللى انا بتمناه :D
ولو متحلتش هطلب منه الملفات اللى فاتح بيها وهاعرف المشكله فين وسببها ايه واضيفها هنا ان شاء الله

Dev.Myth 05-01-2017 12:32 AM

رد: C-Sro Upgrade items
 
تم معرفة سبب المشكله وحلها :)
سبب المشكله ان ال Upgrade لو اكتر من واحده هتاخد DC لازم وانت بتضرب تكون بتستخدم واحده بس .!
الحل النهائى ليها : انك تغير ال Max stuck بتاعها ل 1 بس علشان متتحطش فوق بعض وتعمل معاك المشكله ديه :)
حوار تافهه بس دوخنى وشككنى فى نفسى :D سبحان الله ديماً الحلول بتكون بسيطه وقدام عنينا بس احنا اللى بنعقدها يالا حصل خير :D

Jayden 05-01-2017 04:19 AM

رد: C-Sro Upgrade items
 
وال Magic pop كان ايه علاقتها طيب :D

Dev.Myth 05-01-2017 04:27 AM

رد: C-Sro Upgrade items
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Jayden (المشاركة 5292599)
وال Magic pop كان ايه علاقتها طيب :D

لأ ديه موال تانى بجد مش هزار ال NPC بعد مايفتح مش بيرضى يدخل على الصفحه وده شكله مشكله فى السكريبت بس اياً يكن اهون مليون مره من انى امد ايدى او حتى أتجرأ وافتح شغل فى الجيم سيرفر :D
دانا لاقيت جداول مش موجوده والدنيا خربانه خالص :D
وبعانى من العشا النهارده لحد دلوقتى بس فصلت على كده والحمد لله النتايج كلها ايجابى والاهم انى بعيد عن الجيم سيرفر ولله الحمد :V

اقفل ياحج الموضوع الحمد لله مرضيه كده بس التفكير بصوت عالى مفيد تصدق ؟ ههههههههه :D

Jayden 05-01-2017 04:44 AM

رد: C-Sro Upgrade items
 
نصيحة منى ارجع ل vsro عشان صحتك
يغلق :D
##


الساعة الآن 11:14 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.