From 42ef4a2891d7fe88da95f96f132db51cef943f9f Mon Sep 17 00:00:00 2001 From: neckkola <65987027+neckkola@users.noreply.github.com> Date: Wed, 5 Jan 2022 22:46:06 -0400 Subject: [PATCH] End of day Jan 5 Working Raid Invite to a Bot. --- zone/bot.cpp | 11 ++++++----- zone/client_packet.cpp | 40 +++++++++++++++++++++------------------- zone/raids.cpp | 16 ++++++++-------- 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/zone/bot.cpp b/zone/bot.cpp index c52725585..133e3f4ec 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -10102,7 +10102,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { b_owner->MessageString(Chat::White, ALREADY_IN_RAID, player_accepting_invite->GetName()); //group failed, must invite members not in raid... return; } - Raid* raid = entity_list.GetRaidByMob(player_accepting_invite); + Raid* raid = entity_list.GetRaidByClient(b_owner); if (raid) { raid->VerifyRaid(); Group* group = player_accepting_invite->GetGroup(); @@ -10150,9 +10150,9 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { raid->GroupUpdate(free_group_id); } else { - raid->SendRaidCreate(b_owner); - raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); - raid->AddMember(b_owner); + //raid->SendRaidCreate(b_owner); + //raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); + raid->AddBot(player_accepting_invite); raid->SendBulkRaid(b_owner); if (raid->IsLocked()) { raid->SendRaidLockTo(b_owner); @@ -10354,8 +10354,9 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) { raid->SendRaidCreate(b_owner); raid->SendMakeLeaderPacketTo(raid->leadername, b_owner); raid->AddMember(b_owner, 0xFFFFFFFF, true, false, true); - raid->SendBulkRaid(b_owner); raid->AddBot(player_accepting_invite); + raid->SendBulkRaid(b_owner); + if (raid->IsLocked()) { raid->SendRaidLockTo(b_owner); } diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 7eae849c4..e06610fbb 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -11322,7 +11322,7 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket *app) { case RaidCommandInviteIntoExisting: case RaidCommandInvite: { -//Mitch + //Mitch #ifdef BOTS Bot* player_to_invite = nullptr; Client* player_to_invite_owner = nullptr; @@ -11353,28 +11353,30 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket *app) Bot::ProcessRaidInvite(player_to_invite, player_to_invite_owner); } -#else - Client *player_to_invite = entity_list.GetClientByName(raid_command_packet->player_name); + else + { +#endif + Client* player_to_invite = entity_list.GetClientByName(raid_command_packet->player_name); - if (!player_to_invite) - break; + if (!player_to_invite) + break; - Group *player_to_invite_group = player_to_invite->GetGroup(); + Group* player_to_invite_group = player_to_invite->GetGroup(); - if (player_to_invite->HasRaid()) { - Message(Chat::Red, "%s is already in a raid.", player_to_invite->GetName()); - break; - } + if (player_to_invite->HasRaid()) { + Message(Chat::Red, "%s is already in a raid.", player_to_invite->GetName()); + break; + } - if (player_to_invite_group && player_to_invite_group->IsGroupMember(this)) { - MessageString(Chat::Red, ALREADY_IN_PARTY); - break; - } + if (player_to_invite_group && player_to_invite_group->IsGroupMember(this)) { + MessageString(Chat::Red, ALREADY_IN_PARTY); + break; + } - if (player_to_invite_group && !player_to_invite_group->IsLeader(player_to_invite)) { - Message(Chat::Red, "You can only invite an ungrouped player or group leader to join your raid."); - break; - } + if (player_to_invite_group && !player_to_invite_group->IsLeader(player_to_invite)) { + Message(Chat::Red, "You can only invite an ungrouped player or group leader to join your raid."); + break; + } /* Send out invite to the client */ auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); @@ -11389,10 +11391,10 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket *app) player_to_invite->QueuePacket(outapp); safe_delete(outapp); -#endif break; } + } case RaidCommandAcceptInvite: { diff --git a/zone/raids.cpp b/zone/raids.cpp index cdd23fefc..35cbc6b5a 100644 --- a/zone/raids.cpp +++ b/zone/raids.cpp @@ -221,12 +221,12 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo // } //} - Raid* raid_update = nullptr; - raid_update = b->GetOwner()->GetRaid(); - if (raid_update) { - raid_update->SendHPManaEndPacketsTo(b->GetOwner()->CastToClient()); - raid_update->SendHPManaEndPacketsFrom(b->GetOwner()->CastToClient()); - } +// Raid* raid_update = nullptr; +// raid_update = b->GetOwner()->GetRaid(); +// if (raid_update) { +// raid_update->SendHPManaEndPacketsTo(b->GetOwner()->CastToClient()); +// raid_update->SendHPManaEndPacketsFrom(b->GetOwner()->CastToClient()); +// } auto pack = new ServerPacket(ServerOP_RaidAdd, sizeof(ServerRaidGeneralAction_Struct)); ServerRaidGeneralAction_Struct* rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; @@ -1227,7 +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 BOTS +#ifdef BOTSS if(!entity_list.GetBotByBotName(members[x].membername)) SendRaidAdd(members[x].membername, to); #else @@ -1241,7 +1241,7 @@ void Raid::QueuePacket(const EQApplicationPacket *app, bool ack_req) { for(int x = 0; x < MAX_RAID_MEMBERS; x++) { - if(members[x].member) + if(members[x].member && !members[x].member->IsBot()) { members[x].member->QueuePacket(app, ack_req); }