mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-13 17:09:08 +00:00
63 lines
1.8 KiB
C++
63 lines
1.8 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it
|
|
* and/or modify it under version 2 of the License, or (at your option), any later version.
|
|
*/
|
|
|
|
#include "FlagAction.h"
|
|
|
|
#include "Event.h"
|
|
#include "Playerbots.h"
|
|
|
|
bool FlagAction::TellUsage()
|
|
{
|
|
botAI->TellError("Usage: flag cloak/helm/pvp on/set/off/clear/toggle/?");
|
|
return false;
|
|
}
|
|
|
|
bool FlagAction::Execute(Event event)
|
|
{
|
|
std::string const cmd = event.getParam();
|
|
std::vector<std::string> ss = split(cmd, ' ');
|
|
if (ss.size() != 2)
|
|
return TellUsage();
|
|
|
|
bool setFlag = (ss[1] == "set" || ss[1] == "on");
|
|
bool clearFlag = (ss[1] == "clear" || ss[1] == "off");
|
|
bool toggleFlag = (ss[1] == "toggle");
|
|
if (ss[0] == "pvp")
|
|
{
|
|
if (setFlag)
|
|
bot->SetPvP(true);
|
|
else if (clearFlag)
|
|
bot->SetPvP(false);
|
|
else if (toggleFlag)
|
|
bot->SetPvP(!bot->IsPvP());
|
|
|
|
std::ostringstream out;
|
|
out << ss[0] << " flag is " << chat->FormatBoolean(bot->IsPvP());
|
|
botAI->TellMaster(out.str());
|
|
return true;
|
|
}
|
|
|
|
uint32 playerFlags;
|
|
if (ss[0] == "cloak")
|
|
playerFlags = PLAYER_FLAGS_HIDE_CLOAK;
|
|
|
|
if (ss[0] == "helm")
|
|
playerFlags = PLAYER_FLAGS_HIDE_HELM;
|
|
|
|
if (clearFlag)
|
|
bot->SetFlag(PLAYER_FLAGS, playerFlags);
|
|
else if (setFlag)
|
|
bot->RemoveFlag(PLAYER_FLAGS, playerFlags);
|
|
else if (toggleFlag && bot->HasFlag(PLAYER_FLAGS, playerFlags))
|
|
bot->RemoveFlag(PLAYER_FLAGS, playerFlags);
|
|
else if (toggleFlag && !bot->HasFlag(PLAYER_FLAGS, playerFlags))
|
|
bot->SetFlag(PLAYER_FLAGS, playerFlags);
|
|
|
|
std::ostringstream out;
|
|
out << ss[0] << " flag is " << chat->FormatBoolean(!bot->HasFlag(PLAYER_FLAGS, playerFlags));
|
|
botAI->TellMaster(out.str());
|
|
return true;
|
|
}
|