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

مشاهدة النسخة كاملة : Learn Add item IN NPC IN 3 Minute's


ღ♥ČrimeḾaster♥ღ
18-06-2013, 01:10 AM
فى ناس كتير مش عارفه تعمل Add item in npc انا حبيت اساعد الناس واسهل عليهم الموضوع

نبتدى الشرح


http://www9.0zz0.com/2013/06/17/21/555295738.gif (http://www.0zz0.com)

الـ 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_CH_M_CLOTHES_12_FA_A' -- Item CodeName in RefObjCommon
SET @Price = 5000000 -- 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_KT_ARMOR_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

قبل بقا منعمل الQuery لازم نعمل زى الصور فى الSQL

تـابع الصور

http://www9.0zz0.com/2013/06/17/21/555295738.gif (http://www.0zz0.com)

http://www4.0zz0.com/2013/06/17/22/543550040.jpg (http://www.0zz0.com)

http://www4.0zz0.com/2013/06/17/22/424887815.jpg (http://www.0zz0.com)

http://www4.0zz0.com/2013/06/17/22/996961279.jpg (http://www.0zz0.com)

http://www5.0zz0.com/2013/06/17/22/821248644.jpg (http://www.0zz0.com)

http://www5.0zz0.com/2013/06/17/22/231196703.jpg (http://www.0zz0.com)

http://www5.0zz0.com/2013/06/17/22/723411055.jpg (http://www.0zz0.com)

http://www6.0zz0.com/2013/06/17/22/828651940.jpg (http://www.0zz0.com)

http://www6.0zz0.com/2013/06/17/22/202604136.jpg (http://www.0zz0.com)

http://www9.0zz0.com/2013/06/17/21/555295738.gif (http://www.0zz0.com)

وبعدين نعمل الـQuery

ونحط كود الايتم اللى عايزين نضيفو
ونحط اسم التاب بردو اللى هنضيف فيه الايتم
وسعر اللى هيتباع بيه الايتم

اخر حاجه وبكده نكون قربنا نخلص :walkman:

تاخد كل اللى فى _RefPackageItem and _RefPricePolicyOfItem and and _RefScrapOfPackageItem and _RefShopGoods

وطلعهم من الميديا و Past and Import

http://www9.0zz0.com/2013/06/17/21/555295738.gif (http://www.0zz0.com)

اتاكد ان الQuery هيجبلك زى الصوره كده

http://www5.0zz0.com/2013/06/18/01/346354615.jpg (http://www.0zz0.com)

والف مبروك :winner_second_h4h:

ELjOkeR
18-06-2013, 02:46 AM
Approved #

Islam.Chalabi
18-06-2013, 04:09 AM
نفسى افهم ليه مايكنش كل الشروحات بالطريقه دى؟
بجد انت فاجر ياض الله ينور عليك يا بلال

i____Crach
18-06-2013, 04:10 AM
Very nice work :) :sofa:

ღ♥ČrimeḾaster♥ღ
18-06-2013, 04:12 AM
نفسى افهم ليه مايكنش كل الشروحات بالطريقه دى؟
بجد انت فاجر ياض الله ينور عليك يا بلال

ربنا يكرمك يا اسلام وشكرا ع الرد الجميل ده :59:

ღ♥ČrimeḾaster♥ღ
18-06-2013, 04:51 AM
Very nice work :) :sofa:

thanks :heart_eyes:

Golden sro
18-06-2013, 08:40 AM
Good Jop

☜ ĂиTaKą ☞
18-06-2013, 08:41 AM
:cap:

الله ينور يا واد

