pulsemanager anticheat videolu

tobekarserseri

Yasaklanmış Üye
Cezalı
Mesaj
22
Beğeni
9
Puan
50
Ticaret Puanı
0
bu sistem limit sistemidir martysamaya aittir.

bu sistemde harekat hızı ve saldırı hızı gibi tüm işlemleri kontrol edip dc atabilir.

Linkleri görebilmek için giriş yap veya kayıt ol.



mov_speedi fixleyemedim.


update

martysama v5.7 filesa eklenmiştir.


common kısmına githubdaki PulseManager.h atın.

input_maine ekelyin

#include "../../common/PulseManager.h"//pulse manager sayesinde anticheat


ilgili yerleri değiştirin

input_main.cpp
ara
#include "stdafx.h"
ekle
#include "../../common/PulseManager.h"



ilgili yerleri aşağıdaki gibi düzenle şimdilik düzgün görünüyor.
eğer atack yada mov hilesi açıksa atağı keser.
isterseniz dc atmayıda aktif edebilrisiniz başıdnaki // ları kaldırın



Kod:
int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
{
    LPCHARACTER ch;

    if (!(ch = d->GetCharacter()))
    {
        sys_err("no character on desc");
        d->SetPhase(PHASE_CLOSE);
        return (0);
    }

    int iExtraLen = 0;
   
if (ch && !PulseManager::Instance().IncreaseCount(ch->GetPlayerID(), ePulse::CommandRequest, std::chrono::milliseconds(500), POINT_ATT_SPEED))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yüksek att speed tespit edildi"));
// ch->GetDesc()->DelayedDisconnect(7);//burayı aktif ederseniz oyuncu dc yer saniyes kısmıda 7 yazan yer
return BATTLE_NONE; // burasıda attack engelliyor

}

if (ch && !PulseManager::Instance().IncreaseCount(ch->GetPlayerID(), ePulse::CommandRequest, std::chrono::milliseconds(500), POINT_MOV_SPEED))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yüksek att speed tespit edildi"));
// ch->GetDesc()->DelayedDisconnect(7);//burayı aktif ederseniz oyuncu dc yer saniyes kısmıda 7 yazan yer
return BATTLE_NONE; // burasıda attack engelliyor

}


    if (test_server && bHeader != HEADER_CG_MOVE)
        sys_log(0, "CInputMain::Analyze() ==> Header [%d] ", bHeader);






bu konudaki kodlardanda yararlanabilrisiniz
c++ anticheat server taraflı
 

Dosya Eklentileri

  • 173189_56a00a303f0bcaa5f10a05ddc909776d.zip
    3,6 KB · Gösterim: 12
Son düzenleme:
Paylaşım için teşekkürler. Videoda güzel görünüyo neden öyle söylediniz.
Uzun aure test edilmedi
Ban sistemide ekleyip banlayabilirsiniz
Ama atack engel ekledim

Yani oyunda hileyi çalıştırabiliyor ama ws sırasında hile açıksa atack engel yer d z avantajlı duruma düşer.

Uzun sure testlerden geçmesi lazım

Mesela hilesiz oyuncunun atağıni efsunla 170 yapin oyundan aticak mi
Efsunla harekat hızını 200 yapin oyundan aticakmi deneyin


Sonra atağı ve hizi efsunla 1500 yapin oyundan aticak mi

Yada damage bloğu yiycek mi bu testleri yapın yaptikdan sonra hata yoksa

Dc yemeyi 0 saniye yapabilirsiniz
Hatta ban yemeyide aktif edebilirsiniz.
Ama milisaniyede olsa her atakda bi lagda butun oyuncular ban yiyebilir
0 saniyede dc yese daha iyi
sonra devamkeee
 
güncelleme
harekat hızında işe yaramıyor.
onun sebebini buldum yardımcı olacak arkdaşlar olursa beraber anticheat yazalım
sadece server taraflı bile yazabiliriz
 
Pulsemanager dediğiniz şey bir anticheat değil sadece flood kontrolü yapan yani zaman fonksiyonları için yardımcı bir sınıf bu şekilde bahsettiğiniz hileleri engelleyemezsiniz çünkü bu hızlar ardışık bir şekilde sunucuya aktarılmıyor.

Saldırı hızını fixlemek istiyorsanız; karakterin saldırı hızını, motion sürelerini, kombo sıralamasını ve bunların ne kadar zaman alacağını, aradaki ortalama gecikme süresini ve sabit bir sapma değeri belirleyip bunların tamamı ile bir üst limit belirleyip onu limit olarak kullanmanız gerekiyor.

Yürüme hızını fixlemek istiyorsanız; CPythonPlayerEventHandler içerisindeki komutlardan başlangıç/aralık/bitiş aşamalarını, bu aşamalarda hangi işlemleri yaptığını bulup bu aşamalarda karakterin hızı ile gidebileceği maksimum alanı hesaplayıp gittiği alanın ölçüsünü karşılaştırmanız(tabi map engelleri, at/binek, hareket hızı artıcı etkenleride hesaplayıp) ve buna göre bir üst limit belirleyip aynı şekilde onu kullanmanız gerekiyor.

Buradaki süreleri karşılaştırmada bu sınıfın faydası olur ancak bu işlemleri yapma konusunda hiç bir fayda sağlamaz ve oyundaki ciddi senkronizasyon problemlerini ve sunucu kısmında olan bir pozisyon güncelleme hatasınıda sayarsak oldukça uğraştırıcı bir iş, kolay gelsin.
 
Mov speed ile ilişkisi olan kontrol alttaki

if (pinfo->bFunc == FUNC_MOVE)
{
if (ch->GetLimitPoint(POINT_MOV_SPEED) == 0)
return;

ch->SetRotation(pinfo->bRot * 5);
ch->ResetStopTime(); // ""

ch->Goto(pinfo->lX, pinfo->lY);
}

Örnek

if (ch && !PulseManager::Instance().IncreaseCount(ch->GetPlayerID(), ePulse::CommandRequest, std::chrono::milliseconds(500), FUNC_MOVE))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Yüksek att speed tespit edildi"));
// ch->GetDesc()->DelayedDisconnect(7);//burayı aktif ederseniz oyuncu dc yer saniyes kısmıda 7 yazan yer
return BATTLE_NONE; // burasıda attack engelliyor

}


Fakat hiz limiti ekleyemedim
 
Geri
Üst