المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعده فى اضافت الا egy b


MohamedLol
30-12-2016, 10:03 PM
عايز احوت الا egy b فل الا Npc ده ازاى



https://s27.postimg.org/q9zrkxmfn/15778377_1225022320921465_1869622967_o.jpg

افندينا ™Hamboka™
30-12-2016, 11:51 PM
اتفضل

http://www2.0zz0.com/2012/10/22/15/311256858.gif

http://www2.0zz0.com/2012/10/22/16/593531309.png

أنا لحظت ان في ناس كتير بتسأل علي انها ازاي تضيف Item في ال NPC
فحبيت اني اشرحلكم ازاي تضيف ال Item الي انت عوزو في ال NPC بالتفصيل
نبتدي بسم الله

أولا:ال Tables الي هنشتغل عليها
1-RefPackageItem
2-RefScrapOfPackageItem
3-RefPricePolicy
4-RefShopGoods

نبتدي ب RefPackageItem (الشرح هيكون علي ال Staff D14)

1 15 86634 PACKAGE_ITEM_EU_TSTAFF_14_B_RARE 0 EXPAND_TERM_ALL SN_ITEM_EU_TSTAFF_14_B_RARE SN_ITEM_EU_TSTAFF_14_B_RARE_TT_DESC item\europe\weapon\tstaff_14.ddj -1 xxx -1 xxx -1 xxx -1 xxx


نشرح بقي الكود دة
أول حاجة الرقم الي بالأخضر دة ال ID بتاع RefPackageitem
لو انت عاوز تعرف ايه هو اخر ID عندك في RefPackageItem تعمل ايه؟
شغل بس الكويري دة و هو هيجبهولك

SELECT MAX (ID) FROM _RefPackageItem

كدة انت جبت اخر ID في RefPackageItem زود عليه 1 وحطو مكان ال ID الي أنا حطو
يعني مثلا اخر ID
86600 هتخليه 86601
اما الي بالبنفسجي ف دة المسار بتاع صورة الItem ال بتبان في ال NPC و المسار دة في الميديا
بدل م تتعب نفسك نزل دة و فيه كل حاجة
http://files.fm/u/zzgnemv
طب كدة خلصنا RefPackageItem
ندخل علي RefScrapOfPackageItem

1 15 PACKAGE_ITEM_EU_TSTAFF_14_B_RARE ITEM_EU_TSTAFF_14_B_RARE 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 xxx -1 xxx -1 xxx -1 xxx 89307


ايه المشكلة في دة بقي؟
دة أس المصايب أولا عشان تجيب اخر ID في RefScrapOfPackageItem
شغل الكويري دة

SELECT MAX ([Index]) FROM _RefScrapOfPackageItem
طبعا عرفين هتعملو فيه ايه
بعد كدة الرقم الي بالبنفسجي دة بتاع ايه؟ دة بتاع حاجة اسمها ال Durability
طب و تجيب الرقم دة ازاي ؟ شغل الكويري دة

DECLARE @ID int
DECLARE @Dur_U int
DECLARE @CodeName varchar(129)

SET @CodeName = 'ITEM_EU_TSTAFF_14_B_RARE'


SET @ID = (select Link from _RefObjCommon where CodeName128 = @CodeName)
SET @Dur_U = (select Dur_U from _RefObjItem where ID = @ID)


PRINT 'Durablity : '
PRINT '-----------'
PRINT ''+@Dur_U+''

الكود الي بالحمر دة كود ال Item من غير كلمة PACKAGE_
وطبعا هتحط القم الي هيطلعلك مكان الرقم الي بالبنفسجي
ندخل في RefPricePolicy و دة Table سهل أوي و دة بيبقي فيه السعر بتاع ال Item

1 15 PACKAGE_ITEM_EU_TSTAFF_14_B_RARE 1 0 1000000 -1 xxx -1 xxx -1 xxx -1 xxx



الي بالأحمر دة عبارة عن الحاجة الي بيتباع بيها ال Item سواء كان Gold or Silk or Coin
كل حاجة ليها كود و دي كل الأكواد

1 = Gold
2 = Silk
4 = Gift Silk (Received Silk)
16 = Point (vSRO); Premium Silk (iSRO & kSRO)
32 = Honor Point
64 = Copper Coin
128 = Iron Coin
256 = Silver Coin
512 = Gold Coin
1024 = Arena Coin


