mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-02 04:16:46 +00:00
[Cleanup] Make use of AccountStatus constants wherever status is checked or used. (#1764)
* [Cleanup] Make use of AccountStatus constants wherever status is checked or used. - Cleanup all instances of SendEmoteMessage. - Cleanup all instances of SendEmoteMessageRaw. - Cleanup all instances of MessageStatus. - Convert Quest API method defaults to use constants. * Cleanup constant names.
This commit is contained in:
@@ -274,7 +274,7 @@ void ClientListEntry::ClearVars(bool iAll)
|
||||
|
||||
paccountid = 0;
|
||||
memset(paccountname, 0, sizeof(paccountname));
|
||||
padmin = 0;
|
||||
padmin = AccountStatus::Player;
|
||||
}
|
||||
pzoneserver = 0;
|
||||
pzone = 0;
|
||||
@@ -365,7 +365,7 @@ bool ClientListEntry::CheckAuth(uint32 loginserver_account_id, const char *key_p
|
||||
}
|
||||
std::string lsworldadmin;
|
||||
if (database.GetVariable("honorlsworldadmin", lsworldadmin)) {
|
||||
if (atoi(lsworldadmin.c_str()) == 1 && pworldadmin != 0 && (padmin < pworldadmin || padmin == 0)) {
|
||||
if (atoi(lsworldadmin.c_str()) == 1 && pworldadmin != 0 && (padmin < pworldadmin || padmin == AccountStatus::Player)) {
|
||||
padmin = pworldadmin;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ public:
|
||||
* @param scl
|
||||
* @param iOnline
|
||||
*/
|
||||
ClientListEntry(uint32 id, uint32 iAccID, const char* iAccName, MD5& iMD5Pass, int16 iAdmin = 0);
|
||||
ClientListEntry(uint32 id, uint32 iAccID, const char* iAccName, MD5& iMD5Pass, int16 iAdmin = AccountStatus::Player);
|
||||
ClientListEntry(uint32 id, ZoneServer* iZS, ServerClientList_Struct* scl, CLE_Status iOnline);
|
||||
~ClientListEntry();
|
||||
bool CheckStale();
|
||||
|
||||
+103
-79
@@ -296,7 +296,13 @@ void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnect
|
||||
fmt:format_to(out, "{} CharID: {} CharName: {} Zone: {} ({})", newline, cle->CharID(), cle->name(), ZoneName(cle->zone()), cle->zone());
|
||||
if (out.size() >= 3072) {
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
addnewline = false;
|
||||
out.clear();
|
||||
} else {
|
||||
@@ -309,7 +315,13 @@ void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnect
|
||||
}
|
||||
fmt::format_to(out, "{}{} CLEs in memory. {} CLEs listed. numplayers = {}.", newline, x, y, numplayers);
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -558,7 +570,7 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
(countcle->Online() >= CLE_Status::Zoning) &&
|
||||
(!countcle->GetGM() || countcle->Anon() != 1 || admin >= countcle->Admin()) &&
|
||||
(whom == 0 || (
|
||||
((countcle->Admin() >= 80 && countcle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
((countcle->Admin() >= AccountStatus::QuestTroupe && countcle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
(whom->lvllow == 0xFFFF || (countcle->level() >= whom->lvllow && countcle->level() <= whom->lvlhigh && (countcle->Anon()==0 || admin > countcle->Admin()))) &&
|
||||
(whom->wclass == 0xFFFF || (countcle->class_() == whom->wclass && (countcle->Anon()==0 || admin > countcle->Admin()))) &&
|
||||
(whom->wrace == 0xFFFF || (countcle->race() == whom->wrace && (countcle->Anon()==0 || admin > countcle->Admin()))) &&
|
||||
@@ -566,18 +578,18 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
(tmpZone != 0 && strncasecmp(tmpZone, whom->whom, whomlen) == 0) ||
|
||||
strncasecmp(countcle->name(),whom->whom, whomlen) == 0 ||
|
||||
(strncasecmp(guild_mgr.GetGuildName(countcle->GuildID()), whom->whom, whomlen) == 0) ||
|
||||
(admin >= 100 && strncasecmp(countcle->AccountName(), whom->whom, whomlen) == 0)
|
||||
(admin >= AccountStatus::GMAdmin && strncasecmp(countcle->AccountName(), whom->whom, whomlen) == 0)
|
||||
))
|
||||
))
|
||||
) {
|
||||
if((countcle->Anon()>0 && admin>=countcle->Admin() && admin>0) || countcle->Anon()==0 ){
|
||||
if((countcle->Anon()>0 && admin >= countcle->Admin() && admin > AccountStatus::Player) || countcle->Anon()==0 ){
|
||||
totalusers++;
|
||||
if(totalusers<=20 || admin>=100)
|
||||
if(totalusers<=20 || admin >= AccountStatus::GMAdmin)
|
||||
totallength=totallength+strlen(countcle->name())+strlen(countcle->AccountName())+strlen(guild_mgr.GetGuildName(countcle->GuildID()))+5;
|
||||
}
|
||||
else if((countcle->Anon()>0 && admin<=countcle->Admin()) || (countcle->Anon()==0 && !countcle->GetGM())) {
|
||||
totalusers++;
|
||||
if(totalusers<=20 || admin>=100)
|
||||
if(totalusers<=20 || admin >= AccountStatus::GMAdmin)
|
||||
totallength=totallength+strlen(countcle->name())+strlen(guild_mgr.GetGuildName(countcle->GuildID()))+5;
|
||||
}
|
||||
}
|
||||
@@ -589,7 +601,7 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
uint8 unknown35=0x0A;
|
||||
uint32 unknown36=0;
|
||||
uint32 playersinzonestring=5028;
|
||||
if(totalusers>20 && admin<100){
|
||||
if(totalusers>20 && admin<AccountStatus::GMAdmin){
|
||||
totalusers=20;
|
||||
playersinzonestring=5033;
|
||||
}
|
||||
@@ -638,7 +650,7 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
(cle->Online() >= CLE_Status::Zoning) &&
|
||||
(!cle->GetGM() || cle->Anon() != 1 || admin >= cle->Admin()) &&
|
||||
(whom == 0 || (
|
||||
((cle->Admin() >= 80 && cle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
((cle->Admin() >= AccountStatus::QuestTroupe && cle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
(whom->lvllow == 0xFFFF || (cle->level() >= whom->lvllow && cle->level() <= whom->lvlhigh && (cle->Anon()==0 || admin>cle->Admin()))) &&
|
||||
(whom->wclass == 0xFFFF || (cle->class_() == whom->wclass && (cle->Anon()==0 || admin>cle->Admin()))) &&
|
||||
(whom->wrace == 0xFFFF || (cle->race() == whom->wrace && (cle->Anon()==0 || admin>cle->Admin()))) &&
|
||||
@@ -646,60 +658,60 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
(tmpZone != 0 && strncasecmp(tmpZone, whom->whom, whomlen) == 0) ||
|
||||
strncasecmp(cle->name(),whom->whom, whomlen) == 0 ||
|
||||
(strncasecmp(guild_mgr.GetGuildName(cle->GuildID()), whom->whom, whomlen) == 0) ||
|
||||
(admin >= 100 && strncasecmp(cle->AccountName(), whom->whom, whomlen) == 0)
|
||||
(admin >= AccountStatus::GMAdmin && strncasecmp(cle->AccountName(), whom->whom, whomlen) == 0)
|
||||
))
|
||||
))
|
||||
) {
|
||||
line[0] = 0;
|
||||
uint32 rankstring=0xFFFFFFFF;
|
||||
if((cle->Anon()==1 && cle->GetGM() && cle->Admin()>admin) || (idx>=20 && admin<100)){ //hide gms that are anon from lesser gms and normal players, cut off at 20
|
||||
rankstring=0;
|
||||
uint32 rankstring = 0xFFFFFFFF;
|
||||
if((cle->Anon()==1 && cle->GetGM() && cle->Admin()>admin) || (idx>=20 && admin < AccountStatus::GMAdmin)){ //hide gms that are anon from lesser gms and normal players, cut off at 20
|
||||
rankstring = 0;
|
||||
iterator.Advance();
|
||||
continue;
|
||||
} else if (cle->GetGM()) {
|
||||
if (cle->Admin() >=250)
|
||||
rankstring=5021;
|
||||
else if (cle->Admin() >= 200)
|
||||
rankstring=5020;
|
||||
else if (cle->Admin() >= 180)
|
||||
rankstring=5019;
|
||||
else if (cle->Admin() >= 170)
|
||||
rankstring=5018;
|
||||
else if (cle->Admin() >= 160)
|
||||
rankstring=5017;
|
||||
else if (cle->Admin() >= 150)
|
||||
rankstring=5016;
|
||||
else if (cle->Admin() >= 100)
|
||||
rankstring=5015;
|
||||
else if (cle->Admin() >= 95)
|
||||
rankstring=5014;
|
||||
else if (cle->Admin() >= 90)
|
||||
rankstring=5013;
|
||||
else if (cle->Admin() >= 85)
|
||||
rankstring=5012;
|
||||
else if (cle->Admin() >= 81)
|
||||
rankstring=5011;
|
||||
else if (cle->Admin() >= 80)
|
||||
rankstring=5010;
|
||||
else if (cle->Admin() >= 50)
|
||||
rankstring=5009;
|
||||
else if (cle->Admin() >= 20)
|
||||
rankstring=5008;
|
||||
else if (cle->Admin() >= 10)
|
||||
rankstring=5007;
|
||||
if (cle->Admin() >= AccountStatus::GMImpossible)
|
||||
rankstring = 5021;
|
||||
else if (cle->Admin() >= AccountStatus::GMMgmt)
|
||||
rankstring = 5020;
|
||||
else if (cle->Admin() >= AccountStatus::GMCoder)
|
||||
rankstring = 5019;
|
||||
else if (cle->Admin() >= AccountStatus::GMAreas)
|
||||
rankstring = 5018;
|
||||
else if (cle->Admin() >= AccountStatus::QuestMaster)
|
||||
rankstring = 5017;
|
||||
else if (cle->Admin() >= AccountStatus::GMLeadAdmin)
|
||||
rankstring = 5016;
|
||||
else if (cle->Admin() >= AccountStatus::GMAdmin)
|
||||
rankstring = 5015;
|
||||
else if (cle->Admin() >= AccountStatus::GMStaff)
|
||||
rankstring = 5014;
|
||||
else if (cle->Admin() >= AccountStatus::EQSupport)
|
||||
rankstring = 5013;
|
||||
else if (cle->Admin() >= AccountStatus::GMTester)
|
||||
rankstring = 5012;
|
||||
else if (cle->Admin() >= AccountStatus::SeniorGuide)
|
||||
rankstring = 5011;
|
||||
else if (cle->Admin() >= AccountStatus::QuestTroupe)
|
||||
rankstring = 5010;
|
||||
else if (cle->Admin() >= AccountStatus::Guide)
|
||||
rankstring = 5009;
|
||||
else if (cle->Admin() >= AccountStatus::ApprenticeGuide)
|
||||
rankstring = 5008;
|
||||
else if (cle->Admin() >= AccountStatus::Steward)
|
||||
rankstring = 5007;
|
||||
}
|
||||
idx++;
|
||||
char guildbuffer[67]={0};
|
||||
if (cle->GuildID() != GUILD_NONE && cle->GuildID()>0)
|
||||
sprintf(guildbuffer,"<%s>", guild_mgr.GetGuildName(cle->GuildID()));
|
||||
uint32 formatstring=5025;
|
||||
if(cle->Anon()==1 && (admin<cle->Admin() || admin==0))
|
||||
if(cle->Anon()==1 && (admin<cle->Admin() || admin == AccountStatus::Player))
|
||||
formatstring=5024;
|
||||
else if(cle->Anon()==1 && admin>=cle->Admin() && admin>0)
|
||||
else if(cle->Anon()==1 && admin>=cle->Admin() && admin > AccountStatus::Player)
|
||||
formatstring=5022;
|
||||
else if(cle->Anon()==2 && (admin<cle->Admin() || admin==0))
|
||||
else if(cle->Anon()==2 && (admin<cle->Admin() || admin == AccountStatus::Player))
|
||||
formatstring=5023;//display guild
|
||||
else if(cle->Anon()==2 && admin>=cle->Admin() && admin>0)
|
||||
else if(cle->Anon()==2 && admin>=cle->Admin() && admin > AccountStatus::Player)
|
||||
formatstring=5022;//display everything
|
||||
|
||||
//war* wars2 = (war*)pack2->pBuffer;
|
||||
@@ -711,10 +723,10 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
uint32 zonestring=0xFFFFFFFF;
|
||||
uint32 plzone=0;
|
||||
uint32 unknown80[2];
|
||||
if(cle->Anon()==0 || (admin>=cle->Admin() && admin>0)){
|
||||
if(cle->Anon()==0 || (admin>=cle->Admin() && admin> AccountStatus::Player)){
|
||||
plclass_=cle->class_();
|
||||
pllevel=cle->level();
|
||||
if(admin>=100)
|
||||
if(admin>=AccountStatus::GMAdmin)
|
||||
pidstring=5003;
|
||||
plrace=cle->race();
|
||||
zonestring=5006;
|
||||
@@ -722,7 +734,7 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
}
|
||||
|
||||
|
||||
if(admin>=cle->Admin() && admin>0)
|
||||
if(admin>=cle->Admin() && admin > AccountStatus::Player)
|
||||
unknown80[0]=cle->Admin();
|
||||
else
|
||||
unknown80[0]=0xFFFFFFFF;
|
||||
@@ -735,7 +747,7 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
strcpy(plname,cle->name());
|
||||
|
||||
char placcount[30]={0};
|
||||
if(admin>=cle->Admin() && admin>0)
|
||||
if(admin>=cle->Admin() && admin > AccountStatus::Player)
|
||||
strcpy(placcount,cle->AccountName());
|
||||
|
||||
memcpy(bufptr,&formatstring, sizeof(uint32));
|
||||
@@ -1020,7 +1032,7 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
if (
|
||||
(cle->Online() >= CLE_Status::Zoning)
|
||||
&& (whom == 0 || (
|
||||
((cle->Admin() >= 80 && cle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
((cle->Admin() >= AccountStatus::QuestTroupe && cle->GetGM()) || whom->gmlookup == 0xFFFF) &&
|
||||
(whom->lvllow == 0xFFFF || (cle->level() >= whom->lvllow && cle->level() <= whom->lvlhigh)) &&
|
||||
(whom->wclass == 0xFFFF || cle->class_() == whom->wclass) &&
|
||||
(whom->wrace == 0xFFFF || cle->race() == whom->wrace) &&
|
||||
@@ -1028,41 +1040,41 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
(tmpZone != 0 && strncasecmp(tmpZone, whom->whom, whomlen) == 0) ||
|
||||
strncasecmp(cle->name(), whom->whom, whomlen) == 0 ||
|
||||
(strncasecmp(guild_mgr.GetGuildName(cle->GuildID()), whom->whom, whomlen) == 0) ||
|
||||
(admin >= 100 && strncasecmp(cle->AccountName(), whom->whom, whomlen) == 0)
|
||||
(admin >= AccountStatus::GMAdmin && strncasecmp(cle->AccountName(), whom->whom, whomlen) == 0)
|
||||
))
|
||||
))
|
||||
) {
|
||||
line[0] = 0;
|
||||
// MYRA - use new (5.x) Status labels in who for telnet connection
|
||||
if (cle->Admin() >= 250)
|
||||
if (cle->Admin() >= AccountStatus::GMImpossible)
|
||||
strcpy(tmpgm, "* GM-Impossible * ");
|
||||
else if (cle->Admin() >= 200)
|
||||
else if (cle->Admin() >= AccountStatus::GMMgmt)
|
||||
strcpy(tmpgm, "* GM-Mgmt * ");
|
||||
else if (cle->Admin() >= 180)
|
||||
else if (cle->Admin() >= AccountStatus::GMCoder)
|
||||
strcpy(tmpgm, "* GM-Coder * ");
|
||||
else if (cle->Admin() >= 170)
|
||||
else if (cle->Admin() >= AccountStatus::GMAreas)
|
||||
strcpy(tmpgm, "* GM-Areas * ");
|
||||
else if (cle->Admin() >= 160)
|
||||
else if (cle->Admin() >= AccountStatus::QuestMaster)
|
||||
strcpy(tmpgm, "* QuestMaster * ");
|
||||
else if (cle->Admin() >= 150)
|
||||
else if (cle->Admin() >= AccountStatus::GMLeadAdmin)
|
||||
strcpy(tmpgm, "* GM-Lead Admin * ");
|
||||
else if (cle->Admin() >= 100)
|
||||
else if (cle->Admin() >= AccountStatus::GMAdmin)
|
||||
strcpy(tmpgm, "* GM-Admin * ");
|
||||
else if (cle->Admin() >= 95)
|
||||
else if (cle->Admin() >= AccountStatus::GMStaff)
|
||||
strcpy(tmpgm, "* GM-Staff * ");
|
||||
else if (cle->Admin() >= 90)
|
||||
else if (cle->Admin() >= AccountStatus::EQSupport)
|
||||
strcpy(tmpgm, "* EQ Support * ");
|
||||
else if (cle->Admin() >= 85)
|
||||
else if (cle->Admin() >= AccountStatus::GMTester)
|
||||
strcpy(tmpgm, "* GM-Tester * ");
|
||||
else if (cle->Admin() >= 81)
|
||||
else if (cle->Admin() >= AccountStatus::SeniorGuide)
|
||||
strcpy(tmpgm, "* Senior Guide * ");
|
||||
else if (cle->Admin() >= 80)
|
||||
else if (cle->Admin() >= AccountStatus::QuestTroupe)
|
||||
strcpy(tmpgm, "* QuestTroupe * ");
|
||||
else if (cle->Admin() >= 50)
|
||||
else if (cle->Admin() >= AccountStatus::Guide)
|
||||
strcpy(tmpgm, "* Guide * ");
|
||||
else if (cle->Admin() >= 20)
|
||||
else if (cle->Admin() >= AccountStatus::ApprenticeGuide)
|
||||
strcpy(tmpgm, "* Apprentice Guide * ");
|
||||
else if (cle->Admin() >= 10)
|
||||
else if (cle->Admin() >= AccountStatus::Steward)
|
||||
strcpy(tmpgm, "* Steward * ");
|
||||
else
|
||||
tmpgm[0] = 0;
|
||||
@@ -1079,16 +1091,16 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
else
|
||||
LFG[0] = 0;
|
||||
|
||||
if (admin >= 150 && admin >= cle->Admin()) {
|
||||
if (admin >= AccountStatus::GMLeadAdmin && admin >= cle->Admin()) {
|
||||
sprintf(accinfo, " AccID: %i AccName: %s LSID: %i Status: %i", cle->AccountID(), cle->AccountName(), cle->LSAccountID(), cle->Admin());
|
||||
}
|
||||
else
|
||||
accinfo[0] = 0;
|
||||
|
||||
if (cle->Anon() == 2) { // Roleplay
|
||||
if (admin >= 100 && admin >= cle->Admin())
|
||||
if (admin >= AccountStatus::GMAdmin && admin >= cle->Admin())
|
||||
sprintf(line, " %s[RolePlay %i %s] %s (%s)%s zone: %s%s%s", tmpgm, cle->level(), GetClassIDName(cle->class_(), cle->level()), cle->name(), GetRaceIDName(cle->race()), tmpguild, tmpZone, LFG, accinfo);
|
||||
else if (cle->Admin() >= 80 && admin < 80 && cle->GetGM()) {
|
||||
else if (cle->Admin() >= AccountStatus::QuestTroupe && admin < AccountStatus::QuestTroupe && cle->GetGM()) {
|
||||
iterator.Advance();
|
||||
continue;
|
||||
}
|
||||
@@ -1096,9 +1108,9 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
sprintf(line, " %s[ANONYMOUS] %s%s%s%s", tmpgm, cle->name(), tmpguild, LFG, accinfo);
|
||||
}
|
||||
else if (cle->Anon() == 1) { // Anon
|
||||
if (admin >= 100 && admin >= cle->Admin())
|
||||
if (admin >= AccountStatus::GMAdmin && admin >= cle->Admin())
|
||||
sprintf(line, " %s[ANON %i %s] %s (%s)%s zone: %s%s%s", tmpgm, cle->level(), GetClassIDName(cle->class_(), cle->level()), cle->name(), GetRaceIDName(cle->race()), tmpguild, tmpZone, LFG, accinfo);
|
||||
else if (cle->Admin() >= 80 && cle->GetGM()) {
|
||||
else if (cle->Admin() >= AccountStatus::QuestTroupe && cle->GetGM()) {
|
||||
iterator.Advance();
|
||||
continue;
|
||||
}
|
||||
@@ -1111,7 +1123,13 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
fmt::format_to(out, line);
|
||||
if (out.size() >= 3584) {
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
out.clear();
|
||||
}
|
||||
else {
|
||||
@@ -1121,17 +1139,17 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
fmt::format_to(out, "\n");
|
||||
}
|
||||
x++;
|
||||
if (x >= 20 && admin < 80)
|
||||
if (x >= 20 && admin < AccountStatus::QuestTroupe)
|
||||
break;
|
||||
}
|
||||
iterator.Advance();
|
||||
}
|
||||
|
||||
if (x >= 20 && admin < 80)
|
||||
if (x >= 20 && admin < AccountStatus::QuestTroupe)
|
||||
fmt::format_to(out, "too many results...20 players shown");
|
||||
else
|
||||
fmt::format_to(out, "{} players online", x);
|
||||
if (admin >= 150 && (whom == 0 || whom->gmlookup != 0xFFFF)) {
|
||||
if (admin >= AccountStatus::GMAdmin && (whom == 0 || whom->gmlookup != 0xFFFF)) {
|
||||
if (connection->IsConsole())
|
||||
fmt::format_to(out, "\r\n");
|
||||
else
|
||||
@@ -1140,7 +1158,13 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
|
||||
//console_list.SendConsoleWho(connection, to, admin, &output, &outsize, &outlen);
|
||||
}
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
void ClientList::Add(Client* client) {
|
||||
@@ -1386,7 +1410,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
Name,
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"There {} {} Titanium, {} SoF, {} SoD, {} UF, {} RoF, and {} RoF2 Client{} currently connected for a total of {} Client{} and {} Unique IP{} connected.",
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ public:
|
||||
void DisconnectByIP(uint32 iIP);
|
||||
void CLCheckStale();
|
||||
void CLEKeepAlive(uint32 numupdates, uint32* wid);
|
||||
void CLEAdd(uint32 iLSID, const char* iLoginServerName, const char* iLoginName, const char* iLoginKey, int16 iWorldAdmin = 0, uint32 ip = 0, uint8 local=0);
|
||||
void CLEAdd(uint32 iLSID, const char* iLoginServerName, const char* iLoginName, const char* iLoginKey, int16 iWorldAdmin = AccountStatus::Player, uint32 ip = 0, uint8 local=0);
|
||||
void UpdateClientGuild(uint32 char_id, uint32 guild_id);
|
||||
void RemoveCLEByLSID(uint32 iLSID);
|
||||
bool IsAccountInGame(uint32 iLSID);
|
||||
|
||||
+38
-7
@@ -280,20 +280,33 @@ void ConsoleEmote(
|
||||
join_args.erase(join_args.begin(), join_args.begin() + 2);
|
||||
|
||||
if (strcasecmp(args[0].c_str(), "world") == 0) {
|
||||
zoneserver_list.SendEmoteMessageRaw(0, 0, 0, atoi(args[1].c_str()), JoinString(join_args, " ").c_str());
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
atoi(args[1].c_str()),
|
||||
JoinString(join_args, " ").c_str()
|
||||
);
|
||||
}
|
||||
else {
|
||||
ZoneServer *zs = zoneserver_list.FindByName(args[0].c_str());
|
||||
if (zs != 0) {
|
||||
zs->SendEmoteMessageRaw(0, 0, 0, atoi(args[1].c_str()), JoinString(join_args, " ").c_str());
|
||||
zs->SendEmoteMessageRaw(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
atoi(args[1].c_str()),
|
||||
JoinString(join_args, " ").c_str()
|
||||
);
|
||||
}
|
||||
else {
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
args[0].c_str(),
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
atoi(args[1].c_str()),
|
||||
JoinString(join_args, " ").c_str());
|
||||
JoinString(join_args, " ").c_str()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -637,7 +650,16 @@ void ConsoleZoneLock(
|
||||
uint16 tmp = ZoneID(args[1].c_str());
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, true)) {
|
||||
zoneserver_list.SendEmoteMessage(0, 0, 80, 15, "Zone locked: %s", ZoneName(tmp));
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
Chat::Yellow,
|
||||
fmt::format(
|
||||
"Zone locked: {}",
|
||||
ZoneName(tmp)
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
else {
|
||||
connection->SendLine("Failed to change lock");
|
||||
@@ -655,7 +677,16 @@ void ConsoleZoneLock(
|
||||
uint16 tmp = ZoneID(args[1].c_str());
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, false)) {
|
||||
zoneserver_list.SendEmoteMessage(0, 0, 80, 15, "Zone unlocked: %s", ZoneName(tmp));
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
Chat::Yellow,
|
||||
fmt::format(
|
||||
"Zone unlocked: {}",
|
||||
ZoneName(tmp)
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
else {
|
||||
connection->SendLine("Failed to change lock");
|
||||
@@ -782,7 +813,7 @@ void ConsoleWorldShutdown(
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
"[SYSTEM] World shutdown has been aborted."
|
||||
);
|
||||
|
||||
@@ -481,10 +481,10 @@ void Console::ProcessCommand(const char* command) {
|
||||
SendMessage(1, " version");
|
||||
SendMessage(1, " worldshutdown");
|
||||
}
|
||||
if (admin >= 201) {
|
||||
if (admin >= AccountStatus::GMMgmt) {
|
||||
SendMessage(1, " IPLookup [name]");
|
||||
}
|
||||
if (admin >= 100) {
|
||||
if (admin >= AccountStatus::GMAdmin) {
|
||||
SendMessage(1, " LSReconnect");
|
||||
SendMessage(1, " signalcharbyname charname ID");
|
||||
SendMessage(1, " reloadworld");
|
||||
@@ -799,7 +799,7 @@ void Console::ProcessCommand(const char* command) {
|
||||
SendMessage(1, " Compiled on: %s at %s", COMPILE_DATE, COMPILE_TIME);
|
||||
SendMessage(1, " Last modified on: %s", LAST_MODIFIED);
|
||||
}
|
||||
else if (strcasecmp(sep.arg[0], "serverinfo") == 0 && admin >= 200) {
|
||||
else if (strcasecmp(sep.arg[0], "serverinfo") == 0 && admin >= AccountStatus::GMMgmt) {
|
||||
if (strcasecmp(sep.arg[1], "os") == 0) {
|
||||
#ifdef _WINDOWS
|
||||
GetOS();
|
||||
@@ -821,10 +821,10 @@ void Console::ProcessCommand(const char* command) {
|
||||
SendMessage(1, " OS - Operating system version information.");
|
||||
}
|
||||
}
|
||||
else if (strcasecmp(sep.arg[0], "IPLookup") == 0 && admin >= 201) {
|
||||
else if (strcasecmp(sep.arg[0], "IPLookup") == 0 && admin >= AccountStatus::GMMgmt) {
|
||||
client_list.SendCLEList(admin, 0, this, sep.argplus[1]);
|
||||
}
|
||||
else if (strcasecmp(sep.arg[0], "LSReconnect") == 0 && admin >= 100) {
|
||||
else if (strcasecmp(sep.arg[0], "LSReconnect") == 0 && admin >= AccountStatus::GMAdmin) {
|
||||
#ifdef _WINDOWS
|
||||
_beginthread(AutoInitLoginServer, 0, nullptr);
|
||||
#else
|
||||
@@ -839,7 +839,7 @@ void Console::ProcessCommand(const char* command) {
|
||||
if (strcasecmp(sep.arg[1], "list") == 0) {
|
||||
zoneserver_list.ListLockedZones(0, this);
|
||||
}
|
||||
else if (strcasecmp(sep.arg[1], "lock") == 0 && admin >= 101) {
|
||||
else if (strcasecmp(sep.arg[1], "lock") == 0 && admin >= AccountStatus::GMAdmin) {
|
||||
uint16 tmp = ZoneID(sep.arg[2]);
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, true))
|
||||
@@ -850,7 +850,7 @@ void Console::ProcessCommand(const char* command) {
|
||||
else
|
||||
SendMessage(1, "Usage: #zonelock lock [zonename]");
|
||||
}
|
||||
else if (strcasecmp(sep.arg[1], "unlock") == 0 && admin >= 101) {
|
||||
else if (strcasecmp(sep.arg[1], "unlock") == 0 && admin >= AccountStatus::GMAdmin) {
|
||||
uint16 tmp = ZoneID(sep.arg[2]);
|
||||
if (tmp) {
|
||||
if (zoneserver_list.SetLockedZone(tmp, false))
|
||||
@@ -864,13 +864,13 @@ void Console::ProcessCommand(const char* command) {
|
||||
else {
|
||||
SendMessage(1, "#zonelock sub-commands");
|
||||
SendMessage(1, " list");
|
||||
if (admin >= 101) {
|
||||
if (admin >= AccountStatus::GMAdmin) {
|
||||
SendMessage(1, " lock [zonename]");
|
||||
SendMessage(1, " unlock [zonename]");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (strcasecmp(sep.arg[0], "reloadworld") == 0 && admin > 101)
|
||||
else if (strcasecmp(sep.arg[0], "reloadworld") == 0 && admin > AccountStatus::GMAdmin)
|
||||
{
|
||||
SendEmoteMessage(0,0,0,15,"Reloading World...");
|
||||
auto pack = new ServerPacket(ServerOP_ReloadWorld, sizeof(ReloadWorld_Struct));
|
||||
|
||||
+8
-1
@@ -37,6 +37,7 @@
|
||||
#include "launcher_list.h"
|
||||
#include "launcher_link.h"
|
||||
#include "wguild_mgr.h"
|
||||
#include "../common/emu_constants.h"
|
||||
|
||||
#ifdef seed
|
||||
#undef seed
|
||||
@@ -360,7 +361,13 @@ void EQW::ResolveBug(const char *id) {
|
||||
}
|
||||
|
||||
void EQW::SendMessage(uint32 type, const char *msg) {
|
||||
zoneserver_list.SendEmoteMessage(0, 0, 0, type, msg);
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
type,
|
||||
msg
|
||||
);
|
||||
}
|
||||
|
||||
void EQW::WorldShutDown(uint32 time, uint32 interval) {
|
||||
|
||||
@@ -306,7 +306,13 @@ void LoginServer::ProcessSystemwideMessage(uint16_t opcode, EQ::Net::Packet &p)
|
||||
LogNetcode("Received ServerPacket from LS OpCode {:#04x}", opcode);
|
||||
|
||||
ServerSystemwideMessage *swm = (ServerSystemwideMessage *) p.Data();
|
||||
zoneserver_list.SendEmoteMessageRaw(0, 0, 0, swm->type, swm->message);
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
swm->type,
|
||||
swm->message
|
||||
);
|
||||
}
|
||||
|
||||
void LoginServer::ProcessLSRemoteAddr(uint16_t opcode, EQ::Net::Packet &p)
|
||||
|
||||
+9
-7
@@ -252,13 +252,15 @@ static void GMSayHookCallBackProcessWorld(uint16 log_category, std::string messa
|
||||
|
||||
for (size_t iter = 0; iter < message_split.size(); ++iter) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
nullptr,
|
||||
0,
|
||||
80,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
LogSys.GetGMSayColorFromCategory(log_category),
|
||||
" %s%s",
|
||||
(iter == 0 ? " ---" : ""),
|
||||
message_split[iter].c_str()
|
||||
fmt::format(
|
||||
" {}{}",
|
||||
(iter == 0 ? " ---" : ""),
|
||||
message_split[iter]
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -266,9 +268,9 @@ static void GMSayHookCallBackProcessWorld(uint16 log_category, std::string messa
|
||||
}
|
||||
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
nullptr,
|
||||
0,
|
||||
80,
|
||||
0,
|
||||
AccountStatus::QuestTroupe,
|
||||
LogSys.GetGMSayColorFromCategory(log_category),
|
||||
"%s",
|
||||
message.c_str()
|
||||
|
||||
@@ -45,7 +45,13 @@ void WorldEventScheduler::Process(ZSList *zs_list)
|
||||
if (ValidateEventReadyToActivate(e)) {
|
||||
if (e.event_type == ServerEvents::EVENT_TYPE_BROADCAST) {
|
||||
LogScheduler("Sending broadcast [{}]", e.event_data.c_str());
|
||||
zs_list->SendEmoteMessage(nullptr, 0, 0, 15, e.event_data.c_str());
|
||||
zs_list->SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
e.event_data.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
if (e.event_type == ServerEvents::EVENT_TYPE_RELOAD_WORLD) {
|
||||
|
||||
+86
-32
@@ -51,19 +51,17 @@ ZSList::~ZSList() {
|
||||
|
||||
void ZSList::ShowUpTime(WorldTCPConnection* con, const char* adminname) {
|
||||
uint32 ms = Timer::GetCurrentTime();
|
||||
uint32 d = ms / 86400000;
|
||||
ms -= d * 86400000;
|
||||
uint32 h = ms / 3600000;
|
||||
ms -= h * 3600000;
|
||||
uint32 m = ms / 60000;
|
||||
ms -= m * 60000;
|
||||
uint32 s = ms / 1000;
|
||||
if (d)
|
||||
con->SendEmoteMessage(adminname, 0, 0, 0, "Worldserver Uptime: %02id %02ih %02im %02is", d, h, m, s);
|
||||
else if (h)
|
||||
con->SendEmoteMessage(adminname, 0, 0, 0, "Worldserver Uptime: %02ih %02im %02is", h, m, s);
|
||||
else
|
||||
con->SendEmoteMessage(adminname, 0, 0, 0, "Worldserver Uptime: %02im %02is", m, s);
|
||||
std::string time_string = ConvertSecondsToTime(ms);
|
||||
con->SendEmoteMessage(
|
||||
adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Worldserver Uptime | {}",
|
||||
time_string
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
|
||||
void ZSList::Add(ZoneServer* zoneserver) {
|
||||
@@ -113,7 +111,7 @@ void ZSList::Process() {
|
||||
SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
fmt::format(
|
||||
"[SYSTEM] World will be shutting down in {} minutes.",
|
||||
@@ -277,7 +275,7 @@ void ZSList::ListLockedZones(const char* to, WorldTCPConnection* connection) {
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
EQ::constants::AccountStatus::Player,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Zone {} | Name: {} ({}) ID: {}",
|
||||
@@ -299,7 +297,7 @@ void ZSList::ListLockedZones(const char* to, WorldTCPConnection* connection) {
|
||||
connection->SendEmoteMessage(
|
||||
to,
|
||||
0,
|
||||
EQ::constants::AccountStatus::Player,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
zone_message.c_str()
|
||||
);
|
||||
@@ -355,7 +353,7 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
|
||||
else
|
||||
is_static_string[0] = 'D';
|
||||
|
||||
if (admin >= 150) {
|
||||
if (admin >= AccountStatus::GMLeadAdmin) {
|
||||
if (zone_server_data->GetZoneID()) {
|
||||
snprintf(zone_data_string, sizeof(zone_data_string), "%s (%i)", zone_server_data->GetZoneName(), zone_server_data->GetZoneID());
|
||||
}
|
||||
@@ -381,7 +379,13 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
|
||||
|
||||
if (out.size() >= 3584) {
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
out.clear();
|
||||
}
|
||||
else {
|
||||
@@ -400,7 +404,13 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
|
||||
fmt::format_to(out, " #{} {} {}", zone_server_data->GetID(), is_static_string, zone_data_string);
|
||||
if (out.size() >= 3584) {
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
out.clear();
|
||||
}
|
||||
else {
|
||||
@@ -427,7 +437,13 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
|
||||
fmt::format_to(out, "{} zones are static zones, {} zones are booted zones, {} zones available.", z, w, v);
|
||||
|
||||
auto output = fmt::to_string(out);
|
||||
connection->SendEmoteMessageRaw(to, 0, 0, 10, output.c_str());
|
||||
connection->SendEmoteMessageRaw(
|
||||
to,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::NPCQuestSay,
|
||||
output.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
void ZSList::SendChannelMessage(const char* from, const char* to, uint8 chan_num, uint8 language, const char* message, ...) {
|
||||
@@ -558,20 +574,52 @@ void ZSList::SOPZoneBootup(const char* adminname, uint32 ZoneServerID, const cha
|
||||
ZoneServer* zs = 0;
|
||||
ZoneServer* zs2 = 0;
|
||||
uint32 zoneid;
|
||||
if (!(zoneid = ZoneID(zonename)))
|
||||
SendEmoteMessage(adminname, 0, 0, 0, "Error: SOP_ZoneBootup: zone '%s' not found in 'zone' table. Typo protection=ON.", zonename);
|
||||
else {
|
||||
if (ZoneServerID != 0)
|
||||
if (!(zoneid = ZoneID(zonename))) {
|
||||
SendEmoteMessage(
|
||||
adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Error: SOP_ZoneBootup: Zone '{}' not found in 'zone' table.",
|
||||
zonename
|
||||
).c_str()
|
||||
);
|
||||
} else {
|
||||
if (ZoneServerID != 0) {
|
||||
zs = FindByID(ZoneServerID);
|
||||
else
|
||||
SendEmoteMessage(adminname, 0, 0, 0, "Error: SOP_ZoneBootup: ServerID must be specified");
|
||||
} else {
|
||||
SendEmoteMessage(
|
||||
adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
"Error: SOP_ZoneBootup: Server ID must be specified."
|
||||
);
|
||||
}
|
||||
|
||||
if (zs == 0)
|
||||
SendEmoteMessage(adminname, 0, 0, 0, "Error: SOP_ZoneBootup: zoneserver not found");
|
||||
else {
|
||||
if (!zs) {
|
||||
SendEmoteMessage(
|
||||
adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
"Error: SOP_ZoneBootup: Zoneserver not found."
|
||||
);
|
||||
} else {
|
||||
zs2 = FindByName(zonename);
|
||||
if (zs2 != 0)
|
||||
SendEmoteMessage(adminname, 0, 0, 0, "Error: SOP_ZoneBootup: zone '%s' already being hosted by ZoneServer #%i", zonename, zs2->GetID());
|
||||
SendEmoteMessage(
|
||||
adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Error: SOP_ZoneBootup: Zone '{}' already being hosted by Zoneserver ID {}.",
|
||||
zonename,
|
||||
zs2->GetID()
|
||||
).c_str()
|
||||
);
|
||||
else {
|
||||
zs->TriggerBootup(zoneid, 0, adminname, iMakeStatic);
|
||||
}
|
||||
@@ -714,7 +762,7 @@ void ZSList::WorldShutDown(uint32 time, uint32 interval)
|
||||
SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
fmt::format(
|
||||
"[SYSTEM] World will be shutting down in {} minutes.",
|
||||
@@ -733,7 +781,13 @@ void ZSList::WorldShutDown(uint32 time, uint32 interval)
|
||||
reminder->Start();
|
||||
}
|
||||
else {
|
||||
SendEmoteMessage(0, 0, 0, 15, "[SYSTEM] World is shutting down.");
|
||||
SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Yellow,
|
||||
"[SYSTEM] World is shutting down."
|
||||
);
|
||||
auto pack = new ServerPacket;
|
||||
pack->opcode = ServerOP_ShutdownAll;
|
||||
pack->size = 0;
|
||||
|
||||
+132
-47
@@ -438,7 +438,16 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
safe_delete(pack);
|
||||
}))) && (!scm->noreply))
|
||||
{
|
||||
zoneserver_list.SendEmoteMessage(scm->from, 0, 0, 0, "%s is not online at this time.", scm->to);
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
scm->from,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"{} is not online at this time.",
|
||||
scm->to
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -446,7 +455,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
|
||||
ClientListEntry* cle = client_list.FindCharacter(scm->deliverto);
|
||||
if (cle == 0 || cle->Online() < CLE_Status::Zoning ||
|
||||
(cle->TellsOff() && ((cle->Anon() == 1 && scm->fromadmin < cle->Admin()) || scm->fromadmin < 80))) {
|
||||
(cle->TellsOff() && ((cle->Anon() == 1 && scm->fromadmin < cle->Admin()) || scm->fromadmin < AccountStatus::QuestTroupe))) {
|
||||
if (!scm->noreply) {
|
||||
ClientListEntry* sender = client_list.FindCharacter(scm->from);
|
||||
if (!sender || !sender->Server())
|
||||
@@ -491,7 +500,17 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
else if (cle->Server() == 0) {
|
||||
if (!scm->noreply)
|
||||
zoneserver_list.SendEmoteMessage(scm->from, 0, 0, 0, "You told %s, '%s is not contactable at this time'", scm->to, scm->to);
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
scm->from,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"You told {}, '{} is not contactable at this time'",
|
||||
scm->to,
|
||||
scm->to
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
else
|
||||
cle->Server()->SendPacket(pack);
|
||||
@@ -518,29 +537,36 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
case ServerOP_EmoteMessage: {
|
||||
ServerEmoteMessage_Struct* sem = (ServerEmoteMessage_Struct*)pack->pBuffer;
|
||||
zoneserver_list.SendEmoteMessageRaw(sem->to, sem->guilddbid, sem->minstatus, sem->type, sem->message);
|
||||
zoneserver_list.SendEmoteMessageRaw(
|
||||
sem->to,
|
||||
sem->guilddbid,
|
||||
sem->minstatus,
|
||||
sem->type,
|
||||
sem->message
|
||||
);
|
||||
break;
|
||||
}
|
||||
case ServerOP_VoiceMacro: {
|
||||
|
||||
ServerVoiceMacro_Struct* svm = (ServerVoiceMacro_Struct*)pack->pBuffer;
|
||||
|
||||
if (svm->Type == VoiceMacroTell) {
|
||||
|
||||
ClientListEntry* cle = client_list.FindCharacter(svm->To);
|
||||
|
||||
if (!cle || (cle->Online() < CLE_Status::Zoning) || !cle->Server()) {
|
||||
|
||||
zoneserver_list.SendEmoteMessage(svm->From, 0, 0, 0, "'%s is not online at this time'", svm->To);
|
||||
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
svm->From,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"'{} is not online at this time'",
|
||||
svm->To
|
||||
).c_str()
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
cle->Server()->SendPacket(pack);
|
||||
}
|
||||
else
|
||||
} else {
|
||||
zoneserver_list.SendPacket(pack);
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -656,17 +682,31 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
case ServerOP_ZoneShutdown: {
|
||||
ServerZoneStateChange_struct* s = (ServerZoneStateChange_struct *)pack->pBuffer;
|
||||
ZoneServer* zs = 0;
|
||||
if (s->ZoneServerID != 0)
|
||||
if (s->ZoneServerID != 0) {
|
||||
zs = zoneserver_list.FindByID(s->ZoneServerID);
|
||||
else if (s->zoneid != 0)
|
||||
} else if (s->zoneid != 0) {
|
||||
zs = zoneserver_list.FindByName(ZoneName(s->zoneid));
|
||||
else
|
||||
zoneserver_list.SendEmoteMessage(s->adminname, 0, 0, 0, "Error: SOP_ZoneShutdown: neither ID nor name specified");
|
||||
} else {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
s->adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
"Error: SOP_ZoneShutdown: neither ID nor name specified"
|
||||
);
|
||||
}
|
||||
|
||||
if (zs == 0)
|
||||
zoneserver_list.SendEmoteMessage(s->adminname, 0, 0, 0, "Error: SOP_ZoneShutdown: zoneserver not found");
|
||||
else
|
||||
if (!zs) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
s->adminname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
"Error: SOP_ZoneShutdown: zoneserver not found"
|
||||
);
|
||||
} else {
|
||||
zs->SendPacket(pack);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ServerOP_ZoneBootup: {
|
||||
@@ -717,7 +757,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
if (GetZoneID() == ztz->current_zone_id && GetInstanceID() == ztz->current_instance_id) {
|
||||
LogInfo("Processing ZTZ for egress from zone for client [{}]", ztz->name);
|
||||
|
||||
if (ztz->admin < 80 && ztz->ignorerestrictions < 2 && zoneserver_list.IsZoneLocked(ztz->requested_zone_id)) {
|
||||
if (ztz->admin < AccountStatus::QuestTroupe && ztz->ignorerestrictions < 2 && zoneserver_list.IsZoneLocked(ztz->requested_zone_id)) {
|
||||
ztz->response = 0;
|
||||
SendPacket(pack);
|
||||
break;
|
||||
@@ -909,15 +949,43 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
ServerGMGoto_Struct* gmg = (ServerGMGoto_Struct*)pack->pBuffer;
|
||||
ClientListEntry* cle = client_list.FindCharacter(gmg->gotoname);
|
||||
if (cle != 0) {
|
||||
if (cle->Server() == 0)
|
||||
this->SendEmoteMessage(gmg->myname, 0, 0, 13, "Error: Cannot identify %s's zoneserver.", gmg->gotoname);
|
||||
else if (cle->Anon() == 1 && cle->Admin() > gmg->admin) // no snooping for anon GMs
|
||||
this->SendEmoteMessage(gmg->myname, 0, 0, 13, "Error: %s not found", gmg->gotoname);
|
||||
else
|
||||
if (!cle->Server()) {
|
||||
SendEmoteMessage(
|
||||
gmg->myname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Red,
|
||||
fmt::format(
|
||||
"Error: Cannot identify {}'s zoneserver.",
|
||||
gmg->gotoname
|
||||
).c_str()
|
||||
);
|
||||
} else if (cle->Anon() == 1 && cle->Admin() > gmg->admin) { // no snooping for anon GMs
|
||||
SendEmoteMessage(
|
||||
gmg->myname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Red,
|
||||
fmt::format(
|
||||
"Error: {} not found.",
|
||||
gmg->gotoname
|
||||
).c_str()
|
||||
);
|
||||
} else {
|
||||
cle->Server()->SendPacket(pack);
|
||||
}
|
||||
}
|
||||
else {
|
||||
this->SendEmoteMessage(gmg->myname, 0, 0, 13, "Error: %s not found", gmg->gotoname);
|
||||
SendEmoteMessage(
|
||||
gmg->myname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Red,
|
||||
fmt::format(
|
||||
"Error: {} not found",
|
||||
gmg->gotoname
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -933,16 +1001,28 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
WorldConfig::UnlockWorld();
|
||||
if (loginserverlist.Connected()) {
|
||||
loginserverlist.SendStatus();
|
||||
if (slock->mode >= 1)
|
||||
this->SendEmoteMessage(slock->myname, 0, 0, 13, "World locked");
|
||||
else
|
||||
this->SendEmoteMessage(slock->myname, 0, 0, 13, "World unlocked");
|
||||
SendEmoteMessage(
|
||||
slock->myname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Red,
|
||||
fmt::format(
|
||||
"World {}.",
|
||||
slock->mode ? "locked" : "unlocked"
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
else {
|
||||
if (slock->mode >= 1)
|
||||
this->SendEmoteMessage(slock->myname, 0, 0, 13, "World locked, but login server not connected.");
|
||||
else
|
||||
this->SendEmoteMessage(slock->myname, 0, 0, 13, "World unlocked, but login server not conencted.");
|
||||
SendEmoteMessage(
|
||||
slock->myname,
|
||||
0,
|
||||
AccountStatus::Player,
|
||||
Chat::Red,
|
||||
fmt::format(
|
||||
"World {}, but login server not connected.",
|
||||
slock->mode ? "locked" : "unlocked"
|
||||
).c_str()
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -953,7 +1033,6 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
ServerMotd_Struct* smotd = (ServerMotd_Struct*)pack->pBuffer;
|
||||
database.SetVariable("MOTD", smotd->motd);
|
||||
//this->SendEmoteMessage(smotd->myname, 0, 0, 13, "Updated Motd.");
|
||||
zoneserver_list.SendPacket(pack);
|
||||
break;
|
||||
}
|
||||
@@ -1024,22 +1103,22 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
}
|
||||
|
||||
ServerLockZone_Struct* lock_zone = (ServerLockZone_Struct*) pack->pBuffer;
|
||||
if (lock_zone->op == EQ::constants::ServerLockType::List) {
|
||||
if (lock_zone->op == ServerLockType::List) {
|
||||
zoneserver_list.ListLockedZones(lock_zone->adminname, this);
|
||||
break;
|
||||
} else if (
|
||||
lock_zone->op == EQ::constants::ServerLockType::Lock ||
|
||||
lock_zone->op == EQ::constants::ServerLockType::Unlock
|
||||
lock_zone->op == ServerLockType::Lock ||
|
||||
lock_zone->op == ServerLockType::Unlock
|
||||
) {
|
||||
if (zoneserver_list.SetLockedZone(lock_zone->zoneID, lock_zone->op == EQ::constants::ServerLockType::Lock)) {
|
||||
if (zoneserver_list.SetLockedZone(lock_zone->zoneID, lock_zone->op == ServerLockType::Lock)) {
|
||||
zoneserver_list.SendEmoteMessage(
|
||||
0,
|
||||
0,
|
||||
EQ::constants::AccountStatus::QuestTroupe,
|
||||
AccountStatus::QuestTroupe,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Zone {} | Name: {} ({}) ID: {}",
|
||||
lock_zone->op == EQ::constants::ServerLockType::Lock ? "Locked" : "Unlocked",
|
||||
lock_zone->op == ServerLockType::Lock ? "Locked" : "Unlocked",
|
||||
ZoneLongName(lock_zone->zoneID),
|
||||
ZoneName(lock_zone->zoneID),
|
||||
lock_zone->zoneID
|
||||
@@ -1049,11 +1128,11 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
||||
SendEmoteMessageRaw(
|
||||
lock_zone->adminname,
|
||||
0,
|
||||
EQ::constants::AccountStatus::Player,
|
||||
AccountStatus::Player,
|
||||
Chat::White,
|
||||
fmt::format(
|
||||
"Zone Failed to {} | Name: {} ({}) ID: {}",
|
||||
lock_zone->op == EQ::constants::ServerLockType::Lock ? "Lock" : "Unlock",
|
||||
lock_zone->op == ServerLockType::Lock ? "Lock" : "Unlock",
|
||||
ZoneLongName(lock_zone->zoneID),
|
||||
ZoneName(lock_zone->zoneID),
|
||||
lock_zone->zoneID
|
||||
@@ -1404,7 +1483,13 @@ void ZoneServer::SendEmoteMessage(const char* to, uint32 to_guilddbid, int16 to_
|
||||
va_start(argptr, message);
|
||||
vsnprintf(buffer, sizeof(buffer), message, argptr);
|
||||
va_end(argptr);
|
||||
SendEmoteMessageRaw(to, to_guilddbid, to_minstatus, type, buffer);
|
||||
SendEmoteMessageRaw(
|
||||
to,
|
||||
to_guilddbid,
|
||||
to_minstatus,
|
||||
type,
|
||||
buffer
|
||||
);
|
||||
}
|
||||
|
||||
void ZoneServer::SendEmoteMessageRaw(const char* to, uint32 to_guilddbid, int16 to_minstatus, uint32 type, const char* message) {
|
||||
|
||||
Reference in New Issue
Block a user