- Mesaj
- 736
- Çözümler
- 55
- Beğeni
- 1.544
- Puan
- 1.179
- Ticaret Puanı
- 0
Yabancı forumda bulduğum konuyu paylaşmak istedim sizinle.
Mainline serverinde daha önceden kullanmıştım hata ile karşılaşmadım şuana kadar. Bu sistem tüm metinler için geçerli değildir, ben sadece ''8001'' kodlu olan metine ayarladım, sizler kodlar üzerinden değişiklikler yapabilirsiniz. Metine 50 kere vurunca oyun atıcaktır.
Server/common/service.h:
#define ENABLE_FAKE_STONE // Sahte metin taşı
Server/game/char.cpp:
// Arat
ResetStopTime();
// Ekle
#ifdef ENABLE_FAKE_STONE
m_bFakeStoneCounter = 0;
#endif
// Arat
bool CHARACTER::IsRiding() const
{
return IsHorseRiding() || GetMountVnum();
}
// Üstüne Ekle
#ifdef ENABLE_FAKE_STONE
void CHARACTER::ResetFakeStoneCounter()
{
m_bFakeStoneCounter = 0;
}
BYTE CHARACTER::IncreaseFakeStoneCounter()
{
return ++m_bFakeStoneCounter;
}
BYTE CHARACTER::GetFakeStoneCounter() const
{
return m_bFakeStoneCounter;
}
#endif
Server/game/char.h:
// Arat
BYTE IncreaseMountCounter();
BYTE GetMountCounter() const;
// Ekle
#ifdef ENABLE_FAKE_STONE
void ResetFakeStoneCounter();
BYTE IncreaseFakeStoneCounter();
BYTE GetFakeStoneCounter() const;
#endif
// Arat
std::string m_stMobile;
char m_szMobileAuth[5];
BYTE m_bChatCounter;
// Ekle
#ifdef ENABLE_FAKE_STONE
BYTE m_bFakeStoneCounter;
#endif
Server/game/char_battle.cpp:
// Arat
bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type)
{
// Ekle
bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // returns true if dead
{
#ifdef ENABLE_FAKE_STONE
if (GetRaceNum() == 8001)// Metin Taşı vnum
{
if (pAttacker->GetFakeStoneCounter() >= 50)// Metine 50 kere vurunca oyundan atıcak.
{
pAttacker->ChatPacket(CHAT_TYPE_INFO, "[%s] Bot şüphesi sebebi ile oyundan atildiniz.", pAttacker->GetName());
pAttacker->GetDesc()->DelayedDisconnect(0);
return false;
}
else
{
pAttacker->ChatPacket(CHAT_TYPE_INFO, "[%s] Bu bir sahte metindir! %d saldırı sonra oyundan atılacaksınız!", pAttacker->GetName(), 1 - pAttacker->GetFakeStoneCounter());
pAttacker->IncreaseFakeStoneCounter();
return false;
}
}
#endif
Son düzenleme: