Neler yeni

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

tades123

Yönetici
Katılım
10 Ocak 2025
Mesajlar
4
Tepkime puanı
1
Puanları
8
Merhaba arkadaşlar,
Bu konuda, 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
 
Üst Alt