mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[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:
parent
2415645b86
commit
d6b954a4b9
@ -1050,7 +1050,7 @@ namespace RoF
|
||||
{
|
||||
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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -1069,7 +1069,7 @@ namespace RoF
|
||||
return;
|
||||
}
|
||||
//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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -1099,7 +1099,7 @@ namespace RoF
|
||||
|
||||
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')
|
||||
{
|
||||
PacketLength += (22 + strlen(gu2->membername[i]) + 1);
|
||||
@ -1169,7 +1169,7 @@ namespace RoF
|
||||
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);
|
||||
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);
|
||||
|
||||
|
||||
@ -1101,7 +1101,7 @@ namespace RoF2
|
||||
{
|
||||
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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -1120,7 +1120,7 @@ namespace RoF2
|
||||
return;
|
||||
}
|
||||
//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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -1150,7 +1150,7 @@ namespace RoF2
|
||||
|
||||
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')
|
||||
{
|
||||
PacketLength += (22 + strlen(gu2->membername[i]) + 1);
|
||||
@ -1220,7 +1220,7 @@ namespace RoF2
|
||||
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);
|
||||
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);
|
||||
|
||||
|
||||
@ -2590,7 +2590,7 @@ struct GroupUpdate_Struct_Live { // New for Live
|
||||
|
||||
struct GroupMembers_Struct { // New for Live
|
||||
/*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*/ uint32 memberlevel; // Guess
|
||||
/*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
|
||||
/*0004*/ uint32 action;
|
||||
/*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*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
|
||||
/*0000*/ uint8 unknown0020[11]; // Seen 0
|
||||
|
||||
@ -2566,7 +2566,7 @@ struct GroupUpdate_Struct_Live { // New for Live
|
||||
|
||||
struct GroupMembers_Struct { // New for Live
|
||||
/*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*/ uint32 memberlevel; // Guess
|
||||
/*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
|
||||
/*0004*/ uint32 action;
|
||||
/*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*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
|
||||
/*0000*/ uint8 unknown0020[11]; // Seen 0
|
||||
|
||||
@ -785,7 +785,7 @@ namespace SoD
|
||||
{
|
||||
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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -804,7 +804,7 @@ namespace SoD
|
||||
return;
|
||||
}
|
||||
//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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -834,7 +834,7 @@ namespace SoD
|
||||
|
||||
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')
|
||||
{
|
||||
PacketLength += (22 + strlen(gu2->membername[i]) + 1);
|
||||
@ -902,7 +902,7 @@ namespace SoD
|
||||
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);
|
||||
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);
|
||||
|
||||
|
||||
@ -2085,7 +2085,7 @@ struct GroupUpdate_Struct_SoD { // New for SoD
|
||||
|
||||
struct GroupMembers_Struct { // New for SoD
|
||||
/*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*/ uint32 memberlevel; // Guess
|
||||
/*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
|
||||
/*0004*/ uint32 action;
|
||||
/*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*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
|
||||
/*0000*/ uint8 unknown0020[11]; // Seen 0
|
||||
|
||||
@ -927,7 +927,7 @@ namespace UF
|
||||
{
|
||||
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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -947,7 +947,7 @@ namespace UF
|
||||
return;
|
||||
}
|
||||
//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 =
|
||||
new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct));
|
||||
@ -977,7 +977,7 @@ namespace UF
|
||||
|
||||
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')
|
||||
{
|
||||
PacketLength += (22 + strlen(gu2->membername[i]) + 1);
|
||||
@ -1045,7 +1045,7 @@ namespace UF
|
||||
delete in;
|
||||
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);
|
||||
SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct);
|
||||
|
||||
|
||||
@ -2128,7 +2128,7 @@ struct GroupUpdate_Struct_Underfoot { // New for Underfoot
|
||||
|
||||
struct GroupMembers_Struct { // New for Underfoot
|
||||
/*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*/ uint32 memberlevel; // Guess
|
||||
/*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
|
||||
/*0004*/ uint32 action;
|
||||
/*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*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct
|
||||
/*0000*/ uint8 unknown0020[11]; // Seen 0
|
||||
|
||||
@ -393,13 +393,15 @@ bool ChatChannel::RemoveClient(Client *c) {
|
||||
|
||||
void ChatChannel::SendOPList(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
c->GeneralChannelMessage("Channel " + m_name + " op-list: (Owner=" + m_owner + ")");
|
||||
|
||||
for (auto &&m : m_moderators)
|
||||
for (auto &&m : m_moderators) {
|
||||
c->GeneralChannelMessage(m);
|
||||
}
|
||||
}
|
||||
|
||||
void ChatChannel::SendChannelMembers(Client *c) {
|
||||
|
||||
@ -571,7 +571,9 @@ void Clientlist::CheckForStaleConnectionsAll()
|
||||
|
||||
void Clientlist::CheckForStaleConnections(Client *c) {
|
||||
|
||||
if (!c) return;
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
|
||||
@ -120,8 +120,7 @@ void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p)
|
||||
if (Message.length() < 2)
|
||||
break;
|
||||
|
||||
if (!c)
|
||||
{
|
||||
if (!c) {
|
||||
LogInfo("Client not found");
|
||||
break;
|
||||
}
|
||||
|
||||
@ -120,9 +120,9 @@ ClientListEntry::~ClientListEntry()
|
||||
Camp(); // updates zoneserver's numplayers
|
||||
client_list.RemoveCLEReferances(this);
|
||||
}
|
||||
for (auto& elem: tell_queue) {
|
||||
safe_delete_array(elem)
|
||||
};
|
||||
for (auto& elem : tell_queue) {
|
||||
safe_delete_array(elem);
|
||||
}
|
||||
tell_queue.clear();
|
||||
}
|
||||
|
||||
@ -283,9 +283,9 @@ void ClientListEntry::ClearVars(bool iAll)
|
||||
pLFG = 0;
|
||||
gm = 0;
|
||||
pClientVersion = 0;
|
||||
for (auto& elem: tell_queue) {
|
||||
safe_delete_array(elem)
|
||||
};
|
||||
for (auto& elem : tell_queue) {
|
||||
safe_delete_array(elem);
|
||||
}
|
||||
tell_queue.clear();
|
||||
}
|
||||
|
||||
|
||||
@ -2746,23 +2746,23 @@ bool NPC::Death(Mob* killer_mob, int64 damage, uint16 spell, EQ::skills::SkillTy
|
||||
switch (r->GetLootType()) {
|
||||
case 0:
|
||||
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);
|
||||
i++;
|
||||
}
|
||||
break;
|
||||
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);
|
||||
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);
|
||||
i++;
|
||||
}
|
||||
break;
|
||||
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);
|
||||
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)
|
||||
{
|
||||
|
||||
@ -144,8 +144,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
|
||||
if (c->GetID() == m_owner) {
|
||||
return DistanceSquared(GetPosition(), c->GetPosition()) <= distance;
|
||||
}
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id ||
|
||||
raid->members[idx].GroupNumber == 0xFFFFFFFF) {
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
|
||||
raid->members[idx].group_number == 0xFFFFFFFF) {
|
||||
return false;
|
||||
}
|
||||
else if (DistanceSquared(GetPosition(), c->GetPosition()) > distance) {
|
||||
@ -159,8 +159,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
|
||||
if (m->GetOwner()->GetID() == m_owner) {
|
||||
return DistanceSquared(GetPosition(), m->GetPosition()) <= distance;
|
||||
}
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id ||
|
||||
raid->members[idx].GroupNumber == 0xFFFFFFFF) {
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
|
||||
raid->members[idx].group_number == 0xFFFFFFFF) {
|
||||
return false;
|
||||
}
|
||||
else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) {
|
||||
@ -178,8 +178,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner)
|
||||
if (owner->GetID() == m_owner) {
|
||||
return DistanceSquared(GetPosition(), n->GetPosition()) <= distance;
|
||||
}
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id ||
|
||||
raid->members[idx].GroupNumber == 0xFFFFFFFF) {
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
|
||||
raid->members[idx].group_number == 0xFFFFFFFF) {
|
||||
return false;
|
||||
}
|
||||
else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) {
|
||||
@ -389,8 +389,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner)
|
||||
if (m->GetOwner()->GetID() == group_member->GetID()) {
|
||||
return DistanceSquared(GetPosition(), m->GetPosition()) <= distance;
|
||||
}
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id ||
|
||||
raid->members[idx].GroupNumber == 0xFFFFFFFF) {
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
|
||||
raid->members[idx].group_number == 0xFFFFFFFF) {
|
||||
return false;
|
||||
}
|
||||
else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) {
|
||||
@ -408,8 +408,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner)
|
||||
if (owner->GetID() == group_member->GetID()) {
|
||||
return DistanceSquared(GetPosition(), n->GetPosition()) <= distance;
|
||||
}
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id ||
|
||||
raid->members[idx].GroupNumber == 0xFFFFFFFF) {
|
||||
else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id ||
|
||||
raid->members[idx].group_number == 0xFFFFFFFF) {
|
||||
return false;
|
||||
}
|
||||
else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) {
|
||||
@ -819,7 +819,7 @@ bool Aura::ShouldISpawnFor(Client *c)
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
32
zone/bot.cpp
32
zone/bot.cpp
@ -27,9 +27,6 @@
|
||||
#include "../common/repositories/bot_spell_settings_repository.h"
|
||||
#include "../common/data_verification.h"
|
||||
|
||||
extern volatile bool is_zone_loaded;
|
||||
extern bool Critical;
|
||||
|
||||
// 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) {
|
||||
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());
|
||||
}
|
||||
else if (raid) {
|
||||
assist_mob = raid->GetRaidMainAssistOneByName(GetName());
|
||||
assist_mob = raid->GetRaidMainAssistOne();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
Raid* raid = entity_list.GetRaidByBotName(GetName());
|
||||
|
||||
if (raid)
|
||||
if (auto raid = entity_list.GetRaidByBotName(GetName()); 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;
|
||||
}
|
||||
|
||||
|
||||
Mob* EntityList::GetMobByBotID(uint32 botID) {
|
||||
Mob* Result = nullptr;
|
||||
if (botID > 0) {
|
||||
@ -7837,10 +7831,9 @@ Bot* EntityList::GetBotByBotID(uint32 botID) {
|
||||
Bot* EntityList::GetBotByBotName(std::string_view botName) {
|
||||
Bot* Result = nullptr;
|
||||
if (!botName.empty()) {
|
||||
for (std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
if (tempBot && std::string(tempBot->GetName()) == botName) {
|
||||
Result = tempBot;
|
||||
for (const auto b : bot_list) {
|
||||
if (b && std::string_view(b->GetName()) == botName) {
|
||||
Result = b;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -8252,15 +8245,6 @@ bool Bot::GetNeedsHateRedux(Mob *tar) {
|
||||
if (!tar || !tar->IsEngaged() || !tar->HasTargetReflection() || !tar->GetTarget()->IsNPC())
|
||||
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()) {
|
||||
switch (tar->GetClass()) {
|
||||
case ROGUE:
|
||||
|
||||
@ -23,19 +23,16 @@
|
||||
#include "quest_parser_collection.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_group_members;
|
||||
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;
|
||||
@ -48,12 +45,12 @@ std::vector<Bot*> Raid::GetRaidBotMembers(uint32 owner)
|
||||
std::vector<Bot*> raid_members_bots;
|
||||
raid_members_bots.clear();
|
||||
|
||||
for (int i = 0; i < MAX_RAID_MEMBERS; i++) {
|
||||
for (const auto& m : members) {
|
||||
if (
|
||||
members[i].member &&
|
||||
members[i].member->IsBot()
|
||||
m.member &&
|
||||
m.member->IsBot()
|
||||
) {
|
||||
auto b_member = members[i].member->CastToBot();
|
||||
auto b_member = m.member->CastToBot();
|
||||
if (owner && b_member->GetBotOwnerCharacterID() == owner) {
|
||||
raid_members_bots.emplace_back(b_member);
|
||||
} else if (!owner) {
|
||||
@ -72,13 +69,13 @@ std::vector<Bot*> Raid::GetRaidGroupBotMembers(uint32 gid)
|
||||
std::vector<Bot*> raid_members_bots;
|
||||
raid_members_bots.clear();
|
||||
|
||||
for (int i = 0; i < MAX_RAID_MEMBERS; i++) {
|
||||
for (const auto& m : members) {
|
||||
if (
|
||||
members[i].member &&
|
||||
members[i].member->IsBot() &&
|
||||
members[i].GroupNumber == gid
|
||||
m.member &&
|
||||
m.member->IsBot() &&
|
||||
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);
|
||||
}
|
||||
@ -92,34 +89,29 @@ void Raid::HandleBotGroupDisband(uint32 owner, uint32 gid)
|
||||
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
|
||||
for (auto& bot_iter: raid_members_bots) {
|
||||
for (const auto& b: raid_members_bots) {
|
||||
|
||||
// Remove the entire BOT group in this case
|
||||
if (
|
||||
bot_iter &&
|
||||
gid != RAID_GROUPLESS &&
|
||||
IsRaidMember(bot_iter->GetName()) &&
|
||||
IsGroupLeader(bot_iter->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());
|
||||
if (b && gid != RAID_GROUPLESS && IsRaidMember(b->GetName()) && IsGroupLeader(b->GetName())) {
|
||||
auto r_group_members = GetRaidGroupMembers(GetGroup(b->GetName()));
|
||||
auto g = new Group(b);
|
||||
entity_list.AddGroup(g);
|
||||
database.SetGroupID(b->GetCleanName(), g->GetID(), b->GetBotID());
|
||||
database.SetGroupLeaderName(g->GetID(), b->GetName());
|
||||
|
||||
for (auto member_iter: r_group_members) {
|
||||
if (member_iter.member->IsBot()) {
|
||||
auto b_member = member_iter.member->CastToBot();
|
||||
if (strcmp(b_member->GetName(), bot_iter->GetName()) == 0) {
|
||||
bot_iter->SetFollowID(owner);
|
||||
for (auto m: r_group_members) {
|
||||
if (m.member->IsBot()) {
|
||||
auto b_member = m.member->CastToBot();
|
||||
if (strcmp(b_member->GetName(), b->GetName()) == 0) {
|
||||
b->SetFollowID(owner);
|
||||
} else {
|
||||
Bot::AddBotToGroup(b_member, group_inst);
|
||||
Bot::AddBotToGroup(b_member, g);
|
||||
}
|
||||
Bot::RemoveBotFromRaid(b_member);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Bot::RemoveBotFromRaid(bot_iter);
|
||||
Bot::RemoveBotFromRaid(b);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -128,18 +120,15 @@ uint8 Bot::GetNumberNeedingHealedInRaidGroup(uint8& need_healed, uint8 hpr, bool
|
||||
|
||||
if (raid) {
|
||||
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->GetHPRatio() <= hpr) {
|
||||
need_healed++;
|
||||
}
|
||||
|
||||
if (includePets) {
|
||||
if (m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) {
|
||||
need_healed++;
|
||||
}
|
||||
if (includePets && m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) {
|
||||
need_healed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -246,22 +235,18 @@ void Bot::ProcessBotGroupAdd(Group* group, Raid* raid, Client* client, bool new_
|
||||
|
||||
uint32 raid_free_group_id = raid->GetFreeGroup();
|
||||
if (group) {
|
||||
for (int x = 0; x < MAX_GROUP_MEMBERS; x++) {
|
||||
if (group->members[x]) {
|
||||
Client* c = nullptr;
|
||||
Bot* b = nullptr;
|
||||
|
||||
if (group->members[x] && group->members[x]->IsBot()) {
|
||||
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();
|
||||
for (const auto& m : group->members) {
|
||||
if (m) {
|
||||
if (m && m->IsBot()) {
|
||||
raid->AddBot(m->CastToBot(), raid_free_group_id, false, !raid->GroupCount(raid_free_group_id), false);
|
||||
} else if (m && m->IsClient()) {
|
||||
auto c = m->CastToClient();
|
||||
raid->SendRaidCreate(c);
|
||||
raid->AddMember(
|
||||
c,
|
||||
raid_free_group_id,
|
||||
new_raid,
|
||||
x == 0,
|
||||
!raid->GroupCount(raid_free_group_id),
|
||||
false
|
||||
);
|
||||
raid->SendMakeLeaderPacketTo(raid->leadername, c);
|
||||
|
||||
@ -4163,7 +4163,7 @@ bool Client::GroupFollow(Client* inviter) {
|
||||
{
|
||||
//this assumes the inviter is in the zone
|
||||
if (raid->members[x].member == inviter){
|
||||
groupToUse = raid->members[x].GroupNumber;
|
||||
groupToUse = raid->members[x].group_number;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -8882,7 +8882,7 @@ void Client::ProcessAggroMeter()
|
||||
if (gid < 12) {
|
||||
int at_id = AggroMeter::AT_Group1;
|
||||
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)))
|
||||
add_entry(static_cast<AggroMeter::AggroTypes>(at_id));
|
||||
at_id++;
|
||||
|
||||
@ -612,15 +612,15 @@ void Client::CompleteConnect()
|
||||
database.botdb.LoadBotsList(this->CharacterID(), bots_list);
|
||||
std::vector<RaidMember> r_members = raid->GetMembers();
|
||||
for (const RaidMember& iter : r_members) {
|
||||
if (iter.membername) {
|
||||
if (iter.member_name) {
|
||||
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 ";
|
||||
strcat(buffer, iter.membername);
|
||||
strcat(buffer, iter.member_name);
|
||||
bot_command_real_dispatch(this, buffer);
|
||||
Bot* b = entity_list.GetBotByBotName(iter.membername);
|
||||
Bot* b = entity_list.GetBotByBotName(iter.member_name);
|
||||
if (b)
|
||||
{
|
||||
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
|
||||
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 (wasGrpLdr) {
|
||||
raid->SetGroupLeader(memberToDisband->GetName(), false);
|
||||
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||
if (raid->members[x].GroupNumber == grp) {
|
||||
if (strlen(raid->members[x].membername) > 0 &&
|
||||
strcmp(raid->members[x].membername, memberToDisband->GetName()) != 0) {
|
||||
raid->SetGroupLeader(raid->members[x].membername);
|
||||
if (raid->members[x].group_number == grp) {
|
||||
if (strlen(raid->members[x].member_name) > 0 &&
|
||||
strcmp(raid->members[x].member_name, memberToDisband->GetName()) != 0) {
|
||||
raid->SetGroupLeader(raid->members[x].member_name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -8423,8 +8423,7 @@ void Client::Handle_OP_GuildStatus(const EQApplicationPacket *app)
|
||||
|
||||
Client *c = entity_list.GetClientByName(gss->Name);
|
||||
|
||||
if (!c)
|
||||
{
|
||||
if (!c) {
|
||||
MessageString(Chat::LightGray, TARGET_PLAYER_FOR_GUILD_STATUS);
|
||||
return;
|
||||
}
|
||||
@ -12217,12 +12216,12 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
|
||||
}
|
||||
if (group < 12) {
|
||||
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++) {
|
||||
if (strlen(raid->members[x].membername) > 0 && i != x) {
|
||||
if (raid->members[x].GroupNumber == group) {
|
||||
if (strlen(raid->members[x].member_name) > 0 && i != x) {
|
||||
if (raid->members[x].group_number == group) {
|
||||
raid->SetGroupLeader(raid_command_packet->leader_name, false);
|
||||
raid->SetGroupLeader(raid->members[x].membername);
|
||||
raid->SetGroupLeader(raid->members[x].member_name);
|
||||
raid->UpdateGroupAAs(group);
|
||||
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.
|
||||
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);
|
||||
|
||||
/* We were the leader of our old group */
|
||||
if (old_group < 12) {
|
||||
/* Assign new group leader if we can */
|
||||
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||
if (raid->members[x].GroupNumber == old_group) {
|
||||
if (strcmp(raid_command_packet->leader_name, raid->members[x].membername) != 0 && strlen(raid_command_packet->leader_name) > 0) {
|
||||
raid->SetGroupLeader(raid->members[x].membername);
|
||||
if (raid->members[x].group_number == old_group) {
|
||||
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].member_name);
|
||||
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) {
|
||||
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->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);
|
||||
if (raid->IsLocked()) {
|
||||
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->zoneid = zone->GetZoneID();
|
||||
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);
|
||||
|
||||
@ -12343,20 +12342,20 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app)
|
||||
else {
|
||||
Client* c = entity_list.GetClientByName(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);
|
||||
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);
|
||||
|
||||
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) {
|
||||
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->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);
|
||||
if (raid->IsLocked()) {
|
||||
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;
|
||||
|
||||
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->instance_id = zone->GetInstanceID();
|
||||
|
||||
|
||||
@ -600,11 +600,13 @@ bool Client::Process() {
|
||||
for (auto & close_mob : close_mobs) {
|
||||
Mob *mob = close_mob.second;
|
||||
|
||||
if (!mob)
|
||||
if (!mob) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mob->IsClient())
|
||||
if (mob->IsClient()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mob->CheckWillAggro(this) && !mob->CheckAggro(this)) {
|
||||
mob->AddToHateList(this, 25);
|
||||
|
||||
@ -1062,30 +1062,32 @@ void Corpse::AllowPlayerLoot(Mob *them, uint8 slot) {
|
||||
}
|
||||
|
||||
void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* app) {
|
||||
if (!client)
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Added 12/08. Started compressing loot struct on live.
|
||||
if(player_corpse_depop) {
|
||||
if (player_corpse_depop) {
|
||||
SendLootReqErrorPacket(client, LootResponse::SomeoneElse);
|
||||
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);
|
||||
client->Message(Chat::Red, "Warning: Corpse's dbid = 0! Corpse will not survive zone shutdown!");
|
||||
std::cout << "Error: PlayerCorpse::MakeLootRequestPackets: dbid = 0!" << std::endl;
|
||||
// return;
|
||||
}
|
||||
|
||||
if(is_locked && client->Admin() < AccountStatus::GMAdmin) {
|
||||
if (is_locked && client->Admin() < AccountStatus::GMAdmin) {
|
||||
SendLootReqErrorPacket(client, LootResponse::SomeoneElse);
|
||||
client->Message(Chat::Red, "Error: Corpse locked by GM.");
|
||||
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;
|
||||
}
|
||||
|
||||
if (DistanceSquaredNoZ(client->GetPosition(), m_Position) > 625) {
|
||||
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
|
||||
if (client->GetGM()) {
|
||||
if (client->Admin() >= AccountStatus::GMAdmin)
|
||||
if (client->Admin() >= AccountStatus::GMAdmin) {
|
||||
loot_request_type = LootRequestType::GMAllowed;
|
||||
else
|
||||
|
||||
} else {
|
||||
loot_request_type = LootRequestType::GMPeek;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (IsPlayerCorpse()) {
|
||||
if (char_id == client->CharacterID()) {
|
||||
loot_request_type = LootRequestType::Self;
|
||||
}
|
||||
|
||||
else if (CanPlayerLoot(client->CharacterID())) {
|
||||
if (GetPlayerKillItem() == -1)
|
||||
if (GetPlayerKillItem() == -1) {
|
||||
loot_request_type = LootRequestType::AllowedPVPAll;
|
||||
else if (GetPlayerKillItem() == 1)
|
||||
|
||||
} else if (GetPlayerKillItem() == 1) {
|
||||
loot_request_type = LootRequestType::AllowedPVPSingle;
|
||||
else if (GetPlayerKillItem() > 1)
|
||||
|
||||
} else if (GetPlayerKillItem() > 1) {
|
||||
loot_request_type = LootRequestType::AllowedPVPDefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((IsNPCCorpse() || become_npc) && CanPlayerLoot(client->CharacterID())) {
|
||||
@ -1140,8 +1148,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
|
||||
// process coin
|
||||
bool loot_coin = false;
|
||||
std::string tmp;
|
||||
if (database.GetVariable("LootCoin", tmp))
|
||||
if (database.GetVariable("LootCoin", tmp)) {
|
||||
loot_coin = (tmp[0] == 1 && tmp[1] == '\0');
|
||||
}
|
||||
|
||||
if (loot_request_type == LootRequestType::GMPeek || loot_request_type == LootRequestType::GMAllowed) {
|
||||
if (
|
||||
@ -1314,8 +1323,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
|
||||
|
||||
void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
|
||||
{
|
||||
if (!client)
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto lootitem = (LootingItem_Struct *)app->pBuffer;
|
||||
|
||||
@ -1325,8 +1335,10 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
|
||||
client->QueuePacket(app);
|
||||
SendEndLootErrorPacket(client);
|
||||
// unlock corpse for others
|
||||
if (IsBeingLootedBy(client))
|
||||
|
||||
if (IsBeingLootedBy(client)) {
|
||||
ResetLooter();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1334,8 +1346,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
|
||||
client->QueuePacket(app);
|
||||
SendEndLootErrorPacket(client);
|
||||
// unlock corpse for others
|
||||
if (IsBeingLootedBy(client))
|
||||
if (IsBeingLootedBy(client)) {
|
||||
ResetLooter();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1345,8 +1358,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app)
|
||||
client->QueuePacket(app);
|
||||
SendEndLootErrorPacket(client);
|
||||
/* Unlock corpse for others */
|
||||
if (IsBeingLootedBy(client))
|
||||
if (IsBeingLootedBy(client)) {
|
||||
ResetLooter();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -1555,16 +1555,18 @@ void EntityList::RemoveFromAutoXTargets(Mob *mob)
|
||||
|
||||
void EntityList::RefreshAutoXTargets(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = mob_list.begin();
|
||||
while (it != mob_list.end()) {
|
||||
Mob *m = it->second;
|
||||
++it;
|
||||
|
||||
if (!m || m->GetHP() <= 0)
|
||||
if (!m || m->GetHP() <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
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
|
||||
@ -1576,19 +1578,22 @@ void EntityList::RefreshAutoXTargets(Client *c)
|
||||
|
||||
void EntityList::RefreshClientXTargets(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = client_list.begin();
|
||||
while (it != client_list.end()) {
|
||||
Client *c2 = it->second;
|
||||
++it;
|
||||
|
||||
if (!c2)
|
||||
if (!c2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (c2->IsClientXTarget(c))
|
||||
if (c2->IsClientXTarget(c)) {
|
||||
c2->UpdateClientXTarget(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2222,7 +2227,7 @@ Raid* EntityList::GetRaidByBotName(const char* name)
|
||||
std::list<RaidMember> rm;
|
||||
auto GetMembersWithNames = [&rm](Raid const* r) -> std::list<RaidMember> {
|
||||
for (const auto& m : r->members) {
|
||||
if (strlen(m.membername) > 0)
|
||||
if (strlen(m.member_name) > 0)
|
||||
rm.push_back(m);
|
||||
}
|
||||
return rm;
|
||||
@ -2230,7 +2235,7 @@ Raid* EntityList::GetRaidByBotName(const char* name)
|
||||
|
||||
for (const auto& r : raid_list) {
|
||||
for (const auto& m : GetMembersWithNames(r)) {
|
||||
if (strcmp(m.membername, name) == 0) {
|
||||
if (strcmp(m.member_name, name) == 0) {
|
||||
return r;
|
||||
}
|
||||
}
|
||||
@ -2243,7 +2248,7 @@ Raid* EntityList::GetRaidByBot(const Bot* bot)
|
||||
std::list<RaidMember> rm;
|
||||
auto GetMembersWhoAreBots = [&rm](Raid* r) -> std::list<RaidMember> {
|
||||
for (auto const& m : r->members) {
|
||||
if (m.IsBot) {
|
||||
if (m.is_bot) {
|
||||
rm.push_back(m);
|
||||
}
|
||||
}
|
||||
@ -4890,8 +4895,9 @@ void EntityList::SendZoneAppearance(Client *c)
|
||||
|
||||
void EntityList::SendNimbusEffects(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = mob_list.begin();
|
||||
while (it != mob_list.end()) {
|
||||
@ -4918,8 +4924,9 @@ void EntityList::SendNimbusEffects(Client *c)
|
||||
|
||||
void EntityList::SendUntargetable(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = mob_list.begin();
|
||||
while (it != mob_list.end()) {
|
||||
@ -4930,8 +4937,9 @@ void EntityList::SendUntargetable(Client *c)
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
if (!cur->IsTargetable())
|
||||
if (!cur->IsTargetable()) {
|
||||
cur->SendTargetable(false, c);
|
||||
}
|
||||
}
|
||||
++it;
|
||||
}
|
||||
@ -4939,8 +4947,9 @@ void EntityList::SendUntargetable(Client *c)
|
||||
|
||||
void EntityList::SendAppearanceEffects(Client *c)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = mob_list.begin();
|
||||
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)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (!c)
|
||||
if (!c) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (NewMode == HideCorpseNone) {
|
||||
SendZoneCorpses(c);
|
||||
@ -5509,8 +5520,9 @@ void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode)
|
||||
if (NewMode == HideCorpseAllButGroup) {
|
||||
g = c->GetGroup();
|
||||
|
||||
if (!g)
|
||||
if (!g) {
|
||||
NewMode = HideCorpseAll;
|
||||
}
|
||||
}
|
||||
|
||||
auto it = corpse_list.begin();
|
||||
|
||||
@ -1200,7 +1200,7 @@ void Raid::SplitExp(const uint64 exp, Mob* other) {
|
||||
}
|
||||
|
||||
for (const auto& m : members) {
|
||||
if (m.member && !m.IsBot) {
|
||||
if (m.member && !m.is_bot) {
|
||||
const int32 diff = m.member->GetLevel() - highest_level;
|
||||
int32 max_diff = -(m.member->GetLevel() * 15 / 10 - m.member->GetLevel());
|
||||
|
||||
|
||||
@ -427,8 +427,7 @@ void Expedition::RemoveLockout(const std::string& event_name)
|
||||
void Expedition::SendClientExpeditionInvite(
|
||||
Client* client, const std::string& inviter_name, const std::string& swap_remove_name)
|
||||
{
|
||||
if (!client)
|
||||
{
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -96,12 +96,12 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid)
|
||||
// stable_sort not needed, order within a raid group may not be what is displayed
|
||||
std::sort(raid_members.begin(), raid_members.end(),
|
||||
[&](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;
|
||||
} else if (m_leader_name == rhs.membername) {
|
||||
} else if (m_leader_name == rhs.member_name) {
|
||||
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,
|
||||
@ -112,7 +112,7 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid)
|
||||
std::vector<std::string> member_names;
|
||||
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);
|
||||
|
||||
@ -35,7 +35,7 @@ extern WorldServer worldserver;
|
||||
note about how groups work:
|
||||
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
|
||||
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
|
||||
members array.
|
||||
*/
|
||||
|
||||
@ -148,12 +148,12 @@ int Lua_Raid::GetGroupNumber(int member_index) {
|
||||
|
||||
if (
|
||||
!EQ::ValueWithin(member_index, 0, 71) ||
|
||||
self->members[member_index].GroupNumber == RAID_GROUPLESS
|
||||
self->members[member_index].group_number == RAID_GROUPLESS
|
||||
) {
|
||||
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)
|
||||
|
||||
@ -2068,16 +2068,19 @@ bool Mob::Flurry(ExtraAttackOptions *opts)
|
||||
|
||||
bool Mob::AddRampage(Mob *mob)
|
||||
{
|
||||
if (!mob)
|
||||
if (!mob) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!GetSpecialAbility(SPECATK_RAMPAGE))
|
||||
if (!GetSpecialAbility(SPECATK_RAMPAGE)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < RampageArray.size(); i++) {
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
RampageArray.push_back(mob->GetID());
|
||||
return true;
|
||||
|
||||
@ -150,12 +150,12 @@ bool Perl_Raid_DoesAnyMemberHaveExpeditionLockout(Raid* self, std::string expedi
|
||||
int Perl_Raid_GetGroupNumber(Raid* self, int member_index) {
|
||||
if (
|
||||
!EQ::ValueWithin(member_index, 0, 71) ||
|
||||
self->members[member_index].GroupNumber == RAID_GROUPLESS
|
||||
self->members[member_index].group_number == RAID_GROUPLESS
|
||||
) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return self->members[member_index].GroupNumber;
|
||||
return self->members[member_index].group_number;
|
||||
}
|
||||
|
||||
void perl_register_raid()
|
||||
|
||||
1172
zone/raids.cpp
1172
zone/raids.cpp
File diff suppressed because it is too large
Load Diff
24
zone/raids.h
24
zone/raids.h
@ -75,21 +75,21 @@ enum { //raid command types
|
||||
RaidCommandSetNote = 36,
|
||||
};
|
||||
|
||||
#define MAX_RAID_GROUPS 12
|
||||
#define MAX_RAID_MEMBERS 72
|
||||
constexpr uint8_t MAX_RAID_GROUPS = 12;
|
||||
constexpr uint8_t MAX_RAID_MEMBERS = 72;
|
||||
const uint32 RAID_GROUPLESS = 0xFFFFFFFF;
|
||||
|
||||
struct RaidMember{
|
||||
char membername[64];
|
||||
char member_name[64];
|
||||
Client *member;
|
||||
uint32 GroupNumber;
|
||||
uint32 group_number;
|
||||
uint8 _class;
|
||||
uint8 level;
|
||||
bool IsGroupLeader;
|
||||
bool IsRaidLeader;
|
||||
bool IsLooter;
|
||||
bool IsBot = false;
|
||||
bool IsRaidMainAssistOne = false;
|
||||
bool is_group_leader;
|
||||
bool is_raid_leader;
|
||||
bool is_looter;
|
||||
bool is_bot = false;
|
||||
bool is_raid_main_assist_one = false;
|
||||
};
|
||||
|
||||
struct GroupMentor {
|
||||
@ -115,12 +115,12 @@ public:
|
||||
bool IsRaid() { return true; }
|
||||
|
||||
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 RaidSay(const char* msg, const char* from, uint8 language, uint8 lang_skill);
|
||||
bool IsEngaged();
|
||||
Mob* GetRaidMainAssistOneByName(const char* name);
|
||||
void RemoveMember(const char *c);
|
||||
Mob* GetRaidMainAssistOne();
|
||||
void RemoveMember(const char *character_name);
|
||||
void DisbandRaid();
|
||||
void MoveMember(const char *name, uint32 newGroup);
|
||||
void SetGroupLeader(const char *who, bool glFlag = true);
|
||||
|
||||
@ -697,7 +697,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
||||
uint32 gid = raid->GetGroup(caster->CastToClient());
|
||||
if (gid < 12)
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
//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()) {
|
||||
//clients produce messages... npcs should not for this case
|
||||
MessageString(Chat::Red, INSUFFICIENT_MANA);
|
||||
|
||||
@ -1121,8 +1121,9 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
|
||||
Client *client = entity_list.GetClientByName(sgfas->Name);
|
||||
|
||||
if (!client)
|
||||
if (!client) {
|
||||
break;
|
||||
}
|
||||
|
||||
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 (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);
|
||||
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 (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);
|
||||
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 (strcmp(rmsg->from, r->members[x].member->GetName()) != 0)
|
||||
{
|
||||
if (r->members[x].GroupNumber == rmsg->gid) {
|
||||
if (!r->members[x].IsBot && r->members[x].member->GetFilter(FilterGroupChat) != 0)
|
||||
if (r->members[x].group_number == rmsg->gid) {
|
||||
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);
|
||||
}
|
||||
@ -1524,7 +1525,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
if (r->members[x].member) {
|
||||
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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user