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,
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)
Benzer konular
- Cevaplar
- 11
- Görüntüleme
- 784
- Cevaplar
- 15
- Görüntüleme
- 770
- Cevaplar
- 3
- Görüntüleme
- 421
- Cevaplar
- 9
- Görüntüleme
- 489
