Sosyal açıldı! Bir göz at → Hemen gir →

KAYNAK KOD PK Botların Hem Monster Hem PK Atmasını Sağlayacak Kaynak Kodu

Silinen üye 471

KY Cezalı Üye
KAYIT
7 Eyl 2023
Mesajlar
753
Çözümler
2
Tepki puanı
574
Merhaba arkadaşlar,
Bu konuda, PK botlarımızın monsterlara saldırmasını sağlayan bir sistemin nasıl yapılacağını anlatacağım.
Bu sayede botlar,Sadece user’lere saldırmayacak ve farm verimliliği artacaktır.

Öncelikle,
BotMoveAttack.cpp Açıyoruz
CTRL + F Tusuna Basarak
g_pMain->GetUnitListFromSurroundingRegions(this, &unitList);
Kodu buluyoruz. Altınada


foreach(itr, unitList) Kod Çıkar
Örnek :

Kod:
//    g_pMain->GetUnitListFromSurroundingRegions(this, &unitList);
//
//    foreach(itr, unitList)
//    {
//        Unit* pTarget = g_pMain->GetUnitPtr(*itr, GetZoneID());
//
//        if (pTarget == nullptr)
//            continue;
//
//        if (this != pTarget
//            && !pTarget->isDead()
//            && !pTarget->isBlinking()
//            && pTarget->isAttackable())
//            casted_member.push_back(pTarget);
//    }

g_pMain->GetUnitListFromSurroundingRegions(this, &unitList); Altına
std::set<int16> SultanKO= { 11245,19658, 10987, 10447, 10446, 10448 }; // monster kodları.

Hemen Altında Olan
Kod:
        if (pTarget == nullptr)
            continue;

        if (this != pTarget
            && !pTarget->isDead()
            && !pTarget->isBlinking()
            && pTarget->isAttackable())
            casted_member.push_back(pTarget);
    }

Kısmı Kaldırıp

Kod:
    foreach(itr, unitList)
    {   
        Unit* pTarget = g_pMain->GetUnitPtr(*itr, GetZoneID());
        if (pTarget == nullptr)
            continue;


     
        if (pTarget->isNPC())
        {
           // int16 targetID = pTarget->GetID();

          //  printf("Mob eklendi SID: %d ++ %d \n", targetID, pTarget);

          //  if (SultanKO.find(targetID) != SultanKO.end())
           // {
            //    printf("Mob eklendi SID: %d\n", targetID);
                casted_member.push_back(pTarget);  // Sadece geçerli yaratıklar.

             //   printf("Atak yapılıyor SID: %d\n", targetID);

           // }
        }
        else if (pTarget->isPlayer())  // target hedefine human ve karus oyuncu gelirse sapma işlemi olmaması adına kontrol
        {
            if (TO_USER(pTarget)->GetNation() != GetNation())
            {                casted_member.push_back(pTarget);
            }
        }
        else if (pTarget->isBot()) // Eğer hedef bir bot ise
        {            if (TO_BOT(pTarget)->GetNation() != GetNation())
            {                casted_member.push_back(pTarget);
            }
        }

    /*    if (pTarget == nullptr)
            continue;

        if (this != pTarget
            && !pTarget->isDead()
            && !pTarget->isBlinking()
            && pTarget->isAttackable())
            casted_member.push_back(pTarget);*/
    }
Ekliyoruz Ve işlemimiz Tamamdır.

1760058314457.png



 

ATABEYY

KY Uzman Üye
Yardımsever
KAYIT
2 Ağu 2025
Mesajlar
362
Çözümler
4
Tepki puanı
443
Eline sağlık bro aramıza hoşgeldin tekrardan :)
 

361831951

KY Kıdemli Üye
KAYIT
30 Kas 2022
Mesajlar
739
Tepki puanı
56
Affedersiniz. Bulduğum canavar. Ama neden saldırmıyorsunuz ve sadece ileri geri yürüyorsunuz
 

361831951

KY Kıdemli Üye
KAYIT
30 Kas 2022
Mesajlar
739
Tepki puanı
56
Affedersiniz. Bulduğum canavar. Ama neden saldırmıyorsunuz ve sadece ileri geri yürüyorsunuz
 

