mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 10:31: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))
|
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);
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
32
zone/bot.cpp
32
zone/bot.cpp
@ -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:
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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++;
|
||||||
|
|||||||
@ -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();
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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());
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
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,
|
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);
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user