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

vSro Paylaşım [Joymax Ağ Protokolü] İstemciden Sunucuya İstek Paketleri (0x6000 - 0x7FFF): Hareket, Eylem ve RPC Mimarisi

Cevaplar0
Görüntüleme10
Ticaret Puanı
0
Katılım
19 Ocak 2026
Mesajlar
277
Tepkime puanı
225
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
4605 ₺
[Joymax Ağ Protokolü] İstemciden Sunucuya İstek Paketleri (0x6000 - 0x7FFF): Hareket, Eylem ve RPC Mimarisi

Silkroad Online protokolünde `0x6000 - 0x7FFF` sayısal bloğu, oyuncunun oyun dünyasında gerçekleştirdiği her türlü aktif eylemin sunucuya iletilmesinden sorumlu "İstemci İstek" (Client Request / RPC) katmanıdır. Oyuncunun fareyle arazide bir noktaya tıklamasından bir iksir içmesine, NPC ile ticaret yapmasından lonca kurmasına kadar tüm kullanıcı girdileri bu aralıktaki paketler aracılığıyla sunucuya (AgentServer / GameServer) taşınır.

Bu monografik rehberde, istemcinin sunucuya ilettiği temel eylem paketleri; hareket matematiği (`0x7021`), envanter eşya yönetimi (`0x7034`), hedef seçimi (`0x7045`), beceri/eylem yürütme (`0x7074`) ve karakter seçim akışı (`0x6103`, `0x7001`) eksiksiz olarak incelenmektedir.


1. İstemci İstek Paketlerinin Genel Taksonomisi

İstemci istekleri, sunucuya bir durum değişikliği talebinde bulunur. Sunucu bu istekleri alır, oyuncunun mevcut durumunu (ölü mü, sersemlemiş mi, mesafesi yetiyor mu, envanterinde yer var mı) doğrular ve eylemi ya onaylayarak `+0x4000` karşılık paketiyle döner ya da reddeder.

OpcodeMesaj AdıPayload BoyutuBirincil İşleviSunucu Karşılık Opcode'u
0x6103CLIENT_AUTH_REQUESTDinamikShard girişi, karakter listesi alma, oluşturma ve silme0xA103
0x7001CLIENT_CHARACTER_SELECTION_JOIN_REQUESTDeğişkenSeçilen karakterle oyun dünyasına giriş isteği0xB001
0x7021CLIENT_CHARACTER_MOVEMENT16-24 BaytKarakter veya binek hareket hedef koordinatları0xB021 (Echo / Broadcast)
0x7024CLIENT_CHARACTER_MOVEMENT_ANGLE2 BaytKarakterin baktığı açının güncellenmesi0xB024
0x7025CLIENT_CHAT_REQUESTDinamikGenel, Whisper, Parti, Guild, Global sohbet iletimi0xB025
0x7034CLIENT_INVENTORY_ITEM_MOVEMENTDinamik (Slot/Eşya)Slot taşıma, giyme, çıkarma, yere atma, NPC satışı0xB034
0x7045CLIENT_ENTITY_SELECTION4 Bayt (UniqueID)Fareyle bir hedefi (oyuncu, mob, NPC) seçme0xB045
0x704CCLIENT_INVENTORY_ITEM_USEDinamik (Slot/Tip)İksir, scroll, return scroll vb. eşyaların tüketimi0xB04C
0x7050 / 51CLIENT_CHARACTER_ADD_STR / INTBoş / BayrakSeviye atlandığında STR veya INT puanı verme0xB050 / 0xB051
0x7074CLIENT_CHARACTER_ACTION_REQUESTDinamikBeceri kullanımı, normal vuruş, oturma/kalkma eylemleri0xB074 / 0xB070


2. Hareket ve Koordinat Paketleme Matematiği (0x7021)

Silkroad Online motorunda arazi `RegionID` (16-bit) bazlı hücrelerden oluşur. Koordinat sistemi dosyalarda ve ağda (x, z, y) eksenindedir (burada Y yüksekliği temsil eder).

