mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 03:31:08 +00:00
seems to be working
This commit is contained in:
+4
-3
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user