+4
-3
@@ -180,16 +180,17 @@ void UnitAI::SelectTargetList(std::list<Unit*> &targetList, uint32 num, SelectAg
|
|||||||
targetList.push_back((*itr)->getTarget());
|
targetList.push_back((*itr)->getTarget());
|
||||||
|
|
||||||
if (targetType == SELECT_TARGET_NEAREST || targetType == SELECT_TARGET_FARTHEST)
|
if (targetType == SELECT_TARGET_NEAREST || targetType == SELECT_TARGET_FARTHEST)
|
||||||
{
|
|
||||||
targetList.sort(TargetDistanceOrder(me));
|
targetList.sort(TargetDistanceOrder(me));
|
||||||
}
|
|
||||||
|
|
||||||
if (targetType == SELECT_TARGET_FARTHEST || targetType == SELECT_TARGET_BOTTOMAGGRO)
|
if (targetType == SELECT_TARGET_FARTHEST || targetType == SELECT_TARGET_BOTTOMAGGRO)
|
||||||
targetList.reverse();
|
targetList.reverse();
|
||||||
|
|
||||||
|
if (targetList.size() < num)
|
||||||
|
return;
|
||||||
|
|
||||||
if (targetType == SELECT_TARGET_RANDOM)
|
if (targetType == SELECT_TARGET_RANDOM)
|
||||||
{
|
{
|
||||||
while (num > targetList.size()) {
|
while (num < targetList.size()) {
|
||||||
std::list<Unit*>::iterator itr = targetList.begin();
|
std::list<Unit*>::iterator itr = targetList.begin();
|
||||||
advance(itr, urand(0, targetList.size()-1));
|
advance(itr, urand(0, targetList.size()-1));
|
||||||
targetList.erase(itr);
|
targetList.erase(itr);
|
||||||
|
|||||||
Reference in New Issue
Block a user