• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

Query ile NPC'ye item ekleme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Lariameth

Aileden
Aktiflik
K.Tarihi
22 Haz 2012
Mesajlar
170
Puanı
37
Konum
Berlin
Baktımki herkes NPC'ye bişey eklerken hata aliyor paylaşmak istedim.
DB'ye okuttuktan sonra altta media eklenicek olanlari mediaya eklemeyi unutmayiniz iyi forumlar.
USE SRO_VT_SHARD Declare @ItemID int
Declare @yourPrice int
Declare @WhichTAB varchar(74)






SET @ItemID = 25685 /*Buraya item id'sini giriyoruz*/
SET @yourPrice = 5000 /*Burayada fiyatini giriyoruz*/
SET @WhichTAB = 'STORE_CH_POTION_TAB1' /*Buraya ise hangi npcye ekliycekseniz onu giriyorsunuz ben jangan potcuyu örnek olarak verdim */




/* 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! Nik'

Txt halinde isteyenler buradan indirebilirler.
 
Son düzenleme:
Txt olarak talep ediyorum spoiler kodu bazen bozuyor
 
En sağlıklısı her zaman insanın kendinin tek tek yazıp girmesidir bence.
 
Kara hangi sütunun ne oldugunu bilsem bende yaparım tek tek :(

----------

Bunuda eklersen iyi olur hani itemin idsini kolay yoldan bulma xxx yere ıtem kodunu yazcaksınız ITEM_CH_SWORD_10_A gibi
USE SRO_VT_SHARD
/****** Script for SelectTopNRows command from SSMS ******/
SELECT [Service]
,[ID]
,[CodeName128]
,[ObjName128]
,[OrgObjCodeName128]
FROM [SRO_VT_SHARD].[dbo].[_RefObjCommon]
WHERE CodeName128 LIKE 'xxxxx'
 
eminim ki hata var diyenlerin çoğunda durability hatası veriyordur gameserver

ama en iyi yol kendin eklemek.
 
Ben dün akşam denedim item npc ye geliyor fakat alınmıyor (Sw ye res atmadınmı demeyin attım )

Her hangi bir çözüm yolu var ise kod cok güzel işe yarayacak
 
En sorunsuz ekleme biçimi tek tek elle girmek hiçbir zaman sorun yaşamadım böyle kodlar gereksiz :D
 
Elle eklemede bi sıkıntı yok :D
RefShopGoods
RefPackageItem
RefScrapOfPackageItem
RefPricePolicyOfItem

olay bu 4 tablo arasında geçiyor :D bende elle tek tek ekliyorum, en azından bi sıkıntı olursa rahatlıkla geri alabiliyor veya düzenliyebiliyorum. :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst