vSRO Yardım vSRO | Offline Stall Hakkında

  • Konuyu Başlatan Konuyu Başlatan cengom
  • Başlangıç tarihi Başlangıç tarihi

cengom

.
Aktiflik: 1%
Çırak 1 Mesaj
Katılım
1 Tem 2025
Mesajlar
41
Tepkime puanı
14
Puan
8
Yaş
26
Konum
Istanbul
Thread owner
vSRO | Offline Stall Hakkında-1.webp


Merhaba, bu konu özelliğe dair fikir almak adına açılmıştır.
Confirm tıklayınca client kapanıyor mu bilmiyorum. Clientless mod aktif olup öyle devam ediyor belki diye düşünmüştüm ama PC kapalı olsa bile stall açık kalır yazıyor.
O zaman AgentServer dan karakterin düşmesini engelliyorlar. Aklıma bunlar geldi.

Başka fikri veya bilgisi olan varmı? Rehber niteliğinde bu konuyu güncelleyebiliriz. İyi forumlar, teşekkürler.
 
yani anladığı kadarıyla sistem ghost user mantığı gibi çalışıyor PC’den bağlantı kesiliyor ama karakter agent tarafında açık kalıyor sunucu açık olduğu sürece kapanmaz ama merak ettiğim girmek istersen nasıl giriş yapalirsin
 
Muhtemelen sistem bir yere tabloya kayıt alıyor o id tekrar giriş yapmaya çalıştığında agenttaki eski bağlantıyı kesiyor sanırım
 
2 türlü yapılabilir

1.filter programın varsa her karakter için asenkron profile tutarsın. stall kısmında offline stall aktif butonu olur. Oyuncu bunu kullandığında filter tarafında boolean değeri true olarak atarsın. client 2002 paketi oyuncunun oyunda olup olmadığını dinleyen paket. eğer 3sn içinde filterda 2002 paketine clientden gönderim olmaz ise offline stall bool değeri true ise filter içindeki oyuncu profili adına agenta 2002 paketi göndererek char dc yemesini engellersin.

2. Filter yerine agent için dll varsa direk 2002 paketi için offline stall bool değeri kullanırsın true ise 2002 gelmese bile karakter açık olur.

karakter tekrar oyuna girdiğinde filterda veya agentda giren oyuncu hafızada var mı kontrolü yaparsın varsa onu atarsın oyuncu giriş yapabilir.
 
Mantık tam olarak düşündüğünüz gibi ilerliyor: Agent üzerinden karakterin bağlantısının kesilmesini engelliyoruz, yani session açık kalıyor. Ancak karakterin DC almaması için bu session üzerinden her 5 saniyede bir 2002 paketi gönderilmesini sağlıyoruz. Ben bunun için bir job oluşturdum; offline stall’daki tüm karakterlerin sessionları üzerinden periyodik olarak bu paketi yolluyor.

Eğer oyuncu tekrar oyuna girmek isterse, login paketini kontrol ediyoruz. Eğer giriş yapmaya çalışan oyuncunun aktif bir offline stall session’ı varsa, yeni giriş paketini geçici olarak engelliyoruz. Mevcut session’ı listeden kaldırıp karakteri düşürdükten (DC) sonra, oyuncunun bir sonraki giriş denemesinde sorunsuzca oyuna dahil olmasını sağlıyoruz.

Confirm yani button tarafi devkit tarafinda hook ile yapiliyor. Butona basinca crash olmasi icin ben bitane okuyamadigi paketi yolluyorum ve crash oluyor.
 
Client > Agent’a düzenli olarak 0x2002 paketini gönderiyor burda muhtemelen bu paket belli bir süre gelmezse Agent karaktere dc veriyor.
@Crusade 'nin dediği gibi örnek vermek gerekirse offlineStall = true gibi bir flag set ediliyor.
Bundan sonra client 0x2002 göndermese bile filter/agent periyodik olarak (3–5 saniye aralıkla) 0x2002’yi Agent’a kendi gönderiyor.
Agentde bu kullanıcı hala oyunda zannediyor.
Oyuncu Confirm e tıklar.
OnConfirmClick fonksiyonuna gidecekken, ilgili hook araya girer.
Hook >Offline stall başlat sinyalini gönderir ve clienti close eder.
Bundan sonrası tamamen filter/agent tarafındaki session + timer mantığına kalır (önceki mesajda anlattığımız gibi)
 

Bu konuyu görüntüleyen kullanıcılar

Etiketler
Geri
Üst Alt