Работает с этим, проверено.
http://getmangos.com/community/showt...l=1#post116960
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 53706be..eb63ea2 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -2514,6 +2514,9 @@ void Player::GiveXP(uint32 xp, Unit* victim)
if(!isAlive())
return;
+ if(HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+ return;
+
uint32 level = getLevel();
// XP to money conversion processed in Player::RewardQuest
@@ -17627,6 +17630,13 @@ void Player::BuildPlayerChat(WorldPacket *data, uint8 msgtype, const std::string
void Player::Say(const std::string& text, const uint32 language)
{
+
+ if(text == "xp 0" && !HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+ SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED);
+ else if (text == "xp 1" && HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED))
+ RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_XP_USER_DISABLED);
+
WorldPacket data(SMSG_MESSAGECHAT, 200);
BuildPlayerChat(&data, CHAT_MSG_SAY, text, language);
SendMessageToSetInRange(&data,sWorld.getConfig(CONFIG_FLOAT_LISTEN_RANGE_SAY),true);