الي بالبنفسجي دة بقي اد ايه من الحاجة دي يعني زي منا عامل كدة 1000000 جولد

ندخل علي RefShopGoods
ودة بقي الي بيتحط فيه المكان الي هيتباع فيه ال Item
ومن غير ال Table دي ال Item شم هيكون موجود في أي NPC

1 15 STORE_CH_SMITH_TAB1 PACKAGE_ITEM_EU_TSTAFF_14_B_RARE 0 -1 xxx -1 xxx -1 xxx -1 xxx


الي بالاخضر دة كود ال NPC ال هتحط فيه ال Item و أنا حطو في بتاع الأسلحة في Jangan
طب والي بالبنفسجي ؟ دة ترتيب ال Item في ال NPC و لازم يكون بالدور
و بيبتدي من 0 مش 1 يعني دة أول Item في ال NPC بس لو في Item في نفس المكان دة ال SR_GameServer هيجبلك Error

وبكدة أكون خلصت شرح الحمد لله
وشكرا

hamo0
31-12-2016, 12:44 AM
هو ازاى احط كويرى اصلا فى الداتا يبز هو انتو ليه مش عيزين تشرحو ازاى احط كويرى واحطو فين

MikrotikBody
31-12-2016, 01:27 AM
هو ازاى احط كويرى اصلا فى الداتا يبز هو انتو ليه مش عيزين تشرحو ازاى احط كويرى واحطو فين

easy Just use
Ctrl+N and past your Query

MikrotikBody
31-12-2016, 01:29 AM
اتفضل
مفهمتش اللي هو طلبه
وعلي فكره انا رديت عليك وانت مصر علي كده

افندينا ™Hamboka™
31-12-2016, 02:08 AM
مفهمتش اللي هو طلبه
وعلي فكره انا رديت عليك وانت مصر علي كده

باشا الراجل عاوز يحط egy b في npc وانا مديلو طريقه اضافت ايتم في npc ايه الغلط في كد ؟؟؟:juggle::juggle:

MohamedLol
31-12-2016, 02:57 AM
جاري التجربه

ابو ليلى
01-01-2017, 12:50 AM
اتفضل حضرتك دة كوير اضافة ايتم فى ال npc
/****query add item npc edited by mohamed hasan***/
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 @Gcoin int
DECLARE @Scoin int
DECLARE @Icoin int
DECLARE @Ccoin int
DECLARE @Acoin int
DECLARE @Optlvl 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_NECKLACE_11_A_RARE' -- Item CodeName in RefObjCommon
SET @Price = 1 -- 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 @Gcoin = 0 -- Set 0 if you don't want to set Gold Coin Price
SET @Scoin = 0 -- Set 0 if you don't want to set Silver Coin Price
SET @Icoin = 0 -- set 0 if you don't want to set Iron Coin Price
SET @Ccoin = 0 -- set 0 if you don't want to set Copper Coin Price
SET @Acoin = 0 -- set 0 if you don't want to set Arena Coin Price
SET @Optlvl = 5 -- Item Plus in npc Set 0 if you don't want plus for any item
SET @TAB = 'STORE_CH_NOVA_SET_SELLER_TAB7' -- 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, @Optlvl, 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
/**Gold Price***/
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
/*** Silk Price **/
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
/*****Gold Coin***/
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @Gcoin > 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, 512, 0, @Gcoin, -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 = 512 (Gold Coin)'
END
ELSE
BEGIN
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
/***Silver Coin***/
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @Scoin > 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, 256, 0, @Scoin, -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 = 256 (Silver Coin)'
END
ELSE
BEGIN
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
/****Iron Coin****/
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @Icoin > 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, 128, 0, @Icoin, -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 = 128 (Iron Coin)'
END
ELSE
BEGIN
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
/****Copper Coin**/
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @Ccoin > 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, 64, 0, @Ccoin, -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 = 64 (Copper Coin)'
END
ELSE
BEGIN
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
/****Arena Coin***/
IF (@SkipPricePolicyOfItem = 1 OR @SkipPricePolicyOfItem = 0 AND @Acoin > 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, 1024, 0, @Acoin, -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 = 1024 (Arena Coin)'
END
ELSE
BEGIN
PRINT 'There is already silk / gold price, skipping _RefPricePolicyOfItem table...'
END
/************** End Prices ***************/
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

Jayden
02-01-2017, 04:15 AM
##