diff --git a/zone/bot.cpp b/zone/bot.cpp index 133e3f4ec..7fff6c472 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -10121,25 +10121,45 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { if (group) {//add us all uint32 free_group_id = raid->GetFreeGroup(); Client* addClient = nullptr; + Bot* addBot = nullptr; for (int x = 0; x < 6; x++) { if (group->members[x]) { Client* c = nullptr; - if (group->members[x]->IsBot()) + Bot* b = nullptr; + if (group->members[x]->IsBot()) { + b = group->members[x]->CastToBot(); + if (x == 0) { + raid->AddBot(b, free_group_id, false, true, false); + raid->SetGroupLeader(b->GetName()); + } + else { + raid->AddBot(b, free_group_id, false, false, false); + } + } + else if (group->members[x]->IsClient()) { c = group->members[x]->CastToClient(); - - if (!addClient) - { - addClient = c; - raid->SetGroupLeader(addClient->GetName()); + if (x == 0) { + raid->AddMember(c, free_group_id, false, true, false); + raid->SetGroupLeader(c->GetName()); + } + else { + raid->AddMember(c, free_group_id, false, false, false); + } } - raid->SendRaidCreate(b_owner); - raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); - if (group->IsLeader(group->members[x])) - raid->AddMember(c, free_group_id, false, true); - else - raid->AddMember(c, free_group_id); - raid->SendBulkRaid(b_owner); + //if (!addClient) + //{ + // addClient = c; + // raid->SetGroupLeader(addClient->GetName()); + //} + + //raid->SendRaidCreate(b_owner); + //raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); + //if (group->IsLeader(group->members[x])) +// raid->AddMember(c, free_group_id, false, true); + // else + // raid->AddMember(c, free_group_id); + //raid->SendRaidGroupAdd(b_owner->GetName(), free_group_id); if (raid->IsLocked()) { raid->SendRaidLockTo(b_owner); } @@ -10149,7 +10169,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { group->DisbandGroup(true); raid->GroupUpdate(free_group_id); } - else { + else { // Jan 6 this also now works. One player already in a raid, invites one or many bots. //raid->SendRaidCreate(b_owner); //raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); raid->AddBot(player_accepting_invite); @@ -10346,7 +10366,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { raid->SendRaidLockTo(b_owner); } } - else { // neither has a group + else { // neither has a group - Jan 6 this appears to work now. One ungrouped player, one/many ungrouped bots raid = new Raid(b_owner); entity_list.AddRaid(raid); raid->SetRaidDetails(); diff --git a/zone/client.cpp b/zone/client.cpp index 8ad656506..3c5c25131 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -813,7 +813,7 @@ void Client::QueuePacket(const EQApplicationPacket* app, bool ack_req, CLIENT_CO AddPacket(app, ack_req); } else - if(eqs) + if(eqs && !IsBot()) //Mitch added the BoTcheck for a fail safe on trying to send a packet to a BoT! eqs->QueuePacket(app, ack_req); } diff --git a/zone/raids.cpp b/zone/raids.cpp index 35cbc6b5a..ce077e43e 100644 --- a/zone/raids.cpp +++ b/zone/raids.cpp @@ -188,7 +188,7 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo } if (group != RAID_GROUPLESS && groupleader) { database.SetRaidGroupLeaderInfo(group, GetID()); - UpdateGroupAAs(group); + //UpdateGroupAAs(group); } if (group < 12) GroupUpdate(group); @@ -1227,12 +1227,7 @@ void Raid::SendBulkRaid(Client *to) { if(strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself { -#ifdef BOTSS - if(!entity_list.GetBotByBotName(members[x].membername)) SendRaidAdd(members[x].membername, to); -#else - SendRaidAdd(members[x].membername, to); -#endif } } } @@ -1342,8 +1337,10 @@ void Raid::GroupUpdate(uint32 gid, bool initial) if(strlen(members[x].membername) > 0){ if(members[x].GroupNumber == gid){ if(members[x].member) { - SendGroupUpdate(members[x].member); - SendGroupLeadershipAA(members[x].member, gid); + if (members[x].member->IsClient()) { //Mitch added + SendGroupUpdate(members[x].member); + SendGroupLeadershipAA(members[x].member, gid); + } } } }