[C++] Official Otomatik Avcılık (Canlandırma)

  • Konuyu açan Konuyu açan okan4141
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 11
  • Gösterim Gösterim 367

okan4141

D E L I
Geliştirici
MT Üye
Mesaj
633
Çözümler
23
Beğeni
1.319
Puan
1.029
Ticaret Puanı
0
Elle Tutulur Bir Otomatik Av Çözdüm. Canlandırma Muhabbeti İçin 40 Dereden Su Getirmiş Yok Onun İçin Yeni EventHandle'ler Yok Command'lar Falan Filan Karman Çorman Aslında Bu Çok Basit.

Metin2 Diyor Ki;



2.webp


3 Dakika = 180 Saniye

Char_Battle.cpp Açın ve Bakın:


3.webp


Siz Bu Adamların Oraya 3 Dakika Yazmasını Boşuna Mı Zannediyorsunuz? Bu Sistemin Canlandırma Eklentisini Bu Event'e Uyarladılar Mantıken Ben Öyle Düşünüyorum.

Eğer Ölürseniz ve Burada veya Şehirde Başla Tıklamazsanız 180 saniye Sonra town.txt koordinatlarına yoksa EMPIRE_X EMPIRE_Y gibi başlangıç koordinatlarında başlıyor.

Adamlar Küçük Bir Extra Sorguyla Bunu Tamamladılar. Ben Bu Sistem İçin Yeni Fonksiyon Oluşturdum. Dileyen Bu Event'in İçinde Sadece

Otomatik Av Açık Mı ve Premium Etkisi Var mı ve Canlandırma Açık Mı Koşuluyla RestartAtSamePos'u kullanır warp'ları bu koşulun dışına atar bitti.

Bendeki Otomatik Avı Revize Ettim Ama Siz Yine Kendiniz Uyarlayabilirsiniz.

Arat:


