Neler yeni
XenForo Bannerlar
Modern AdBlock Uyarısı

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Sistem Tam lonca puanı, pk ve sezon sistemi

Fatih Bulut

Süper Üye
Katılım
6 Kas 2021
Mesajlar
4,066
Tepkime puanı
5,491
Puanları
113
Yaş
32
Konum
Türkiye
Dc
fatihbulut
285249_8205c7aa723bbe591a059a8208bea7dd.png
Kod:
MULTI-ACCOUNT / FARM HİLESİ
❌ Sorun

Aynı kişi:

2 hesap açar

Sürekli birbirini keser

Lonca puanı kasar

✅ ÇÖZÜM (CORE)
🔒 IP + HWID + Account kontrolü
bool CHARACTER::IsFarmAbuse(CHARACTER* victim)
{
    if (GetIP() == victim->GetIP())
        return true;

    if (GetAccountID() == victim->GetAccountID())
        return true;

    return false;
}

if (IsFarmAbuse(victim))
    return;


Not:
HWID sistemi varsa en güçlü çözüm.

AYNI OYUNCUYU TEKRAR TEKRAR KESME
❌ Sorun

10 dk beklemeden aynı oyuncuyu kesme

✅ ÇÖZÜM (Cooldown)
#define PK_COOLDOWN 600

bool CHARACTE[HASH=1]#define[/HASH]kPKCooldown(DWORD victimID)
{
    time_t now = time(nullptr);

    auto it = m_pkCooldown.find(victimID);
    if (it != m_pkCooldown.end() && now - it->second < PK_COOLDOWN)
        return false;

    m_pkCooldown[victimID] = now;
    return true;
}


✔ Oyuncu bazlı
✔ Core seviyesinde
✔ Resetlenemez

AFK KILL / BOT FARM
❌ Sorun

AFK char bırakıp kestirme

✅ ÇÖZÜM
if (victim->IsAFK())
    return;


AFK algılama:

Son hareket zamanı

Son skill / saldırı zamanı

DÜŞÜK SEVİYE FARM (TWINK)
❌ Sorun

Level 1–30 char keserek puan kasma

✅ ÇÖZÜM
#define MIN_PK_LEVEL 55

if (victim->GetLevel() < MIN_PK_LEVEL)
    retu#defineRTY / LONCA İÇİ FARM
❌ Sorun

Aynı lonca veya party içinde farm

✅ ÇÖZÜM
if (GetGuild() && victim->GetGuild() &&
    GetGuild()->GetID() == victim->GetGuild()->GetID())
    return;

if (IsInSameParty(victim))
    return;

MAP ABUSE (SAFE ZONE BUG)
❌ Sorun

Koruma alanlarında kesme

✅ ÇÖZÜM
if (GetMapIndex() == MAP_TOWN || IsSafeZone())
    return;

LOGOUT / LOGIN RESET BUG
❌ Sorun

Çık-gir yaparak cooldown sıfırlama

✅ ÇÖZÜM

Cooldown’u:

CHARACTER değil

ACCOUNT bazlı tut

std::map<DWORD, time_t> g_mapPKCooldownAccount;

8️⃣ SERVER CRASH → ÇİFT ÖDÜL
❌ Sorun

Sezon bitişinde crash → tekrar ödül

✅ ÇÖZÜM (DB FLAG)
ALTER TABLE season ADD COLUMN rewarded TINYINT DEFAULT 0;

if (season.rewarded)
    return;

season.rewarded = 1;
SaveSeason();

FAKE DAMAGE / TEK VURUŞ HİLESİ
❌ Sorun

Tek vuruş hilesiyle farm

✅ ÇÖZÜM
if (GetLastDamageTime(victim) < 3)
    return;

CLIENT PACKET MANIPULATION
❌ Sorun

Client packet göndererek bağış artırma

✅ ÇÖZÜM

✔ Bağış SADECE SERVER TARAFINDA
✔ Client sadece request
✔ Tüm hesaplama server’da

void HandleGuildDonatePacket(CHARACTER* ch)
{
    if (ch->GetPKPoint() < amount)
        return;

    ch->RemovePKPoint(amount);
    ch->GetGuild()->AddGuildPoint(amount);
}

RATE LIMIT (SPAM KORUMA)
if (!CheckActionDelay("GUILD_DONATE", 3))
    return;

GM / LOG SİSTEMİ
📜 LOG AT
sys_log(0, "[GUILD_POINT] %s -> %d",
    ch->GetName(), amount);
Gizli içerik
Bu içeriği görmek için cevap yazmalısınız.
 

Benzer konular

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Tema düzenleyici

Tema özelletirmeleri

Grafik arka planlar

Granit arka planlar