Öneri Captha Sistemi İçin Fikir Almak İstiyorum

  • Konuyu açan Konuyu açan okan4141
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 13
  • Gösterim Gösterim 280
Konu sahibi önerilerinizi bekliyor. Konuya yorum yazabilirsiniz.

okan4141

D E L I
Premium Üye
Geliştirici
MT Üye
Mesaj
627
Çözümler
23
Beğeni
1.307
Puan
1.029
Ticaret Puanı
0


Buradaki Yapacağım Sistem İçin Sizden Bir Öneri Almak İstiyorum.

Bot Doğrulama Sistemi Gibi Birşey

Sizce Bot Doğrulamanın Oyuncunun Ekranına

Saldırı Sayısına Göre Yoksa Bir Süreye Bağlı Olarak Gelmesini Mi İstersiniz.

Süre Olursa Aklıma Şöyle Birşey Geliyor.

Oyuncu Canavara Sadece 1 Kere Vurdu ve Bıraktı ve Süre Sonunda Oyuncunun Ekranına Pencere Gelecek Ama Oyuncu 1 Kere Vurması Sonucunda Ekrana Gelmesi Bana Göre Saçma Olur Gibi.

Sayı Sanki Daha Mantıklı Gibi Geliyor. Örneğin; 1000 Attack Sonrası Ekrana Gelmesi Gibi.

Fikirlere Açığım Daha Neler Yapılabilir. Teşekkür Ederim.

 
bence ilk olarak ilk saldırıda karşısına çıkmalı ki oyuncu en baştan bot açmadan oyuna girsin. ondan sonra da tamamen sistemin belirleyeceği rastgele bir süre içerisinde çıkmalı. 1000 saldırı yada sabit 5-10 dakikada bir vermek saçma bence
 
süre + atak olabilir; belirtilen süre sonunda yapılacak olan ilk atakta ekrana gelebelir. Afk kalma durumunuda düşünmek gerekiyor
 
Bence her türlüsü saçma geliyo ya, evet bot doğrulama işe yarıyo mu yarıyo ama aktif oyuncular için sürekli bot doğrulama gelmesi ne biliyim mesela emek server olsa 1000 damage hemen dolar, yada 10dk sonra gelmesi mantıklı ama bot olsa adam bot doğrulamasını geçer ve 10dk kasar bot sonra tekrar aktif eder. Yine kullanır botu, bunun yerine neler yapılabilir acaba mesela oyuncuları kontrol ettirsek arka planda loglansa google bot doğrulamalarını arka planda işlemler tutarak sorguluyor o gibi bişey yapılamazmı
 
ne şekilde yaparsan yap sabit bir değer kullanmamaya çalış, 1000 saldırı dersen botu yapan adam bunu farkederse her defasında 999'da karakter attırır kontrolden kurtulur aynı şey süre içinde geçerli. bunun dışında illa birini seçmek zorunda değilsin birden fazla duruma görede çıkartabilirsin, benim yaptığımın server kısmı şu şekildeydi belki fikir vermesi açısından işine yarar;
Kod:
Genişlet Daralt Kopyala
int32_t GetCaptchaMinutesFromActivity(int32_t activity)
{
    // Max 30 minutes, min 4 minutes, decreasing linearly
    /*
    0 > 30
    25 > 24
    50 > 17
    75 > 10
    100 > 4
    */
    if (!activity)
        return 0;

    static constexpr auto ACTIVITY_CAP = 100;
    return MINMAX(4, (int32_t)(30 - (26 * (activity * 1.0 / ACTIVITY_CAP))), 30);
}

bool CHARACTER::IsRecentLogin() const
{
    static constexpr uint32_t LOGIN_THRESHOLD = 15000; // 15 seconds
    return (get_dword_time() - m_dwPlayStartTime) < LOGIN_THRESHOLD;
}

bool CHARACTER::IsCaptchaCooldownActive() const
{
    return m_dwNextCaptchaTime > 0 && get_dword_time() < m_dwNextCaptchaTime;
}

bool CHARACTER::HasCaptchaTimeFromActivityPassed() const
{
    uint32_t activityMinutes = GetCaptchaMinutesFromActivity(GetActivity());
    if (activityMinutes > 0)
    {
        const uint32_t dwActivityBasedCheckTime = m_dwLastCaptchaValidatedTime + (activityMinutes * 60 * 1000);
        return get_dword_time() > dwActivityBasedCheckTime;
    }
    return false;
}

