قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة [ قسم متخصص فى شروحات و البرامج في عمل السيرفرات الخاصة ] [ يرجى عدم وضع الأسئلة والاستفسارات في هذا القسم ] |
|
أدوات الموضوع | انواع عرض الموضوع |
26-11-2017, 12:08 AM | #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
|
27-11-2017, 03:17 AM | #2 | ||||||||||
|
انت مقتنع بالكلام دا ؟ اعمل Edit للبوست وعدله |
||||||||||
|
27-11-2017, 11:15 AM | #3 | |||||||||||
|
اقتباس:
|
|||||||||||
|
27-11-2017, 08:59 PM | #4 | ||||||||||
|
ع فكرة انا مليت قبل ما اكمل باقي الموضوع ههههههههه انت شرحك لو حد بيفهم بجد شافه هيقدر يحل اي بج في اي NPC بس دلوقتي اي حد بيدور على اسرع طريقة يقدر يضيف بيها الايتيم يا ريعوو بس بجد بجد الف الف شكر ... دة مفروض كورس مش مجرد موضوع |
||||||||||
|
03-12-2017, 02:29 PM | #5 | |||||||||||
|
اقتباس:
|
|||||||||||
|
03-12-2017, 10:45 PM | #6 | |||||||||||
|
اقتباس:
بس كنت بعمل حاجة كدا صغيرة تقبل مروري فيها كنت بعمل ريستور لي 2 داتا بيز واحدة اللعبة شغالة عليها و واحدة برنامج الايديت شغال عليها و كدا او كدا كانت الايتيم اللي بتضاف جديدة بتبقى اخر لاينز ف كنت باخودها على الجاهز و اظبط الاي دي بس و شكراً على كدا |
|||||||||||
|
03-12-2017, 11:22 PM | #7 | |||||||||||
|
اقتباس:
|
|||||||||||
|
04-12-2017, 12:22 AM | #8 | ||||||||||
|
حوار سهل جداً ع فكرة بس الموضوع بقى لما تعدل مش لما تضيف حاجة جديدة لـ NPC |
||||||||||
|
13-05-2020, 07:17 AM | #9 | ||||||||||
|
طب بعد اذنك كل حاجه تمام اسم ال NPC مختفي جوه اللعبه واسم التاب تمام واسم الجروب تمام مع العلم اني ضيفت سطر الNPC في text Object |
||||||||||
|
20-08-2020, 02:04 PM | #10 | ||||||||||
|
هو شرح جميل بس للأسف مفيش ولا صورة ظاهره |
||||||||||
|
30-06-2023, 03:15 AM | #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 |