الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   ازاى اضيف Item فى Npc (https://silkroad4arab.com/vb/showthread.php?t=465928)

BabiliOn 27-11-2012 09:11 PM

ازاى اضيف Item فى Npc
 
ياريت حد يشرحلى الموضوع دة عشان مش فاهمو خالص وياريت توضيح عشان شوفت فيديو كدا مش باين كويس هوة بيعمل اية

ودة كوري اضافة ايتم فى Npc بس مش فاهمو

كود بلغة HTML:

USE SRO_VT_SHARD /* ITEMS TO NPC FOR GOLD by Caipi */
Declare @ItemID int
Declare @yourPrice int
Declare @WhichTAB varchar(74)



SET @ItemID = 23                            /* The Item ID of the Item you want to add to the NPC*/ --## <--
SET @yourPrice = 5000                        /* The price per Unit */ --## <--
SET @WhichTAB = 'STORE_CH_POTION_TAB1'        /* To which Tab at which NPC you want to add the Item*/



/* Codename instead of the ID */
Declare @CodeName varchar (74) SET @CodeName = (SELECT CodeName128 FROM _RefObjCommon WHERE ID = @ItemID)

/* Which Itemdata.txt is affected in the Media.pk2*/
Declare @newItemID varchar(5)
Declare @lastPrice varchar(25) SET @lastPrice = (SELECT Price FROM _RefObjCommon WHERE ID = @ItemID)
Declare @yourPriceCHAR varchar(25) SET @yourPriceCHAR = @yourPrice
IF (@ItemID < 5000) SET @newItemID = 5000
else if (@ItemID < 10000) SET @newItemID = 10000
else if (@ItemID < 15000) SET @newItemID = 15000
else if (@ItemID < 20000) SET @newItemID = 20000
else if (@ItemID < 25000) SET @newItemID = 25000
else if (@ItemID < 30000) SET @newItemID = 30000
else if (@ItemID < 35000) SET @newItemID = 35000
else if (@ItemID < 40000) SET @newItemID = 40000
else SET @newItemID = 45000
print ''
print @CodeName + ' from Media\server_dep\silkroad\textdata\itemdata_'+@newItemID+'.txt'
print 'Change the current Price of '+@lastPrice+' to '+@yourPriceCHAR+' at the itemdata_'+@newItemID+'. (For the visual Price ingame)'
/*END which Itemdata.txr*/

/*for _RefObjCommon Price*/
UPDATE _RefObjCommon SET Price = @yourPrice WHERE ID = @ItemID

/* for _RefPackageItem */
IF EXISTS (SELECT CodeName128 FROM _RefPackageItem WHERE CodeName128 = 'Package_'+@CodeName)
    BEGIN
        print 'Already added @ RefPackageItem/.txt!'
    END
ELSE BEGIN
Declare @SN varchar(74) SET @SN = (SELECT NameStrID128 FROM _RefObjCommon WHERE ID = @ItemID)
Declare @DESC varchar(74) SET @Desc = (SELECT DescStrID128 FROM _RefObjCommon WHERE ID = @ItemID)
Declare @DDJ varchar(74) SET @DDJ = (SELECT AssocFileIcon128 FROM _RefObjCommon WHERE ID = @ItemID)
INSERT INTO _RefPackageItem (Service,Country,CodeName128,SaleTag,ExpandTerm,NameStrID,DescStrID,AssocFileIcon,Param1,Param1_Desc128,Param2,Param2_Desc128,Param3,Param3_Desc128,Param4,Param4_Desc128)
VALUES (1,15,'PACKAGE_'+@CodeName,0,'EXPAND_TERM_ALL',@SN,@Desc,@DDJ,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx')
Declare @TOPID varchar (10) SET @TOPID = (SELECT MAX(ID) FROM _RefPackageItem)
print ''
print 'Add the following line @ refpackageitem.txt'
print '1    15    '+@TOPID+'    PACKAGE_'+@CodeName+'    0    EXPAND_TERM_ALL    '+@SN+'    '+@DESC+'    '+@DDJ+'    -1    xxx    -1    xxx    -1    xxx    -1    xxx'
print ''
END

/* for _RefPricePolicyOfItem */
IF EXISTS (SELECT RefPackageItemCodeName FROM _RefPricePolicyOfItem WHERE RefPackageItemCodeName = 'Package_'+@CodeName AND PaymentDevice = 1 AND Cost = @yourPrice)
    BEGIN
        print 'Already added @ RefPricePolicyOfItem/.txt!'
    END
ELSE BEGIN
INSERT INTO _RefPricePolicyOfItem (Service,Country,RefPackageItemCodeName,PaymentDevice,PreviousCost,Cost,Param1,Param1_Desc128,Param2,Param2_Desc128,Param3,Param3_Desc128,Param4,Param4_Desc128)
VALUES (1,15,'PACKAGE_'+@CodeName,1,0,@yourPrice,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx')
Declare @NEWPRICE varchar(15) SET @NEWPRICE = @yourPrice
print ''
print 'Add the following line @ refpricepolicyofitem.txt'
print '1    15    PACKAGE_'+@CodeName+'    1    0    '+@NEWPRICE+'    -1    xxx    -1    xxx    -1    xxx    -1    xxx'
print ''
END

/* for _RefShopGoods */
IF EXISTS (SELECT RefPackageItemCodeName FROM _RefShopGoods WHERE RefPackageItemCodeName = 'Package_'+@CodeName AND RefTabCodeName = @WhichTAB)
    BEGIN
        print 'Already added @ RefShopGoods/.txt!'
    END
ELSE BEGIN
Declare @newSLOTINDEX varchar(15) SET @newSLOTINDEX = (SELECT MAX(SlotIndex) FROM _RefShopGoods WHERE RefTabCodeName = @WhichTAB)+1
INSERT INTO _RefShopGoods (Service,Country,RefTabCodeName,RefPackageItemCodeName,SlotIndex,Param1,Param1_Desc128,Param2,Param2_Desc128,Param3,Param3_Desc128,Param4,Param4_Desc128)
VALUES (1,15,@WhichTAB,'PACKAGE_'+@CodeName,@newSLOTINDEX,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx')
print ''
print 'Add the following line @ refshopgoods.txt'
print '1    15    '+@WhichTAB+'    '+'PACKAGE_'+@CodeName+'    '+@newSLOTINDEX+'    -1    xxx    -1    xxx    -1    xxx    -1    xxx'
print ''
END

/* for _RefScrapOfPackageItem */
IF EXISTS (SELECT RefPackageItemCodeName FROM _RefScrapOfPackageItem WHERE RefPackageItemCodeName = 'Package_'+@CodeName AND RefItemCodeName = @CodeName)
    BEGIN
        print 'Already added @ RefScrapOfPackageItem/.txt!'
    END
ELSE BEGIN
INSERT INTO _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)
VALUES (1,15,'PACKAGE_'+@CodeName,@CodeName,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx')
Declare @ScrapIndex varchar(15)
SET @ScrapIndex = (SELECT MAX([Index]) FROM _RefScrapOfPackageItem WHERE RefItemCodeName = @CodeName)
print ''
print 'Add the following line @ refscrapofpackageitem.txt'
print '1    15    '+'PACKAGE_'+@CodeName+'    '+@CodeName+'    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    -1    xxx    -1    xxx    -1    xxx    -1    xxx    '+@ScrapIndex
print ''
END
print ''
print ''
print 'Done!'


SkyWaY 27-11-2012 09:19 PM

Update _RefPackageItem
SET Service = 1
WHERE CodeName128 = 'PACKAGE_ITEM_COS_P_FLUTE'
Update _RefPricePolicyOfItem
SET Service = 1
WHERE RefPackageItemCodeName = 'PACKAGE_ITEM_COS_P_FLUTE'
Update _RefScrapOfPackageItem
SET Service = 1
WHERE RefPackageItemCodeName = 'PACKAGE_ITEM_COS_P_FLUTE'
Update _RefShopGoods
SET Service = 1
WHERE RefPackageItemCodeName = 'PACKAGE_ITEM_COS_P_FLUTE'
we dool fel media
refshopgoods.txt :


1 15 STORE_CA_STABLE_TAB3 PACKAGE_ITEM_COS_P_FLUTE 0 -1 xxx -1 xxx -1 xxx -1 xxx
1 15 STORE_CH_STABLE_TAB3 PACKAGE_ITEM_COS_P_FLUTE 0 -1 xxx -1 xxx -1 xxx -1 xxx
1 15 STORE_EU_STABLE_TAB3 PACKAGE_ITEM_COS_P_FLUTE 0 -1 xxx -1 xxx -1 xxx -1 xxx
1 15 STORE_KT_STABLE_TAB3 PACKAGE_ITEM_COS_P_FLUTE 0 -1 xxx -1 xxx -1 xxx -1 xxx
1 15 STORE_WC_STABLE_TAB3 PACKAGE_ITEM_COS_P_FLUTE 0 -1 xxx -1 xxx -1 xxx -1 xxx



refscrapofpackageitem.txt :


1 15 PACKAGE_ITEM_COS_P_FLUTE ITEM_COS_P_FLUTE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 xxx -1 xxx -1 xxx -1 xxx 29952



refpricepolicyofitem.txt :


1 15 PACKAGE_ITEM_COS_P_FLUTE 1 0 2000000 -1 xxx -1 xxx -1 xxx -1 xxx



refpackageitem.txt :


1 15 24822 PACKAGE_ITEM_COS_P_FLUTE 0 EXPAND_TERM_ALL SN_ITEM_COS_P_FLUTE SN_ITEM_COS_P_FLUTE_TT_DESC coscos_p_flute.ddj -1 xxx -1 xxx -1 xxx -1 xxx

ده مثلا wolf انتا غيرو واعملو الى انتا عوزو غير الكود

BabiliOn 27-11-2012 09:54 PM

ازاى اضيف دة بس فى كل دول

package_item_cos_p_flute

كدا الكود مش هيضاف عشان مش كامل !

BabiliOn 28-11-2012 01:22 AM

Up :mfr_bl5:

Bouken 28-11-2012 01:25 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة BabiliOn
ممكن بعد اذنك تقولى ازاى اضيف ايتم فى Npc معلش لو فيها شوية تعب

1-_RefPackageItem

كود PHP:

1    15    1    PACKAGE_ITEM_CH_SWORD_01_A    0    EXPAND_TERM_ALL    SN_ITEM_CH_SWORD_01_A    SN_ITEM_CH_SWORD_01_A_TT_DESC    item\china\weapon\sword_01.ddj    -1    xxx    -1    xxx    -1    xxx    -1    xxx 

2-_RefPricePolicyOfItem

كود PHP:

1    15    PACKAGE_ITEM_CH_SWORD_01_A    1    0    890    0    xxx    0    xxx    0    xxx    0    xxx 

3-_RefScrapOfPackageItem

كود PHP:

1    15    PACKAGE_ITEM_CH_SWORD_01_A    ITEM_CH_SWORD_01_A    0    0    62    0    0    0    0    0    0    0    0    0    0    0    0    0    -1    xxx    -1    xxx    -1    xxx    -1    xxx    1 

4-_RefShopGoods

كود PHP:

1    15    STORE_CH_SMITH_TAB1    PACKAGE_ITEM_EH_SWORD_01_A    -1    xxx    -1    xxx    -1    xxx    -1    xxx 


BabiliOn 28-11-2012 01:29 AM

يعنى الاكواد دي اضفها ولا اخدها من التابلات دي مش فاهم ؟؟

Bouken 28-11-2012 01:40 AM

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

تمام لحد كده

فأنت تاخد أى كود من كل table فيهم و ألى عليك أنك تغير الكود بس بالكود بتاع الايتم ألى أنت هتحطوا و المكان طبعا ألى هتحطهم فيه

BabiliOn 28-11-2012 01:51 AM

طيب انا اخد منين واحط فين معلش فهمنى وكمان ازاى اضيفو فى Npc الى انا عاوزو

ادينى اى مثال تانى على الى فوق حتى

Bouken 28-11-2012 02:01 AM

ده أسهل مثال
كل ألى عليك هتغير ده ITEM_CH_SWORD_01_A

بالكود بتاع الايتم ألى عايز تحطوا

وطبعا تغير الكوده ده item\china\weapon\sword_01.ddj

برضوا بألى أنت هتحطوا

ال table رقم 4
عن طريقه بتقدر تغير مكان الايتم يعنى هتحطوا فى أنى NPC و فى أنى مكان فى قلب الNPC

BabiliOn 28-11-2012 02:08 AM

تمام كدا يعنى من كل تابل فى دول اخد اى سطر فيهم Copy واغير كود الايتم الى موجود بكود الايتم الى انا عايزو

مثلآ دة

_RefShopGoods
كود:

1        15        STORE_CA_HONOR_TAB1        PACKAGE_ITEM_CH_BLADE_08_A_RARE_HONOR        0        -1        xxx        -1        xxx        -1        xxx        -1        xxx
انا بقا هغير الى بلون الاحمر للحاجة الى انا عايزها ومع كلو التابل نفس الكلام اخد كوبي من اى كود فى التابل واغير كود الايتم واحطو تانى !!

صح كدا ولا فى حاجة غلط ؟


الساعة الآن 08:34 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.