kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
R 1
Roksam
[DEV]AB 1
[DEV]AB
Sevdamsın 1
Sevdamsın
farkmt2official 1
farkmt2official
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 452
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch 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