USE SRO_VT_SHARD 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_CH_BOW_14_B_RARE' -- Item CodeName in RefObjCommon SET @Price = 1000000 -- Set 0 if you don't want to set Gold Price SET @SilkPrice = 0 -- Set 0 if you don't want to set Silk Price SET @TAB = 'STORE_GAMENPC_TAB3' -- 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
المشاركة الأصلية كتبت بواسطة GM_Jo
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
لو البرنامج فيه مشكلة استخدم الـــ Query ده احسن
كود PHP:
USE SRO_VT_SHARD
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_CH_BOW_14_B_RARE' -- Item CodeName in RefObjCommon
SET @Price = 1000000 -- Set 0 if you don't want to set Gold Price
SET @SilkPrice = 0 -- Set 0 if you don't want to set Silk Price
SET @TAB = 'STORE_GAMENPC_TAB3' -- 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
تسلم ايدك والله حمزة ادانى نفس الكوير بس انا دى او مرة اعمل فيها ادد ايتم واشتغل بكوير فمش عارف اغير اية واعدل ع اية بظبط ولو عاوز احط 5 او 6 حتت مع بعض ينفع انا عندى اهم حاجة عاوز اعرف اية اللى يتعدل علية فى الكوير
واغير ماكنو اية واكتبي اية يريت توضحلولى بعد اذنكم
انا مستخدمتش البرنامج ده قبل كدا بس ارفعهولي و اكتبلي كل المشاكل الي بتقابلك فيه
لما يكون عندي شوية وقت هعدل عليه انزل منه نسخة جديدة مفهاش مشاكل باذن الله :)
SET @CodeName = 'ITEM_CH_BOW_14_B_RARE' -- دا كود الايتم اللي عايز تحطة في الان بي سي
SET @Price = 1000000 -- دا السعر بالجولد. لو مش عايز سعره جولد خليه 0
SET @SilkPrice = 0 -- دا السعر بالسيلك
SET @TAB = 'STORE_GAMENPC_TAB3' --
دا كود التاب ودا ممكن تجيبة بكذا طريقة الاسهل من refShopGoods
المشاركة الأصلية كتبت بواسطة Hamza FiGo
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
كود:
SET @CodeName = 'ITEM_CH_BOW_14_B_RARE' -- دا كود الايتم اللي عايز تحطة في الان بي سي
SET @Price = 1000000 -- دا السعر بالجولد. لو مش عايز سعره جولد خليه 0
SET @SilkPrice = 0 -- دا السعر بالسيلك
SET @TAB = 'STORE_GAMENPC_TAB3' --
دا كود التاب ودا ممكن تجيبة بكذا طريقة الاسهل من refShopGoods
الله ينور يا حمزة ربنا يباركلك بس بعد اذنك طب لو انا عاوز احط 5 ايتم مرة وحدة
وعاوز لما تيجى تشتريهم تشتريهم بى جولد وكوين اعمل اية
المشاركة الأصلية كتبت بواسطة GM_Jo
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
آسف على عدم المتابعة كنت فى الشغل ومش عارف افتح
كدا الــquery اشتغل 100 % معاك والايتم انضاف
ناقص انك تاخد ال4 Lins اللى هوا كاتبلك اسمها دى كوبى وتحطها فى الميديا
واعمل Import هتلاقى الايتم فى NPC ان شاء الله
حمدلله ع السلامة يانجم ولا يهمك اما بقى بالنسبة للمشكلة دى
حضرتك قالى تمام وكل حاجة بس هو اصلا مش مدينى 4 line احطهم فى الميديا ولا حاجة هو كتبلى الرسالة دى وشكرا
كمان اكتشفت حاجة ان فى مشكلة فى ملف RefPricePolicyOfItem
فهعمل موضوع فيها عشان الخبرا يشوفولى حل