From b8b5ca0e67f078c5d539fae1e59237f15b73a363 Mon Sep 17 00:00:00 2001 From: neckkola <65987027+neckkola@users.noreply.github.com> Date: Fri, 7 Jan 2022 20:09:38 -0400 Subject: [PATCH] Before VS Crash --- zone/bot.cpp | 14 ++++++++------ zone/client.cpp | 2 +- zone/raids.cpp | 8 +++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/zone/bot.cpp b/zone/bot.cpp index 40dd18456..b678d681b 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -10103,9 +10103,9 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { return; } Raid* raid = entity_list.GetRaidByClient(b_owner); - if (raid) { + if (raid) { // Does a raid already exist? raid->VerifyRaid(); - Group* group = player_accepting_invite->GetGroup(); + Group* group = player_accepting_invite->GetGroup(); if (group) { if (group->GroupCount() + raid->RaidCount() > MAX_RAID_MEMBERS) { b_owner->Message(Chat::Red, "Invite failed, bot group invite would create a raid larger than the maximum number of members allowed."); @@ -10118,7 +10118,8 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { return; } } - if (group) {//add us all +//Usecase #3 - Raid already created, Bot is BotGroupLeader. + if (group) {//add us all // Is the player already in a group? If yes, add all players from the group uint32 free_group_id = raid->GetFreeGroup(); Client* addClient = nullptr; Bot* addBot = nullptr; @@ -10176,7 +10177,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { group->DisbandGroup(true); raid->GroupUpdate(free_group_id); } - else { // Jan 6 this also now works. One player already in a raid, invites one or many bots. + else { // Jan 6 this also now works. // If not in a group, invite the individual player //raid->SendRaidCreate(b_owner); //raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); raid->AddBot(player_accepting_invite); @@ -10189,7 +10190,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { } } else - { + { // A raid does not already exist. One needs to be created before going forward Group* player_invited_group = player_accepting_invite->GetGroup(); Group* group = entity_list.GetGroupByClient(b_owner); // player_accepting_invite->GetGroup(); if (group) //if our target has a group @@ -10375,6 +10376,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { raid->SendRaidLockTo(b_owner); } } +//Usecase #2 - Neither the invitor and Bot 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); @@ -10384,7 +10386,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); raid->AddMember(b_owner, 0xFFFFFFFF, true, false, true); raid->AddBot(player_accepting_invite); - raid->SendBulkRaid(b_owner); +// raid->SendBulkRaid(b_owner); //Removed to correct usecase #2 if (raid->IsLocked()) { raid->SendRaidLockTo(b_owner); diff --git a/zone/client.cpp b/zone/client.cpp index 3c5c25131..e47acc2ad 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -825,7 +825,7 @@ void Client::FastQueuePacket(EQApplicationPacket** app, bool ack_req, CLIENT_CON return; } else { - if(eqs) + if(eqs && !IsBot()) //Mitch added eqs->FastQueuePacket((EQApplicationPacket **)app, ack_req); else if (app && (*app)) delete *app; diff --git a/zone/raids.cpp b/zone/raids.cpp index 32f19045a..575afadda 100644 --- a/zone/raids.cpp +++ b/zone/raids.cpp @@ -1341,11 +1341,9 @@ void Raid::GroupUpdate(uint32 gid, bool initial) { if(strlen(members[x].membername) > 0){ if(members[x].GroupNumber == gid){ - if(members[x].member) { - if (members[x].member->IsClient()) { //Mitch added - SendGroupUpdate(members[x].member); - SendGroupLeadershipAA(members[x].member, gid); - } + if (members[x].member) { + SendGroupUpdate(members[x].member); + SendGroupLeadershipAA(members[x].member, gid); } } }