bool CHARACTER::ShouldSendCaptchaRequest() const
{
    // If captcha cooldown is active, wait for it to pass
    if (IsCaptchaCooldownActive())
    {
        if (!g_bIsLiveServer || test_server)
            sys_log(0, "ShouldSendCaptchaRequest: %s has no active captcha cooldown", GetName());

        return false;
    }

    // If the player is flagged as a failed captcha player, send the captcha request
    if (IsKnownCaptchaFailedPlayer(GetPlayerID()))
    {
        if (!g_bIsLiveServer || test_server)
            sys_log(0, "ShouldSendCaptchaRequest: %s is a known failed captcha player", GetName());

        return true;
    }

    // If the player has logged in recently, send the captcha request
    if (IsRecentLogin())
    {
        if (!g_bIsLiveServer || test_server)
            sys_log(0, "ShouldSendCaptchaRequest: %s has logged in recently", GetName());

        return true;
    }

    // If activity-based cooldown has passed, send the captcha request
    if (HasCaptchaTimeFromActivityPassed())
    {
        if (!g_bIsLiveServer || test_server)
            sys_log(0, "ShouldSendCaptchaRequest: %s has passed activity-based cooldown", GetName());

        return true;
    }

    // Otherwise, ignore the captcha request
    return false;
}

void CHARACTER::RegisterNextCaptchaTime()
{
    m_dwNextCaptchaTime = get_dword_time() + number(CAPTCHA_INITIAL_TIME_MIN * 1000, CAPTCHA_INITIAL_TIME_MAX * 1000);
    if (!g_bIsLiveServer || test_server)
        sys_log(0, "RegisterNextCaptchaTime: %s next captcha time is %u current time is %u", GetName(), m_dwNextCaptchaTime, get_dword_time());
}
 
Bence yazmalı değilde seçmeli olsun. Farmcıları bunalıma sokmamak için yarım saat arayla çıksın insanlar bilgisayarı farma bırakıp bi bakkala sigara almaya gidebilsinler yani .d , Örnek veriyorum otomatik av kullanmayanlar otomatik pelerin kullanır genelde hani pelerinin süreside bot kontrole uyarlanabilir yani bot kontrolle beraber hızlı pelerinde kapanır bot kontrolü açtığımızda oto pelerinide tekrar açmak gerekir şeklinde bunun sebebide bot kontrol geldiğinde slotlara damage işlemeyeceği için pelerinde çekmeyi durdursa oyununcunun çarı yere yatmaz şehirden başlama durumu olmaz farmlık sunucularda yer savaşları çok döner çünkü :D
 
oyuncu Metin’e veya moba temas ettiği gibi koruma önüne gelmeli 30 dk gibi örnek

2 örnek:örnek veriyorum 1000 Metin veya mob kesildiğinde koruma gelmesi oyuncuyu bıktırır en ideali zamanlı
 
şöyle yapmayı düşünüyorum

Oyuncu bir varlık ile ilk temasa geçtiği anda karşısına gelecek doğrulama başarılı olursa rastgele olarak 1 ila 1.30 saat sonra tekrar gelecek. Sizce nasıl? Oyuncu süresi varken eğer oyundan çıkıp tekrar oyuna girdiğinde süresi kaldığı yerden devam edecek.
 
şöyle yapmayı düşünüyorum

Oyuncu bir varlık ile ilk temasa geçtiği anda karşısına gelecek doğrulama başarılı olursa rastgele olarak 1 ila 1.30 saat sonra tekrar gelecek. Sizce nasıl? Oyuncu süresi varken eğer oyundan çıkıp tekrar oyuna girdiğinde süresi kaldığı yerden devam edecek.
oto av var hacım captcha artık çok eski kalıyor bence yol yakınken epli bonanzadan devam
 
Selamlar, sabit bir kill count ve sabit bir zamanda oyuncuların karşısına çıkmaması aşılabilirliği daha da düşürür.
Amacımız kontrolü oyuncuların değil botların karşısına çıkararak görevlerini yerine getirmelerini engellemek olmalı bunun için de aşağıdaki söyleyeceklerim bot yakalama doğruluğunu daha da arttıracaktır.

* Değişken metin, slot limitlerinde ortaya çıkması
* Kontrol aralıklarının değişken olması
* Bot oyuncuyu ayırt etmek için oyuncunun oyundaki aktivitesini hesaplayarak eğer aktivite sağlıyorsa -örn. ticaret- oyuncunun karşısına çıkacak olan süreye pass değeri eklenmeli dolayısıyla gerçek oyuncular daha nadir bot kontrol ekranı görecekken bot oyuncular daha sık bot kontrol ekranıyla karşılaşacaktır.

Saygılarımla.
 
Bence hiç oyuncuları ayırt etmeden 30-60 dakika arası rastgele bir sürede farm yapan her oyuncuya bot kontrol gönderilebilir, sadece afk olan oyunculara gitmesin.

Bu bot kontrol süresi server taraflı kayıt edilirse zaten 25dkda bir karakter attırıp girseler dahi önlenmiş olur, yada oyuncu map değiştirdiğinde direkt olarak ilk pvm aktivitesinde yine bot kontrol çıkartıp sayacı baştan başlatmakta ayrı bir yol olabilir.
 
Geri
Üst