seems to be working

This commit is contained in:
neckkola
2022-01-29 21:53:06 -04:00
parent c2d1857223
commit ed552af6f1
4 changed files with 36 additions and 12 deletions
+4 -3
View File
@@ -387,6 +387,7 @@ public:
static void ProcessRaidInvite(Bot* invitee, Client* invitor); //Mitch
static void ProcessRaidInvite(Client* invitee, Client* invitor); //Mitch
uint8 GetNumberNeedingHealedInRaidGroup(uint8 hpr, bool includePets); //Mitch
bool m_dirtyautohaters;
inline void SetDirtyAutoHaters() { m_dirtyautohaters = true; }
static std::list<BotSpell> GetBotSpellsForSpellEffect(Bot* botCaster, int spellEffect);
@@ -609,6 +610,9 @@ public:
int32 GetBaseDR() { return _baseDR; }
int32 GetBaseCorrup() { return _baseCorrup; }
//Raid additions
Raid* p_raid_instance;
protected:
virtual void PetAIProcess();
virtual void BotMeditate(bool isSitting);
@@ -737,9 +741,6 @@ private:
bool SavePet(); // Save and depop bot pet if there is one
bool DeletePet();
//Raid Additions
bool m_dirtyautohaters;
public:
static uint8 spell_casting_chances[SPELL_TYPE_COUNT][PLAYER_CLASS_COUNT][EQ::constants::STANCE_TYPE_COUNT][cntHSND];
};
+10 -8
View File
@@ -1531,7 +1531,7 @@ std::vector<RaidMember> Raid::GetRaidGroupMembers(uint32 gid)
{
if (members[i].member && members[i].GroupNumber == gid)
{
raid_group_members.emplace_back(members[i]);
raid_group_members.push_back(members[i]);
}
}
return raid_group_members;
@@ -1780,9 +1780,10 @@ bool Bot::AICastSpell_Raid(Mob* tar, uint8 iChance, uint32 iSpellTypes) {
BotGroupSay(this, "Casting %s.", spells[botSpell.SpellId].name);
//raid->RaidBotGroupSay(this, 0, 100, "Casting %s.", spells[botSpell.SpellId].name);
std::vector<RaidMember> raid_group_members = raid->GetRaidGroupMembers(r_group);
for (std::vector<RaidMember>::iterator iter = raid_group_members.begin(); iter != raid_group_members.end(); ++iter) {
if (iter->member && !iter->member->qglobal) {
iter->member->SetDontHealMeBefore(Timer::GetCurrentTime() + 1000);
//for (std::vector<RaidMember>::iterator iter = raid_group_members.begin(); iter != raid_group_members.end(); ++iter) {
for (int i = 0; i < raid_group_members.size(); ++i){
if (raid_group_members.at(i).member && !raid_group_members.at(i).member->qglobal) {
raid_group_members.at(i).member->SetDontHealMeBefore(Timer::GetCurrentTime() + 1000);
}
}
}
@@ -2603,13 +2604,14 @@ uint8 Bot::GetNumberNeedingHealedInRaidGroup(uint8 hpr, bool includePets) {
raid = entity_list.GetRaidByBotName(this->GetName());
uint32 r_group = raid->GetGroup(this->GetName());
std::vector<RaidMember> raid_group_members = raid->GetRaidGroupMembers(r_group);
for (std::vector<RaidMember>::iterator iter = raid_group_members.begin(); iter != raid_group_members.end(); ++iter) {
if (iter->member && !iter->member->qglobal) {
if (iter->member->GetHPRatio() <= hpr)
//for (std::vector<RaidMember>::iterator iter = raid_group_members.begin(); iter != raid_group_members.end(); ++iter) {
for (int i = 0; i< raid_group_members.size(); ++i) {
if (raid_group_members.at(i).member && !raid_group_members.at(i).member->qglobal) {
if (raid_group_members.at(i).member->GetHPRatio() <= hpr)
needHealed++;
if (includePets) {
if (iter->member->GetPet() && iter->member->GetPet()->GetHPRatio() <= hpr)
if (raid_group_members.at(i).member->GetPet() && raid_group_members.at(i).member->GetPet()->GetHPRatio() <= hpr)
needHealed++;
}
}
+21 -1
View File
@@ -2050,7 +2050,7 @@ Raid* EntityList::GetRaidByClient(Client* client)
Raid* EntityList::GetRaidByBotName(const char* name)
{
std::list<Raid*>::iterator iterator;
iterator = raid_list.begin();
@@ -2070,6 +2070,26 @@ Raid* EntityList::GetRaidByBotName(const char* name)
return nullptr;
}
Raid* EntityList::GetRaidByBot(Bot* bot)
{
std::list<Raid*>::iterator iterator;
iterator = raid_list.begin();
while (iterator != raid_list.end()) {
for (auto& member : (*iterator)->members) {
if (member.member && member.member->CastToBot() == bot) {
bot->p_raid_instance = *iterator;
return *iterator;
}
}
++iterator;
}
return nullptr;
}
Raid *EntityList::GetRaidByMob(Mob *mob)
{
std::list<Raid *>::iterator iterator;
+1
View File
@@ -199,6 +199,7 @@ public:
Raid *GetRaidByLeaderName(const char *leader);
#ifdef BOTS
Raid* GetRaidByBotName(const char* name);
Raid* GetRaidByBot(Bot* bot);
#endif
Corpse *GetCorpseByOwner(Client* client);