***Zone Kopyalamak İçin Gerekli Query Kodları**

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 91

Admin

Knight Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
45,967
Öncelikle 1 Tane Fazladan Db Kurucaz,Export,İmport İşlemleri İçin İsmi Farketmez Yeni Bir Db Oluşturun Ve İşlemlere Başlayalım



Önce Bizdeki Zoneleri Sorgulayalım

Zone Sorgulama


Kod:
Delete from ZONE_INFO where ZoneNo =                 'Zone Kodu' Delete from k_npcpos where  ZoneId =                 'Zone Kodu' Delete from START_POSITION where ZoneId =            'Zone Kodu'



Sizdeki Db KN_ONLİNE Olcaktır Büyük İhtimalle,Yeni Bir Db Oluşturmuştuk Hatırlarsanız, Yeni Kurdugunuz Dbye Aşagıdaki Kodları Giriceksiniz,Örnegin 21 Zonesini Almak İstiyorsunuz Yeni Dbye Not Lıke 21 Şeklinde Girip 21 Hariç Herşeyi Siliyorsunuz,Not Like Komutunun Amaçı Seçili Zone Hariç Herşeyi Silmek İçin..

Bu Komutla İstediginiz Tablodan Aynı İşlemi Yapabilirsiniz,İtem Aktarmak İçin Falan,Örnegin Zone Yerine StrName Rogue Chitin Shell Pauldron Yazarsanız Ve İtem Tablosunuda From Kısmına Girerseniz Chitin Shell İçin Gerekli Bilgiler Tabloda Olur,Ordanda İstediginiz Gibi Kopyalar,Düzenler Silebilirsiniz...






Toplu Silme





Kod:
Delete from ZONE_INFO where ZoneNo NOT LIKE 21 Delete from k_npcpos where  ZoneId NOT LIKE 21 Delete from START_POSITION where ZoneId NOT LIKE 21



İsterseniz And Komutuyla Eklemek İstedigimiz Zoneleride Bırakabiliriz.

Örnek,Bu Komutu Diger İşlemlerdede Kullanabilirsiniz.






**Örnek**

Kod:
Delete from ZONE_INFO where ZoneNo NOT LIKE 21 And Zone No NOT LIKE 1 And Zone No NOT LIKE 2 Delete from ZONE_INFO where ZoneNo =          'Zone Kodu' And ZoneNo =          'Zone Kodu'





Arasi Zone Silme





Yazdıgınız Degerleri Silmek İçin Kullanabilirsiniz,Aşagıdaki Kodlarda 224 Ve 235 Arası Zoneleri Silmek İçin Kullandıgım Konu Yazdım,

224 Ve 235 Arazı Gerekli Bilgileri Silmek İçin Kullandım,Mesela




DELETE FROM ZONE_INFO WHERE ZONENO > 224 AND ZONENO < 235 -- JR Zoneleri Ekliyse Silelim

DELETE FROM K_NPCPOS WHERE ZONEID > 224 AND ZONEID < 235

DELETE FROM START_POSITION WHERE ZoneID > 224 AND ZoneID < 235



>;Silmeyi Başladıgı Nokta

<;Silmeyi Bitircegi Nokta



Kod Degiştirme İşlemi 201 Zonesinin Kopyasını Yapcaksınız Diyelim Hemen Yeni Dbden Kodu Degiştirip Aktarmaya Başlayabiliriz...



Old;Mevcut Zone

New;Yeni Degeri




Örnek;

Kod Degistirme

Konu link görüntülemek için konuya cevap yazmalısınız.


Update ZONE_INFO Set ZoneNo = '230' WHERE ZoneNo = '201'



Yukardaki İşlem Zayesinde 201 Zonesine Ait Tüm Bilgileri 230 Olarak Ayarladım,Böylece Yeni Zone Bitmiş Oldu



Şimdi Yeni Dbye Sag Tıklayıp,

ALL TASK>Export Data Diyip

Zone Info,StartPossion,K_NPCPOS Tablosunu Kendi Kullandıgım Databaseye Aktarıyorum..

