شـريـط الاهـداءات | |
قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة [ قسم خاص لأسئلة واستفسارات عمل السيرفرات الخاصة ] [ يرجى الالتزام بقوانين قسم الأسئلة والاستفسارات ] |
|
أدوات الموضوع | انواع عرض الموضوع |
16-02-2015, 05:33 PM | #16 | ||||||||||||
|
بس ادام يا جماعه بتجيب كدا في ال GameServer يبقي من الداتا ؟ وايه حلها ؟ |
||||||||||||
|
16-02-2015, 05:48 PM | #17 | ||||||||||||
|
up
|
||||||||||||
|
16-02-2015, 06:17 PM | #18 | ||||||||||||
|
حضرتك بلاش سبام UP دي بتتعمل كل 24 ساعة
|
||||||||||||
|
16-02-2015, 06:19 PM | #19 | ||||||||||||
|
روح يا باشا علي المسار دا SRO_VT_SHARD >> Programmability >> Stored Procedure >> _STRG_MOVE_ITEM وكليك يمين Modify وحط الكيوري دا بدل اللي عندك كود:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_STRG_MOVE_ITEM] Script Date: 16/02/2015 05:17:16 م ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -------------------------------------------------------------------------------------------------------------------------- -- PROC #3 -- _STRG_MOVE_ITEM ÇÁ·Î½ÃÁ®¸¦ ¼öÁ¤ÇÏ¿© ¾Æ¹ÙŸ Àκ¥Å丮·Î ¾ÆÀÌÅÛ À̵¿ ±â´ÉÀ» Ãß°¡ÇØ ÁÖÀÚ! - by zone0000 (Çã½Â¿í) -------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------- -- _STRG_MOVE_ITEM ¾Æ¹ÙŸ Operation(35)(36) Ãß°¡ (Çã½Â¿í) ----------------------------------------------------------------- ALTER PROCEDURE [dbo].[_STRG_MOVE_ITEM] @Operation AS TINYINT, @UserJID AS INT, @CharID AS INT, @GuildID AS BIGINT, -- Operation 39, 40¿¡¼± LinkedItemID·Î »ç¿ë. @Slot_From AS TINYINT, @Slot_To AS TINYINT, @Data AS INT, -- ºÎ¼*Áø Àåºñµµ °¡´ÉÇϱⶫ¿¡ 0 ÀÌ µÉ ¼ö ÀÖ´Ù. @RemoveAndOverwrite AS TINYINT AS ---------------- -- SP_UPDATE_SLOTS_INV 0 -- SP_UPDATE_SLOTS_CHEST 1 -- SP_DEPOSIT_ITEM 2 -- SP_WITHDRAW_ITEM 3 -- SP_UPDATE_SLOTS_INV_COS 16 -- SP_GUILD_CHEST_UPDATE_SLOT 29 -- SP_GUILD_CHEST_DEPOSIT_ITEM 30 -- SP_GUILD_CHEST_WITHDRAW_ITEM 31 -- SP_MOVE_ITEM_AVATAR_PC 35 -- Avatar Ãß°¡ -- SP_MOVE_ITEM_PC_AVATAR 36 -- Avatar Ãß°¡ -- SP_PUSH_ITEM_INTO_MAGIC_CUBE 39 -- MagicCubeÃß°¡ -- SP_POP_ITEM_FROM_MAGIC_CUBE 40 -- MagicCubeÃß°¡ ---------------- IF (@Operation <> 0 AND @Operation <> 1 AND @Operation <> 2 AND @Operation <> 3 AND @Operation <> 16 AND @Operation <> 29 AND @Operation <> 30 AND @Operation <> 31 AND @Operation <> 35 AND @Operation <> 36 -- Avatar Ãß°¡ AND @Operation <> 39 AND @Operation <> 40 ) -- MagicCubeÃß°¡ BEGIN RETURN -1000 END -- overwrite ´Â ¿ÀÁ÷ inventory ¾È¿¡¼*¸¸ ÀϾ ¼ö ÀÖ´Â ÀÏÀÌ´Ù(È*»ì ÀÚµ¿ reloading) IF (@RemoveAndOverwrite <> 0 AND @Operation <> 0) BEGIN RETURN -1001 END DECLARE @ItemID_From BIGINT DECLARE @ItemID_To BIGINT SET @ItemID_From = 0 SET @ItemID_To = 0 ---------------------------------------------------------- -- Step1. Src Slot °ú Dst Slot ÀÇ ¾ÆÀÌÅÛ ¾ò±â ¹× Á¸Àç ¹«°á¼º °Ë»ç ---------------------------------------------------------- -------------- Src Item ¾ò±â IF (@Operation = 0 OR @Operation = 2 OR @Operation = 30) -- src: inventory BEGIN SELECT @ItemID_From = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_From END ELSE IF (@Operation = 1 OR @Operation = 3) -- src: chest BEGIN SELECT @ItemID_From = ItemID FROM _Chest WHERE UserJID = @UserJID AND Slot = @Slot_From END ELSE IF (@Operation = 16) BEGIN SELECT @ItemID_From = ItemID FROM _InvCOS WHERE COSID = @CharID AND Slot = @Slot_From END ELSE IF (@Operation = 29 OR @Operation = 31) BEGIN SELECT @ItemID_From = ItemID FROM _GuildChest WHERE GuildID = @GuildID AND Slot = @Slot_From END -- Avatar Ãß°¡ ( Avatar -> PC ) ELSE IF (@Operation = 35) BEGIN SELECT @ItemID_From = ItemID FROM _InventoryForAvatar WHERE CharID = @CharID AND Slot = @Slot_From END -- Avatar Ãß°¡ ( PC -> Avatar ) ELSE IF (@Operation = 36) BEGIN SELECT @ItemID_From = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_From END -- MagicCube Ãß°¡( PCInv -> MagicCube ) ELSE IF (@Operation = 39) BEGIN SELECT @ItemID_From = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_From END -- MagicCube Ãß°¡( MagicCube -> PCInv ) ELSE IF (@Operation = 40) BEGIN SELECT @ItemID_From = ItemID FROM _InventoryForLinkedStorage WHERE LinkedItemID = @GuildID AND Slot = @Slot_From END -------------- Dst Item ¾ò±â IF (@Operation = 0 OR @Operation = 3 OR @Operation = 31) -- dst: inventory BEGIN SELECT @ItemID_To = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_To END ELSE IF (@Operation = 1 OR @Operation = 2) -- dst: chest BEGIN SELECT @ItemID_To = ItemID FROM _Chest WHERE UserJID = @UserJID AND Slot = @Slot_To END ELSE IF (@Operation = 16) BEGIN SELECT @ItemID_To = ItemID FROM _InvCOS WHERE COSID = @CharID AND Slot = @Slot_To END ELSE IF (@Operation = 29 OR @Operation = 30) BEGIN SELECT @ItemID_To = ItemID FROM _GuildChest WHERE GuildID = @GuildID AND Slot = @Slot_To END -- Avatar Ãß°¡ ( Avatar -> PC ) ELSE IF (@Operation = 35) BEGIN SELECT @ItemID_To = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_To END -- Avatar Ãß°¡ ( PC -> Avatar ) ELSE IF (@Operation = 36) BEGIN SELECT @ItemID_To = ItemID FROM _InventoryForAvatar WHERE CharID = @CharID AND Slot = @Slot_To END -- MagicCube Ãß°¡( PCInv -> MagicCube ) ELSE IF (@Operation = 39) BEGIN SELECT @ItemID_To = ItemID FROM _InventoryForLinkedStorage WHERE LinkedItemID = @GuildID AND Slot = @Slot_To END -- MagicCube Ãß°¡( MagicCube -> PCInv ) ELSE IF (@Operation = 40) BEGIN SELECT @ItemID_To = ItemID FROM _Inventory WHERE CharID = @CharID AND Slot = @Slot_To END -------------- ¹«°á¼º °Ë»ç IF (@RemoveAndOverwrite <> 0) BEGIN -- µÎ ½½·Ô ¸ðµÎ ¾ÆÀÌÅÛÀÌ Á¸ÀçÇØ¾ß ÇÑ´Ù. IF (@ItemID_From IS NULL OR @ItemID_To IS NULL) BEGIN RETURN -1003 END IF (@ItemID_From = 0 OR @ItemID_To = 0) BEGIN RETURN -1004 END END ELSE BEGIN -- Source ½½·Ô¿¡¸¸ ¾ÆÀÌÅÛÀÌ Á¸ÀçÇØ¾ß ÇÑ´Ù. IF (@ItemID_From IS NULL OR @ItemID_From = 0) BEGIN RETURN -1005 END IF (@ItemID_To IS NOT NULL AND @ItemID_To <> 0) BEGIN RETURN -1006 END END IF (@Operation = 0) BEGIN IF (@Slot_To < 13) BEGIN DECLARE @CheckValidity INT EXEC @CheckValidity = _STRG_CHECKITEM_CANBE_EQUIPED @ItemID_From, @Slot_To IF (@CheckValidity <= 0) BEGIN RETURN @CheckValidity END END END BEGIN TRANSACTION ---------------------------------------------------------- -- Step2. Storage ¾÷µ¥ÀÌÆ® ---------------------------------------------------------- -------------- Src Slot °»½Å IF (@Operation = 0 OR @Operation = 2 OR @Operation = 30) BEGIN UPDATE _Inventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END ELSE IF (@Operation = 1 OR @Operation = 3) BEGIN UPDATE _Chest SET ItemID = 0 WHERE UserJID = @UserJID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END ELSE IF (@Operation = 16) BEGIN UPDATE _InvCOS SET ItemID = 0 WHERE COSID = @CharID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END ELSE IF (@Operation = 29 OR @Operation = 31) BEGIN UPDATE _GuildChest SET ItemID = 0 WHERE GuildID = @GuildID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END -- Avatar Ãß°¡ ( Avatar -> PC ) ELSE IF (@Operation = 35 ) BEGIN UPDATE _InventoryForAvatar SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END -- Avatar Ãß°¡ ( PC -> Avatar ) ELSE IF (@Operation = 36 ) BEGIN UPDATE _Inventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END -- MagicCube Ãß°¡( PCInv -> MagicCube ) ELSE IF (@Operation = 39 ) BEGIN UPDATE _Inventory SET ItemID = 0 WHERE CharID = @CharID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END -- MagicCube Ãß°¡( MagicCube -> PCInv ) ELSE IF (@Operation = 40 ) BEGIN UPDATE _InventoryForLinkedStorage SET ItemID = 0 WHERE LinkedItemID = @GuildID AND Slot = @Slot_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END END -------------- Dst Slot °»½Å IF (@Operation = 0 OR @Operation = 3 OR @Operation = 31) BEGIN UPDATE _Inventory SET ItemID = @ItemID_From WHERE CharID = @CharID AND Slot = @Slot_To END ELSE IF (@Operation = 1 OR @Operation = 2) BEGIN UPDATE _Chest SET ItemID = @ItemID_From WHERE UserJID = @UserJID AND Slot = @Slot_To END ELSE IF (@Operation = 16) BEGIN UPDATE _InvCOS SET ItemID = @ItemID_From WHERE COSID = @CharID AND Slot = @Slot_To END ELSE IF (@Operation = 29 OR @Operation = 30) BEGIN UPDATE _GuildChest SET ItemID = @ItemID_From WHERE GuildID = @GuildID AND Slot = @Slot_To END -- Avatar Ãß°¡ ( Avatar -> PC ) ELSE IF (@Operation = 35) BEGIN UPDATE _Inventory SET ItemID = @ItemID_From WHERE CharID = @CharID AND Slot = @Slot_To END -- Avatar Ãß°¡ ( PC -> Avatar ) ELSE IF (@Operation = 36) BEGIN UPDATE _InventoryForAvatar SET ItemID = @ItemID_From WHERE CharID = @CharID AND Slot = @Slot_To END -- MagicCube Ãß°¡( PCInv -> MagicCube ) ELSE IF (@Operation = 39) BEGIN UPDATE _InventoryForLinkedStorage SET ItemID = @ItemID_From WHERE LinkedItemID = @GuildID AND Slot = @Slot_To END -- MagicCube Ãß°¡( MagicCube -> PCInv ) ELSE IF (@Operation = 40) BEGIN UPDATE _Inventory SET ItemID = @ItemID_From WHERE CharID = @CharID AND Slot = @Slot_To END IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -3 END ---------------------------------------------------------- -- Step3. Overwrite ÇØ¾ß ÇÏ´Â °æ¿ì ¿ø·¡ ´ë»ó ½½·Ô¿¡ ÀÖ´ø ¾ÆÀÌÅÛ »èÁ¦! ---------------------------------------------------------- IF (@RemoveAndOverwrite <> 0) BEGIN DECLARE @Rvalue INT EXEC @Rvalue = _STRG_FREE_ITEM_NoTX @ItemID_To IF (@Rvalue < 0) BEGIN ROLLBACK TRANSACTION RETURN -4 END END ---------------------------------------------------------- -- Step4. 4Byte Item Data °»½Å (±âÁ¸ °ªÀÌ º¯°æµÈ °æ¿ì¸¸!) ---------------------------------------------------------- DECLARE @Old_ItemData INT SELECT @Old_ItemData = Data FROM _ITEMS WHERE ID64 = @ItemID_From IF (@Old_ItemData IS NOT NULL AND @Old_ItemData <> @Data) BEGIN UPDATE _Items SET Data = @Data WHERE ID64 = @ItemID_From IF (@@ROWCOUNT = 0 OR @@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN -4 END END ---------------------------------------------------------- -- Step4. COMMIT ---------------------------------------------------------- COMMIT TRANSACTION RETURN 1 |
||||||||||||
|
16-02-2015, 06:21 PM | #20 | ||||||||||||
|
ونفس المسار بس انزل تحت شوية علي _UPDATE_USER_N_CHAR_GOLD حط الكيوري دا بدل اللي عندك كود:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_UPDATE_USER_N_CHAR_GOLD] Script Date: 16/02/2015 05:21:07 م ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO --------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- ALTER PROCEDURE [dbo].[_UPDATE_USER_N_CHAR_GOLD] @UserJID AS INT, @NewGold_User AS BIGINT, @CharID AS INT, @NewGold_Char AS BIGINT AS IF (@NewGold_User < 0 OR @NewGold_Char < 0) BEGIN RETURN -1 END BEGIN TRANSACTION UPDATE _AccountJID SET Gold = @NewGold_User WHERE JID = @UserJID IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION RETURN -2 END UPDATE _Char SET RemainGold = @NewGold_Char WHERE CharID = @CharID IF (@@ERROR <> 0 OR @@ROWCOUNT = 0) BEGIN ROLLBACK TRANSACTION RETURN -3 END COMMIT TRANSACTION RETURN 1 |
||||||||||||
|
16-02-2015, 06:40 PM | #21 | |||||||||||||
|
اقتباس:
|
|||||||||||||
|
16-02-2015, 06:51 PM | #22 | ||||||||||||
|
العفو يا باشا . بس مع احترامي بلاش الكلام دة لاي مشرف او عضو ^_^
|
||||||||||||
|
16-02-2015, 11:39 PM | #23 | ||||||||||||
|
يغلق ## |
||||||||||||
|
يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
|
|