|
|
#1 | ||||||||||
![]()
|
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] حبيت اعمل شرح للناس المبتدئة عشان تعرف تعدل على اى NPC و تضيف اى Item فى NPC مع شوية حاجات كدة فى ال NPC لازم تعرفها.. الشرح تفصيلى فشخ وكلو بالصور عشان ميحصلش معاك اى مشاكل Add Item To NPC اول حاجة ده ال Query اللى هنشتغل بى... عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] كود:
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_EU_SHIELD_08_C_RARE' -- Item CodeName in RefObjCommon
SET @Price = 5000000 -- Set 0 if you don't want to set Gold Price
SET @SilkPrice = 256 -- Set 0 if you don't want to set Silk Price
SET @TAB = 'STORE_Honor_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
عشان تضيف اى Item فى ال NPC انت محتاج تعرف حاجتين ... 1- اسم ال Tab اللى هتضيف فى ال Item طب ايه هو ال Tab ؟ اللى هو ده عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] وده ال Group عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] 2- اسم ال Item اللى عايز تضيفو... هنشرح واحدة واحدة تجبها ازاى... عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] اول حاجة عشان تجيب كل ال TABS اللى فى ال NPC الاول تجيب ال Code بتاع ال NPC فى ال Characterdata_xxxxx ملحوظة : ال xxxxx دى مش txt معين دى معناها يعنى تدور انت فى كل ال Characterdata اللى عندك بس غالبا لو NPC جديد بيبقى فى اخر واحد اللى هو 45000 هنروح نشوف اسم ال NPC جوا السيرفر وليكن Sos Items ... هتاخد الاسم وتدور عليه فى ال Textdata_Object هيظرهلك كدة عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] هتلاقى اسم ال NPC على اليمين وعلى الشمال ال Code بتاع الاسم ال NPC هتاخده Copy اللى هو كود:
SN_NPC_SOS_ITEMS هتلاقة جابلك السطر بتاعة فى ال Characterdata_xxxx زى كدة عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] هتلاقى على الشمال ال Code بتاع ال NPC اللى هو كود:
NPC_SOS_ITEMS كود:
STORE_SOS_ITEMS عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] مش شرط تبقى من TAB1 ل TAB4 بس ... ممكن يبقو TAB1 و TAB2 بس ممكن يبقى من 1 ل 7 يعنى فى Group تانى فى 3 TAB دلوقتى جبنا اسم ل TABS كلها شوف انت عايز تضيف ال Item فين ... عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] تانى حاجة Code ال Item اللى هتضيفو ... هتضوف اسم ال Item جوا السيرفر ايه وليكن Job Penalty Remove Scroll هتدور على الاسم فى ال Textdata_Object هيجيلك كدة عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] على الشمال ال Code بتاع الاسم هتاخدو وتدور عليه فى ال Itemdata_xxxxx هتلاقى بالشكل ده عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] وده ال Code بتاع ال Item اللى هو كود:
ITEM_MALL_JOB_PENALTY_SCROLL بس غالبا شيل ال SN_ وهيجبلك ال Code اللى تشتغل بى عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] دلوقتى جبنا اللى محتاجينهم اللى هو ال TAB Name و Item Name ... قبل ما نستخدم ال Query لازم تتاكد من حاجة ان الاعدادات دى معمولة هتروح ال RefPackageItem وتدوس Click يمين بعدها Design وهتعلم على ID وتعمل زى الصورة عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] هتروح ال RefScrapOfPackageItem وتدوس Click يمين بعدها Design وهتعلم على Index وتعمل زى الصورة عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] ولازم تتأكد ان RefpackageItem RefScrapOfPackageItem RefPricePolicyOfItem RefShopGoods اللى فى ال Database هما هما اللى فى ال Media .. هيجى واحد يقولو هما المفروض انهم مش زى بعض ... هقولو لا لازم اللى فى ال Media يكون نسخة طبق الاصل من ال Database ... طب لو انت متعرفش او عايز تخليها زى بعض ... هتعمل ايه ؟ اوعى تستخدم DB To Media الاهم هو MEDIA هتعمل Truncate لل 4 Tables من ال SQL هتعمل ده كود:
USE SRO_VT_SHARD Go Truncate Table _RefPackageItem Truncate Table _RefPricePolicyOfItem Truncate Table _RefScrapOfPackageItem Truncate Table _RefShopGoods RefScrapOfPackageItem RefPricePolicyOfItem RefShopGoods وبكدة ال Database زى ال Media وتقدر تضيف بال Query من غير اى مشاكل خالص عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] هتجيب ال Query الىل انا حاطو فوق وهتيجى عند عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] وتكتب هنا Code ال Item اللى انت عايز تضيفو اللى احنا جبناه فوق عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] وهنا هتكتب اسم ال TAB اللى عايز تحط ال NPC فى اللى احنا جبناه فوق عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] وهنا هتكتب الاسعار الاولى اللى هى Price ده سعر ال Gold و SilkPrice اللى هو سعر ال Silk بعد اما تضيف الحاجة وتدوس F5 هيجيلك ان 1 Row Effected 1 Row Effected 1 Row Effected 1 Row Effected يبقى كلو تمام ... طب هنجيب ال Media ازاى ؟ هتاخد ال RefpackageItem RefScrapOfPackageItem RefPricePolicyOfItem RefShopGoods من ال SQL بعد اما تخلص شغل بال Query بعدها Copy لكل واحد وحطو فى ال Media واعمل Update ومبروك عليك بالطريقة اللى مشروحة فوق تضيف اى Item فى ال NPC وكمان انك تخلى ال Media زى ال Database مهمة فشخ وهتسهل عليك حاجات قدام Edit Price In NPC لو انت عايز تضيف items بس مش ب Gold ولا Silk وعايزها ب Coin عندك طريقتين اول حاجة لازم تعرف دول عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] كود:
1= Gold 2=Silk 4= Gift silk 16=Silk Point 64=copper coin 128=Iron coin 256=Silver coin 512=Gold coin 1024=Arena coin بعد كدة تعدل على ال Query اللى فوق هتنزل عند الجزء ده اللى بيعمل Insert للسعر عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] اللى انا معلم عليه بالاحمر ده اللى هو Gold عشان مكتوب 1 يعنى ده معنها ان @Price هتمثل سعر ال Gold اللى انا معلم عليه بالازرق ده اللى هو Silk عشان مكتوب 2 يعنى ده معناه ان @SilkPrice هتمثل سعر ال Silk غير انت بقى ال 1 و ال 2 دول على حسب الجدول فوق شوف بقى انت عايز ايه يعنى لو غيرت 1 ل 64 كدة تكتب قدام @Price سعر ال Copper Coin اللى انت عايزو عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] طب لو هو Item مضاف اصلا عندك وعايز تغير السعر او تخلى ب Coin هتعمل ال Query ده كود:
USE SRO_VT_SHARD Go----#Ri3o---ProBaSha Update _RefPricePolicyOfItem Set Cost = 'COST HERE' , PaymentDevice = 'Number' Where RefPackageItemCodeName Like '%CODENAME%' مكان CODENAME هتكتب ال Code بتاع ال Item وده طبعا مشروح بالتفصيل تجيبو ازاى فوق عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] فى بعض الناس بتقابلها مشكلة Registery Silk Price او Gold Price طب دى تحلها ازاى ؟ لو Gold Price هتعمل ال Query ده كود:
USE SRO_VT_SHARD Go------Registry Gold Price----#Ri3o DECLARE @CodeName varchar(128) DECLARE @PackageName varchar(128) SET @CodeName = 'CODENAME' SET @PackageName = 'PACKAGE_'+@CodeName 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, 1, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') كود:
USE SRO_VT_SHARD Go------Registry Gold Price----#Ri3o DECLARE @CodeName varchar(128) DECLARE @PackageName varchar(128) SET @CodeName = 'CODENAME' SET @PackageName = 'PACKAGE_'+@CodeName 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, 1, -1, 'xxx', -1, 'xxx', -1, 'xxx', -1, 'xxx') عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] |
||||||||||
|
التعديل الأخير تم بواسطة Dev.Ri3o ; 27-11-2017 الساعة 11:39 AM
|
|
|
#2 | ||||||||||
![]()
|
انت مقتنع بالكلام دا ؟ ![]() اعمل Edit للبوست وعدله |
||||||||||
|
|
|
#3 | |||||||||||
![]()
|
اقتباس:
![]() |
|||||||||||
|
|
|
#4 | ||||||||||
![]()
|
ع فكرة انا مليت قبل ما اكمل باقي الموضوع ههههههههه انت شرحك لو حد بيفهم بجد شافه هيقدر يحل اي بج في اي NPC بس دلوقتي اي حد بيدور على اسرع طريقة يقدر يضيف بيها الايتيم يا ريعوو بس بجد بجد الف الف شكر ... دة مفروض كورس مش مجرد موضوع |
||||||||||
|
|
|
#5 | |||||||||||
![]()
|
اقتباس:
![]() |
|||||||||||
|
|
|
#6 | |||||||||||
![]()
|
اقتباس:
بس كنت بعمل حاجة كدا صغيرة تقبل مروري فيها كنت بعمل ريستور لي 2 داتا بيز واحدة اللعبة شغالة عليها و واحدة برنامج الايديت شغال عليها و كدا او كدا كانت الايتيم اللي بتضاف جديدة بتبقى اخر لاينز ف كنت باخودها على الجاهز و اظبط الاي دي بس و شكراً على كدا |
|||||||||||
|
|
|
#7 | |||||||||||
![]()
|
اقتباس:
|
|||||||||||
|
|
|
#8 | ||||||||||
![]()
|
حوار سهل جداً ع فكرة بس الموضوع بقى لما تعدل مش لما تضيف حاجة جديدة لـ NPC |
||||||||||
|
|
|
#9 | ||||||||||
![]()
|
طب بعد اذنك كل حاجه تمام اسم ال NPC مختفي جوه اللعبه واسم التاب تمام واسم الجروب تمام مع العلم اني ضيفت سطر الNPC في text Object |
||||||||||
|
|
|
#10 | ||||||||||
![]()
|
هو شرح جميل بس للأسف مفيش ولا صورة ظاهره ![]() |
||||||||||
|
|
|
#11 | ||||||||||
![]()
|
انا بستخدم برنامج Db to media فى كل حاجه ممكن اعرف لية بتحذر منه ّ |
||||||||||
|
![]() |
| يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | الردود | آخر مشاركة |
| DB [D10- Cap 100 Best Edit] | Dev Desperado | قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة | 17 | 06-04-2017 12:01 AM |
| لو سمحتم بعد اذن حضرتكم محتاج links بتاعت شرح ال Edit كله لانى لسه جديد فى ال Edit | hanofastar2 | قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة | 1 | 05-06-2015 11:56 PM |
| انا عندى ال SQL بدل مكنت بعمل edit table بقى edit edit top 200 row only | Animus Sro | قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة | 3 | 12-12-2012 12:54 PM |