mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-17 02:40:28 +00:00
Big update.
This commit is contained in:
61
src/strategy/actions/FlagAction.cpp
Normal file
61
src/strategy/actions/FlagAction.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user