mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 00:46:46 +00:00
Some Bot Raid working
This commit is contained in:
+12
-4
@@ -10136,16 +10136,24 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
else {
|
else {
|
||||||
raid->AddBot(b, free_group_id, false, false, false);
|
raid->AddBot(b, free_group_id, false, false, false);
|
||||||
}
|
}
|
||||||
|
raid->SendBulkRaid(b->CastToClient());
|
||||||
}
|
}
|
||||||
else if (group->members[x]->IsClient()) {
|
else if (group->members[x]->IsClient()) {
|
||||||
c = group->members[x]->CastToClient();
|
c = group->members[x]->CastToClient();
|
||||||
if (x == 0) {
|
if (x == 0) {
|
||||||
|
raid->SendRaidCreate(c);
|
||||||
|
raid->SendMakeLeaderPacketTo(raid->leadername, c);
|
||||||
raid->AddMember(c, free_group_id, false, true, false);
|
raid->AddMember(c, free_group_id, false, true, false);
|
||||||
raid->SetGroupLeader(c->GetName());
|
raid->SetGroupLeader(c->GetName());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
raid->SendRaidCreate(c);
|
||||||
|
raid->SendMakeLeaderPacketTo(raid->leadername, c);
|
||||||
raid->AddMember(c, free_group_id, false, false, false);
|
raid->AddMember(c, free_group_id, false, false, false);
|
||||||
}
|
}
|
||||||
|
raid->SendBulkRaid(c);
|
||||||
|
if (raid->IsLocked())
|
||||||
|
raid->SendRaidLockTo(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (!addClient)
|
//if (!addClient)
|
||||||
@@ -10161,9 +10169,7 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
// else
|
// else
|
||||||
// raid->AddMember(c, free_group_id);
|
// raid->AddMember(c, free_group_id);
|
||||||
//raid->SendRaidGroupAdd(b_owner->GetName(), free_group_id);
|
//raid->SendRaidGroupAdd(b_owner->GetName(), free_group_id);
|
||||||
if (raid->IsLocked()) {
|
|
||||||
raid->SendRaidLockTo(b_owner);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group->JoinRaidXTarget(raid);
|
group->JoinRaidXTarget(raid);
|
||||||
@@ -10174,7 +10180,9 @@ void Bot::ProcessRaidInvite(Bot* player_accepting_invite, Client* b_owner) {
|
|||||||
//raid->SendRaidCreate(b_owner);
|
//raid->SendRaidCreate(b_owner);
|
||||||
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
//raid->SendMakeLeaderPacketTo(raid->leadername, b_owner);
|
||||||
raid->AddBot(player_accepting_invite);
|
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()) {
|
if (raid->IsLocked()) {
|
||||||
raid->SendRaidLockTo(b_owner);
|
raid->SendRaidLockTo(b_owner);
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-6
@@ -194,10 +194,11 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo
|
|||||||
GroupUpdate(group);
|
GroupUpdate(group);
|
||||||
else // get raid AAs, GroupUpdate will handles it otherwise
|
else // get raid AAs, GroupUpdate will handles it otherwise
|
||||||
//SendGroupLeadershipAA(c, RAID_GROUPLESS); Is this needed for bots?
|
//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);
|
b->SetRaidGrouped(true);
|
||||||
SendRaidMOTD(b->GetOwner()->CastToClient());
|
//SendRaidMOTD(b->GetOwner()->CastToClient());
|
||||||
|
|
||||||
// Mitch What to do here?
|
// Mitch What to do here?
|
||||||
// xtarget shit ..........
|
// xtarget shit ..........
|
||||||
@@ -1075,7 +1076,7 @@ void Raid::SendRaidAdd(const char *who, Client *to)
|
|||||||
|
|
||||||
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)
|
if(strcmp(members[x].membername, who) == 0 || !members[x].SentToBotOwner) //Mitch
|
||||||
{
|
{
|
||||||
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct));
|
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct));
|
||||||
RaidAddMember_Struct *ram = (RaidAddMember_Struct*)outapp->pBuffer;
|
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)
|
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));
|
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.action = raidAdd;
|
||||||
ram->raidGen.parameter = members[x].GroupNumber;
|
ram->raidGen.parameter = members[x].GroupNumber;
|
||||||
strcpy(ram->raidGen.leader_name, members[x].membername);
|
strcpy(ram->raidGen.leader_name, members[x].membername);
|
||||||
@@ -1111,6 +1115,7 @@ void Raid::SendRaidAddAll(const char *who)
|
|||||||
this->QueuePacket(outapp);
|
this->QueuePacket(outapp);
|
||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -88,6 +88,7 @@ struct RaidMember{
|
|||||||
bool IsGroupLeader;
|
bool IsGroupLeader;
|
||||||
bool IsRaidLeader;
|
bool IsRaidLeader;
|
||||||
bool IsLooter;
|
bool IsLooter;
|
||||||
|
bool SentToBotOwner;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GroupMentor {
|
struct GroupMentor {
|
||||||
@@ -112,7 +113,7 @@ public:
|
|||||||
bool IsRaid() { return true; }
|
bool IsRaid() { return true; }
|
||||||
|
|
||||||
void AddMember(Client *c, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false);
|
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 RemoveMember(const char *c);
|
||||||
void DisbandRaid();
|
void DisbandRaid();
|
||||||
void MoveMember(const char *name, uint32 newGroup);
|
void MoveMember(const char *name, uint32 newGroup);
|
||||||
|
|||||||
Reference in New Issue
Block a user