Some Bot Raid working

This commit is contained in:
neckkola
2022-01-07 18:57:26 -04:00
parent ec26281ad5
commit 40e3484bb4
3 changed files with 26 additions and 12 deletions
+12 -4
View File
@@ -10136,16 +10136,24 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
else {
raid->AddBot(b, free_group_id, false, false, false);
}
raid->SendBulkRaid(b->CastToClient());
}
else if (group->members[x]->IsClient()) {
c = group->members[x]->CastToClient();
if (x == 0) {
raid->SendRaidCreate(c);
raid->SendMakeLeaderPacketTo(raid->leadername, c);
raid->AddMember(c, free_group_id, false, true, false);
raid->SetGroupLeader(c->GetName());
}
else {
raid->SendRaidCreate(c);
raid->SendMakeLeaderPacketTo(raid->leadername, c);
raid->AddMember(c, free_group_id, false, false, false);
}
raid->SendBulkRaid(c);
if (raid->IsLocked())
raid->SendRaidLockTo(c);
}
//if (!addClient)
@@ -10161,9 +10169,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
// else
// raid->AddMember(c, free_group_id);
//raid->SendRaidGroupAdd(b_owner->GetName(), free_group_id);
if (raid->IsLocked()) {
raid->SendRaidLockTo(b_owner);
}
}
}
group->JoinRaidXTarget(raid);
@@ -10174,7 +10180,9 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
//raid->SendRaidCreate(b_owner);
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
raid->AddBot(player_accepting_invite);
raid->SendBulkRaid(b_owner);
// Set indicator that bot owner has already received this update. Mitch
//raid->SendBulkRaid(b_owner);
if (raid->IsLocked()) {
raid->SendRaidLockTo(b_owner);
}
+12 -7
View File
@@ -194,10 +194,11 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo
GroupUpdate(group);
else // get raid AAs, GroupUpdate will handles it otherwise
//SendGroupLeadershipAA(c, RAID_GROUPLESS); Is this needed for bots?
//SendRaidAddAll(b->GetOwner()->GetName());
SendRaidAddAll(b->GetName());
members[GetPlayerIndex(b->GetName())].SentToBotOwner = true; //Mitch indicates that the BotOwner has received this raid info already.
b->SetRaidGrouped(true);
SendRaidMOTD(b->GetOwner()->CastToClient());
//SendRaidMOTD(b->GetOwner()->CastToClient());
// Mitch What to do here?
// xtarget shit ..........
@@ -1075,7 +1076,7 @@ void Raid::SendRaidAdd(const char *who, Client *to)
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
{
if(strcmp(members[x].membername, who) == 0)
if(strcmp(members[x].membername, who) == 0 || !members[x].SentToBotOwner) //Mitch
{
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct));
RaidAddMember_Struct *ram = (RaidAddMember_Struct*)outapp->pBuffer;
@@ -1095,12 +1096,15 @@ void Raid::SendRaidAdd(const char *who, Client *to)
void Raid::SendRaidAddAll(const char *who)
{
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
for (int x = 0; x < MAX_RAID_MEMBERS; x++)
{
if(strcmp(members[x].membername, who) == 0 && members[x].membername != "MyBard") //Mitch add IsBot
if (strcmp(members[x].membername, who) == 0 ) //Mitch add IsBot
//if (!members[x].member->IsBot() ||
// strcmp(members[x].membername, who) == 0 ||
// (members[x].SentToBotOwner && members[x].member->GetOwnerID() != entity_list.GetClientByName(who)->CharacterID())) //Mitch add IsBot
{
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct));
RaidAddMember_Struct *ram = (RaidAddMember_Struct*)outapp->pBuffer;
RaidAddMember_Struct* ram = (RaidAddMember_Struct*)outapp->pBuffer;
ram->raidGen.action = raidAdd;
ram->raidGen.parameter = members[x].GroupNumber;
strcpy(ram->raidGen.leader_name, members[x].membername);
@@ -1111,6 +1115,7 @@ void Raid::SendRaidAddAll(const char *who)
this->QueuePacket(outapp);
safe_delete(outapp);
return;
}
}
}
+2 -1
View File
@@ -88,6 +88,7 @@ struct RaidMember{
bool IsGroupLeader;
bool IsRaidLeader;
bool IsLooter;
bool SentToBotOwner;
};
struct GroupMentor {
@@ -112,7 +113,7 @@ public:
bool IsRaid() { return true; }
void AddMember(Client *c, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false);
void AddBot(Bot* b, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false);
void AddBot(Bot* b, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false); //Mitch
void RemoveMember(const char *c);
void DisbandRaid();
void MoveMember(const char *name, uint32 newGroup);