Bir oyuncu arazide bir noktaya tıkladığında `0x7021` paketi üretilir:
- `petUniqueID` (u32, 4B): Eğer oyuncu bir binek atı veya Fellow pet üzerindeyse bineğin UniqueID'si yazılır; yaya ise `0` geçilir.
- `MovementType` (u8, 1B): Hareket türü (Yürüme, Koşma, Binek).
- `RegionID` (u16, 2B): Hedeflenen noktanın bulunduğu harita sektör/bölge kimliği.
- `TargetX, TargetZ, TargetY` (i32 veya i16, 12B): Hedef koordinat bileşenleri.

Joymax Koordinat Ölçekleme İlkesi:
Ağ üzerindeki tamsayı koordinatlar yerel sektör içindeki 10 santimetrelik adımlarla temsil edilir (`world_coord = network_coord * 0.1f`). Sunucu bu koordinatları alır almaz NavMesh (.nvm) üzerinde ışın izleme (raycasting) yaparak arada duvar veya engel olup olmadığını doğrular.


3. Envanter ve Eşya Manipülasyonu (0x7034)

Eşya taşıma işlemleri tek bir genel paket yapısıyla yönetilir. Paketin ilk baytı operasyon alt türünü (`MovementType`) belirler:
- `0x00`: Envanter içi slot taşıma / yer değiştirme (`SlotFrom -> SlotTo`).
- `0x01`: Ekipman kuşanma (Envanterden -> Ekipman slotuna).
- `0x02`: Ekipman çıkarma (Ekipman slotundan -> Envantere).
- `0x03`: Depoya eşya koyma / Depodan eşya çekme.
- `0x07`: Yere eşya atma (Drop item).
- `0x08`: NPC dükkanına eşya satma.


4. İkili Kod Kanıtları ve C++ Struct Düzenleri

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler



5. Özel Filtre ve Bot Geliştiricileri İçin Kritik Notlar

1. Movement Flood Engellemesi:** İstemci saniyede en fazla 5-6 hareket paketi gönderebilir. Bir saniyede 15'ten fazla `0x7021` gönderen istemciler doğrudan "Speed Hack / Teleport Hack" filtreleri tarafından engellenmelidir.
2. Slot İndeksleri:** Envanter slotları 0 tabanlı değildir; 13'ten başlar (1-12 arası donatılmış ekipman slotlarıdır). Bir eşyayı envantere taşırken hedef slotun `>= 13` ve `< InventoryCapacity` olduğu doğrulanmalıdır.
3. Action Request Zamanlaması (0x7074):** İstemcinin beceri kullanabilmesi için önceki becerinin animasyon süresinin (`CastTime` ve `ActionDuration`) tamamlanmış olması gerekir. Paket botlarının animasyonu beklemeden ardışık `0x7074` göndermesi sunucuda doğrudan "Action Failed" yanıtı üretir.

🙏 Silkroad Geliştirici Camiasına Teşekkür ve Saygı

Bu kapsamlı teknik dokümantasyon, tersine mühendislik mimarisi ve protokol analizlerinin gün ışığına çıkmasında Silkroad ekosistemine yıllardır karşılıksız devasa emekler veren ve bu mirası ileriye taşımaya devam eden öncü geliştiricilerimize en içten teşekkürlerimizi sunarız:

⭐ DaxterSoul — Paket filtreleme, proxy mimarileri ve sunucu güvenliğindeki temel çalışmaları ve topluluğa kazandırdığı standartlar için,
⭐ florian0 — İstemci (Client) ve GameServer ikili (binary) tersine mühendisliği, hook ve assembly düzeyindeki rehber niteliğindeki araştırmaları için,
⭐ JellyBitz — Açık kaynak Silkroad araçları, paket analiz kütüphaneleri ve geliştirici ekosistemine sunduğu paha biçilmez açık kaynak yazılımlar için,
⭐ ferdoran — İstemci-sunucu protokol analizlerinin, opcode referanslarının ve teknik dokümantasyonun derlenip topluluğa kazandırılmasındaki büyük gayretleri için.

Silkroad geliştirici topluluğuna kattığınız değer, paylaştığınız bilgi birikimi ve sunduğunuz vizyon için sonsuz teşekkürler. İyi ki varsınız!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 17,789 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,209
Mesajlar 4,051
Kullanıcılar 1,597
Son üye serkankacan
Geri
Üst