mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
* [Feature] Add Experience Gain Toggle. # Perl - Add `$client->IsEXPEnabled()`. - Add `$client->SetEXPEnabled(is_exp_enabled)`. # Lua - Add `client:IsEXPEnabled()`. - Add `client:SetEXPEnabled(is_exp_enabled)`. # Commands - Add `#exptoggle [Toggle] - Toggle your or your target's experience gain.`. # Notes - Allows operators to turn on/off a player's experience gain individually without changing their rule values. - The command allows operators to give players access to the command to disable their own experience gain.
29 lines
687 B
C++
29 lines
687 B
C++
#include "../client.h"
|
|
|
|
void command_exptoggle(Client *c, const Seperator *sep)
|
|
{
|
|
auto arguments = sep->argnum;
|
|
if (!arguments || arguments > 1) {
|
|
c->Message(Chat::White, "Usage: #exptoggle [Toggle] - Toggle your or your target's experience gain.");
|
|
return;
|
|
}
|
|
|
|
auto t = c;
|
|
if (c->GetTarget() && c->GetTarget()->IsClient() && c->GetGM()) {
|
|
t = c->GetTarget()->CastToClient();
|
|
}
|
|
|
|
const auto is_exp_enabled = Strings::ToBool(sep->arg[1]);
|
|
|
|
t->SetEXPEnabled(is_exp_enabled);
|
|
|
|
c->Message(
|
|
Chat::White,
|
|
fmt::format(
|
|
"Experience gain for {} is now {}abled.",
|
|
c->GetTargetDescription(t, TargetDescriptionType::LCSelf),
|
|
is_exp_enabled ? "en" : "dis"
|
|
).c_str()
|
|
);
|
|
}
|