mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 23:01:30 +00:00
Temporary bot impl until further work can be done
This commit is contained in:
parent
958a6d939e
commit
e5ec277b5e
44
zone/bot.cpp
44
zone/bot.cpp
@ -2211,6 +2211,17 @@ bool Bot::Process()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mob_scan_close.Check()) {
|
||||||
|
LogAIScanClose(
|
||||||
|
"is_moving [{}] bot [{}] timer [{}]",
|
||||||
|
moving ? "true" : "false",
|
||||||
|
GetCleanName(),
|
||||||
|
mob_scan_close.GetDuration()
|
||||||
|
);
|
||||||
|
|
||||||
|
entity_list.ScanCloseClientMobs(close_mobs, this);
|
||||||
|
}
|
||||||
|
|
||||||
SpellProcess();
|
SpellProcess();
|
||||||
|
|
||||||
if(tic_timer.Check()) {
|
if(tic_timer.Check()) {
|
||||||
@ -9377,6 +9388,39 @@ void EntityList::ShowSpawnWindow(Client* client, int Distance, bool NamedOnly) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param close_mobs
|
||||||
|
* @param scanning_mob
|
||||||
|
*/
|
||||||
|
void EntityList::ScanCloseClientMobs(std::unordered_map<uint16, Mob*>& close_mobs, Mob* scanning_mob)
|
||||||
|
{
|
||||||
|
float scan_range = RuleI(Range, MobCloseScanDistance) * RuleI(Range, MobCloseScanDistance);
|
||||||
|
|
||||||
|
close_mobs.clear();
|
||||||
|
|
||||||
|
for (auto& e : mob_list) {
|
||||||
|
auto mob = e.second;
|
||||||
|
|
||||||
|
if (!mob->IsClient()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mob->GetID() <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
float distance = DistanceSquared(scanning_mob->GetPosition(), mob->GetPosition());
|
||||||
|
if (distance <= scan_range) {
|
||||||
|
close_mobs.insert(std::pair<uint16, Mob*>(mob->GetID(), mob));
|
||||||
|
}
|
||||||
|
else if (mob->GetAggroRange() >= scan_range) {
|
||||||
|
close_mobs.insert(std::pair<uint16, Mob*>(mob->GetID(), mob));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LogAIScanClose("Close Client Mob List Size [{}] for mob [{}]", close_mobs.size(), scanning_mob->GetCleanName());
|
||||||
|
}
|
||||||
|
|
||||||
uint8 Bot::GetNumberNeedingHealedInGroup(uint8 hpr, bool includePets) {
|
uint8 Bot::GetNumberNeedingHealedInGroup(uint8 hpr, bool includePets) {
|
||||||
uint8 needHealed = 0;
|
uint8 needHealed = 0;
|
||||||
Group *g = nullptr;
|
Group *g = nullptr;
|
||||||
|
|||||||
@ -579,6 +579,8 @@ private:
|
|||||||
|
|
||||||
bool Bot_AICheckCloseBeneficialSpells(Bot* caster, uint8 iChance, float iRange, uint32 iSpellTypes); // TODO: Evaluate this closesly in hopes to eliminate
|
bool Bot_AICheckCloseBeneficialSpells(Bot* caster, uint8 iChance, float iRange, uint32 iSpellTypes); // TODO: Evaluate this closesly in hopes to eliminate
|
||||||
void ShowSpawnWindow(Client* client, int Distance, bool NamedOnly); // TODO: Implement ShowSpawnWindow in the bot class but it needs entity list stuff
|
void ShowSpawnWindow(Client* client, int Distance, bool NamedOnly); // TODO: Implement ShowSpawnWindow in the bot class but it needs entity list stuff
|
||||||
|
|
||||||
|
void ScanCloseClientMobs(std::unordered_map<uint16, Mob*>& close_mobs, Mob* scanning_mob);
|
||||||
private:
|
private:
|
||||||
std::list<Bot*> bot_list;
|
std::list<Bot*> bot_list;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user