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.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ş ?
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 !!
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)
Benzer konular
- Cevaplar
- 35
- Görüntüleme
- 549
- Cevaplar
- 0
- Görüntüleme
- 857
- Cevaplar
- 3
- Görüntüleme
- 784
- Cevaplar
- 9
- Görüntüleme
- 6K