mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-26 23:57:17 +00:00
Use Case 1, 2, 3,4,7 working.
Need to fix 5, 6, 8
This commit is contained in:
+30
-46
@@ -10189,6 +10189,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
||||
}
|
||||
}
|
||||
}
|
||||
//No raid exists.
|
||||
else
|
||||
{ // A raid does not already exist. One needs to be created before going forward
|
||||
Group* player_invited_group = player_accepting_invite->GetGroup();
|
||||
@@ -10314,80 +10315,63 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
||||
raid->GroupUpdate(raid_free_group_id);
|
||||
}
|
||||
/* Target does not have a group */
|
||||
//No raid and bot owner does not have group. Now check for bot having a group
|
||||
else {
|
||||
if (player_invited_group) {
|
||||
|
||||
// No raid, No bot owner group, bot has group
|
||||
raid = new Raid(b_owner);
|
||||
|
||||
entity_list.AddRaid(raid);
|
||||
raid->SetRaidDetails();
|
||||
Client* addClientig = nullptr;
|
||||
raid->SendRaidCreate(b_owner);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||
raid->AddMember(b_owner, 0xFFFFFFFF, true, false, true);
|
||||
|
||||
for (int x = 0; x < 6; x++) {
|
||||
if (player_invited_group->members[x]) {
|
||||
if (!addClientig) {
|
||||
if (player_invited_group->members[x]->IsClient() || player_invited_group->members[x]->IsBot()) {
|
||||
addClientig = player_invited_group->members[x]->CastToClient();
|
||||
raid->SetGroupLeader(addClientig->GetName());
|
||||
}
|
||||
}
|
||||
if (player_invited_group->IsLeader(player_invited_group->members[x])) {
|
||||
Client* c = nullptr;
|
||||
|
||||
if (player_invited_group->members[x]->IsClient() || player_invited_group->members[x]->IsBot())
|
||||
c = player_invited_group->members[x]->CastToClient();
|
||||
else
|
||||
continue;
|
||||
|
||||
raid->SendRaidCreate(b_owner);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||
raid->AddMember(c, 0, true, true, true);
|
||||
raid->SendBulkRaid(b_owner);
|
||||
|
||||
if (raid->IsLocked()) {
|
||||
raid->SendRaidLockTo(b_owner);
|
||||
Bot* b = nullptr;
|
||||
if (player_invited_group->members[x]->IsBot()) {
|
||||
b = player_invited_group->members[x]->CastToBot();
|
||||
if (x == 0) {
|
||||
raid->AddBot(b, 0, false, true, false);
|
||||
raid->SetGroupLeader(b->GetName());
|
||||
}
|
||||
else {
|
||||
raid->AddBot(b, 0, false, false, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Client* c = nullptr;
|
||||
if (player_invited_group->members[x]->IsClient() || player_invited_group->members[x]->IsBot())
|
||||
c = player_invited_group->members[x]->CastToClient();
|
||||
else
|
||||
continue;
|
||||
|
||||
raid->SendRaidCreate(b_owner);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||
raid->AddMember(c, 0);
|
||||
raid->SendBulkRaid(b_owner);
|
||||
if (raid->IsLocked()) {
|
||||
raid->SendRaidLockTo(b_owner);
|
||||
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, 0, false, true, false);
|
||||
raid->SetGroupLeader(c->GetName());
|
||||
}
|
||||
else {
|
||||
raid->SendRaidCreate(c);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, c);
|
||||
raid->AddMember(c, 0, false, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
raid->SendRaidCreate(b_owner);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||
raid->SendBulkRaid(b_owner);
|
||||
player_invited_group->JoinRaidXTarget(raid, true);
|
||||
raid->AddMember(b_owner);
|
||||
player_invited_group->DisbandGroup(true);
|
||||
raid->GroupUpdate(0);
|
||||
if (raid->IsLocked()) {
|
||||
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
|
||||
//Usecase #2 - No raid, no bot owner group, no bot group. Working
|
||||
else {
|
||||
raid = new Raid(b_owner);
|
||||
entity_list.AddRaid(raid);
|
||||
raid->SetRaidDetails();
|
||||
// raid->SendRaidCreate(b_owner); // Not needed as one raid member is a bot
|
||||
raid->SendRaidCreate(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); //Removed to correct usecase #2
|
||||
|
||||
if (raid->IsLocked()) {
|
||||
raid->SendRaidLockTo(b_owner);
|
||||
}
|
||||
|
||||
+4
-4
@@ -190,9 +190,9 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo
|
||||
database.SetRaidGroupLeaderInfo(group, GetID());
|
||||
//UpdateGroupAAs(group);
|
||||
}
|
||||
if (group < 12)
|
||||
GroupUpdate(group);
|
||||
else // get raid AAs, GroupUpdate will handles it otherwise
|
||||
// if (group < 12)
|
||||
// GroupUpdate(group);
|
||||
// else // get raid AAs, GroupUpdate will handles it otherwise
|
||||
//SendGroupLeadershipAA(c, RAID_GROUPLESS); Is this needed for bots?
|
||||
SendRaidAddAll(b->GetName());
|
||||
|
||||
@@ -1076,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 || !members[x].SentToBotOwner) //Mitch
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user