Merhaba arkadaşlar,
Bu konuda,
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.
Bu konuda,
Ziyaretçiler için gizlenmiş link, görmek için
Giriş yap veya üye ol.
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.