En Son Olarak,Zones.tbl Dosyasını Acıp Kopyaladıgım Zoneyi Orayada Yazıyorum,

Eger 201 Zonesini Kopyaladıysanız Tblyi Acınca Karşınıza 2010 Zonesinin Bilgileri Cıkar,Tbl Ayarlarında Her Zaman Fazladan Sıfır Eklidir,


201 İse 2010

1 İse 10

2 İse 20

41 İse 410 Gibi Fazladan Sonda Sıfır Bulunuyor,

Kopyaladıgımız Zone 201 İse 2010 Kısmını Kopyalıyoruz,

Aşagıya Yapıştırıp Yeni Degeri Giriyoruz

230 Yaptıysanız Ne Yapıcaz🙂

230+0=2300 Yapıcaz Ve Diger Kısımlara Dokunmadan Tblyi Gerekli Encoding İşlemini Yapıp Kaydediyoruz,

İşlem Bitti,Yeni Zoneniz Hayırlı Olsun.





NOT:K_NPCPOS İçinde Tramnumber Deger 1 Ve Üstü Olan Npcler Tek Bir Zonede Olucak Şekilde Ayarlanıyor,Ebenezer Tarafından..

603 Kodlu Canavarın TrapNumber Degeri 1 Yada Üstü İse

Yeni Zonede Aynı Koda Sahip Canavarı Eklerseniz Aİ SERVER Cökecektir..1 Canavar Tek Bir Zonede Oluyor Yani,

O Yüzden Hemen Canavarın Kodunu Hemen 604 Falan Yapıyorsunuz Ve 604 Kodlu Bi Canavar Oluşturup Sorunu Çözüyorsunuz,



Örnek;

201 Zonesinde 603 Kodlu Ve TramNump Degeri 3 Olan Bir Yaratık Var Diyelim

230 Zonesinde'de 603 Kodlu Ve TramNump Degeri 3 Olan Yaratık Varsa Ai Server Acılmıyor,O Yüzden İsterseniz Eski Zoneden Canavarı Kaldırırsınız Ve Sadece Yeni Zonede Olur İsterseniz 603 Kodunu 604 Yapıp 604 Kodlu Bir Canavar Oluşturup Sorunu Çözebilirsiniz,Bu İşlem Sadece Canavarlar İçin Geçerli,Pek Üstünde Durmadım Npcler İçin Sıkıntı Yaratmıyor,Hatta Bu Mantıklar Chaos Stoneyi Bile Kopyalıyabilirsiniz
🙂



Şöyle Bi Şey Düşünebilirsiniz

201 Zonesinde Tram Degeri 1 Olsun

230 Zonesindeki Tram Degeri 2 Olsun




Farklı Oldukları İçin Cakışmazlar,Ancak Bu İşlemi Yaparsanız İlk 1 Tram Degeri Okundugundan 230 Zonesine Hiç Bir Zaman Yaratık Gelmiyor🙂



Tramp Degerleri Aslında Bossların Düştükleri Noktayı Belirliyor

1 Tram Degeri 100,100 Kordinatında Olsun

2 Tram Degeri 150,150 Olsun

Bu Şekilde En Fazla 8'E Kadar Degerleri Oluşturabilirsiniz,

Canavar Her Kesildiginden Tramp Degeleri Arasından Birine Tekrar Düşüyor Bos,8 Kordinattan Birine Gerekli RegTime Zamanı Gelince Düşüyor,Tekrar Aynı Noktaya Düşermi Diye Sorcak Olursanız 8/1 İhtimalle Evet
🙂



