⛰️ [VSRO FIX] – Roc Mountain Unique Tepeleri (Otomatik Unique & Reverse Ekleme Paketi)
🎯 Fix Amacı
Bu paketin uygulanma amacı:
- Roc Mountain tepelerine yeni Unique spawn noktaları eklemek
- Aynı tepelere oyuncular için Reverse Scroll noktaları tanımlamak
- Unique ve Reverse koordinatlarını karakter konumuna göre otomatik almak
- Harita üzerinde görseldeki gibi (tepe iconları/konumları) düzenli bir sistem kurmak
🧠 Problem Açıklaması
Roc Mountain bölgesinde tepe bazlı etkinlik yapmak isteyen sunucularda genellikle şu problemler oluşur:
- Unique spawn noktası ekleme işlemi manuel olduğu için hata payı yüksektir
- Reverse noktaları doğru koordinat alınmadığında oyuncular yanlış/boş noktaya ışınlanır
- Unique ve Reverse noktaları senkron olmadığı için tepe etkinlikleri verimsiz olur
Bu paket, koordinatları belirlediğiniz bir karakter üzerinden çekerek işlemleri otomatikleştirir.
⚙️ Etkilenen Sistemler
- Unique Spawn Sistemi (Tab_RefNest / Tab_RefHive / Tab_RefTactics)
- Teleport Sistemi (Reverse) (_RefOptionalTeleport)
- Karakter Konum Verisi (_Char: LatestRegion / PosX / PosY / PosZ)
⚠️ ÖNEMLİ – Karakter Adı (vSroBlog) Uyarısı
⚠️ Bu pakette koordinatlar, SQL içinde yazılı olan Karakter Adı üzerinden alınır.
Kodlarda varsayılan olarak SET @CHARNAME = 'vSroBlog' yazmaktadır.
Mutlaka kendi karakter adınızı yazın! Aksi halde Reverse noktası ve Unique spawn koordinatları yanlış alınır ve nokta hatalı olur.
🛠️ ÇÖZÜM – 1) Mob / Unique Spawn Ekleme (SQL)
Bu bölüm, seçtiğiniz Unique’yi belirlediğiniz karakterin bulunduğu noktaya spawn eder. Koordinatlar otomatik olarak _Char tablosundan çekilir.
- @UNIQUE: eklenecek Unique CodeName128
- @CHARNAME: koordinatı alınacak karakter adı (ZORUNLU DÜZENLE)
- @mindealy / @maxdelay: respawn süreleri
- @INITRADIUS / @RADIUS: spawn ve hareket alanı
USE SRO_VT_SHARD
DECLARE @UNIQUE VARCHAR (129)
DECLARE @CHARNAME VARCHAR (64)
DECLARE @mindealy INT
DECLARE @maxdelay int
DECLARE @INITRADIUS INT
DECLARE @RADIUS int
DECLARE @MAXNEST int = (SELECT MAX (dwNestID) FROM Tab_RefNest)+1
DECLARE @MAXHIVE int = (SELECT MAX (dwHiveID) FROM Tab_RefHive)+1
DECLARE @MAXTACTICS int = (SELECT MAX (dwTacticsID) FROM Tab_RefTactics)+1
SET @UNIQUE = 'MOB_AR_BARUSWOLF_ADONIS1' -- Unique kodu (RefObjCommon > CodeName128)
SET @CHARNAME = 'vSroBlog' -- Karakter Adı (KOORDİNATLAR BURADAN ALINIR - MUTLAKA DEĞİŞTİRİN)
SET @mindealy = 2 -- Min respawn (saniye)
SET @maxdelay = 2 -- Max respawn (saniye)
SET @INITRADIUS = 100 -- Spawn çevresi
SET @RADIUS = 500 -- Hareket alanı çevresi
Declare @MOBID int SET @MOBID = (SELECT ID FROM _RefObjCommon WHERE CodeName128 = @UNIQUE)
INSERT INTO Tab_RefTactics (dwTacticsID,dwObjID,btAIQoS,nMaxStamina,btMaxStaminaVariance,nSightRange,btAggressType,AggressData,btChangeTarget,btHelpRequestTo,btHelpResponseTo,btBattleStyle,BattleStyleData,btDiversionBasis,DiversionBasisData1,DiversionBasisData2,DiversionBasisData3,DiversionBasisData4,DiversionBasisData5,DiversionBasisData6,DiversionBasisData7,DiversionBasisData8,btDiversionKeepBasis,DiversionKeepBasisData1,DiversionKeepBasisData2,DiversionKeepBasisData3,DiversionKeepBasisData4,DiversionKeepBasisData5,DiversionKeepBasisData6,DiversionKeepBasisData7,DiversionKeepBasisData8,btKeepDistance,KeepDistanceData,btTraceType,btTraceBoundary,TraceData,btHomingType,HomingData,btAggressTypeOnHoming,btFleeType,dwChampionTacticsID,AdditionOptionFlag,szDescString128) VALUES
(@MAXTACTICS,@MOBID,0,500,50,200,0,0,2,2,2,0,0,5,0,0,0,0,0,30,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,500,0,0,2,0,0,112,@UNIQUE)
INSERT INTO Tab_RefHive (dwHiveID,btKeepMonsterCountType,dwOverwriteMaxTotalCount,fMonsterCountPerPC,dwSpawnSpeedIncreaseRate,dwMaxIncreaseRate,btFlag,GameWorldID,HatchObjType,szDescString128) VALUES
(@MAXHIVE,0,1,0,0,0,0,1,1,@UNIQUE)
DECLARE @REGION INT SET @REGION = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSX INT SET @POSX = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSY INT SET @POSY = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSZ INT SET @POSZ = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME)
INSERT INTO Tab_RefNest (dwNestID,dwHiveID,dwTacticsID,nRegionDBID,fLocalPosX,fLocalPosY,fLocalPosZ,wInitialDir,nRadius,nGenerateRadius,nChampionGenPercentage,dwDelayTimeMin,dwDelayTimeMax,dwMaxTotalCount,btFlag,btRespawn,btType) VALUES
(@MAXNEST,@MAXHIVE,@MAXTACTICS,@REGION,@POSX,@POSY,@POSZ,0,@RADIUS,@INITRADIUS,0,@mindealy,@maxdelay,1,0,1,0)
print ''
print ''
print ''
🛠️ ÇÖZÜM – 2) Reverse Scroll Noktası Ekleme (SQL)
Bu bölüm, belirlediğiniz tepeye oyuncuların Reverse Scroll ile gidebilmesi için teleport noktası ekler. Koordinatlar yine @CHARNAME üzerinden alınır.
- @Name: Reverse noktası adı (benzersiz önerilir)
- @CHARNAME: koordinatı alınacak karakter adı (ZORUNLU DÜZENLE)
- @minlv / @maxlv: Reverse kullanımı için level aralığı
USE SRO_VT_SHARD
DECLARE @Name VARCHAR (Max)
DECLARE @CHARNAME VARCHAR (64)
DECLARE @minlv INT
DECLARE @maxlv int
SET @Name = 'MUOI_GOK_2' -- REVERSE NOKTASINA VERİLECEK AD
SET @CHARNAME = 'vSroBlog' -- Karakter Adı (KOORDİNATLAR BURADAN ALINIR - MUTLAKA DEĞİŞTİRİN)
SET @minlv = 1 -- Minimum level
SET @maxlv = 999 -- Maximum level
DECLARE @REGION INT SET @REGION = (SELECT (LatestRegion) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSX INT SET @POSX = (SELECT (POSX) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSY INT SET @POSY = (SELECT (POSY) FROM _Char WHERE CharName16 = @CHARNAME)
DECLARE @POSZ INT SET @POSZ = (SELECT (POSZ) FROM _Char WHERE CharName16 = @CHARNAME)
INSERT INTO _RefOptionalTeleport
([Service],[ObjName128],[ZoneName128],[RegionID],[Pos_X],[Pos_Y],[Pos_Z],[WorldID],[RegionIDGroup],[MapPoint],[LevelMin],[LevelMax],[Param1],[Param1_Desc_128],[Param2],[Param2_Desc_128],[Param3],[Param3_Desc_128])
VALUES
(1,@Name,'SN_'+ @Name,@REGION,@POSX,@POSY,@POSZ,1,-1,1,@minlv,@maxlv,-1,'xxx',-1,'xxx',-1,'xxx')
PRINT 'Added Sucessfully'
🚀 Uygulama Adımları
- İşleme başlamadan önce SRO_VT_SHARD yedeği alın
- Oyunda, Unique/Reverse eklemek istediğiniz tepeye gidin
- Koordinatı alınacak karakterin adını not edin
- Her iki SQL içinde de SET @CHARNAME = 'vSroBlog' satırını kendi karakter adınızla değiştirin
- Önce Unique Spawn SQL’ini çalıştırın
- Ardından Reverse Noktası SQL’ini çalıştırın
- Shard ve GameServer modüllerini yeniden başlatın
- Oyundan Reverse listesinde noktanın göründüğünü ve Unique’nin doğru tepede spawn olduğunu test edin
✅ Fix Sonucu
- ✔️ Roc Mountain tepelere yeni Unique spawn noktaları eklenir
- ✔️ Aynı tepelere özel Reverse Scroll noktaları tanımlanır
- ✔️ Koordinatlar otomatik çekildiği için kurulum hızlanır ve hata payı azalır
⚠️ Önemli Uyarılar
- @CHARNAME yanlış bırakılırsa Unique/Reverse koordinatı yanlış alınır ve nokta hatalı olur
- @Name değeri benzersiz olmalıdır (aynı isimle çakışma yaşanabilir)
- Canlı sunucuda uygulamadan önce test DB’de denemeniz önerilir
🧷 Not
Her tepe için aynı işlemi tekrarlayabilirsiniz. Sadece Unique kodunu, Reverse adını ve koordinatı alacağınız karakter adını değiştirmeniz yeterlidir.
🔒 Telif & Paylaşım
Bu konu vSro.Blog için özel olarak hazırlanmıştır. İzinsiz kopyalanması veya başka forumlarda paylaşılması yasaktır.