iAttacker
18-06-2013, 04:01 PM
عــــــــــــــــــــاش
تنبيه صغير إضف هذا الا الشرح لانو لو متعملش الايتم مش هيشتغل بعد الشرح الجميل ده
فى RefShopGoods + RefPricepolicyofitem
فى ال DB مش هيعرف يجيب ال Line اللى ضافوا لأنوا مش هيتضاف فى الاخر
فالحل انو ياخد ال Lines كلها Copy فى Notepad و يعمل FindText على اخر كلمه فى الايتم
مثلا PACKAGE_ITEM_MALL_AVATAR_M_BLUE_SOULKNIGHT تعمل Find على Knight بس اما تيجى تعمل توفيراً للوقت اطلع فى بدايه ال Text و اعمل
و خد ال Lines و حطها فى اماكنها فى Media

عن تجربه شخصيه
Working 100%

Mahmoud Rashwan
18-06-2013, 07:29 PM
Thx

MyRȝturn
25-06-2013, 01:37 AM
Good Jop

Skandar
02-07-2013, 06:27 PM
عمل مدهش بارك الله فيك يا جميل

Mr Z!dane
02-07-2013, 07:41 PM
عــــــــــــــــــــاش
تنبيه صغير إضف هذا الا الشرح لانو لو متعملش الايتم مش هيشتغل بعد الشرح الجميل ده
فى RefShopGoods + RefPricepolicyofitem
فى ال DB مش هيعرف يجيب ال Line اللى ضافوا لأنوا مش هيتضاف فى الاخر
فالحل انو ياخد ال Lines كلها Copy فى Notepad و يعمل FindText على اخر كلمه فى الايتم
مثلا PACKAGE_ITEM_MALL_AVATAR_M_BLUE_SOULKNIGHT تعمل Find على Knight بس اما تيجى تعمل توفيراً للوقت اطلع فى بدايه ال Text و اعمل
و خد ال Lines و حطها فى اماكنها فى Media

عن تجربه شخصيه
Working 100%



:cheezy:

ellemby20102010
07-07-2013, 11:34 PM
Thanks

nopromises020
11-07-2013, 08:04 AM
شكرآ على المساعده يا برنس موضوع جااااااااااااااااااااااااااااااااااااااااااااااااا اااااااااااااااااااااااااااااااااااااااااااااااااا اااااااااااااااااااامد <3

nightmare200
12-07-2013, 04:17 AM
حضرتك انا عملت كدا بس الايتم مش ظاهر في الا npc اية بقا مش فاهم دي يعني اية
تاخد كل اللى فى _RefPackageItem and _RefPricePolicyOfItem and and _RefScrapOfPackageItem and _RefShopGoods

وطلعهم من الميديا و Past and Import

Emely
12-07-2013, 06:59 AM
شكرا ع مجهودك
تسلم

ღ♥ČrimeḾaster♥ღ
12-07-2013, 09:07 AM
شكرا ع مجهودك
تسلم

thanks ♥

ღ♥ČrimeḾaster♥ღ
12-07-2013, 09:08 AM
Thanks All !♥♥

:wolfwood:

.-Carica-.
26-11-2013, 02:27 PM
حضرتك انا عملت كدا بس الايتم مش ظاهر في الا npc اية بقا مش فاهم دي يعني اية
تاخد كل اللى فى _RefPackageItem and _RefPricePolicyOfItem and and _RefScrapOfPackageItem and _RefShopGoods

وطلعهم من الميديا و Past and Import
+1
ياريت صاحب الموضوع يوضح النقطه دى
و شكرأ ع الشرح الجميل

ღ♥ČrimeḾaster♥ღ
28-11-2013, 11:41 PM
+1
ياريت صاحب الموضوع يوضح النقطه دى
و شكرأ ع الشرح الجميل

حـضرتك هـتاخد كـل اللى فى الـ Tables اللى مـكتـوبة
وتخرجهم مـن الـ media.pk2 وتخلى الاتنين زى بعض يعنى ال text فى الـ media زى الـ tables فى الـ sql
بعض متخلص اعمل import :)

elfr3on2010
04-12-2013, 02:09 PM
تسلم ايدك

miro101
21-12-2013, 11:17 PM
SR_GameServercrashing after i added item to npc

Tigger
13-05-2014, 10:25 AM
استمر