الموضوع: NPC Problem
عرض مشاركة واحدة
قديم 13-04-2019, 07:14 PM   #7

BuiLt4KiLl
عضو متألق



الصورة الرمزية BuiLt4KiLl


• الانـتـسـاب » Jul 2014
• رقـم العـضـويـة » 118364
• المشـــاركـات » 1,852
• الـدولـة » Kuwait
• الـهـوايـة »
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 67
BuiLt4KiLl جـيـد

BuiLt4KiLl غير متواجد حالياً



افتراضي رد: NPC Problem



حضرتك ده ممكن يكون ناتج ان في IDs متكررة أو ان ID الأيتم في الميديا مش نفسه في الـSQL
جرب حضرتك تشيلهم و تستخدم الـQuery ده
كود PHP:
USE SRO_VT_SHARD /* ITEMS TO NPC FOR GOLD by Caipi */
Declare @ItemID int
Declare @yourPrice int
Declare @WhichTAB varchar(74)



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



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

/* Which Itemdata.txt is affected in the Media.pk2*/
Declare @newItemID varchar(5)
Declare @
lastPrice varchar(25SET @lastPrice = (SELECT Price FROM _RefObjCommon WHERE ID = @ItemID)
Declare @
yourPriceCHAR varchar(25SET @yourPriceCHAR = @yourPrice
IF (@ItemID 5000SET @newItemID 5000
else if (@ItemID 10000SET @newItemID 10000
else if (@ItemID 15000SET @newItemID 15000
else if (@ItemID 20000SET @newItemID 20000
else if (@ItemID 25000SET @newItemID 25000
else if (@ItemID 30000SET @newItemID 30000
else if (@ItemID 35000SET @newItemID 35000
else if (@ItemID 40000SET @newItemID 40000
else SET @newItemID 45000
print ''
print @CodeName ' from Media\server_dep\silkroad\textdata\itemdata_'+@new ItemID+'.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(74SET @SN = (SELECT NameStrID128 FROM _RefObjCommon WHERE ID = @ItemID)
Declare @
DESC varchar(74SET @Desc = (SELECT DescStrID128 FROM _RefObjCommon WHERE ID = @ItemID)
Declare @
DDJ varchar(74SET @DDJ = (SELECT AssocFileIcon128 FROM _RefObjCommon WHERE ID = @ItemID)
INSERT INTO _RefPackageItem (Service,Country,CodeName128,SaleTag,ExpandTerm,Na meStrID,DescStrID,AssocFileIcon,Param1,Param1_Desc 128,Param2,Param2_Desc128,Param3,Param3_Desc128,Pa ram4,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 (10SET @TOPID = (SELECT MAX(IDFROM _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 AND Cost = @yourPrice)
BEGIN
print 'Already added @ RefPricePolicyOfItem/.txt!'
END
ELSE BEGIN
INSERT INTO _RefPricePolicyOfItem 
(Service,Country,RefPackageItemCodeName,PaymentDev ice,PreviousCost,Cost,Param1,Param1_Desc128,Param2 ,Param2_Desc128,Param3,Param3_Desc128,Param4,Param 4_Desc128)
VALUES (1,15,'PACKAGE_'+@CodeName,1,0,@yourPrice,-1,'xxx',-1,'xxx',-1,'xxx',-1,'xxx')
Declare @
NEWPRICE varchar(15SET @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(15SET @newSLOTINDEX = (SELECT MAX(SlotIndexFROM _RefShopGoods WHERE RefTabCodeName = @WhichTAB)+1
INSERT INTO _RefShopGoods 
(Service,Country,RefTabCodeName,RefPackageItemCode Name,SlotIndex,Param1,Param1_Desc128,Param2,Param2 _Desc128,Param3,Param3_Desc128,Param4,Param4_Desc1 28)
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,RefItemCod eName,OptLevel,Variance,Data,MagParamNum,MagParam1 ,MagParam2,MagParam3,MagParam4,MagParam5,MagParam6 ,MagParam7,MagParam8,MagParam9,MagParam10,MagParam 11,MagParam12,Param1,Param1_Desc128,Param2,Param2_ Desc128,Param3,Param3_Desc128,Param4,Param4_Desc12 8)
VALUES (1,15,'PACKAGE_'+@CodeName,@CodeName,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!' 
و هتعدل المسافات في السطور اللي الـQuery هيطلعهولك و تضيفها في الـMedia
و تجرب ، ضيف حاجة واحدة بس حالياً و ابقا عدل عليها بعدين للتجربة بس


توقيع BuiLt4KiLl :