YARDIM [v25xx] HSACSX Source / Re-Connect System (Yeniden Bağlanma) Mantığı ve Örnek Kod Talebi

KY Üye
KAYIT
26 Ara 2025
Mesajlar
49
Tepki puanı
44
Yaş
36
Konum
Antalya
Kullanılan Source
HSACSX
Kullanılan Database
HSACSX
Kullanılan Client
v25xx
Versiyon
2525
Selamlar herkese,

v25xx altyapısı üzerinde HSACSX geliştirmekteyim. Projeye Re-Connect System (Yeniden Bağlanma Sistemi) eklemek istiyorum ancak bu sistemin istemci (Client) ve sunucu (GameServer / ACS) tarafındaki pakete ve akışa dayalı mantığıyla ilgili yeterli döküman veya kaynak bulamadım.

Elinde çalışan bir altyapı örneği, pseudo-code veya izlemem gereken yolla ilgili dökümantasyonu olan varsa paylaşabilir mi?

Özellikle şu detaylar hakkında bilgiye ihtiyacım var:

  • Disconnect Algılanması: Client tarafında internet kopması veya paket zaman aşımı (timeout) durumunda socket'i hemen kapatmak yerine retain/retry durumuna geçirme mantığı.
  • Handshake / Re-Auth: İstemci tekrar bağlandığında GameServer'a gönderilen reconnect paketi içeriği (Session Key, Account ID, Character ID, vs. doğrulaması).
  • GameServer / ACS Tarafı Handling: Oyuncuyu oyundan düşürmeden (Despawn etmeden) belirli bir süre (örneğin 30-60 saniye) isOnline statusunda veya askıda tutma (ghost state) mimarisi.
Yardımcı olabilecek, fikir verecek veya elindeki mantığı/kod bloğunu paylaşabilecek herkese şimdiden teşekkür ederim.
 
KY Üye
KAYIT
26 Ara 2025
Mesajlar
49
Tepki puanı
44
Yaş
36
Konum
Antalya
yaptım esasında. ama re-connect ui si bir açılıyor bir açılmıyor. Açılınca re-connectim çalışıyor. ui açılmayınca çalışmıyor. onuda çözersem sorun kalmayacak.
çözülmeyecek bir durum yok zor kısmı bitti.
 
KY Uzman Üye
Yardımsever
KAYIT
2 Ağu 2025
Mesajlar
411
Çözümler
4
Tepki puanı
536
Ben DC yiyip tekrar oyuna girebilme taraftariyim önceden(20 sene önce) charı farm a bıraktığımız da DC yedik mi diye düşünmekten uyuyamazdik
 
KY Kıdemli Üye
KY Üye
KAYIT
2 Nis 2023
Mesajlar
154
Tepki puanı
13
yaptım esasında. ama re-connect ui si bir açılıyor bir açılmıyor. Açılınca re-connectim çalışıyor. ui açılmayınca çalışmıyor. onuda çözersem sorun kalmayacak.
çözülmeyecek bir durum yok zor kısmı bitti.
Üstadım bizimle de paylaşmayı düşünür müsün? Bizde senden destek almış oluruz.
 
Moderatör
KAYIT
21 Ağu 2025
Mesajlar
208
Çözümler
1
Tepki puanı
779
Reconnect yapısını kod olarak kimse paylaşmaz fakat vermek isteyen taktik verebilir. Mesela reconnect derler ama reconnect değildir normalde fastload işlemidir yapılan. Sockete dokunulmaz bile. Bunu özellikle belirtme sebebim ilk defa bu işi deneyenler ismine kapılıp gidip gerçek reconnect kurmaya çalışıp duvara tosluyor. Bakış açısı değişince daha güvenli ve basit yöntemler üretebiliyorsunuz.
 
