farkmt2official 1
farkmt2official
Mt2Hizmet 1
Mt2Hizmet
Bvural41 1
Bvural41
berzahx 1
berzahx
mavzermete 1
mavzermete
Hikaye Ekle

Metin2’ye Uygun Basit AFK Sistemi

  • Konuyu başlatan Konuyu başlatan lTJA
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 447
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

AFK Durumu İçin Karakterde Bayrak Ekleyelim (C++)


LPCHARACTER nesnesine bir bool değişken eklemeliyiz


C++:
// character.h
class CHARACTER {
    ...
    bool m_bIsAFK;
public:
    void SetAFK(bool flag) { m_bIsAFK = flag; }
    bool IsAFK() const { return m_bIsAFK; }
    ...
};
Başlangıçta m_bIsAFK = false; olsun.


AFK Modunu Açıp Kapatacak Komut (C++)

C++:
// afk_command.cpp
#include "char.h"
#include "desc.h"
#include "command.h"

ACMD(do_afk_toggle)
{
    if (!ch)
        return;

    if (ch->IsAFK()) {
        ch->SetAFK(false);
        ch->ChatPacket(CHAT_TYPE_INFO, "AFK modundan çıkıldı.");
    }
    else {
        ch->SetAFK(true);
        ch->ChatPacket(CHAT_TYPE_INFO, "AFK moduna geçildi. Artık saldırı ve etkileşim engellendi.");
    }
}

Komut kayıt kısmına ekle:

C++:
void RegisterCommands()
{
    command_info.insert(std::make_pair("afk", do_afk_toggle));
}


Oyuncu oyunda /afk yazarak AFK moduna girip çıkabilir.
AFK Olan Oyuncuya Saldırmayı Engellemek
character.cpp içinde saldırı fonksiyonunu veya hasar almadan önce kontrol ekleyelim:

C++:
// attack.cpp veya damage.cpp - Hasar kontrol fonksiyonu

bool CHARACTER::CanBeAttacked() const
{
    if (IsAFK())
        return false;  // AFK ise saldırı engellenir
    return true;
}

// Hasar alma fonksiyonunda kontrol et
void CHARACTER::ReceiveDamage(int damage)
{
    if (!CanBeAttacked())
        return;  // Hasar almıyor

    // Normal hasar işlemleri...
}


AFK Oyuncunun Hareket ve Eylem Kısıtlaması (İsteğe bağlı)

C++:
bool CHARACTER::CanMove() const
{
    if (IsAFK())
        return false;
    return true;
}

bool CHARACTER::CanAttack() const
{
    if (IsAFK())
        return false;
    return true;
}



Özet Kullanım


  • Oyuncu /afk komutuyla AFK moduna geçer.
  • AFK oyuncuya saldırı ve etkileşim engellenir.
  • AFK modundan çıkmak için tekrar /afk yazması yeterli.
 
Merhaba,

Konudaki kodlar bir anlam ifade etmiyor. Bu sebepten dolayı kapatıldı.

Çalıştığına dair kanıt'ı rapor olarak iletirseniz konunuz tekrar açılacaktır.

Teşekkürler,
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst