[Cleanup] Cleaning up Raid.cpp (#3125)

* [Cleanup] Cleanup Raid.cpp

* cleanup

* fix is_bot instances

* bracket cleanup

* bracket cleanup

* rename variables in struct

* fix for merge
This commit is contained in:
Aeadoin 2023-03-20 11:39:14 -04:00 committed by GitHub
parent 2415645b86
commit d6b954a4b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 846 additions and 779 deletions

View File

@ -1050,7 +1050,7 @@ namespace RoF
{ {
if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername))
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
@ -1069,7 +1069,7 @@ namespace RoF
return; return;
} }
//if(gjs->action == groupActLeave) //if(gjs->action == groupActLeave)
// Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
@ -1099,7 +1099,7 @@ namespace RoF
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i)
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]);
if (gu2->membername[i][0] != '\0') if (gu2->membername[i][0] != '\0')
{ {
PacketLength += (22 + strlen(gu2->membername[i]) + 1); PacketLength += (22 + strlen(gu2->membername[i]) + 1);
@ -1169,7 +1169,7 @@ namespace RoF
return; return;
} }
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
ENCODE_LENGTH_EXACT(GroupJoin_Struct); ENCODE_LENGTH_EXACT(GroupJoin_Struct);
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);

View File

@ -1101,7 +1101,7 @@ namespace RoF2
{ {
if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername))
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
@ -1120,7 +1120,7 @@ namespace RoF2
return; return;
} }
//if(gjs->action == groupActLeave) //if(gjs->action == groupActLeave)
// Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
@ -1150,7 +1150,7 @@ namespace RoF2
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i)
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]);
if (gu2->membername[i][0] != '\0') if (gu2->membername[i][0] != '\0')
{ {
PacketLength += (22 + strlen(gu2->membername[i]) + 1); PacketLength += (22 + strlen(gu2->membername[i]) + 1);
@ -1220,7 +1220,7 @@ namespace RoF2
return; return;
} }
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
ENCODE_LENGTH_EXACT(GroupJoin_Struct); ENCODE_LENGTH_EXACT(GroupJoin_Struct);
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);

View File

@ -2590,7 +2590,7 @@ struct GroupUpdate_Struct_Live { // New for Live
struct GroupMembers_Struct { // New for Live struct GroupMembers_Struct { // New for Live
/*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?)
/*0000*/ //char membername[0]; // Member Name Null Terminated /*0000*/ //char member_name[0]; // Member Name Null Terminated
/*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint8 unknown001[3]; // Seen 0
/*0000*/ uint32 memberlevel; // Guess /*0000*/ uint32 memberlevel; // Guess
/*0000*/ uint8 unknown002[11]; // Seen 0 /*0000*/ uint8 unknown002[11]; // Seen 0
@ -2600,7 +2600,7 @@ struct GroupJoin_Struct_Live { // New for Live
/*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct
/*0004*/ uint32 action; /*0004*/ uint32 action;
/*0008*/ uint8 unknown0008[5]; // Seen 0 /*0008*/ uint8 unknown0008[5]; // Seen 0
/*0013*/ //char membername[0]; // Null Terminated? /*0013*/ //char member_name[0]; // Null Terminated?
/*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint8 unknown0013[3]; // Seen 0
/*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
/*0000*/ uint8 unknown0020[11]; // Seen 0 /*0000*/ uint8 unknown0020[11]; // Seen 0

View File

@ -2566,7 +2566,7 @@ struct GroupUpdate_Struct_Live { // New for Live
struct GroupMembers_Struct { // New for Live struct GroupMembers_Struct { // New for Live
/*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?)
/*0000*/ //char membername[0]; // Member Name Null Terminated /*0000*/ //char member_name[0]; // Member Name Null Terminated
/*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint8 unknown001[3]; // Seen 0
/*0000*/ uint32 memberlevel; // Guess /*0000*/ uint32 memberlevel; // Guess
/*0000*/ uint8 unknown002[11]; // Seen 0 /*0000*/ uint8 unknown002[11]; // Seen 0
@ -2576,7 +2576,7 @@ struct GroupJoin_Struct_Live { // New for Live
/*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct
/*0004*/ uint32 action; /*0004*/ uint32 action;
/*0008*/ uint8 unknown0008[5]; // Seen 0 /*0008*/ uint8 unknown0008[5]; // Seen 0
/*0013*/ //char membername[0]; // Null Terminated? /*0013*/ //char member_name[0]; // Null Terminated?
/*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint8 unknown0013[3]; // Seen 0
/*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
/*0000*/ uint8 unknown0020[11]; // Seen 0 /*0000*/ uint8 unknown0020[11]; // Seen 0

View File

@ -785,7 +785,7 @@ namespace SoD
{ {
if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername))
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
@ -804,7 +804,7 @@ namespace SoD
return; return;
} }
//if(gjs->action == groupActLeave) //if(gjs->action == groupActLeave)
// Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
@ -834,7 +834,7 @@ namespace SoD
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i)
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]);
if (gu2->membername[i][0] != '\0') if (gu2->membername[i][0] != '\0')
{ {
PacketLength += (22 + strlen(gu2->membername[i]) + 1); PacketLength += (22 + strlen(gu2->membername[i]) + 1);
@ -902,7 +902,7 @@ namespace SoD
return; return;
} }
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
ENCODE_LENGTH_EXACT(GroupJoin_Struct); ENCODE_LENGTH_EXACT(GroupJoin_Struct);
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);

View File

@ -2085,7 +2085,7 @@ struct GroupUpdate_Struct_SoD { // New for SoD
struct GroupMembers_Struct { // New for SoD struct GroupMembers_Struct { // New for SoD
/*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?)
/*0000*/ //char membername[0]; // Member Name Null Terminated /*0000*/ //char member_name[0]; // Member Name Null Terminated
/*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint8 unknown001[3]; // Seen 0
/*0000*/ uint32 memberlevel; // Guess /*0000*/ uint32 memberlevel; // Guess
/*0000*/ uint8 unknown002[11]; // Seen 0 /*0000*/ uint8 unknown002[11]; // Seen 0
@ -2095,7 +2095,7 @@ struct GroupJoin_Struct_SoD { // New for SoD
/*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct
/*0004*/ uint32 action; /*0004*/ uint32 action;
/*0008*/ uint8 unknown0008[5]; // Seen 0 /*0008*/ uint8 unknown0008[5]; // Seen 0
/*0013*/ //char membername[0]; // Null Terminated? /*0013*/ //char member_name[0]; // Null Terminated?
/*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint8 unknown0013[3]; // Seen 0
/*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
/*0000*/ uint8 unknown0020[11]; // Seen 0 /*0000*/ uint8 unknown0020[11]; // Seen 0

View File

@ -927,7 +927,7 @@ namespace UF
{ {
if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername))
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
@ -947,7 +947,7 @@ namespace UF
return; return;
} }
//if(gjs->action == groupActLeave) //if(gjs->action == groupActLeave)
// Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
auto outapp = auto outapp =
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
@ -977,7 +977,7 @@ namespace UF
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i)
{ {
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]);
if (gu2->membername[i][0] != '\0') if (gu2->membername[i][0] != '\0')
{ {
PacketLength += (22 + strlen(gu2->membername[i]) + 1); PacketLength += (22 + strlen(gu2->membername[i]) + 1);
@ -1045,7 +1045,7 @@ namespace UF
delete in; delete in;
return; return;
} }
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name);
ENCODE_LENGTH_EXACT(GroupJoin_Struct); ENCODE_LENGTH_EXACT(GroupJoin_Struct);
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);

View File

@ -2128,7 +2128,7 @@ struct GroupUpdate_Struct_Underfoot { // New for Underfoot
struct GroupMembers_Struct { // New for Underfoot struct GroupMembers_Struct { // New for Underfoot
/*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?)
/*0000*/ //char membername[0]; // Member Name Null Terminated /*0000*/ //char member_name[0]; // Member Name Null Terminated
/*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint8 unknown001[3]; // Seen 0
/*0000*/ uint32 memberlevel; // Guess /*0000*/ uint32 memberlevel; // Guess
/*0000*/ uint8 unknown002[11]; // Seen 0 /*0000*/ uint8 unknown002[11]; // Seen 0
@ -2138,7 +2138,7 @@ struct GroupJoin_Struct_Underfoot { // New for Underfoot
/*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct
/*0004*/ uint32 action; /*0004*/ uint32 action;
/*0008*/ uint8 unknown0008[5]; // Seen 0 /*0008*/ uint8 unknown0008[5]; // Seen 0
/*0013*/ //char membername[0]; // Null Terminated? /*0013*/ //char member_name[0]; // Null Terminated?
/*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint8 unknown0013[3]; // Seen 0
/*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
/*0000*/ uint8 unknown0020[11]; // Seen 0 /*0000*/ uint8 unknown0020[11]; // Seen 0

View File

@ -393,13 +393,15 @@ bool ChatChannel::RemoveClient(Client *c) {
void ChatChannel::SendOPList(Client *c) void ChatChannel::SendOPList(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
c->GeneralChannelMessage("Channel " + m_name + " op-list: (Owner=" + m_owner + ")"); c->GeneralChannelMessage("Channel " + m_name + " op-list: (Owner=" + m_owner + ")");
for (auto &&m : m_moderators) for (auto &&m : m_moderators) {
c->GeneralChannelMessage(m); c->GeneralChannelMessage(m);
}
} }
void ChatChannel::SendChannelMembers(Client *c) { void ChatChannel::SendChannelMembers(Client *c) {

View File

@ -571,7 +571,9 @@ void Clientlist::CheckForStaleConnectionsAll()
void Clientlist::CheckForStaleConnections(Client *c) { void Clientlist::CheckForStaleConnections(Client *c) {
if (!c) return; if (!c) {
return;
}
std::list<Client*>::iterator Iterator; std::list<Client*>::iterator Iterator;

View File

@ -120,8 +120,7 @@ void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p)
if (Message.length() < 2) if (Message.length() < 2)
break; break;
if (!c) if (!c) {
{
LogInfo("Client not found"); LogInfo("Client not found");
break; break;
} }

View File

@ -120,9 +120,9 @@ ClientListEntry::~ClientListEntry()
Camp(); // updates zoneserver's numplayers Camp(); // updates zoneserver's numplayers
client_list.RemoveCLEReferances(this); client_list.RemoveCLEReferances(this);
} }
for (auto& elem: tell_queue) { for (auto& elem : tell_queue) {
safe_delete_array(elem) safe_delete_array(elem);
}; }
tell_queue.clear(); tell_queue.clear();
} }
@ -283,9 +283,9 @@ void ClientListEntry::ClearVars(bool iAll)
pLFG = 0; pLFG = 0;
gm = 0; gm = 0;
pClientVersion = 0; pClientVersion = 0;
for (auto& elem: tell_queue) { for (auto& elem : tell_queue) {
safe_delete_array(elem) safe_delete_array(elem);
}; }
tell_queue.clear(); tell_queue.clear();
} }

View File

@ -2746,23 +2746,23 @@ bool NPC::Death(Mob* killer_mob, int64 damage, uint16 spell, EQ::skills::SkillTy
switch (r->GetLootType()) { switch (r->GetLootType()) {
case 0: case 0:
case 1: case 1:
if (r->members[x].member && r->members[x].IsRaidLeader) { if (r->members[x].member && r->members[x].is_raid_leader) {
corpse->AllowPlayerLoot(r->members[x].member, i); corpse->AllowPlayerLoot(r->members[x].member, i);
i++; i++;
} }
break; break;
case 2: case 2:
if (r->members[x].member && r->members[x].IsRaidLeader) { if (r->members[x].member && r->members[x].is_raid_leader) {
corpse->AllowPlayerLoot(r->members[x].member, i); corpse->AllowPlayerLoot(r->members[x].member, i);
i++; i++;
} }
else if (r->members[x].member && r->members[x].IsGroupLeader) { else if (r->members[x].member && r->members[x].is_group_leader) {
corpse->AllowPlayerLoot(r->members[x].member, i); corpse->AllowPlayerLoot(r->members[x].member, i);
i++; i++;
} }
break; break;
case 3: case 3:
if (r->members[x].member && r->members[x].IsLooter) { if (r->members[x].member && r->members[x].is_looter) {
corpse->AllowPlayerLoot(r->members[x].member, i); corpse->AllowPlayerLoot(r->members[x].member, i);
i++; i++;
} }
@ -4395,8 +4395,7 @@ void Mob::CommonDamage(Mob* attacker, int64 &damage, const uint16 spell_id, cons
); );
} }
} }
}
} //end packet sending
void Mob::HealDamage(uint64 amount, Mob* caster, uint16 spell_id) void Mob::HealDamage(uint64 amount, Mob* caster, uint16 spell_id)
{ {

View File

@ -144,8 +144,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
if (c->GetID() == m_owner) { if (c->GetID() == m_owner) {
return DistanceSquared(GetPosition(), c->GetPosition()) <= distance; return DistanceSquared(GetPosition(), c->GetPosition()) <= distance;
} }
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
raid->members[idx].GroupNumber == 0xFFFFFFFF) { raid->members[idx].group_number == 0xFFFFFFFF) {
return false; return false;
} }
else if (DistanceSquared(GetPosition(), c->GetPosition()) > distance) { else if (DistanceSquared(GetPosition(), c->GetPosition()) > distance) {
@ -159,8 +159,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
if (m->GetOwner()->GetID() == m_owner) { if (m->GetOwner()->GetID() == m_owner) {
return DistanceSquared(GetPosition(), m->GetPosition()) <= distance; return DistanceSquared(GetPosition(), m->GetPosition()) <= distance;
} }
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
raid->members[idx].GroupNumber == 0xFFFFFFFF) { raid->members[idx].group_number == 0xFFFFFFFF) {
return false; return false;
} }
else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) { else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) {
@ -178,8 +178,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
if (owner->GetID() == m_owner) { if (owner->GetID() == m_owner) {
return DistanceSquared(GetPosition(), n->GetPosition()) <= distance; return DistanceSquared(GetPosition(), n->GetPosition()) <= distance;
} }
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
raid->members[idx].GroupNumber == 0xFFFFFFFF) { raid->members[idx].group_number == 0xFFFFFFFF) {
return false; return false;
} }
else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) { else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) {
@ -389,8 +389,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner)
if (m->GetOwner()->GetID() == group_member->GetID()) { if (m->GetOwner()->GetID() == group_member->GetID()) {
return DistanceSquared(GetPosition(), m->GetPosition()) <= distance; return DistanceSquared(GetPosition(), m->GetPosition()) <= distance;
} }
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
raid->members[idx].GroupNumber == 0xFFFFFFFF) { raid->members[idx].group_number == 0xFFFFFFFF) {
return false; return false;
} }
else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) { else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) {
@ -408,8 +408,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner)
if (owner->GetID() == group_member->GetID()) { if (owner->GetID() == group_member->GetID()) {
return DistanceSquared(GetPosition(), n->GetPosition()) <= distance; return DistanceSquared(GetPosition(), n->GetPosition()) <= distance;
} }
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
raid->members[idx].GroupNumber == 0xFFFFFFFF) { raid->members[idx].group_number == 0xFFFFFFFF) {
return false; return false;
} }
else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) { else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) {
@ -819,7 +819,7 @@ bool Aura::ShouldISpawnFor(Client *c)
return false; return false;
} }
if (raid->members[idx].GroupNumber != group_id) { // in our raid, but not our group if (raid->members[idx].group_number != group_id) { // in our raid, but not our group
return false; return false;
} }

View File

@ -27,9 +27,6 @@
#include "../common/repositories/bot_spell_settings_repository.h" #include "../common/repositories/bot_spell_settings_repository.h"
#include "../common/data_verification.h" #include "../common/data_verification.h"
extern volatile bool is_zone_loaded;
extern bool Critical;
// This constructor is used during the bot create command // This constructor is used during the bot create command
Bot::Bot(NPCType *npcTypeData, Client* botOwner) : NPC(npcTypeData, nullptr, glm::vec4(), Ground, false), rest_timer(1), ping_timer(1) { Bot::Bot(NPCType *npcTypeData, Client* botOwner) : NPC(npcTypeData, nullptr, glm::vec4(), Ground, false), rest_timer(1), ping_timer(1) {
GiveNPCTypeData(npcTypeData); GiveNPCTypeData(npcTypeData);
@ -2822,7 +2819,7 @@ void Bot::AcquireBotTarget(Group* bot_group, Raid* raid, Client* leash_owner, fl
assist_mob = entity_list.GetMob(bot_group->GetMainAssistName()); assist_mob = entity_list.GetMob(bot_group->GetMainAssistName());
} }
else if (raid) { else if (raid) {
assist_mob = raid->GetRaidMainAssistOneByName(GetName()); assist_mob = raid->GetRaidMainAssistOne();
} }
if (assist_mob) { if (assist_mob) {
@ -4629,16 +4626,14 @@ bool Bot::Death(Mob *killerMob, int64 damage, uint16 spell_id, EQ::skills::Skill
my_owner->CastToClient()->SetBotPulling(false); my_owner->CastToClient()->SetBotPulling(false);
} }
Raid* raid = entity_list.GetRaidByBotName(GetName()); if (auto raid = entity_list.GetRaidByBotName(GetName()); raid)
if (raid)
{ {
for (int x = 0; x < MAX_RAID_MEMBERS; x++) for (auto& m : raid->members)
{ {
if (strcmp(raid->members[x].membername, GetName()) == 0) if (strcmp(m.member_name, GetName()) == 0)
{ {
raid->members[x].member = nullptr; m.member = nullptr;
} }
} }
} }
@ -7803,7 +7798,6 @@ bool EntityList::Bot_AICheckCloseBeneficialSpells(Bot* caster, uint8 iChance, fl
return false; return false;
} }
Mob* EntityList::GetMobByBotID(uint32 botID) { Mob* EntityList::GetMobByBotID(uint32 botID) {
Mob* Result = nullptr; Mob* Result = nullptr;
if (botID > 0) { if (botID > 0) {
@ -7837,10 +7831,9 @@ Bot* EntityList::GetBotByBotID(uint32 botID) {
Bot* EntityList::GetBotByBotName(std::string_view botName) { Bot* EntityList::GetBotByBotName(std::string_view botName) {
Bot* Result = nullptr; Bot* Result = nullptr;
if (!botName.empty()) { if (!botName.empty()) {
for (std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) { for (const auto b : bot_list) {
Bot* tempBot = *botListItr; if (b && std::string_view(b->GetName()) == botName) {
if (tempBot && std::string(tempBot->GetName()) == botName) { Result = b;
Result = tempBot;
break; break;
} }
} }
@ -8252,15 +8245,6 @@ bool Bot::GetNeedsHateRedux(Mob *tar) {
if (!tar || !tar->IsEngaged() || !tar->HasTargetReflection() || !tar->GetTarget()->IsNPC()) if (!tar || !tar->IsEngaged() || !tar->HasTargetReflection() || !tar->GetTarget()->IsNPC())
return false; return false;
//if (tar->IsClient()) {
// switch (tar->GetClass()) {
// // TODO: figure out affectable classes..
// // Might need flag to allow player to determine redux req...
// default:
// return false;
// }
//}
//else if (tar->IsBot()) {
if (tar->IsBot()) { if (tar->IsBot()) {
switch (tar->GetClass()) { switch (tar->GetClass()) {
case ROGUE: case ROGUE:

View File

@ -23,19 +23,16 @@
#include "quest_parser_collection.h" #include "quest_parser_collection.h"
#include "../common/data_verification.h" #include "../common/data_verification.h"
extern volatile bool is_zone_loaded;
extern bool Critical;
std::vector<RaidMember> Raid::GetRaidGroupMembers(uint32 gid) std::vector<RaidMember> Raid::GetRaidGroupMembers(uint32 gid)
{ {
std::vector<RaidMember> raid_group_members; std::vector<RaidMember> raid_group_members;
raid_group_members.clear(); raid_group_members.clear();
for (int i = 0; i < MAX_RAID_MEMBERS; ++i) for (const auto& m : members)
{ {
if (members[i].member && members[i].GroupNumber == gid) if (m.member && m.group_number == gid)
{ {
raid_group_members.push_back(members[i]); raid_group_members.push_back(m);
} }
} }
return raid_group_members; return raid_group_members;
@ -48,12 +45,12 @@ std::vector<Bot*> Raid::GetRaidBotMembers(uint32 owner)
std::vector<Bot*> raid_members_bots; std::vector<Bot*> raid_members_bots;
raid_members_bots.clear(); raid_members_bots.clear();
for (int i = 0; i < MAX_RAID_MEMBERS; i++) { for (const auto& m : members) {
if ( if (
members[i].member && m.member &&
members[i].member->IsBot() m.member->IsBot()
) { ) {
auto b_member = members[i].member->CastToBot(); auto b_member = m.member->CastToBot();
if (owner && b_member->GetBotOwnerCharacterID() == owner) { if (owner && b_member->GetBotOwnerCharacterID() == owner) {
raid_members_bots.emplace_back(b_member); raid_members_bots.emplace_back(b_member);
} else if (!owner) { } else if (!owner) {
@ -72,13 +69,13 @@ std::vector<Bot*> Raid::GetRaidGroupBotMembers(uint32 gid)
std::vector<Bot*> raid_members_bots; std::vector<Bot*> raid_members_bots;
raid_members_bots.clear(); raid_members_bots.clear();
for (int i = 0; i < MAX_RAID_MEMBERS; i++) { for (const auto& m : members) {
if ( if (
members[i].member && m.member &&
members[i].member->IsBot() && m.member->IsBot() &&
members[i].GroupNumber == gid m.group_number == gid
) { ) {
auto b_member = members[i].member->CastToBot(); auto b_member = m.member->CastToBot();
raid_members_bots.emplace_back(b_member); raid_members_bots.emplace_back(b_member);
raid_members_bots.emplace_back(b_member); raid_members_bots.emplace_back(b_member);
} }
@ -92,34 +89,29 @@ void Raid::HandleBotGroupDisband(uint32 owner, uint32 gid)
auto raid_members_bots = gid != RAID_GROUPLESS ? GetRaidGroupBotMembers(gid) : GetRaidBotMembers(owner); auto raid_members_bots = gid != RAID_GROUPLESS ? GetRaidGroupBotMembers(gid) : GetRaidBotMembers(owner);
// If any of the bots are a group leader then re-create the botgroup on disband, dropping any clients // If any of the bots are a group leader then re-create the botgroup on disband, dropping any clients
for (auto& bot_iter: raid_members_bots) { for (const auto& b: raid_members_bots) {
// Remove the entire BOT group in this case // Remove the entire BOT group in this case
if ( if (b && gid != RAID_GROUPLESS && IsRaidMember(b->GetName()) && IsGroupLeader(b->GetName())) {
bot_iter && auto r_group_members = GetRaidGroupMembers(GetGroup(b->GetName()));
gid != RAID_GROUPLESS && auto g = new Group(b);
IsRaidMember(bot_iter->GetName()) && entity_list.AddGroup(g);
IsGroupLeader(bot_iter->GetName()) database.SetGroupID(b->GetCleanName(), g->GetID(), b->GetBotID());
) { database.SetGroupLeaderName(g->GetID(), b->GetName());
auto r_group_members = GetRaidGroupMembers(GetGroup(bot_iter->GetName()));
auto group_inst = new Group(bot_iter);
entity_list.AddGroup(group_inst);
database.SetGroupID(bot_iter->GetCleanName(), group_inst->GetID(), bot_iter->GetBotID());
database.SetGroupLeaderName(group_inst->GetID(), bot_iter->GetName());
for (auto member_iter: r_group_members) { for (auto m: r_group_members) {
if (member_iter.member->IsBot()) { if (m.member->IsBot()) {
auto b_member = member_iter.member->CastToBot(); auto b_member = m.member->CastToBot();
if (strcmp(b_member->GetName(), bot_iter->GetName()) == 0) { if (strcmp(b_member->GetName(), b->GetName()) == 0) {
bot_iter->SetFollowID(owner); b->SetFollowID(owner);
} else { } else {
Bot::AddBotToGroup(b_member, group_inst); Bot::AddBotToGroup(b_member, g);
} }
Bot::RemoveBotFromRaid(b_member); Bot::RemoveBotFromRaid(b_member);
} }
} }
} else { } else {
Bot::RemoveBotFromRaid(bot_iter); Bot::RemoveBotFromRaid(b);
} }
} }
} }
@ -128,18 +120,15 @@ uint8 Bot::GetNumberNeedingHealedInRaidGroup(uint8& need_healed, uint8 hpr, bool
if (raid) { if (raid) {
uint32 r_group = raid->GetGroup(GetName()); uint32 r_group = raid->GetGroup(GetName());
auto raid_group_members = raid->GetRaidGroupMembers(r_group);
for (auto& m: raid_group_members) { for (auto& m: raid->GetRaidGroupMembers(r_group)) {
if (m.member && !m.member->qglobal) { if (m.member && !m.member->qglobal) {
if (m.member->GetHPRatio() <= hpr) { if (m.member->GetHPRatio() <= hpr) {
need_healed++; need_healed++;
} }
if (includePets) { if (includePets && m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) {
if (m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) { need_healed++;
need_healed++;
}
} }
} }
} }
@ -246,22 +235,18 @@ void Bot::ProcessBotGroupAdd(Group* group, Raid* raid, Client* client, bool new_
uint32 raid_free_group_id = raid->GetFreeGroup(); uint32 raid_free_group_id = raid->GetFreeGroup();
if (group) { if (group) {
for (int x = 0; x < MAX_GROUP_MEMBERS; x++) { for (const auto& m : group->members) {
if (group->members[x]) { if (m) {
Client* c = nullptr; if (m && m->IsBot()) {
Bot* b = nullptr; raid->AddBot(m->CastToBot(), raid_free_group_id, false, !raid->GroupCount(raid_free_group_id), false);
} else if (m && m->IsClient()) {
if (group->members[x] && group->members[x]->IsBot()) { auto c = m->CastToClient();
b = group->members[x]->CastToBot();
raid->AddBot(b, raid_free_group_id, false, x == 0, false);
} else if (group->members[x] && group->members[x]->IsClient()) {
c = group->members[x]->CastToClient();
raid->SendRaidCreate(c); raid->SendRaidCreate(c);
raid->AddMember( raid->AddMember(
c, c,
raid_free_group_id, raid_free_group_id,
new_raid, new_raid,
x == 0, !raid->GroupCount(raid_free_group_id),
false false
); );
raid->SendMakeLeaderPacketTo(raid->leadername, c); raid->SendMakeLeaderPacketTo(raid->leadername, c);

View File

@ -4163,7 +4163,7 @@ bool Client::GroupFollow(Client* inviter) {
{ {
//this assumes the inviter is in the zone //this assumes the inviter is in the zone
if (raid->members[x].member == inviter){ if (raid->members[x].member == inviter){
groupToUse = raid->members[x].GroupNumber; groupToUse = raid->members[x].group_number;
break; break;
} }
} }
@ -8882,7 +8882,7 @@ void Client::ProcessAggroMeter()
if (gid < 12) { if (gid < 12) {
int at_id = AggroMeter::AT_Group1; int at_id = AggroMeter::AT_Group1;
for (int i = 0; i < MAX_RAID_MEMBERS; ++i) { for (int i = 0; i < MAX_RAID_MEMBERS; ++i) {
if (raid->members[i].member && raid->members[i].member != this && raid->members[i].GroupNumber == gid) { if (raid->members[i].member && raid->members[i].member != this && raid->members[i].group_number == gid) {
if (m_aggrometer.set_pct(static_cast<AggroMeter::AggroTypes>(at_id), cur_tar->GetHateRatio(cur_tar->GetTarget(), raid->members[i].member))) if (m_aggrometer.set_pct(static_cast<AggroMeter::AggroTypes>(at_id), cur_tar->GetHateRatio(cur_tar->GetTarget(), raid->members[i].member)))
add_entry(static_cast<AggroMeter::AggroTypes>(at_id)); add_entry(static_cast<AggroMeter::AggroTypes>(at_id));
at_id++; at_id++;

View File

@ -612,15 +612,15 @@ void Client::CompleteConnect()
database.botdb.LoadBotsList(this->CharacterID(), bots_list); database.botdb.LoadBotsList(this->CharacterID(), bots_list);
std::vector<RaidMember> r_members = raid->GetMembers(); std::vector<RaidMember> r_members = raid->GetMembers();
for (const RaidMember& iter : r_members) { for (const RaidMember& iter : r_members) {
if (iter.membername) { if (iter.member_name) {
for (const BotsAvailableList& b_iter : bots_list) for (const BotsAvailableList& b_iter : bots_list)
{ {
if (strcmp(iter.membername, b_iter.Name) == 0) if (strcmp(iter.member_name, b_iter.Name) == 0)
{ {
char buffer[71] = "^spawn "; char buffer[71] = "^spawn ";
strcat(buffer, iter.membername); strcat(buffer, iter.member_name);
bot_command_real_dispatch(this, buffer); bot_command_real_dispatch(this, buffer);
Bot* b = entity_list.GetBotByBotName(iter.membername); Bot* b = entity_list.GetBotByBotName(iter.member_name);
if (b) if (b)
{ {
b->SetRaidGrouped(true); b->SetRaidGrouped(true);
@ -7027,15 +7027,15 @@ void Client::Handle_OP_GroupDisband(const EQApplicationPacket *app)
} }
//we have a raid.. see if we're in a raid group //we have a raid.. see if we're in a raid group
uint32 grp = raid->GetGroup(memberToDisband->GetName()); uint32 grp = raid->GetGroup(memberToDisband->GetName());
bool wasGrpLdr = raid->members[raid->GetPlayerIndex(memberToDisband->GetName())].IsGroupLeader; bool wasGrpLdr = raid->members[raid->GetPlayerIndex(memberToDisband->GetName())].is_group_leader;
if (grp < 12) { if (grp < 12) {
if (wasGrpLdr) { if (wasGrpLdr) {
raid->SetGroupLeader(memberToDisband->GetName(), false); raid->SetGroupLeader(memberToDisband->GetName(), false);
for (int x = 0; x < MAX_RAID_MEMBERS; x++) { for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
if (raid->members[x].GroupNumber == grp) { if (raid->members[x].group_number == grp) {
if (strlen(raid->members[x].membername) > 0 && if (strlen(raid->members[x].member_name) > 0 &&
strcmp(raid->members[x].membername, memberToDisband->GetName()) != 0) { strcmp(raid->members[x].member_name, memberToDisband->GetName()) != 0) {
raid->SetGroupLeader(raid->members[x].membername); raid->SetGroupLeader(raid->members[x].member_name);
break; break;
} }
} }
@ -8423,8 +8423,7 @@ void Client::Handle_OP_GuildStatus(const EQApplicationPacket *app)
Client *c = entity_list.GetClientByName(gss->Name); Client *c = entity_list.GetClientByName(gss->Name);
if (!c) if (!c) {
{
MessageString(Chat::LightGray, TARGET_PLAYER_FOR_GUILD_STATUS); MessageString(Chat::LightGray, TARGET_PLAYER_FOR_GUILD_STATUS);
return; return;
} }
@ -12217,12 +12216,12 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
} }
if (group < 12) { if (group < 12) {
uint32 i = raid->GetPlayerIndex(raid_command_packet->leader_name); uint32 i = raid->GetPlayerIndex(raid_command_packet->leader_name);
if (raid->members[i].IsGroupLeader) { //assign group leader to someone else if (raid->members[i].is_group_leader) { //assign group leader to someone else
for (int x = 0; x < MAX_RAID_MEMBERS; x++) { for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
if (strlen(raid->members[x].membername) > 0 && i != x) { if (strlen(raid->members[x].member_name) > 0 && i != x) {
if (raid->members[x].GroupNumber == group) { if (raid->members[x].group_number == group) {
raid->SetGroupLeader(raid_command_packet->leader_name, false); raid->SetGroupLeader(raid_command_packet->leader_name, false);
raid->SetGroupLeader(raid->members[x].membername); raid->SetGroupLeader(raid->members[x].member_name);
raid->UpdateGroupAAs(group); raid->UpdateGroupAAs(group);
break; break;
} }
@ -12268,24 +12267,24 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
if (raid_command_packet->parameter == old_group) //don't rejoin grp if we order to join same group. if (raid_command_packet->parameter == old_group) //don't rejoin grp if we order to join same group.
break; break;
if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].IsGroupLeader) { if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].is_group_leader) {
raid->SetGroupLeader(raid_command_packet->leader_name, false); raid->SetGroupLeader(raid_command_packet->leader_name, false);
/* We were the leader of our old group */ /* We were the leader of our old group */
if (old_group < 12) { if (old_group < 12) {
/* Assign new group leader if we can */ /* Assign new group leader if we can */
for (int x = 0; x < MAX_RAID_MEMBERS; x++) { for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
if (raid->members[x].GroupNumber == old_group) { if (raid->members[x].group_number == old_group) {
if (strcmp(raid_command_packet->leader_name, raid->members[x].membername) != 0 && strlen(raid_command_packet->leader_name) > 0) { if (strcmp(raid_command_packet->leader_name, raid->members[x].member_name) != 0 && strlen(raid_command_packet->leader_name) > 0) {
raid->SetGroupLeader(raid->members[x].membername); raid->SetGroupLeader(raid->members[x].member_name);
raid->UpdateGroupAAs(old_group); raid->UpdateGroupAAs(old_group);
Client* client_to_update = entity_list.GetClientByName(raid->members[x].membername); Client* client_to_update = entity_list.GetClientByName(raid->members[x].member_name);
if (client_to_update) { if (client_to_update) {
raid->SendRaidRemove(raid->members[x].membername, client_to_update); raid->SendRaidRemove(raid->members[x].member_name, client_to_update);
raid->SendRaidCreate(client_to_update); raid->SendRaidCreate(client_to_update);
raid->SendMakeLeaderPacketTo(raid->leadername, client_to_update); raid->SendMakeLeaderPacketTo(raid->leadername, client_to_update);
raid->SendRaidAdd(raid->members[x].membername, client_to_update); raid->SendRaidAdd(raid->members[x].member_name, client_to_update);
raid->SendBulkRaid(client_to_update); raid->SendBulkRaid(client_to_update);
if (raid->IsLocked()) { if (raid->IsLocked()) {
raid->SendRaidLockTo(client_to_update); raid->SendRaidLockTo(client_to_update);
@ -12298,7 +12297,7 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
raid_command_packet->rid = raid->GetID(); raid_command_packet->rid = raid->GetID();
raid_command_packet->zoneid = zone->GetZoneID(); raid_command_packet->zoneid = zone->GetZoneID();
raid_command_packet->instance_id = zone->GetInstanceID(); raid_command_packet->instance_id = zone->GetInstanceID();
strn0cpy(raid_command_packet->playername, raid->members[x].membername, 64); strn0cpy(raid_command_packet->playername, raid->members[x].member_name, 64);
worldserver.SendPacket(pack); worldserver.SendPacket(pack);
@ -12343,20 +12342,20 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
else { else {
Client* c = entity_list.GetClientByName(raid_command_packet->leader_name); Client* c = entity_list.GetClientByName(raid_command_packet->leader_name);
uint32 oldgrp = raid->GetGroup(raid_command_packet->leader_name); uint32 oldgrp = raid->GetGroup(raid_command_packet->leader_name);
if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].IsGroupLeader) { if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].is_group_leader) {
raid->SetGroupLeader(raid_command_packet->leader_name, false); raid->SetGroupLeader(raid_command_packet->leader_name, false);
for (int x = 0; x < MAX_RAID_MEMBERS; x++) { for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
if (raid->members[x].GroupNumber == oldgrp && strlen(raid->members[x].membername) > 0 && strcmp(raid->members[x].membername, raid_command_packet->leader_name) != 0) { if (raid->members[x].group_number == oldgrp && strlen(raid->members[x].member_name) > 0 && strcmp(raid->members[x].member_name, raid_command_packet->leader_name) != 0) {
raid->SetGroupLeader(raid->members[x].membername); raid->SetGroupLeader(raid->members[x].member_name);
raid->UpdateGroupAAs(oldgrp); raid->UpdateGroupAAs(oldgrp);
Client* client_leaving_group = entity_list.GetClientByName(raid->members[x].membername); Client* client_leaving_group = entity_list.GetClientByName(raid->members[x].member_name);
if (client_leaving_group) { if (client_leaving_group) {
raid->SendRaidRemove(raid->members[x].membername, client_leaving_group); raid->SendRaidRemove(raid->members[x].member_name, client_leaving_group);
raid->SendRaidCreate(client_leaving_group); raid->SendRaidCreate(client_leaving_group);
raid->SendMakeLeaderPacketTo(raid->leadername, client_leaving_group); raid->SendMakeLeaderPacketTo(raid->leadername, client_leaving_group);
raid->SendRaidAdd(raid->members[x].membername, client_leaving_group); raid->SendRaidAdd(raid->members[x].member_name, client_leaving_group);
raid->SendBulkRaid(client_leaving_group); raid->SendBulkRaid(client_leaving_group);
if (raid->IsLocked()) { if (raid->IsLocked()) {
raid->SendRaidLockTo(client_leaving_group); raid->SendRaidLockTo(client_leaving_group);
@ -12367,7 +12366,7 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
ServerRaidGeneralAction_Struct* raid_command = (ServerRaidGeneralAction_Struct*)pack->pBuffer; ServerRaidGeneralAction_Struct* raid_command = (ServerRaidGeneralAction_Struct*)pack->pBuffer;
raid_command->rid = raid->GetID(); raid_command->rid = raid->GetID();
strn0cpy(raid_command->playername, raid->members[x].membername, 64); strn0cpy(raid_command->playername, raid->members[x].member_name, 64);
raid_command->zoneid = zone->GetZoneID(); raid_command->zoneid = zone->GetZoneID();
raid_command->instance_id = zone->GetInstanceID(); raid_command->instance_id = zone->GetInstanceID();

View File

@ -600,11 +600,13 @@ bool Client::Process() {
for (auto & close_mob : close_mobs) { for (auto & close_mob : close_mobs) {
Mob *mob = close_mob.second; Mob *mob = close_mob.second;
if (!mob) if (!mob) {
continue; continue;
}
if (mob->IsClient()) if (mob->IsClient()) {
continue; continue;
}
if (mob->CheckWillAggro(this) && !mob->CheckAggro(this)) { if (mob->CheckWillAggro(this) && !mob->CheckAggro(this)) {
mob->AddToHateList(this, 25); mob->AddToHateList(this, 25);

View File

@ -1062,30 +1062,32 @@ void Corpse::AllowPlayerLoot(Mob *them, uint8 slot) {
} }
void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* app) { void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* app) {
if (!client) if (!client) {
return; return;
}
// Added 12/08. Started compressing loot struct on live. // Added 12/08. Started compressing loot struct on live.
if(player_corpse_depop) { if (player_corpse_depop) {
SendLootReqErrorPacket(client, LootResponse::SomeoneElse); SendLootReqErrorPacket(client, LootResponse::SomeoneElse);
return; return;
} }
if(IsPlayerCorpse() && !corpse_db_id) { // really should try to resave in this case if (IsPlayerCorpse() && !corpse_db_id) { // really should try to resave in this case
// SendLootReqErrorPacket(client, 0); // SendLootReqErrorPacket(client, 0);
client->Message(Chat::Red, "Warning: Corpse's dbid = 0! Corpse will not survive zone shutdown!"); client->Message(Chat::Red, "Warning: Corpse's dbid = 0! Corpse will not survive zone shutdown!");
std::cout << "Error: PlayerCorpse::MakeLootRequestPackets: dbid = 0!" << std::endl; std::cout << "Error: PlayerCorpse::MakeLootRequestPackets: dbid = 0!" << std::endl;
// return; // return;
} }
if(is_locked && client->Admin() < AccountStatus::GMAdmin) { if (is_locked && client->Admin() < AccountStatus::GMAdmin) {
SendLootReqErrorPacket(client, LootResponse::SomeoneElse); SendLootReqErrorPacket(client, LootResponse::SomeoneElse);
client->Message(Chat::Red, "Error: Corpse locked by GM."); client->Message(Chat::Red, "Error: Corpse locked by GM.");
return; return;
} }
if(!being_looted_by || (being_looted_by != 0xFFFFFFFF && !entity_list.GetID(being_looted_by))) if (!being_looted_by || (being_looted_by != 0xFFFFFFFF && !entity_list.GetID(being_looted_by))) {
being_looted_by = 0xFFFFFFFF; being_looted_by = 0xFFFFFFFF;
}
if (DistanceSquaredNoZ(client->GetPosition(), m_Position) > 625) { if (DistanceSquaredNoZ(client->GetPosition(), m_Position) > 625) {
SendLootReqErrorPacket(client, LootResponse::TooFar); SendLootReqErrorPacket(client, LootResponse::TooFar);
@ -1102,23 +1104,29 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
// loot_request_type is scoped to class Corpse and reset on a per-loot session basis // loot_request_type is scoped to class Corpse and reset on a per-loot session basis
if (client->GetGM()) { if (client->GetGM()) {
if (client->Admin() >= AccountStatus::GMAdmin) if (client->Admin() >= AccountStatus::GMAdmin) {
loot_request_type = LootRequestType::GMAllowed; loot_request_type = LootRequestType::GMAllowed;
else
} else {
loot_request_type = LootRequestType::GMPeek; loot_request_type = LootRequestType::GMPeek;
}
} }
else { else {
if (IsPlayerCorpse()) { if (IsPlayerCorpse()) {
if (char_id == client->CharacterID()) { if (char_id == client->CharacterID()) {
loot_request_type = LootRequestType::Self; loot_request_type = LootRequestType::Self;
} }
else if (CanPlayerLoot(client->CharacterID())) { else if (CanPlayerLoot(client->CharacterID())) {
if (GetPlayerKillItem() == -1) if (GetPlayerKillItem() == -1) {
loot_request_type = LootRequestType::AllowedPVPAll; loot_request_type = LootRequestType::AllowedPVPAll;
else if (GetPlayerKillItem() == 1)
} else if (GetPlayerKillItem() == 1) {
loot_request_type = LootRequestType::AllowedPVPSingle; loot_request_type = LootRequestType::AllowedPVPSingle;
else if (GetPlayerKillItem() > 1)
} else if (GetPlayerKillItem() > 1) {
loot_request_type = LootRequestType::AllowedPVPDefined; loot_request_type = LootRequestType::AllowedPVPDefined;
}
} }
} }
else if ((IsNPCCorpse() || become_npc) && CanPlayerLoot(client->CharacterID())) { else if ((IsNPCCorpse() || become_npc) && CanPlayerLoot(client->CharacterID())) {
@ -1140,8 +1148,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
// process coin // process coin
bool loot_coin = false; bool loot_coin = false;
std::string tmp; std::string tmp;
if (database.GetVariable("LootCoin", tmp)) if (database.GetVariable("LootCoin", tmp)) {
loot_coin = (tmp[0] == 1 && tmp[1] == '\0'); loot_coin = (tmp[0] == 1 && tmp[1] == '\0');
}
if (loot_request_type == LootRequestType::GMPeek || loot_request_type == LootRequestType::GMAllowed) { if (loot_request_type == LootRequestType::GMPeek || loot_request_type == LootRequestType::GMAllowed) {
if ( if (
@ -1314,8 +1323,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
void Corpse::LootItem(Client *client, const EQApplicationPacket *app) void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
{ {
if (!client) if (!client) {
return; return;
}
auto lootitem = (LootingItem_Struct *)app->pBuffer; auto lootitem = (LootingItem_Struct *)app->pBuffer;
@ -1325,8 +1335,10 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
client->QueuePacket(app); client->QueuePacket(app);
SendEndLootErrorPacket(client); SendEndLootErrorPacket(client);
// unlock corpse for others // unlock corpse for others
if (IsBeingLootedBy(client))
if (IsBeingLootedBy(client)) {
ResetLooter(); ResetLooter();
}
return; return;
} }
@ -1334,8 +1346,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
client->QueuePacket(app); client->QueuePacket(app);
SendEndLootErrorPacket(client); SendEndLootErrorPacket(client);
// unlock corpse for others // unlock corpse for others
if (IsBeingLootedBy(client)) if (IsBeingLootedBy(client)) {
ResetLooter(); ResetLooter();
}
return; return;
} }
@ -1345,8 +1358,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
client->QueuePacket(app); client->QueuePacket(app);
SendEndLootErrorPacket(client); SendEndLootErrorPacket(client);
/* Unlock corpse for others */ /* Unlock corpse for others */
if (IsBeingLootedBy(client)) if (IsBeingLootedBy(client)) {
ResetLooter(); ResetLooter();
}
return; return;
} }

View File

@ -1555,16 +1555,18 @@ void EntityList::RemoveFromAutoXTargets(Mob *mob)
void EntityList::RefreshAutoXTargets(Client *c) void EntityList::RefreshAutoXTargets(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto it = mob_list.begin(); auto it = mob_list.begin();
while (it != mob_list.end()) { while (it != mob_list.end()) {
Mob *m = it->second; Mob *m = it->second;
++it; ++it;
if (!m || m->GetHP() <= 0) if (!m || m->GetHP() <= 0) {
continue; continue;
}
if ((m->CheckAggro(c) || m->IsOnFeignMemory(c)) && !c->IsXTarget(m)) { if ((m->CheckAggro(c) || m->IsOnFeignMemory(c)) && !c->IsXTarget(m)) {
c->AddAutoXTarget(m, false); // we only call this before a bulk, so lets not send right away c->AddAutoXTarget(m, false); // we only call this before a bulk, so lets not send right away
@ -1576,19 +1578,22 @@ void EntityList::RefreshAutoXTargets(Client *c)
void EntityList::RefreshClientXTargets(Client *c) void EntityList::RefreshClientXTargets(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto it = client_list.begin(); auto it = client_list.begin();
while (it != client_list.end()) { while (it != client_list.end()) {
Client *c2 = it->second; Client *c2 = it->second;
++it; ++it;
if (!c2) if (!c2) {
continue; continue;
}
if (c2->IsClientXTarget(c)) if (c2->IsClientXTarget(c)) {
c2->UpdateClientXTarget(c); c2->UpdateClientXTarget(c);
}
} }
} }
@ -2222,7 +2227,7 @@ Raid* EntityList::GetRaidByBotName(const char* name)
std::list<RaidMember> rm; std::list<RaidMember> rm;
auto GetMembersWithNames = [&rm](Raid const* r) -> std::list<RaidMember> { auto GetMembersWithNames = [&rm](Raid const* r) -> std::list<RaidMember> {
for (const auto& m : r->members) { for (const auto& m : r->members) {
if (strlen(m.membername) > 0) if (strlen(m.member_name) > 0)
rm.push_back(m); rm.push_back(m);
} }
return rm; return rm;
@ -2230,7 +2235,7 @@ Raid* EntityList::GetRaidByBotName(const char* name)
for (const auto& r : raid_list) { for (const auto& r : raid_list) {
for (const auto& m : GetMembersWithNames(r)) { for (const auto& m : GetMembersWithNames(r)) {
if (strcmp(m.membername, name) == 0) { if (strcmp(m.member_name, name) == 0) {
return r; return r;
} }
} }
@ -2243,7 +2248,7 @@ Raid* EntityList::GetRaidByBot(const Bot* bot)
std::list<RaidMember> rm; std::list<RaidMember> rm;
auto GetMembersWhoAreBots = [&rm](Raid* r) -> std::list<RaidMember> { auto GetMembersWhoAreBots = [&rm](Raid* r) -> std::list<RaidMember> {
for (auto const& m : r->members) { for (auto const& m : r->members) {
if (m.IsBot) { if (m.is_bot) {
rm.push_back(m); rm.push_back(m);
} }
} }
@ -4890,8 +4895,9 @@ void EntityList::SendZoneAppearance(Client *c)
void EntityList::SendNimbusEffects(Client *c) void EntityList::SendNimbusEffects(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto it = mob_list.begin(); auto it = mob_list.begin();
while (it != mob_list.end()) { while (it != mob_list.end()) {
@ -4918,8 +4924,9 @@ void EntityList::SendNimbusEffects(Client *c)
void EntityList::SendUntargetable(Client *c) void EntityList::SendUntargetable(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto it = mob_list.begin(); auto it = mob_list.begin();
while (it != mob_list.end()) { while (it != mob_list.end()) {
@ -4930,8 +4937,9 @@ void EntityList::SendUntargetable(Client *c)
++it; ++it;
continue; continue;
} }
if (!cur->IsTargetable()) if (!cur->IsTargetable()) {
cur->SendTargetable(false, c); cur->SendTargetable(false, c);
}
} }
++it; ++it;
} }
@ -4939,8 +4947,9 @@ void EntityList::SendUntargetable(Client *c)
void EntityList::SendAppearanceEffects(Client *c) void EntityList::SendAppearanceEffects(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto it = mob_list.begin(); auto it = mob_list.begin();
while (it != mob_list.end()) { while (it != mob_list.end()) {
@ -5429,8 +5438,9 @@ void EntityList::DeleteQGlobal(std::string name, uint32 npcID, uint32 charID, ui
void EntityList::SendFindableNPCList(Client *c) void EntityList::SendFindableNPCList(Client *c)
{ {
if (!c) if (!c) {
return; return;
}
auto outapp = new EQApplicationPacket(OP_SendFindableNPCs, sizeof(FindableNPC_Struct)); auto outapp = new EQApplicationPacket(OP_SendFindableNPCs, sizeof(FindableNPC_Struct));
@ -5496,8 +5506,9 @@ void EntityList::UpdateFindableNPCState(NPC *n, bool Remove)
void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode) void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode)
{ {
if (!c) if (!c) {
return; return;
}
if (NewMode == HideCorpseNone) { if (NewMode == HideCorpseNone) {
SendZoneCorpses(c); SendZoneCorpses(c);
@ -5509,8 +5520,9 @@ void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode)
if (NewMode == HideCorpseAllButGroup) { if (NewMode == HideCorpseAllButGroup) {
g = c->GetGroup(); g = c->GetGroup();
if (!g) if (!g) {
NewMode = HideCorpseAll; NewMode = HideCorpseAll;
}
} }
auto it = corpse_list.begin(); auto it = corpse_list.begin();

View File

@ -1200,7 +1200,7 @@ void Raid::SplitExp(const uint64 exp, Mob* other) {
} }
for (const auto& m : members) { for (const auto& m : members) {
if (m.member && !m.IsBot) { if (m.member && !m.is_bot) {
const int32 diff = m.member->GetLevel() - highest_level; const int32 diff = m.member->GetLevel() - highest_level;
int32 max_diff = -(m.member->GetLevel() * 15 / 10 - m.member->GetLevel()); int32 max_diff = -(m.member->GetLevel() * 15 / 10 - m.member->GetLevel());

View File

@ -427,8 +427,7 @@ void Expedition::RemoveLockout(const std::string& event_name)
void Expedition::SendClientExpeditionInvite( void Expedition::SendClientExpeditionInvite(
Client* client, const std::string& inviter_name, const std::string& swap_remove_name) Client* client, const std::string& inviter_name, const std::string& swap_remove_name)
{ {
if (!client) if (!client) {
{
return; return;
} }

View File

@ -96,12 +96,12 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid)
// stable_sort not needed, order within a raid group may not be what is displayed // stable_sort not needed, order within a raid group may not be what is displayed
std::sort(raid_members.begin(), raid_members.end(), std::sort(raid_members.begin(), raid_members.end(),
[&](const RaidMember& lhs, const RaidMember& rhs) { [&](const RaidMember& lhs, const RaidMember& rhs) {
if (m_leader_name == lhs.membername) { // leader always added first if (m_leader_name == lhs.member_name) { // leader always added first
return true; return true;
} else if (m_leader_name == rhs.membername) { } else if (m_leader_name == rhs.member_name) {
return false; return false;
} }
return lhs.GroupNumber < rhs.GroupNumber; return lhs.group_number < rhs.group_number;
}); });
m_not_all_added_msg = fmt::format(CREATE_NOT_ALL_ADDED, "raid", SystemName, m_not_all_added_msg = fmt::format(CREATE_NOT_ALL_ADDED, "raid", SystemName,
@ -112,7 +112,7 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid)
std::vector<std::string> member_names; std::vector<std::string> member_names;
for (int i = 0; i < raid_members.size(); ++i) for (int i = 0; i < raid_members.size(); ++i)
{ {
member_names.emplace_back(raid_members[i].membername); member_names.emplace_back(raid_members[i].member_name);
} }
return CanMembersJoin(member_names); return CanMembersJoin(member_names);

View File

@ -35,7 +35,7 @@ extern WorldServer worldserver;
note about how groups work: note about how groups work:
A group contains 2 list, a list of pointers to members and a A group contains 2 list, a list of pointers to members and a
list of member names. All members of a group should have their list of member names. All members of a group should have their
name in the membername array, whether they are in the zone or not. name in the member_name array, whether they are in the zone or not.
Only members in this zone will have non-null pointers in the Only members in this zone will have non-null pointers in the
members array. members array.
*/ */

View File

@ -148,12 +148,12 @@ int Lua_Raid::GetGroupNumber(int member_index) {
if ( if (
!EQ::ValueWithin(member_index, 0, 71) || !EQ::ValueWithin(member_index, 0, 71) ||
self->members[member_index].GroupNumber == RAID_GROUPLESS self->members[member_index].group_number == RAID_GROUPLESS
) { ) {
return -1; return -1;
} }
return self->members[member_index].GroupNumber; return self->members[member_index].group_number;
} }
bool Lua_Raid::DoesAnyMemberHaveExpeditionLockout(std::string expedition_name, std::string event_name) bool Lua_Raid::DoesAnyMemberHaveExpeditionLockout(std::string expedition_name, std::string event_name)

View File

@ -2068,16 +2068,19 @@ bool Mob::Flurry(ExtraAttackOptions *opts)
bool Mob::AddRampage(Mob *mob) bool Mob::AddRampage(Mob *mob)
{ {
if (!mob) if (!mob) {
return false; return false;
}
if (!GetSpecialAbility(SPECATK_RAMPAGE)) if (!GetSpecialAbility(SPECATK_RAMPAGE)) {
return false; return false;
}
for (int i = 0; i < RampageArray.size(); i++) { for (int i = 0; i < RampageArray.size(); i++) {
// if Entity ID is already on the list don't add it again // if Entity ID is already on the list don't add it again
if (mob->GetID() == RampageArray[i]) if (mob->GetID() == RampageArray[i]) {
return false; return false;
}
} }
RampageArray.push_back(mob->GetID()); RampageArray.push_back(mob->GetID());
return true; return true;

View File

@ -150,12 +150,12 @@ bool Perl_Raid_DoesAnyMemberHaveExpeditionLockout(Raid* self, std::string expedi
int Perl_Raid_GetGroupNumber(Raid* self, int member_index) { int Perl_Raid_GetGroupNumber(Raid* self, int member_index) {
if ( if (
!EQ::ValueWithin(member_index, 0, 71) || !EQ::ValueWithin(member_index, 0, 71) ||
self->members[member_index].GroupNumber == RAID_GROUPLESS self->members[member_index].group_number == RAID_GROUPLESS
) { ) {
return -1; return -1;
} }
return self->members[member_index].GroupNumber; return self->members[member_index].group_number;
} }
void perl_register_raid() void perl_register_raid()

File diff suppressed because it is too large Load Diff

View File

@ -75,21 +75,21 @@ enum { //raid command types
RaidCommandSetNote = 36, RaidCommandSetNote = 36,
}; };
#define MAX_RAID_GROUPS 12 constexpr uint8_t MAX_RAID_GROUPS = 12;
#define MAX_RAID_MEMBERS 72 constexpr uint8_t MAX_RAID_MEMBERS = 72;
const uint32 RAID_GROUPLESS = 0xFFFFFFFF; const uint32 RAID_GROUPLESS = 0xFFFFFFFF;
struct RaidMember{ struct RaidMember{
char membername[64]; char member_name[64];
Client *member; Client *member;
uint32 GroupNumber; uint32 group_number;
uint8 _class; uint8 _class;
uint8 level; uint8 level;
bool IsGroupLeader; bool is_group_leader;
bool IsRaidLeader; bool is_raid_leader;
bool IsLooter; bool is_looter;
bool IsBot = false; bool is_bot = false;
bool IsRaidMainAssistOne = false; bool is_raid_main_assist_one = false;
}; };
struct GroupMentor { struct GroupMentor {
@ -115,12 +115,12 @@ 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 raid_leader=false, bool group_leader=false, bool looter=false);
void RaidGroupSay(const char* msg, const char* from, uint8 language, uint8 lang_skill); void RaidGroupSay(const char* msg, const char* from, uint8 language, uint8 lang_skill);
void RaidSay(const char* msg, const char* from, uint8 language, uint8 lang_skill); void RaidSay(const char* msg, const char* from, uint8 language, uint8 lang_skill);
bool IsEngaged(); bool IsEngaged();
Mob* GetRaidMainAssistOneByName(const char* name); Mob* GetRaidMainAssistOne();
void RemoveMember(const char *c); void RemoveMember(const char *character_name);
void DisbandRaid(); void DisbandRaid();
void MoveMember(const char *name, uint32 newGroup); void MoveMember(const char *name, uint32 newGroup);
void SetGroupLeader(const char *who, bool glFlag = true); void SetGroupLeader(const char *who, bool glFlag = true);

View File

@ -697,7 +697,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
uint32 gid = raid->GetGroup(caster->CastToClient()); uint32 gid = raid->GetGroup(caster->CastToClient());
if (gid < 12) if (gid < 12)
for (int i = 0; i < MAX_RAID_MEMBERS; ++i) for (int i = 0; i < MAX_RAID_MEMBERS; ++i)
if (raid->members[i].member && raid->members[i].GroupNumber == gid) if (raid->members[i].member && raid->members[i].group_number == gid)
raid->members[i].member->aa_timers[aaTimerWarcry].Start(time); raid->members[i].member->aa_timers[aaTimerWarcry].Start(time);
} }
} }

View File

@ -496,7 +496,7 @@ bool Mob::DoCastSpell(uint16 spell_id, uint16 target_id, CastingSlot slot,
void Mob::DoSpellInterrupt(uint16 spell_id, int32 mana_cost, int my_curmana) { void Mob::DoSpellInterrupt(uint16 spell_id, int32 mana_cost, int my_curmana) {
//The client will prevent spell casting if insufficient mana, this is only for serverside enforcement. //The client will prevent spell casting if insufficient mana, this is only for serverside enforcement.
LogSpells("Spell Error not enough mana spell=[{}] mymana=[{}] cost=[{}]\n", spell_id, my_curmana, mana_cost); LogSpells("Not enough mana spell [{}] curmana [{}] cost [{}]\n", spell_id, my_curmana, mana_cost);
if (IsClient()) { if (IsClient()) {
//clients produce messages... npcs should not for this case //clients produce messages... npcs should not for this case
MessageString(Chat::Red, INSUFFICIENT_MANA); MessageString(Chat::Red, INSUFFICIENT_MANA);

View File

@ -1121,8 +1121,9 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
Client *client = entity_list.GetClientByName(sgfas->Name); Client *client = entity_list.GetClientByName(sgfas->Name);
if (!client) if (!client) {
break; break;
}
uint32 groupid = database.GetGroupID(client->GetName()); uint32 groupid = database.GetGroupID(client->GetName());
@ -1445,7 +1446,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
if (r->members[x].member) if (r->members[x].member)
{ {
if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) { if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) {
if ((rga->gid < 12) && rga->gid == r->members[x].GroupNumber) if ((rga->gid < 12) && rga->gid == r->members[x].group_number)
{ {
strn0cpy(gj->yourname, r->members[x].member->GetName(), 64); strn0cpy(gj->yourname, r->members[x].member->GetName(), 64);
r->members[x].member->QueuePacket(outapp); r->members[x].member->QueuePacket(outapp);
@ -1475,7 +1476,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
if (r->members[x].member) if (r->members[x].member)
{ {
if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) { if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) {
if ((rga->gid < 12) && rga->gid == r->members[x].GroupNumber) if ((rga->gid < 12) && rga->gid == r->members[x].group_number)
{ {
strn0cpy(gj->yourname, r->members[x].member->GetName(), 64); strn0cpy(gj->yourname, r->members[x].member->GetName(), 64);
r->members[x].member->QueuePacket(outapp); r->members[x].member->QueuePacket(outapp);
@ -1499,8 +1500,8 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
if (r->members[x].member) { if (r->members[x].member) {
if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0) if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0)
{ {
if (r->members[x].GroupNumber == rmsg->gid) { if (r->members[x].group_number == rmsg->gid) {
if (!r->members[x].IsBot && r->members[x].member->GetFilter(FilterGroupChat) != 0) if (!r->members[x].is_bot && r->members[x].member->GetFilter(FilterGroupChat) != 0)
{ {
r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Group, rmsg->language, rmsg->lang_skill, rmsg->message); r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Group, rmsg->language, rmsg->lang_skill, rmsg->message);
} }
@ -1524,7 +1525,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
if (r->members[x].member) { if (r->members[x].member) {
if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0) if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0)
{ {
if (!r->members[x].IsBot && r->members[x].member->GetFilter(FilterGroupChat) != 0) if (!r->members[x].is_bot && r->members[x].member->GetFilter(FilterGroupChat) != 0)
{ {
r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Raid, rmsg->language, rmsg->lang_skill, rmsg->message); r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Raid, rmsg->language, rmsg->lang_skill, rmsg->message);
} }