vSRO Çözüldü NPC 'Yİ NASIL GERİ GETİRİRİM

MTNCommunity

.
.
Aktiflik: 1%
1 Mesaj
Katılım
11 Ağu 2025
Mesajlar
34
Tepkime puanı
14
Puan
8
Thread owner
ObjCommon tablosunda npclerim ekli nazifnpc de görünüyor fakat _RefHive ,_RefTactics,_RefNest tablolarında görünmüyor tekrar elle herşeyi eklemek istemiyorum araştırma yaptıgımda bu kodlara ulaştım fakat öncesinde sormak istedim eksik yeri varmı yada daha basit bir yöntemi varmıdır yardımcı olabilcek var ise sevinirim..






USE SRO_VT_SHARD
GO

-- ### AYARLAR (BURAYI DÜZENLEYİN) ###
DECLARE @CodeName varchar(128) = 'NPC_CODENAME_BURAYA' -- Örnek: 'NPC_CH_POTION'
DECLARE @RegionID int = 0 -- Örnek: 2614 (Jangan) - Oyunda /location yazarak bulabilirsiniz
DECLARE @PosX real = 0 -- X Koordinatı
DECLARE @PosY real = 0 -- Y Koordinatı
DECLARE @PosZ real = 0 -- Z Koordinatı (Yükseklik)
-- ##################################

DECLARE @ObjID int
DECLARE @TacticID int
DECLARE @HiveID int

-- 1. ADIM: ObjCommon ID'yi Bul
SELECT @ObjID = ID FROM _RefObjCommon WHERE CodeName128 = @CodeName

IF @ObjID IS NULL
BEGIN
PRINT 'HATA: Belirtilen CodeName _RefObjCommon tablosunda bulunamadı!'
RETURN
END

-- 2. ADIM: _RefTactics Ekle
-- Standart bir NPC davranışı için (Aggro yok, script ID genelde 0 veya temel)
INSERT INTO _RefTactics (dwObjID, nAggroPercentage, dwTalkFlag, dwTalkDelay, dwDalay, dwWarpID, dwCallId, dwCallDelay, dwGraphID, IsWard, Widen)
VALUES (@ObjID, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

SET @TacticID = SCOPE_IDENTITY() -- Eklenen son Tactic ID'yi al

-- 3. ADIM: _RefHive Ekle
-- Tactic ID'yi kullanarak Hive oluştur
INSERT INTO _RefHive (dwTacticsID, btKeepMonsterCountType, dwOverwriteMaxTotalCount, fMonsterCountPerPC, dwSpawnSpeedIncreaseRate, dwMaxMonsterCount, btJenerateType, btChampion, dwHatchTime)
VALUES (@TacticID, 0, 1, 0, 0, 1, 0, 0, 0)

SET @HiveID = SCOPE_IDENTITY() -- Eklenen son Hive ID'yi al

-- 4. ADIM: _RefNest Ekle
-- Hive ID'yi kullanarak Konum (Nest) oluştur
INSERT INTO _RefNest (dwHiveID, dwTacticsID, nRegionDBID, fLocalPosX, fLocalPosY, fLocalPosZ, wInitialDir, nRadius, nGenerateRadius, nChampionGenRadius, dwDelayTime, dwMonsterCount, dwBtFlag, bLocalOperation, nLocalTax, nLocalTaxRate)
VALUES (@HiveID, @TacticID, @RegionID, @PosX, @PosY, @PosZ, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
 
query ile yapmanın pek mantıklı olduğunu düşünmüyorum hocam. Rastgele bir NPC'nin refnest, hive ve tactics tablolarını inceleyerek aynısını yapabilirsiniz. RefNest tablosu ile NPC'nin konumunu ayarlayabilirsiniz.
 
Oyla 0
Thread owner
sıralamayı ne şekilde yapmalıyım konumu ayarlamam sorun değil fakat rastgele bir npc verilesini girsem ayarlanabilir mi.
yorum için teşekkürler
 
Oyla 0
NPC'ler hareketsiz oldukları için refhive ve reftactics tablolarını rastgele bir npc'den kopyalayarak oluşturabilirsiniz. Konum ayarı RefNest tablosundan yapılıyor. Eğer konum girmezseniz NPC oyununuzda ekli olur fakat görünmez
sıralamayı ne şekilde yapmalıyım konumu ayarlamam sorun değil fakat rastgele bir npc verilesini girsem ayarlanabilir mi.
yorum için teşekkürler
 
Oyla 0
Nereye ekleyecekseniz yani hangi towna ekleyecekseniz objcommonda npc olarak aratıp kopyalayın objchardan da hangi ID ise onu kopyalayın yeni bir Region X, Y ve Z koordinatlarını girin yeni bir id vererek yapıştırın aynı işlemleri hive, tactics ve nest tablolarına yapın
 
Oyla 0
_Refnest verilerinin hatalı eklenmesi sonucu npc spawn olmuyordu NPC kooardinatlarını baştan alarak spawn sorunsuz bir şekilde eklendi.
 
Oyla 0
Çözüm

Bu konuyu görüntüleyen kullanıcılar

Geri
Üst Alt