KY Kıdemli Üye
KY Üye
KAYIT
2 Nis 2023
Mesajlar
154
Tepki puanı
13
Reconnect yapısını kod olarak kimse paylaşmaz fakat vermek isteyen taktik verebilir. Mesela reconnect derler ama reconnect değildir normalde fastload işlemidir yapılan. Sockete dokunulmaz bile. Bunu özellikle belirtme sebebim ilk defa bu işi deneyenler ismine kapılıp gidip gerçek reconnect kurmaya çalışıp duvara tosluyor. Bakış açısı değişince daha güvenli ve basit yöntemler üretebiliyorsunuz.
Teşekkürler üstadım
 
KY Üye
KAYIT
26 Ara 2025
Mesajlar
49
Tepki puanı
44
Yaş
36
Konum
Antalya
Reconnect yapısını kod olarak kimse paylaşmaz fakat vermek isteyen taktik verebilir. Mesela reconnect derler ama reconnect değildir normalde fastload işlemidir yapılan. Sockete dokunulmaz bile. Bunu özellikle belirtme sebebim ilk defa bu işi deneyenler ismine kapılıp gidip gerçek reconnect kurmaya çalışıp duvara tosluyor. Bakış açısı değişince daha güvenli ve basit yöntemler üretebiliyorsunuz.
Teşekkürler, bakış açısı netleşti. İsme kapılıp gerçek reconnect kurmaya çalışmışız; anlattığın yola göre güncelleyeceğiz.

Bizde olan kısaca:

Önce soketi tutmaya / taşımaya çalıştık (WSADuplicateSocket, native socket alanını yama). Olmadı — client gönderiyor, sunucu tarafı ölü kalıyor.

Sonra “reconnect” diye Tick’ten native CAPISocket::Connect çağırdık, VersionCheck + kendi resume token’ımız + GameStart. Bu 3 kez ACK alıp içeri aldı; 4. kesintide native DC teardown / grace yüzünden UI açılmadan dünya takılı kaldı. Connect’i biz sürünce EventSelect, tick dondurma, leftover “Disconnected” kutusu hep peşimizdeydi. Wrapper connect’i oyun içinden yanlış yerden çağırmak da çöktü (server-select state yok).

Yani elimizde çalışan parça aslında sunucu tarafı fastload (token + hydrate + GameStart). Kırılan yer client’da sokete dokunmamız.

Sokete biz girmeyeceğiz; native connect + char’ı atlayıp GameStart. Teşekkürler.

Tamamlayıp konuyu forumda izniniz olursa paylaşmak istiyorum. Mademki örnek bir kod bloğu forumda yok sakıncası yoksa bir yararda benden olsun isterim.
 
Moderatör
KAYIT
21 Ağu 2025
Mesajlar
208
Çözümler
1
Tepki puanı
779
Tabiki paylaşabilirsiniz :) anlamış olmanıza çok sevindim ayrıca benim paylaşmama amacım bu işten ekmek yiyen ticari amaçlı kayıtlı üyeler mevcut forumda. Ticaretlerini baltalamak istemem.
 
KY Üye
KAYIT
26 Ara 2025
Mesajlar
49
Tepki puanı
44
Yaş
36
Konum
Antalya
Tabiki paylaşabilirsiniz :) anlamış olmanıza çok sevindim ayrıca benim paylaşmama amacım bu işten ekmek yiyen ticari amaçlı kayıtlı üyeler mevcut forumda. Ticaretlerini baltalamak istemem.
size kesinlikle katılıyorum. ancak isim vermek istemiyorum saçma basit bir uif için daha önce bu forumda 10k fiyat söyleyen arkadaşlar oldu. ben bu işlemi kendin 45 dakikalık çalışma ile hallettim. Kimsenin ekmeğine mani olmak tabikide istemeyiz ancak bazı arkadaşların ne yazıkki fiyat konusunda akıllanması gerekiyor. Ben şuana kadar v25xx i % 80 oranında tamamladım. Bitirince büyük kısmını ücretsiz paylaşmayı düşünüyorum. Ekmeğe balta vurmak değil ekmeği adabıyla yenilmesi tarafıyım her zaman
 
Üst Alt