Silinen üye 471

KY Cezalı Üye
KAYIT
7 Eyl 2023
Mesajlar
753
Çözümler
2
Tepki puanı
574
if (pTarget->isNPC()) // burda hedefi yaratık olarak belirtiyoruz
{

casted_member.push_back(pTarget); // Sadece geçerli yaratıklar.
//int16 targetID = pTarget->GetID();

//printf("Mob eklendi SID: %d ++ %d \n", targetID, pTarget);

// Hedef, belirtilen yaratıklardan birine mi?

}

denermisiniz
 

361831951

KY Kıdemli Üye
KAYIT
30 Kas 2022
Mesajlar
739
Tepki puanı
56
Mantığınıza göre ekledim. Canavara doğru yürürken. Saldırmıyorlar. Sadece ileri geri yürümek
 

Slepperx

KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
103
Konum
Macedonia
Merhaba arkadaşlar,
Bu konuda, PK botlarımızın monsterlara saldırmasını sağlayan bir sistemin nasıl yapılacağını anlatacağım.
Bu sayede botlar,Sadece user’lere saldırmayacak ve farm verimliliği artacaktır.

Öncelikle,
BotMoveAttack.cpp Açıyoruz
CTRL + F Tusuna Basarak
g_pMain->GetUnitListFromSurroundingRegions(this, &unitList);
Kodu buluyoruz. Altınada


foreach(itr, unitList) Kod Çıkar
Örnek :

Kod:
//    g_pMain->GetUnitListFromSurroundingRegions(this, &unitList);
//
//    foreach(itr, unitList)
//    {
//        Unit* pTarget = g_pMain->GetUnitPtr(*itr, GetZoneID());
//
//        if (pTarget == nullptr)
//            continue;
//
//        if (this != pTarget
//            && !pTarget->isDead()
//            && !pTarget->isBlinking()
//            && pTarget->isAttackable())
//            casted_member.push_back(pTarget);
//    }

g_pMain->GetUnitListFromSurroundingRegions(this, &unitList); Altına
std::set<int16> SultanKO= { 11245,19658, 10987, 10447, 10446, 10448 }; // monster kodları.

Hemen Altında Olan
Kod:
        if (pTarget == nullptr)
            continue;

        if (this != pTarget
            && !pTarget->isDead()
            && !pTarget->isBlinking()
            && pTarget->isAttackable())
            casted_member.push_back(pTarget);
    }

Kısmı Kaldırıp

Kod:
    foreach(itr, unitList)
    {  
        Unit* pTarget = g_pMain->GetUnitPtr(*itr, GetZoneID());
        if (pTarget == nullptr)
            continue;


    
        if (pTarget->isNPC())
        {
           // int16 targetID = pTarget->GetID();

          //  printf("Mob eklendi SID: %d ++ %d \n", targetID, pTarget);

          //  if (SultanKO.find(targetID) != SultanKO.end())
           // {
            //    printf("Mob eklendi SID: %d\n", targetID);
                casted_member.push_back(pTarget);  // Sadece geçerli yaratıklar.

             //   printf("Atak yapılıyor SID: %d\n", targetID);

           // }
        }
        else if (pTarget->isPlayer())  // target hedefine human ve karus oyuncu gelirse sapma işlemi olmaması adına kontrol
        {
            if (TO_USER(pTarget)->GetNation() != GetNation())
            {                casted_member.push_back(pTarget);
            }
        }
        else if (pTarget->isBot()) // Eğer hedef bir bot ise
        {            if (TO_BOT(pTarget)->GetNation() != GetNation())
            {                casted_member.push_back(pTarget);
            }
        }

    /*    if (pTarget == nullptr)
            continue;

        if (this != pTarget
            && !pTarget->isDead()
            && !pTarget->isBlinking()
            && pTarget->isAttackable())
            casted_member.push_back(pTarget);*/
    }
Ekliyoruz Ve işlemimiz Tamamdır.

süper kod
 
Anasayfa Kayıt ol Giriş yap
Üst Alt