C++:
Genişlet Daralt Kopyala
    LPCHARACTER ch = nullptr;

    if (true == info->isPC)
    {
        ch = CHARACTER_MANAGER::instance().FindByPID( info->dwID );
    }
    else
    {
        ch = CHARACTER_MANAGER::instance().Find( info->dwID );
    }

    if (nullptr == ch)
    {
        sys_err("DEAD_EVENT: cannot find char pointer with %s id(%d)", info->isPC ? "PC" : "MOB", info->dwID );
        return 0;
    }

    ch->m_pkDeadEvent = nullptr;

    if (ch->GetDesc())
    {

Altına Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
        if (ch->IsAutoHunt() && ch->IsAutoHuntAffect() && ch->IsAutoHuntRevive())
        {
            ch->AutoHuntRevive();
            return 0;
        }
#endif

Char.cpp Ekle:

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_AUTO_SYSTEM
void CHARACTER::AutoHuntRevive()
{
    if (!GetDesc())
        return;

    ChatPacket(CHAT_TYPE_COMMAND, "CloseRestartWindow");
    GetDesc()->SetPhase(PHASE_GAME);
    SetPosition(POS_STANDING);
    StartRecoveryEvent();
    RestartAtSamePos();
    PointChange(POINT_HP, 50 - GetHP());
    DeathPenalty(0);
    ReviveInvisible(5);
}
#endif

Kanıt:


 
Otomatik avıda paylaşırmısın Okan hocam?
 
Char.h den hata verdi bu sekilde çözdüm

public:
bool IsAutoHuntRevive();
bool IsAutoHuntAffect();
void AutoHuntRevive();
bool IsAutoHunt();


fakat build hata devam ediyor

r/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHunt()'
/usr/local/bin/ld: /usr/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHuntAffect()'
/usr/local/bin/ld: /usr/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHuntRevive()'
collect2: error: ld returned 1 exit status
 
Son düzenleme:
Char.h den hata verdi bu sekilde çözdüm

public:
bool IsAutoHuntRevive();
bool IsAutoHuntAffect();
void AutoHuntRevive();
bool IsAutoHunt();


fakat build hata devam ediyor

r/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHunt()'
/usr/local/bin/ld: /usr/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHuntAffect()'
/usr/local/bin/ld: /usr/src/snay/Server/game/src/char_battle.cpp:552: undefined reference to `CHARACTER::IsAutoHuntRevive()'
collect2: error: ld returned 1 exit status
Ben Otomatik avı revize ettim. cmd_general'den yapılmış işte revize ettiklerimden bazıları.

char.cpp (Initialize)


C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
    m_isAuto_hunt             = false;
    m_isAuto_hunt_premium     = false;
    m_isAuto_hunt_revive     = false;
#endif

char.cpp


C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
void CHARACTER::SendAutoHunt(const uint8_t iState)
{
    if (GetDesc() == nullptr || !IsPC())
        return;

    if (iState > EPacketAutoHunt::AUTO_HUNT_STOP)
        return;

    const LPDESC d = GetDesc();
    if (!d)
        return;

    TPacketGCAutoHunt p { HEADER_GC_AUTO_HUNT, iState };

    d->Packet(&p, sizeof(p));

    SetAutoHunt(iState);
}

void CHARACTER::AutoHuntRevive()
{
    if (!GetDesc())
        return;

    ChatPacket(CHAT_TYPE_COMMAND, "CloseRestartWindow");
    GetDesc()->SetPhase(PHASE_GAME);
    SetPosition(POS_STANDING);
    StartRecoveryEvent();
    RestartAtSamePos();
    PointChange(POINT_HP, 50 - GetHP());
    DeathPenalty(0);
    ReviveInvisible(5);
}
#endif

input_main.cpp


C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
void CInputMain::AutoHunt(const LPCHARACTER ch, const char* c_pData)
{
    if (ch == nullptr || !ch->GetDesc())
        return;

    const TPacketCGAutoHunt* p = reinterpret_cast<const TPacketCGAutoHunt*>(c_pData);
    if (p == nullptr)
        return;

    ch->SendAutoHunt(p->bState);
}

void CInputMain::AutoHuntRevive(const LPCHARACTER ch, const char* c_pData)
{
    if (ch == nullptr || !ch->GetDesc())
        return;

    //NOTE: If the person dies, I have no idea whether they should use the button or not.
    /* if (ch->IsDead())
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot change your revive position while dead."));
        return;
    } */

    const TPacketCGAutoHuntRevive* p = reinterpret_cast<const TPacketCGAutoHuntRevive*>(c_pData);
    if (p == nullptr)
        return;

    ch->SetAutoHuntRevive(p->bState);
}
#endif

char.h


C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
    public:
        void                SendAutoHunt(const uint8_t iState);
        void                SetAutoHunt(const bool bAutoHunt) { m_isAuto_hunt = bAutoHunt; }
        bool                IsAutoHunt() const { return m_isAuto_hunt; }

        void                SetAutoHuntPremium(const bool bPremium) { m_isAuto_hunt_premium = bPremium; }
        bool                IsAutoHuntPremium() const { return m_isAuto_hunt_premium; }

        void                AutoHuntRevive();
        void                SetAutoHuntRevive(const bool bRevive) { m_isAuto_hunt_revive = bRevive; }
        bool                IsAutoHuntRevive() const { return m_isAuto_hunt_revive; }

    protected:
        bool                m_isAuto_hunt;
        bool                m_isAuto_hunt_premium;
        bool                m_isAuto_hunt_revive;
#endif

char_affect.cpp (bu dosyada sadece 1 tanesi / Remove ve Load içinde eklenecek.)


C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
        if (pElements->dwType == AFFECT_AUTO)
        {
            SetAutoHuntPremium(true);
        }
#endif

Clear için eklemeyi unutma

C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
            if (pkAff->dwType == AFFECT_AUTO)
            {
                ++it;
                continue;
            }
#endif
 
hangi sistemi kullanıyorsun reis cünkü hata veriyor eksik var bir yerlerde ordan bakayım

char.cpp: In member function 'void CHARACTER::SendAutoHunt(uint8_t)':
char.cpp:12512:18: error: 'EPacketAutoHunt' has not been declared
if (iState > EPacketAutoHunt::AUTO_HUNT_STOP)
^~~~~~~~~~~~~~~
char.cpp:12519:5: error: 'TPacketGCAutoHunt' was not declared in this scope
TPacketGCAutoHunt p { HEADER_GC_AUTO_HUNT, iState };
^~~~~~~~~~~~~~~~~
char.cpp:12519:5: note: suggested alternative: 'TPacketGCStun'
TPacketGCAutoHunt p { HEADER_GC_AUTO_HUNT, iState };
^~~~~~~~~~~~~~~~~
TPacketGCStun
char.cpp:12521:16: error: 'p' was not declared in this scope
d->Packet(&p, sizeof(p));
 
Elle Tutulur Bir Otomatik Av Çözdüm. Canlandırma Muhabbeti İçin 40 Dereden Su Getirmiş Yok Onun İçin Yeni EventHandle'ler Yok Command'lar Falan Filan Karman Çorman Aslında Bu Çok Basit.

Metin2 Diyor Ki;



22190 eklentisini görüntüle

3 Dakika = 180 Saniye

Char_Battle.cpp Açın ve Bakın:


22191 eklentisini görüntüle

Siz Bu Adamların Oraya 3 Dakika Yazmasını Boşuna Mı Zannediyorsunuz? Bu Sistemin Canlandırma Eklentisini Bu Event'e Uyarladılar Mantıken Ben Öyle Düşünüyorum.

Eğer Ölürseniz ve Burada veya Şehirde Başla Tıklamazsanız 180 saniye Sonra town.txt koordinatlarına yoksa EMPIRE_X EMPIRE_Y gibi başlangıç koordinatlarında başlıyor.

Adamlar Küçük Bir Extra Sorguyla Bunu Tamamladılar. Ben Bu Sistem İçin Yeni Fonksiyon Oluşturdum. Dileyen Bu Event'in İçinde Sadece

Otomatik Av Açık Mı ve Premium Etkisi Var mı ve Canlandırma Açık Mı Koşuluyla RestartAtSamePos'u kullanır warp'ları bu koşulun dışına atar bitti.

Bendeki Otomatik Avı Revize Ettim Ama Siz Yine Kendiniz Uyarlayabilirsiniz.

Arat:


C++:
Genişlet Daralt Kopyala
    LPCHARACTER ch = nullptr;

    if (true == info->isPC)
    {
        ch = CHARACTER_MANAGER::instance().FindByPID( info->dwID );
    }
    else
    {
        ch = CHARACTER_MANAGER::instance().Find( info->dwID );
    }

    if (nullptr == ch)
    {
        sys_err("DEAD_EVENT: cannot find char pointer with %s id(%d)", info->isPC ? "PC" : "MOB", info->dwID );
        return 0;
    }

    ch->m_pkDeadEvent = nullptr;

    if (ch->GetDesc())
    {

Altına Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(ENABLE_AUTO_SYSTEM)
        if (ch->IsAutoHunt() && ch->IsAutoHuntAffect() && ch->IsAutoHuntRevive())
        {
            ch->AutoHuntRevive();
            return 0;
        }
#endif

Char.cpp Ekle:

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_AUTO_SYSTEM
void CHARACTER::AutoHuntRevive()
{
    if (!GetDesc())
        return;

    ChatPacket(CHAT_TYPE_COMMAND, "CloseRestartWindow");
    GetDesc()->SetPhase(PHASE_GAME);
    SetPosition(POS_STANDING);
    StartRecoveryEvent();
    RestartAtSamePos();
    PointChange(POINT_HP, 50 - GetHP());
    DeathPenalty(0);
    ReviveInvisible(5);
}
#endif

Kanıt:



biriniz bu adamı durdursun bagımlılıgımızı arttırıyor
(güzel kazanc varmı bu işte tavsiye edermisin :))
 
hangi sistemi kullanıyorsun reis cünkü hata veriyor eksik var bir yerlerde ordan bakayım

char.cpp: In member function 'void CHARACTER::SendAutoHunt(uint8_t)':
char.cpp:12512:18: error: 'EPacketAutoHunt' has not been declared
if (iState > EPacketAutoHunt::AUTO_HUNT_STOP)
^~~~~~~~~~~~~~~
char.cpp:12519:5: error: 'TPacketGCAutoHunt' was not declared in this scope
TPacketGCAutoHunt p { HEADER_GC_AUTO_HUNT, iState };
^~~~~~~~~~~~~~~~~
char.cpp:12519:5: note: suggested alternative: 'TPacketGCStun'
TPacketGCAutoHunt p { HEADER_GC_AUTO_HUNT, iState };
^~~~~~~~~~~~~~~~~
TPacketGCStun
char.cpp:12521:16: error: 'p' was not declared in this scope
d->Packet(&p, sizeof(p));
Kanka ben revize ettiğim kısımların hepsini vermedim. Yukardaki verdiğim bir kısımdı.
 
Geri
Üst