mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-22 16:28:28 +00:00
add RaidMember.IsBot
This commit is contained in:
@@ -27,6 +27,7 @@ public:
|
|||||||
int isgroupleader;
|
int isgroupleader;
|
||||||
int israidleader;
|
int israidleader;
|
||||||
int islooter;
|
int islooter;
|
||||||
|
int isbot;
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::string PrimaryKey()
|
static std::string PrimaryKey()
|
||||||
@@ -46,6 +47,7 @@ public:
|
|||||||
"isgroupleader",
|
"isgroupleader",
|
||||||
"israidleader",
|
"israidleader",
|
||||||
"islooter",
|
"islooter",
|
||||||
|
"isbot",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,6 +92,7 @@ public:
|
|||||||
entry.isgroupleader = 0;
|
entry.isgroupleader = 0;
|
||||||
entry.israidleader = 0;
|
entry.israidleader = 0;
|
||||||
entry.islooter = 0;
|
entry.islooter = 0;
|
||||||
|
entry.isbot = 0;
|
||||||
|
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
@@ -133,7 +136,8 @@ public:
|
|||||||
entry.name = row[5] ? row[5] : "";
|
entry.name = row[5] ? row[5] : "";
|
||||||
entry.isgroupleader = atoi(row[6]);
|
entry.isgroupleader = atoi(row[6]);
|
||||||
entry.israidleader = atoi(row[7]);
|
entry.israidleader = atoi(row[7]);
|
||||||
entry.islooter = atoi(row[8]);
|
entry.islooter = atoi(row[8]);
|
||||||
|
entry.isbot = atoi(row[9]);
|
||||||
|
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
@@ -176,6 +180,7 @@ public:
|
|||||||
update_values.push_back(columns[6] + " = " + std::to_string(raid_members_entry.isgroupleader));
|
update_values.push_back(columns[6] + " = " + std::to_string(raid_members_entry.isgroupleader));
|
||||||
update_values.push_back(columns[7] + " = " + std::to_string(raid_members_entry.israidleader));
|
update_values.push_back(columns[7] + " = " + std::to_string(raid_members_entry.israidleader));
|
||||||
update_values.push_back(columns[8] + " = " + std::to_string(raid_members_entry.islooter));
|
update_values.push_back(columns[8] + " = " + std::to_string(raid_members_entry.islooter));
|
||||||
|
update_values.push_back(columns[9] + " = " + std::to_string(raid_members_entry.isbot)); //Mitch
|
||||||
|
|
||||||
auto results = db.QueryDatabase(
|
auto results = db.QueryDatabase(
|
||||||
fmt::format(
|
fmt::format(
|
||||||
@@ -206,6 +211,7 @@ public:
|
|||||||
insert_values.push_back(std::to_string(raid_members_entry.isgroupleader));
|
insert_values.push_back(std::to_string(raid_members_entry.isgroupleader));
|
||||||
insert_values.push_back(std::to_string(raid_members_entry.israidleader));
|
insert_values.push_back(std::to_string(raid_members_entry.israidleader));
|
||||||
insert_values.push_back(std::to_string(raid_members_entry.islooter));
|
insert_values.push_back(std::to_string(raid_members_entry.islooter));
|
||||||
|
insert_values.push_back(std::to_string(raid_members_entry.isbot));
|
||||||
|
|
||||||
auto results = db.QueryDatabase(
|
auto results = db.QueryDatabase(
|
||||||
fmt::format(
|
fmt::format(
|
||||||
@@ -244,6 +250,7 @@ public:
|
|||||||
insert_values.push_back(std::to_string(raid_members_entry.isgroupleader));
|
insert_values.push_back(std::to_string(raid_members_entry.isgroupleader));
|
||||||
insert_values.push_back(std::to_string(raid_members_entry.israidleader));
|
insert_values.push_back(std::to_string(raid_members_entry.israidleader));
|
||||||
insert_values.push_back(std::to_string(raid_members_entry.islooter));
|
insert_values.push_back(std::to_string(raid_members_entry.islooter));
|
||||||
|
insert_values.push_back(std::to_string(raid_members_entry.isbot));
|
||||||
|
|
||||||
insert_chunks.push_back("(" + implode(",", insert_values) + ")");
|
insert_chunks.push_back("(" + implode(",", insert_values) + ")");
|
||||||
}
|
}
|
||||||
@@ -286,6 +293,7 @@ public:
|
|||||||
entry.isgroupleader = atoi(row[6]);
|
entry.isgroupleader = atoi(row[6]);
|
||||||
entry.israidleader = atoi(row[7]);
|
entry.israidleader = atoi(row[7]);
|
||||||
entry.islooter = atoi(row[8]);
|
entry.islooter = atoi(row[8]);
|
||||||
|
entry.isbot = atoi(row[9]);
|
||||||
|
|
||||||
all_entries.push_back(entry);
|
all_entries.push_back(entry);
|
||||||
}
|
}
|
||||||
@@ -319,6 +327,7 @@ public:
|
|||||||
entry.isgroupleader = atoi(row[6]);
|
entry.isgroupleader = atoi(row[6]);
|
||||||
entry.israidleader = atoi(row[7]);
|
entry.israidleader = atoi(row[7]);
|
||||||
entry.islooter = atoi(row[8]);
|
entry.islooter = atoi(row[8]);
|
||||||
|
entry.isbot = atoi(row[9]);
|
||||||
|
|
||||||
all_entries.push_back(entry);
|
all_entries.push_back(entry);
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-21
@@ -98,7 +98,7 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo
|
|||||||
|
|
||||||
std::string query = StringFormat("INSERT INTO raid_members SET raidid = %lu, charid = %lu, "
|
std::string query = StringFormat("INSERT INTO raid_members SET raidid = %lu, charid = %lu, "
|
||||||
"groupid = %lu, _class = %d, level = %d, name = '%s', "
|
"groupid = %lu, _class = %d, level = %d, name = '%s', "
|
||||||
"isgroupleader = %d, israidleader = %d, islooter = %d",
|
"isgroupleader = %d, israidleader = %d, islooter = %d, isbot = 0",
|
||||||
(unsigned long)GetID(), (unsigned long)c->CharacterID(),
|
(unsigned long)GetID(), (unsigned long)c->CharacterID(),
|
||||||
(unsigned long)group, c->GetClass(), c->GetLevel(),
|
(unsigned long)group, c->GetClass(), c->GetLevel(),
|
||||||
c->GetName(), groupleader, rleader, looter);
|
c->GetName(), groupleader, rleader, looter);
|
||||||
@@ -178,7 +178,7 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo
|
|||||||
|
|
||||||
std::string query = StringFormat("INSERT INTO raid_members SET raidid = %lu, charid = %lu, "
|
std::string query = StringFormat("INSERT INTO raid_members SET raidid = %lu, charid = %lu, "
|
||||||
"groupid = %lu, _class = %d, level = %d, name = '%s', "
|
"groupid = %lu, _class = %d, level = %d, name = '%s', "
|
||||||
"isgroupleader = %d, israidleader = %d, islooter = %d",
|
"isgroupleader = %d, israidleader = %d, islooter = %d, isbot = 1",
|
||||||
(unsigned long)GetID(), (unsigned long)b->GetBotID(),
|
(unsigned long)GetID(), (unsigned long)b->GetBotID(),
|
||||||
(unsigned long)group, b->GetClass(), b->GetLevel(),
|
(unsigned long)group, b->GetClass(), b->GetLevel(),
|
||||||
b->GetName(), groupleader, rleader, looter);
|
b->GetName(), groupleader, rleader, looter);
|
||||||
@@ -1248,12 +1248,12 @@ void Raid::SendBulkRaid(Client *to)
|
|||||||
if(!to)
|
if(!to)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (IsRaidMemberBot(to))
|
//if (IsRaidMemberBot(to))
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
|
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
|
||||||
{
|
{
|
||||||
if(members[x].member && strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself
|
if(members[x].member && !members[x].IsBot && strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself
|
||||||
{
|
{
|
||||||
SendRaidAdd(members[x].membername, to);
|
SendRaidAdd(members[x].membername, to);
|
||||||
}
|
}
|
||||||
@@ -1264,7 +1264,7 @@ void Raid::QueuePacket(const EQApplicationPacket *app, bool ack_req)
|
|||||||
{
|
{
|
||||||
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
|
for(int x = 0; x < MAX_RAID_MEMBERS; x++)
|
||||||
{
|
{
|
||||||
if(members[x].member && !IsRaidMemberBot(members[x].member))
|
if(members[x].member && !members[x].IsBot)
|
||||||
{
|
{
|
||||||
members[x].member->QueuePacket(app, ack_req);
|
members[x].member->QueuePacket(app, ack_req);
|
||||||
}
|
}
|
||||||
@@ -1273,7 +1273,9 @@ void Raid::QueuePacket(const EQApplicationPacket *app, bool ack_req)
|
|||||||
|
|
||||||
void Raid::SendMakeLeaderPacket(const char *who) //30
|
void Raid::SendMakeLeaderPacket(const char *who) //30
|
||||||
{
|
{
|
||||||
if (entity_list.GetBotByBotName(who) && IsRaidMemberBot(entity_list.GetBotByBotName(who)->CastToClient()))
|
|
||||||
|
//if (entity_list.GetBotByBotName(who) && IsRaidMemberBot(entity_list.GetBotByBotName(who)->CastToClient()))
|
||||||
|
if (entity_list.GetBotByBotName(who) && members[GetPlayerIndex(who)].IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
||||||
@@ -1291,7 +1293,7 @@ void Raid::SendMakeLeaderPacketTo(const char *who, Client *to)
|
|||||||
if(!to)
|
if(!to)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (IsRaidMemberBot(to))
|
if (members[GetPlayerIndex(who)].IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
||||||
@@ -1324,7 +1326,7 @@ void Raid::SendGroupUpdate(Client *to)
|
|||||||
if(!to)
|
if(!to)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (IsRaidMemberBot(to))
|
if (members[GetPlayerIndex(to)].IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate2_Struct));
|
auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate2_Struct));
|
||||||
@@ -1444,7 +1446,7 @@ void Raid::SendRaidUnlockTo(Client *c)
|
|||||||
|
|
||||||
void Raid::SendGroupDisband(Client *to)
|
void Raid::SendGroupDisband(Client *to)
|
||||||
{
|
{
|
||||||
if(!to || IsRaidMemberBot(to))
|
if(!to || members[GetPlayerIndex(to)].IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate_Struct));
|
auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate_Struct));
|
||||||
@@ -1515,7 +1517,7 @@ void Raid::SendRaidMOTDToWorld()
|
|||||||
|
|
||||||
void Raid::SendGroupLeadershipAA(Client *c, uint32 gid)
|
void Raid::SendGroupLeadershipAA(Client *c, uint32 gid)
|
||||||
{
|
{
|
||||||
if (IsRaidMemberBot(c))
|
if (members[GetPlayerIndex(c)].IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct));
|
||||||
@@ -1533,14 +1535,14 @@ void Raid::SendGroupLeadershipAA(Client *c, uint32 gid)
|
|||||||
void Raid::SendGroupLeadershipAA(uint32 gid)
|
void Raid::SendGroupLeadershipAA(uint32 gid)
|
||||||
{
|
{
|
||||||
for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++)
|
for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++)
|
||||||
if (members[i].member && members[i].GroupNumber == gid && !IsRaidMemberBot(members[i].member))
|
if (members[i].member && members[i].GroupNumber == gid && !members[i].IsBot)
|
||||||
SendGroupLeadershipAA(members[i].member, gid);
|
SendGroupLeadershipAA(members[i].member, gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Raid::SendAllRaidLeadershipAA()
|
void Raid::SendAllRaidLeadershipAA()
|
||||||
{
|
{
|
||||||
for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++)
|
for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++)
|
||||||
if (members[i].member && !IsRaidMemberBot(members[i].member))
|
if (members[i].member && !members[i].IsBot)
|
||||||
SendGroupLeadershipAA(members[i].member, members[i].GroupNumber);
|
SendGroupLeadershipAA(members[i].member, members[i].GroupNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1572,6 +1574,7 @@ bool Raid::IsRaidMemberBot(Client* client)
|
|||||||
return true; // client is actually a bot
|
return true; // client is actually a bot
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Raid::LockRaid(bool lockFlag)
|
void Raid::LockRaid(bool lockFlag)
|
||||||
{
|
{
|
||||||
std::string query = StringFormat("UPDATE raid_details SET locked = %d WHERE raidid = %lu",
|
std::string query = StringFormat("UPDATE raid_details SET locked = %d WHERE raidid = %lu",
|
||||||
@@ -1638,7 +1641,7 @@ bool Raid::LearnMembers()
|
|||||||
memset(members, 0, (sizeof(RaidMember)*MAX_RAID_MEMBERS));
|
memset(members, 0, (sizeof(RaidMember)*MAX_RAID_MEMBERS));
|
||||||
|
|
||||||
std::string query = StringFormat("SELECT name, groupid, _class, level, "
|
std::string query = StringFormat("SELECT name, groupid, _class, level, "
|
||||||
"isgroupleader, israidleader, islooter "
|
"isgroupleader, israidleader, islooter, isbot "
|
||||||
"FROM raid_members WHERE raidid = %lu",
|
"FROM raid_members WHERE raidid = %lu",
|
||||||
(unsigned long)GetID());
|
(unsigned long)GetID());
|
||||||
auto results = database.QueryDatabase(query);
|
auto results = database.QueryDatabase(query);
|
||||||
@@ -1669,6 +1672,7 @@ bool Raid::LearnMembers()
|
|||||||
members[index].IsGroupLeader = atoi(row[4]);
|
members[index].IsGroupLeader = atoi(row[4]);
|
||||||
members[index].IsRaidLeader = atoi(row[5]);
|
members[index].IsRaidLeader = atoi(row[5]);
|
||||||
members[index].IsLooter = atoi(row[6]);
|
members[index].IsLooter = atoi(row[6]);
|
||||||
|
members[index].IsBot = atoi(row[7]); //Mitch
|
||||||
++index;
|
++index;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1689,14 +1693,17 @@ void Raid::VerifyRaid()
|
|||||||
#endif
|
#endif
|
||||||
if(c){
|
if(c){
|
||||||
members[x].member = c;
|
members[x].member = c;
|
||||||
|
members[x].IsBot = false;
|
||||||
}
|
}
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
else if(b){
|
else if(b){
|
||||||
members[x].member = b->CastToClient(); //Raid requires client* we are forcing it here to be a BOT
|
members[x].member = b->CastToClient(); //Raid requires client* we are forcing it here to be a BOT
|
||||||
|
members[x].IsBot = true; //Used to identify those members who are Bots
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else {
|
else {
|
||||||
members[x].member = nullptr;
|
members[x].member = nullptr;
|
||||||
|
members[x].IsBot = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(members[x].IsRaidLeader){
|
if(members[x].IsRaidLeader){
|
||||||
@@ -1749,7 +1756,7 @@ void Raid::SendHPManaEndPacketsTo(Client *client)
|
|||||||
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
||||||
|
|
||||||
for(int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
for(int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||||
if(members[x].member && !IsRaidMemberBot(members[x].member)) {
|
if(members[x].member && !members[x].IsBot) {
|
||||||
if((members[x].member != client) && (members[x].GroupNumber == group_id)) {
|
if((members[x].member != client) && (members[x].GroupNumber == group_id)) {
|
||||||
|
|
||||||
members[x].member->CreateHPPacket(&hp_packet);
|
members[x].member->CreateHPPacket(&hp_packet);
|
||||||
@@ -1791,7 +1798,7 @@ void Raid::SendHPManaEndPacketsFrom(Mob *mob)
|
|||||||
mob->CreateHPPacket(&hpapp);
|
mob->CreateHPPacket(&hpapp);
|
||||||
|
|
||||||
for(int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
for(int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||||
if(members[x].member && !IsRaidMemberBot(members[x].member)) {
|
if(members[x].member && !members[x].IsBot) {
|
||||||
if(!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
if(!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
||||||
members[x].member->QueuePacket(&hpapp, false);
|
members[x].member->QueuePacket(&hpapp, false);
|
||||||
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
||||||
@@ -1824,7 +1831,7 @@ void Raid::SendManaPacketFrom(Mob *mob)
|
|||||||
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
||||||
|
|
||||||
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||||
if (members[x].member && !IsRaidMemberBot(members[x].member)) {
|
if (members[x].member && !members[x].IsBot) {
|
||||||
if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
||||||
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
||||||
outapp.SetOpcode(OP_MobManaUpdate);
|
outapp.SetOpcode(OP_MobManaUpdate);
|
||||||
@@ -1851,7 +1858,7 @@ void Raid::SendEndurancePacketFrom(Mob *mob)
|
|||||||
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct));
|
||||||
|
|
||||||
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
for (int x = 0; x < MAX_RAID_MEMBERS; x++) {
|
||||||
if (members[x].member && !IsRaidMemberBot(members[x].member)) {
|
if (members[x].member && !members[x].IsBot) {
|
||||||
if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) {
|
||||||
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) {
|
||||||
outapp.SetOpcode(OP_MobEnduranceUpdate);
|
outapp.SetOpcode(OP_MobEnduranceUpdate);
|
||||||
@@ -1958,11 +1965,11 @@ void Raid::CheckGroupMentor(uint32 group_id, Client *c)
|
|||||||
void Raid::SetDirtyAutoHaters()
|
void Raid::SetDirtyAutoHaters()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_RAID_MEMBERS; ++i)
|
for (int i = 0; i < MAX_RAID_MEMBERS; ++i)
|
||||||
if (members[i].member && IsRaidMemberBot(members[i].member))
|
if (members[i].member && members[i].IsBot)
|
||||||
{
|
{
|
||||||
members[i].member->CastToBot()->SetDirtyAutoHaters();
|
members[i].member->CastToBot()->SetDirtyAutoHaters();
|
||||||
}
|
}
|
||||||
else if (members[i].member && members[i].member->CastToClient()->IsClient())
|
else if (members[i].member && !members[i].IsBot)
|
||||||
{
|
{
|
||||||
members[i].member->SetDirtyAutoHaters();
|
members[i].member->SetDirtyAutoHaters();
|
||||||
}
|
}
|
||||||
@@ -1984,7 +1991,7 @@ void Raid::QueueClients(Mob *sender, const EQApplicationPacket *app, bool ack_re
|
|||||||
if (!members[i].member->IsClient())
|
if (!members[i].member->IsClient())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (IsRaidMemberBot(members[i].member))
|
if (members[i].IsBot)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ignore_sender && members[i].member == sender)
|
if (ignore_sender && members[i].member == sender)
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ struct RaidMember{
|
|||||||
bool IsRaidLeader;
|
bool IsRaidLeader;
|
||||||
bool IsLooter;
|
bool IsLooter;
|
||||||
#ifdef BOTS
|
#ifdef BOTS
|
||||||
|
bool IsBot = false;
|
||||||
bool IsGroupHealer;
|
bool IsGroupHealer;
|
||||||
bool IsRaidSlower;
|
bool IsRaidSlower;
|
||||||
bool IsRaidMainAssistOne;
|
bool IsRaidMainAssistOne;
|
||||||
|
|||||||
Reference in New Issue
Block a user