kaptanmikro1 1
kaptanmikro1
romegames 1
romegames
TuZaKK 1
TuZaKK
recepk78 1
recepk78
Reklam vermek için turkmmo@gmail.com

Sunucu Taraflı AttackSpeed Koruması C++

  • Konuyu başlatan Konuyu başlatan Jack.Wrestler
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 9
  • Görüntüleme Görüntüleme 375
Vuruşu SİLMEZ — Gerçek zamanına öteler hocam bunu anlayamadım iki sorum olacak 1 adam geldi 1000x yaptı 1000 tane paket yolladı sunucu hasarı işlemedi sıraya aldı adam o an oyundan cıktı baska haritaya ısınlandı ama sunucu hasarı vurmaya normal hızda devam mı edecek ? bide adam 10 tane hesap actı her birinden binlerce paket yollamaya basladı sunucu hiçbirini silmedi hepsini sıraya aldı bi süre sonra bu lag olmayacak mı ? ch nin cökmesine kadar gitmez mi bu iş ?
Vuruşu iptal etmez 1000x de hiçbir şey olmaz. Bekleyen iş yok ki devam etsin. sunucu tarafına bakıyor yani siz clientde istediğiniz kadar değişiklik yapın sunucu tarafı engelliyor normal hıza döndürüyor svside mantığı aslında. Işınlanma esnasında zaten OnPlayerLogout() o oyuncunun kaydını map'ten siliyor. Geriye tek bayt kalmıyor. Kuyruk olmadığı için paket sayısı arttıkça bellek büyümüyor. 1000 paket de gelse 10.000 paket de gelse aynı 40 bayt. yani gönül rahatlığıyla kullanabilirsiniz ve geliştirebilirsiniz.
 
hocam indirdim kodu biraz inceledim eline sağlık ama maalesef cok fazla bugu var bu attıgım satırları sende incelersen anlarsın bu haliyle kullanılması mümkün değil



JWANTIGURAD.CPP 466.SATIR
if (m_bThrottle)
ch->SkipComboAttackByTime(iEarly);


JWAntiGuard.cpp 380 ve 461 satir
const int iComboInterval = (0 == p->dwLastComboTime)
? 0
: (int) (dwTime - p->dwLastComboTime);
...
if (iComboInterval > 0 && iComboInterval < p->iValidInterval - iTolerance)

SkipComboAttackByTime vuruşu ötelemez skip eder (düşürür)

anlatim.cpp satir 70

CJWAntiGuard::instance().OnMove(ch, pinfo->bFunc, pinfo->bArg, pinfo->dwTime);

kontrolü sunucu saatiyle değil clientın gönderdiği dwTime ile yapılıyor

JWAntiGuard.cpp satır 384

cpp

if (COMBO_ARG_START == (int) bArg) // bArg == 14
{
p->iSequence = 1;
p->iValidInterval = CalcComboInterval(ch, 1);
p->dwLastComboTime = dwTime;
return;
}


bArg 14 paketi süre kontrolü yapmadan return çıkıyor !!
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 1, Misafir: 0)

Geri
Üst