Canavar 1-2-3-4-5 Diye Sırayla Belirlediniz Noktalara Düşmüyor,Karışık Herangi Birine Düşüyor,% 50 Bowl Ortasına Düşsün İstiyorsanız 4 Tram Degerini Bowl Kordinatlarına Göre Ayarlarsınız Diger Oranlarıda İstediginiz Kordinatları Girebilirsiniz,Eskiden Bowl Dışında Bos Olunca Ebenezer Tarafından Canavar Öldürülüyordu,Elle Atınca Dokunmuyor Ancak Bu Şekilde Bowl Dışı Ayarlarsanız Hiç Düşmeme İhtimali Var,Hiç Bunu Denemedigim İçin Bişey Diyemiyorum,201 Zonesinde Bu Şekilde Bossları Ayarlarsanız Bowl Dışına Koyarsanız Ve Cıkmassa Ortaya Koymayı Deneyin...



Monster Düzenleme



K_NPCPOS Sıkıntı Yaratırsa Sorgulama İle Hatayı Bulmak İçin,

Konu link görüntülemek için konuya cevap yazmalısınız.


Sonlarına And where ZoneId= 'Kod' Ekliyerek Zone Ve NpcId Araması Yapabilirsiniz

Konu link görüntülemek için konuya cevap yazmalısınız.
Zone Kopyalamak İçin Gerekli Query Kodları

Knight Online Private Server geliştiricileri için zone kopyalama işlemi oldukça önemli bir konudur. Özellikle yeni sunucular başlatan geliştiriciler, mevcut sunuculardan zone verilerini alarak kendi sunucularında farklı harita kombinasyonları oluşturmak isteyebilir. Bu işlem sırasında doğru SQL query kodlarını kullanmak büyük önem taşır. Bu yazıda, zone kopyalama işlemleri için gerekli olan temel SQL sorgularını detaylı olarak ele alacağız.

Zone Kavramı ve Önemi
Knight Online oyununda zone, yani bölge; karakterlerin dolaştığı, mobların spawnlandığı ve oyunun aktif olarak gerçekleştiği alanlardır. Bu alanlar genellikle zone.db, mob.db[/BR] gibi dosyalarda veya sunucu veritabanlarında tutulur. Zone kopyalama işlemi, bir sunucudan diğerine bu verilerin taşınmasını sağlar. Bu sayede yeni sunucular daha hızlı ve stabil şekilde açılır.

Gerekli Veritabanı Tabloları
Zone kopyalama işlemi sırasında aşağıdaki tablolara odaklanmak gerekir:

- tb_zoneinfo: Zone bilgilerini içerir.
- tb_spawn: Mob spawn noktalarını içerir.
- tb_spawnunit: Spawn unit bilgilerini içerir.
- tb_zoneunit: Zone unit bilgilerini içerir.
- tb_zoneunitinfo: Zone unit detaylarını içerir.

Zone Bilgilerini Kopyalamak
Aşağıdaki sorgu ile tb_zoneinfo tablosundan belirli bir zone ID'sine ait bilgileri alabilirsiniz:

Kod:
[COLOR=red]SELECT * FROM tb_zoneinfo WHERE sIndex = 'ZONE_ID';[/COLOR]


Örneğin, 101 numaralı zone bilgilerini almak için:

Kod:
[COLOR=red]SELECT * FROM tb_zoneinfo WHERE sIndex = 101;[/COLOR]


Spawn Bilgilerini Kopyalamak
Spawn bilgileri, karakterlerin dolaştığı bölgelerdeki canavarların nerede spawnlandığını belirler. Bu bilgiyi almak için aşağıdaki sorguyu kullanabilirsiniz:

Kod:
[COLOR=red]SELECT * FROM tb_spawn WHERE sZoneID = 'ZONE_ID';[/COLOR]


Örnek:

Kod:
[COLOR=red]SELECT * FROM tb_spawn WHERE sZoneID = 101;[/COLOR]


SpawnUnit Bilgileri
SpawnUnit, spawn bilgilerinin detaylarını içerir. Belirli bir spawn ID'sine ait spawn unit verilerini almak için:

Kod:
[COLOR=red]SELECT * FROM tb_spawnunit WHERE sSpawnID IN (SELECT sSpawnID FROM tb_spawn WHERE sZoneID = 'ZONE_ID');[/COLOR]


ZoneUnit Bilgileri
ZoneUnit, zone'un alt birimlerini tanımlar. Bu veriyi almak için:

