İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

Knight Online Genie (Otomatik Avlanma) Sistem Mimarisi & Struct Yapısı

Cevaplar0
Görüntüleme2
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
145
Tepkime puanı
24
Puanları
0
Mevcut Bakiye
3975 ₺
[KAYNAK KOD & GELİŞTİRME] Knight Online Genie (Otomatik Avlanma) Sistem Mimarisi & Struct Yapısı
C++ Server Tarafı (GameServer / Ebenzer) Genie Veri Yapısı, Paket Protokolü ve Döngü Yönetimi​



Merhaba değerli forum sakinleri,

Knight Online sunucularında (özellikle v19xx, v2xxx ve üzeri modern dosyalarda) oyuncuların en çok kullandığı ve sunucu dengesi açısından kritik olan sistemlerin başında **Knight Genie (Otomatik Bot / Avlanma)** gelir.

Client tarafındaki Genie kullanıcı arayüzü (UI) üzerinden belirlenen saldırı becerileri, can iksiri (HP Potion) sınırları, can yenileme (Recovery) yüzdeleri ve avlanma menzili (Attack / Activity Range) sunucuya paket halinde gönderilir ve bellekte bu veri yapısı (struct) üzerinde tutulur.

Eski veya yarım paylaşılan struct yapılarında bellek hizalaması (Byte Alignment / Packing), MP iksiri ayarları, parti koruma modları ve süre sayacı eksik olduğu için paket ayrıştırmada kaymalar (Desync) ve GameServer çökmeleri yaşanabilir.

Aşağıda hem eksiksiz ve optimize edilmiş **C++ Header Struct** yapısını hem de sunucu tarafındaki **Genie Mantık Döngüsü (Logic Loop)** temelini bulabilirsiniz.

Teknik Bilgilendirme & Bellek Hizalaması' Alıntı:
DİKKAT:
  • #pragma pack(push, 1): Client ve Server arasındaki network paketlerinin birebir örtüşmesi ve byte kayması yaşamaması için 1-byte hizalama zorunludur.
  • SkillData[23]: Genie penceresindeki saldırı, buff ve recovery yuvalarına yerleştirilen becerilerin (MagicNum) dizi karşılığıdır.
  • Süre Kontrolü: Genie çalışırken karakterin envanterindeki Genie süresinin (sGenieTime) her dakikada bir sunucu tarafında eksiltilmesi ve sıfırlandığında botun otomatik durdurulması gerekir.



1. ADIM: Tam & Optimize Edilmiş C++ _GENIE_DATA Yapısı

GameServer projenizdeki ilgili başlık dosyasına (User.h veya GenieHandler.h) aşağıdaki yapıyı ekleyin:





2. ADIM: GameServer Tarafı Örnek Genie Kontrol Mantığı

Karakterin döngüsünde (CUser::Update() veya CUser::GenieSystem()) çağrılması gereken temel mantık kontrolü:





Neden Bu Mimari Tercih Edilmelidir?

  1. Byte Alignment Güvencesi: #pragma pack(push, 1) sayesinde Client ile Server arasındaki bitwise paket alışverişi kusursuz senkronize olur.
  2. Merkez Koordinat (Tether) Kilidi: Karakterin yaratık kovalarken dağlara veya uzak slotlara kaçmasını önlemek için m_fOriginX/Z merkez noktası hafızada tutulur.
  3. Kapsamlı İksir & Parti Desteği: Yalnızca HP değil; MP yönetimi ve parti koruma modları dahil edilerek eksiksiz bir bot altyapısı sunulur.

Sorularınızı, paket opcode detaylarını ve geliştirme taleplerinizi konu altından iletebilirsiniz. Herkese keyifli kodlamalar!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 28,918 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,373
Mesajlar 4,353
Kullanıcılar 1,670
Son üye Canbey
Geri
Üst