|
![]() |
#1 | ||||||||||
![]() ![]()
|
1-عايز اعمل Start Item معين للEroupe و Start Item معين للChinese ازاي و انا نزلت سيرفرات كتير كانت عمله الحكاية ديه 2-عايز اشيل Item (Weapon Set.Etc) l من Npc 3-عايز اضيف Item لل NPC 4-عايز احذف NPC اخفي بس مش لازم اشيلو 5-و انا عملت Add لي State Scroll و لما اضربها مش بتعمل حاجة و انا عامل البرديوس تمام |
||||||||||
|
![]() |
#2 | ||||||||||
![]() ![]()
|
UP |
||||||||||
|
![]() |
#3 | ||||||||||
![]() ![]()
|
بالنسبة لإزالة اى Item من NPC هتشيل ال سطور بتاعتو من هنا RefpackageItem RefScarpOfPackageItem RefPricePolicyOfItem RefShopGoods ولو عايز تضيف Item فى ال NPC يا اما تستخد الطريقة اليدوية هنا عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] او تستخدم ال Query ده كود:
USE SRO_VT_SHARD -----Mr.Rover----- GO DECLARE @ID int DECLARE @INDEX int DECLARE @CodeName varchar(128) DECLARE @PackageName varchar(128) DECLARE @DescSTRID varchar(128) DECLARE @File varchar(128) DECLARE @Price int DECLARE @SilkPrice int DECLARE @Slot tinyint DECLARE @TAB varchar(128) DECLARE @Data int DECLARE @SkipScrapOfPackageItem int = 0 DECLARE @SkipPackageItem int = 0 DECLARE @SkipPricePolicyOfItem int = 0 --- Set Variables SET @CodeName = 'ITEM_MALL_GODBLESS' -- Item CodeName in RefObjCommon SET @Price = 1 -- Set 0 if you don't want to set Gold Price SET @SilkPrice = 10 -- Set 0 if you don't want to set Silk Price SET @TAB = 'STORE_STONE_TAB1' -- Tab name in NPC, For _RefShopGoods SET @PackageName = 'PACKAGE_'+@CodeName -- Do not edit if you don't know what are you doing. --- you don't need to touch here... IF (@CodeName = '') BEGIN PRINT 'You have to edit CodeName..!' PRINT 'FAILED.' RETURN END IF ((SELECT COUNT(ID) FROM _RefObjCommon WHERE CodeName128 = @CodeName) < 1) BEGIN PRINT 'There is no item with this CodeName..!' PRINT 'FAILED.' RETURN END IF (@Price < 0) BEGIN PRINT 'Price is not VALID..!' PRINT 'FAILED.' RETURN END IF (@SilkPrice < 0) BEGIN PRINT 'Silk Price is not VALID..!' PRINT 'FAILED.' RETURN END IF ((SELECT COUNT(ID) FROM _RefShopTab WHERE CodeName128 = @TAB) < 1) BEGIN PRINT 'TAB VALUE IS NOT VALID..!' PRINT 'FAILED.' RETURN END IF ((SELECT COUNT (RefPackageItemCodeName) FROM _RefShopGoods WHERE RefPackageItemCodeName = @PackageName AND RefTabCodeName = @TAB) > 0) BEGIN PRINT 'There is already same item in same tab..!' PRINT 'FAILED.' RETURN END IF ((SELECT COUNT (RefPackageItemCodeName) FROM _RefScrapOfPackageItem WHERE RefPackageItemCodeName = @PackageName) > 0) BEGIN PRINT 'There is already an entry for this item, skipping @_RefScrapOfPackageItem table..!' SET @SkipScrapOfPackageItem = 1 END IF ((SELECT COUNT (CodeName128) FROM _RefPackageItem WHERE CodeName128 = @PackageName) > 0) BEGIN PRINT 'There is already an entry for this item, skipping @_RefPackageItem table..!' SET @SkipPackageItem = 1 END IF ((SELECT COUNT (PaymentDevice) FROM _RefPricePolicyOfItem WHERE RefPackageItemCodeName = @PackageName AND PaymentDevice = '1') > 0) BEGIN PRINT 'There is already an entry for this item with same PaymentDevice, skipping @_RefPricePolicyOfItem table..! (Gold)' SET @SkipPricePolicyOfItem = 1 END IF ((SELECT COUNT (PaymentDevice) FROM _RefPricePolicyOfItem WHERE RefPackageItemCodeName = @PackageName AND PaymentDevice = '2') > 0) BEGIN PRINT 'There is already an entry for this item with same PaymentDevice, skipping @_RefPricePolicyOfItem table..! (Silk)' IF (@SkipPricePolicyOfItem = 1) BEGIN SET @SkipPricePolicyOfItem = 3 END ELSE BEGIN SET @SkipPricePolicyOfItem = 2 END END IF (@SilkPrice = 0) AND (@Price = 0) BEGIN PRINT 'You need to set a price, at least one !' PRINT 'FAILED.' RETURN END SELECT TOP 1 @ID = ID FROM _RefPackageItem ORDER BY ID DESC SET @ID = @ID + 1 SELECT TOP 1 @INDEX = [Index] FROM _RefScrapOfPackageItem ORDER BY [Index] DESC SET @INDEX = @INDEX + 1 SELECT TOP 1 @Slot = SlotIndex FROM _RefShopGoods WHERE RefTabCodeName = @TAB ORDER BY SlotIndex DESC IF (@Slot = 0) BEGIN SET @Slot = @Slot + 1 END ELSE IF (@Slot > 0) BEGIN SET @Slot = @Slot + 1 END ELSE BEGIN SET @Slot = 0 END SET @DescSTRID = 'SN_' + @CodeName + '_TT_DESC' SELECT @File = AssocFileIcon128 FROM _RefObjCommon WHERE CodeName128 = @CodeName IF (@CodeName LIKE '%RING%' OR @CodeName LIKE '%NECKLACE%' OR @CodeName LIKE '%ARCHEMY%') BEGIN SET @Data = 1 END ELSE BEGIN SELECT @Data = Dur_U FROM _RefObjItem WHERE ID = (SELECT Link FROM _RefObjCommon WHERE CodeName128 = @CodeName) END BEGIN TRANSACTION IF (@SkipPackageItem = 0) BEGIN --SET IDENTITY_INSERT _RefPackageItem ON INSERT _RefPackageItem ([Service], Country, ID, CodeName128, SaleTag, ExpandTerm, NameStrID, DescStrID, AssocFileIcon, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @ID, @PackageName, 0, 'EXPAND_TERM_ALL', 'SN_'+@CodeName, @DescSTRID, @File, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') IF (@@ERROR <> 0) BEGIN PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPackageItem, Rolling back...' ROLLBACK TRANSACTION RETURN END PRINT 'Added to _RefPackageItem !' --SET IDENTITY_INSERT _RefPackageItem OFF END IF (@SkipScrapOfPackageItem = 0) BEGIN INSERT _RefScrapOfPackageItem (Service, Country, RefPackageItemCodeName, RefItemCodeName, OptLevel, Variance, Data, MagParamNum, MagParam1, MagParam2, MagParam3, MagParam4, MagParam5, MagParam6, MagParam7, MagParam8, MagParam9, MagParam10, MagParam11, MagParam12, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128, [Index]) VALUES (1, 15, @PackageName, @CodeName, 0, 0, @Data, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx', @INDEX) IF (@@ERROR <> 0) BEGIN PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefScrapOfPackageItem, Rolling back...' ROLLBACK TRANSACTION RETURN END PRINT 'Added to _RefScrapOfPackageItem !' END IF (@SkipPricePolicyOfItem = 2 OR @SkipPricePolicyOfItem = 0 AND @Price > 0) BEGIN INSERT _RefPricePolicyOfItem (Service, Country, RefPackageItemCodeName, PaymentDevice, PreviousCost, Cost, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @PackageName, 1, 0, @Price, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') IF (@@ERROR <> 0) BEGIN PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPricePolicyOfItem, Rolling back...' ROLLBACK TRANSACTION RETURN END PRINT 'Added to _RefPricePolicyOfItem, PaymentDevice = 1 (Gold)' END IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @SilkPrice > 0) BEGIN INSERT _RefPricePolicyOfItem (Service, Country, RefPackageItemCodeName, PaymentDevice, PreviousCost, Cost, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @PackageName, 2, 0, @SilkPrice, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') IF (@@ERROR <> 0) BEGIN PRINT 'AN ERROR HAPPENED WHILE ADDING TO _RefPricePolicyOfItem, Rolling back...' ROLLBACK TRANSACTION RETURN END PRINT 'Added to _RefPricePolicyOfItem, PaymentDevice = 2 (Silk)' END ELSE BEGIN PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...' END INSERT _RefShopGoods (Service, Country, RefTabCodeName, RefPackageItemCodeName, SlotIndex, Param1, Param1_Desc128, Param2, Param2_Desc128, Param3, Param3_Desc128, Param4, Param4_Desc128) VALUES (1, 15, @TAB, @PackageName, @Slot, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') IF (@@ERROR <> 0) BEGIN PRINT 'An error happened while adding to _RefShopGoods table' PRINT 'FAILED.' ROLLBACK TRANSACTION RETURN END PRINT 'Added to _RefShopGoods, DONE!' COMMIT TRANSACTION لو استخدمت ال Query عشان ميجلكش Crash فى ال Sro Client بعد اما تخلص بال Query فى ال Database هتاخد كل Table انت عدلت فى كلو Copy وتشيل اللى عندك فى ال Media وتحط اللى فى ال Database مكانو Past وده فى كل ال Tables وبالنسبة لانك شيل NPC هتعمل ال Query ده كود:
Use SRO_VT_SHARD select ID from _RefObjCommon where CodeName128 like 'MOB_RM_ROC' كود:
USE SRO_VT_SHARD Go delete from Tab_RefNest where dwTacticsID=(Select dwTacticsID from Tab_RefTactics where dwObjID='12345') |
||||||||||
التعديل الأخير تم بواسطة Dev.Ri3o ; 13-08-2016 الساعة 10:43 PM
|
![]() |
#4 | |||||||||||
![]() ![]()
|
اقتباس:
|
|||||||||||
|
![]() |
#5 | ||||||||||
![]() ![]()
|
Up |
||||||||||
|
![]() |
#6 | ||||||||||
![]() ![]()
|
ماشى تمام هو عامل ال Procedure فى ال AddLogItem يعنى تعمل ال Procedure وتحطو تحت كلمة As وتخلى ال IDs بتاعة ال RefObjCommon وبتحطها فى ال SRO_VT_SHARDLOG |
||||||||||
|
![]() |
#7 | ||||||||||
![]() ![]()
|
## |
||||||||||
|
![]() |
يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
|
|