Kod:
[COLOR=red]SELECT * FROM tb_zoneunit WHERE sZoneID = 'ZONE_ID';[/COLOR]


Tüm Verileri Taşıma Önerisi
Tüm bu verileri başka bir veritabanına aktarırken dikkat edilmesi gereken birkaç önemli nokta vardır:

- Her sorgu sonucunu yeni sunucuya uygun şekilde dönüştürün.
- Zone ID'lerin çakışmamasına dikkat edin.
- Spawn unit ve zone unit bilgileri doğru şekilde eşleştirilmelidir.

Sonuç
Knight Online özel sunucularında zone kopyalama işlemi, sunucu kalitesini artırmak ve oyun deneyimini geliştirmek açısından büyük önem taşır. Doğru SQL sorguları ile bu işlem güvenli ve etkili bir şekilde gerçekleştirilebilir. Ancak bu işlemler sırasında dikkatli olunmalı, veri kaybı yaşamamak adına yedek alınmalıdır. Daha fazla bilgi ve özel sunucu gelişim araçları için KnightLobby'i ziyaret edebilirsiniz.


Required Query Codes for Zone Copying

Knight Online Private Server developers often need to perform zone copying operations. Particularly developers launching new servers may want to import zone data from existing servers to create unique map combinations on their own servers. During this process, using correct SQL query codes is very important. In this article, we will examine the essential SQL queries required for zone copying processes in detail.

The Concept and Importance of Zones
In Knight Online, zones are areas where characters move, monsters spawn, and the game actively takes place. These areas are usually stored in files like zone.db, mob.db, or within server databases. Zone copying involves transferring these data from one server to another. This allows new servers to be launched more quickly and stably.

Required Database Tables
During zone copying operations, focus should be placed on the following tables:

- tb_zoneinfo: Contains zone information.
- tb_spawn: Contains monster spawn locations.
- tb_spawnunit: Contains spawn unit information.
- tb_zoneunit: Contains zone unit information.
- tb_zoneunitinfo: Contains detailed zone unit information.

Copying Zone Information
You can retrieve zone information for a specific zone ID from the tb_zoneinfo table using the following query:

Kod:
[COLOR=red]SELECT * FROM tb_zoneinfo WHERE sIndex = 'ZONE_ID';[/COLOR]


For example, to get information for zone number 101:

Kod:
[COLOR=red]SELECT * FROM tb_zoneinfo WHERE sIndex = 101;[/COLOR]


Copying Spawn Information
Spawn information determines where monsters appear in the areas where characters roam. You can use the following query to retrieve this data:

Kod:
[COLOR=red]SELECT * FROM tb_spawn WHERE sZoneID = 'ZONE_ID';[/COLOR]


Example:

Kod:
[COLOR=red]SELECT * FROM tb_spawn WHERE sZoneID = 101;[/COLOR]


SpawnUnit Information
SpawnUnit contains detailed spawn information. To retrieve spawn unit data for a specific spawn ID:

Kod:
[COLOR=red]SELECT * FROM tb_spawnunit WHERE sSpawnID IN (SELECT sSpawnID FROM tb_spawn WHERE sZoneID = 'ZONE_ID');[/COLOR]


ZoneUnit Information
ZoneUnit defines subunits of a zone. To retrieve this data:

Kod:
[COLOR=red]SELECT * FROM tb_zoneunit WHERE sZoneID = 'ZONE_ID';[/COLOR]


Recommendation for Transferring All Data
When transferring all this data to another database, there are several important points to consider:

- Convert each query result to fit the new server accordingly.
- Ensure zone IDs do not conflict.
- Spawn unit and zone unit information must be correctly matched.

Conclusion
Zone copying in Knight Online private servers is highly significant in improving server quality and enhancing gameplay experience. With the correct SQL queries, this operation can be performed safely and effectively. However, caution should be exercised during these operations, and backups should be taken to avoid data loss. For more information and tools for private server development, visit KnightLobby.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt