您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ExecuteCommandInTable函数代码示例

51自学网 2021-06-01 20:39:47
  C++
这篇教程C++ ExecuteCommandInTable函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ExecuteCommandInTable函数的典型用法代码示例。如果您正苦于以下问题:C++ ExecuteCommandInTable函数的具体用法?C++ ExecuteCommandInTable怎么用?C++ ExecuteCommandInTable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ExecuteCommandInTable函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ASSERT

int ChatHandler::ParseCommands(const char* text, WorldSession *session){    m_session = session;    ASSERT(text);    ASSERT(*text);    //if(m_session->GetSecurity() == 0)    //    return 0;    if(text[0] != '!' && text[0] != '.')        return 0;    // ignore single . and ! in line    if(strlen(text) < 2)        return 0;    // ignore messages staring from many dots.    if(text[0] == '.' && text[1] == '.' || text[0] == '!' && text[1] == '!')        return 0;    text++;    if(!ExecuteCommandInTable(getCommandTable(), text))    {        WorldPacket data;        FillSystemMessageData(&data, m_session, "There is no such command.");        m_session->SendPacket(&data);    }    return 1;}
开发者ID:Artea,项目名称:mangos-svn,代码行数:31,


示例2: ParseCommands

int ChatHandler::ParseCommands(const char* text, WorldSession *session){	if (!session)		return 0;	if(!*text)		return 0;	if(session->GetPermissionCount() == 0)		return 0;	if(text[0] != '!' && text[0] != '.') // let's not confuse users		return 0;	/* skip '..' :P that pisses me off */	if(text[1] == '.')		return 0;	text++;	if(!ExecuteCommandInTable(CommandTableStorage::getSingleton().Get(), text, session))	{		SystemMessage(session, "There is no such command, or you do not have access to it.");	}	return 1;}
开发者ID:Sylica2013,项目名称:Antrix,代码行数:27,


示例3: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand *table, uint8* text){    char *cmd = (char*)text;	uint32 AcctLvl = m_pClient->getAccountLvl();    while (*text != ' ' && *text != '/0') text++; // skip command    if(*text != '/0')    {        *text = '/0';        text++;    }    while (*text == ' ') text++; // skip whitespace    if(*cmd == '/0')        return false;    for(uint32 i = 0; table[i].Name != NULL; i++)    {        if(!hasStringAbbr(table[i].Name, cmd))            continue;        if(AcctLvl < table[i].SecurityLevel)            continue;		if(table[i].ChildCommands != NULL)        {            if(!ExecuteCommandInTable(table[i].ChildCommands, text))            {                if(table[i].Help != "")                    SendMultilineMessage(table[i].Help.c_str());                else                {                    wowWData data;                    FillMessageData(&data, 0x09, m_pClient, (uint8*)"There is no such subcommand.");                    m_pClient->SendMsg(&data);                }            }            return true;        }		if(!(this->*(table[i].Handler))(text))        {            if(table[i].Help != "")                SendMultilineMessage(table[i].Help.c_str());            else            {                wowWData data;                FillMessageData(&data, 0x09, m_pClient, (uint8*)"Incorrect syntax.");                m_pClient->SendMsg(&data);            }        }        return true;    }    return false;}
开发者ID:AwkwardDev,项目名称:WoWPython,代码行数:56,


示例4: _ParseCommands

bool ChatHandler::_ParseCommands(char const* text){    if (ExecuteCommandInTable(getCommandTable(), text, text))        return true;    // Pretend commands don't exist for regular players    if (m_session && !m_session->HasPermission(rbac::RBAC_PERM_COMMANDS_NOTIFY_COMMAND_NOT_FOUND_ERROR))        return false;    // Send error message for GMs    SendSysMessage(LANG_NO_CMD);    SetSentErrorMessage(true);    return true;}
开发者ID:SuetyPoet,项目名称:pgcompcore,代码行数:14,


示例5: assert

int ChatHandler::ParseCommands(uint8* text, uint16 text_length){    assert(text);//    assert(*text);    if(text[0] != '!' && text[0] != '.') // let's not confuse users        return 0;    text++;    if(!ExecuteCommandInTable(LoadHelp(false), text))    {        wowWData data;        FillMessageData(&data, 0x09, m_pClient, (uint8*)"There is no such command.");        m_pClient->SendMsg(&data);    }    return 1;}
开发者ID:AwkwardDev,项目名称:WoWPython,代码行数:18,


示例6: ASSERT

bool ChatHandler::ParseCommands(const char* text){    ASSERT(text);    ASSERT(*text);    std::string fullcmd = text;    if (m_session && AccountMgr::IsPlayerAccount(m_session->GetSecurity()) && !sWorld->getBoolConfig(CONFIG_ALLOW_PLAYER_COMMANDS))       return false;    /// chat case (.command or !command format)    if (m_session)    {        if (text[0] != '!' && text[0] != '.')            return false;    }    /// ignore single . and ! in line    if (strlen(text) < 2)        return false;    // original `text` can't be used. It content destroyed in command code processing.    /// ignore messages staring from many dots.    if ((text[0] == '.' && text[1] == '.') || (text[0] == '!' && text[1] == '!'))        return false;    /// skip first . or ! (in console allowed use command with . and ! and without its)    if (text[0] == '!' || text[0] == '.')        ++text;    if (m_session && AccountMgr::IsPlayerAccount(m_session->GetSecurity()) && m_session->HasCommandsCooldown())        return false;    if (!ExecuteCommandInTable(getCommandTable(), text, fullcmd))    {        if (m_session && AccountMgr::IsPlayerAccount(m_session->GetSecurity()))            return false;        SendSysMessage(LANG_NO_CMD);    }    return true;}
开发者ID:Lbniese,项目名称:WoWCircle434,代码行数:42,


示例7: ASSERT

bool ChatHandler::ParseCommands(char const* text){    ASSERT(text);    ASSERT(*text);    std::string fullcmd = text;    /// chat case (.command or !command format)    if (m_session)    {        if (text[0] != '!' && text[0] != '.')            return false;    }    /// ignore single . and ! in line    if (strlen(text) < 2)        return false;    // original `text` can't be used. It content destroyed in command code processing.    /// ignore messages staring from many dots.    if ((text[0] == '.' && text[1] == '.') || (text[0] == '!' && text[1] == '!'))        return false;    /// skip first . or ! (in console allowed use command with . and ! and without its)    if (text[0] == '!' || text[0] == '.')        ++text;    if (!ExecuteCommandInTable(getCommandTable(), text, fullcmd))    {#ifdef ELUNA        if (!sEluna->OnCommand(GetSession() ? GetSession()->GetPlayer() : NULL, text))            return true;#endif        if (m_session && !m_session->HasPermission(rbac::RBAC_PERM_COMMANDS_NOTIFY_COMMAND_NOT_FOUND_ERROR))            return false;        SendSysMessage(LANG_NO_CMD);    }    return true;}
开发者ID:cooler-SAI,项目名称:ElunaTrinityWotlk,代码行数:41,


示例8: while

bool ChatHandler::ExecuteCommandInTable(std::vector<ChatCommand> const& table, const char* text, std::string const& fullcmd){    char const* oldtext = text;    std::string cmd = "";    while (*text != ' ' && *text != '/0')    {        cmd += *text;        ++text;    }    while (*text == ' ') ++text;    for (uint32 i = 0; i < table.size(); ++i)    {        if (!hasStringAbbr(table[i].Name, cmd.c_str()))            continue;        bool match = false;        if (strlen(table[i].Name) > cmd.length())        {            for (uint32 j = 0; j < table.size(); ++j)            {                if (!hasStringAbbr(table[j].Name, cmd.c_str()))                    continue;                if (strcmp(table[j].Name, cmd.c_str()) == 0)                {                    match = true;                    break;                }            }        }        if (match)            continue;        // select subcommand from child commands list        if (!table[i].ChildCommands.empty())        {            if (!ExecuteCommandInTable(table[i].ChildCommands, text, fullcmd))            {#ifdef ELUNA                if (!sEluna->OnCommand(GetSession() ? GetSession()->GetPlayer() : NULL, oldtext))                    return true;#endif                if (text[0] != '/0')                    SendSysMessage(LANG_NO_SUBCMD);                else                    SendSysMessage(LANG_CMD_SYNTAX);                ShowHelpForCommand(table[i].ChildCommands, text);            }            return true;        }        // must be available and have handler        if (!table[i].Handler || !isAvailable(table[i]))            continue;        SetSentErrorMessage(false);        // table[i].Name == "" is special case: send original command to handler        if ((table[i].Handler)(this, table[i].Name[0] != '/0' ? text : oldtext))        {            if (!m_session) // ignore console                return true;            Player* player = m_session->GetPlayer();            if (!AccountMgr::IsPlayerAccount(m_session->GetSecurity()))            {                ObjectGuid guid = player->GetTarget();                uint32 areaId = player->GetAreaId();                std::string areaName = "Unknown";                std::string zoneName = "Unknown";                if (AreaTableEntry const* area = GetAreaEntryByAreaID(areaId))                {                    int locale = GetSessionDbcLocale();                    areaName = area->area_name[locale];                    if (AreaTableEntry const* zone = GetAreaEntryByAreaID(area->zone))                        zoneName = zone->area_name[locale];                }                sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (%s) (Account: %u) X: %f Y: %f Z: %f Map: %u (%s) Area: %u (%s) Zone: %s Selected: %s (%s)]",                    fullcmd.c_str(), player->GetName().c_str(), player->GetGUID().ToString().c_str(),                    m_session->GetAccountId(), player->GetPositionX(), player->GetPositionY(),                    player->GetPositionZ(), player->GetMapId(),                    player->FindMap() ? player->FindMap()->GetMapName() : "Unknown",                    areaId, areaName.c_str(), zoneName.c_str(),                    (player->GetSelectedUnit()) ? player->GetSelectedUnit()->GetName().c_str() : "",                    guid.ToString().c_str());            }        }        // some commands have custom error messages. Don't send the default one in these cases.        else if (!HasSentErrorMessage())        {            if (!table[i].Help.empty())                SendSysMessage(table[i].Help.c_str());            else                SendSysMessage(LANG_CMD_SYNTAX);//.........这里部分代码省略.........
开发者ID:cooler-SAI,项目名称:ElunaTrinityWotlk,代码行数:101,


示例9: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand* table, const char* text, const std::string& fullcmd){    char const* oldtext = text;    std::string cmd = "";    while (*text != ' ' && *text != '/0')    {        cmd += *text;        ++text;    }    while (*text == ' ') ++text;    for (uint32 i = 0; table[i].Name != NULL; ++i)    {        if (!hasStringAbbr(table[i].Name, cmd.c_str()))            continue;        bool match = false;        if (strlen(table[i].Name) > cmd.length())        {            for (uint32 j = 0; table[j].Name != NULL; ++j)            {                if (!hasStringAbbr(table[j].Name, cmd.c_str()))                    continue;                if (strcmp(table[j].Name, cmd.c_str()) != 0)                    continue;                else                {                    match = true;                    break;                }            }        }        if (match)            continue;        // select subcommand from child commands list        if (table[i].ChildCommands != NULL)        {            if (!ExecuteCommandInTable(table[i].ChildCommands, text, fullcmd))            {                if (text && text[0] != '/0')                    SendSysMessage(LANG_NO_SUBCMD);                else                    SendSysMessage(LANG_CMD_SYNTAX);                ShowHelpForCommand(table[i].ChildCommands, text);            }            return true;        }        // must be available and have handler        if (!table[i].Handler || !isAvailable(table[i]))            continue;        SetSentErrorMessage(false);        // table[i].Name == "" is special case: send original command to handler        if ((table[i].Handler)(this, table[i].Name[0] != '/0' ? text : oldtext))        {            if (!AccountMgr::IsPlayerAccount(table[i].SecurityLevel))            {                // chat case                if (m_session)                {                    Player* p = m_session->GetPlayer();                    uint64 sel_guid = p->GetSelection();                    sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected %s: %s (GUID: %u)]",                        fullcmd.c_str(), p->GetName().c_str(), m_session->GetAccountId(), p->GetPositionX(), p->GetPositionY(), p->GetPositionZ(), p->GetMapId(),                        GetLogNameForGuid(sel_guid), (p->GetSelectedUnit()) ? p->GetSelectedUnit()->GetName().c_str() : "", GUID_LOPART(sel_guid));                }            }        }        // some commands have custom error messages. Don't send the default one in these cases.        else if (!HasSentErrorMessage())        {            if (!table[i].Help.empty())                SendSysMessage(table[i].Help.c_str());            else                SendSysMessage(LANG_CMD_SYNTAX);        }        return true;    }    return false;}
开发者ID:MiranaStarlight,项目名称:TrinityCore,代码行数:89,


示例10: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand *table, const char* text, WorldSession *m_session){	std::string cmd = "";	// get command	while (*text != ' ' && *text != '/0')	{		cmd += *text;		text++;	}	while (*text == ' ') text++; // skip whitespace	if(!cmd.length())		return false;	for(uint32 i = 0; table[i].Name != NULL; i++)	{		if(!hasStringAbbr(table[i].Name, cmd.c_str()))			continue;		if(!m_session->CanUseCommand(table[i].CommandGroup))			continue;		if(table[i].ChildCommands != NULL)		{			if(!ExecuteCommandInTable(table[i].ChildCommands, text, m_session))			{				if(table[i].Help != "")					SendMultilineMessage(m_session, table[i].Help.c_str());				else				{					GreenSystemMessage(m_session, "Available Subcommands:");					for(uint32 k=0; table[i].ChildCommands[k].Name;k++)					{						if(m_session->CanUseCommand(table[i].ChildCommands[k].CommandGroup))							BlueSystemMessage(m_session, "	%s - %s", table[i].ChildCommands[k].Name, table[i].ChildCommands[k].Help.size() ? table[i].ChildCommands[k].Help.c_str() : "No Help Available");					}				}			}			return true;		}				// Check for field-based commands		if(table[i].Handler == NULL && (table[i].MaxValueField || table[i].NormalValueField))		{			bool result = false;			if(strlen(text) == 0)			{				RedSystemMessage(m_session, "No values specified.");			}			if(table[i].ValueType == 2)				result = CmdSetFloatField(m_session, table[i].NormalValueField, table[i].MaxValueField, table[i].Name, text);			else				result = CmdSetValueField(m_session, table[i].NormalValueField, table[i].MaxValueField, table[i].Name, text);			if(!result)				RedSystemMessage(m_session, "Must be in the form of (command) <value>, or, (command) <value> <maxvalue>");		}		else		{			if(!(this->*(table[i].Handler))(text, m_session))			{				if(table[i].Help != "")					SendMultilineMessage(m_session, table[i].Help.c_str());				else				{					RedSystemMessage(m_session, "Incorrect syntax specified. Try .help %s for the correct syntax.", table[i].Name);				}			}		}		return true;	}	return false;}
开发者ID:Sylica2013,项目名称:Antrix,代码行数:77,


示例11: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand *table, const char* text){    char const* oldtext = text;    std::string fullcmd = text;                             // original `text` can't be used. It content destroyed in command code processing.    std::string cmd = "";    while (*text != ' ' && *text != '/0')    {        cmd += *text;        text++;    }    while (*text == ' ') text++;    if(!cmd.length())        return false;    for(uint32 i = 0; table[i].Name != NULL; i++)    {        // allow pass "" command name in table        if(strlen(table[i].Name) && !hasStringAbbr(table[i].Name, cmd.c_str()))            continue;        // select subcommand from child commands list        if(table[i].ChildCommands != NULL)        {            if(!ExecuteCommandInTable(table[i].ChildCommands, text))            {                if(table[i].Help != "")                    SendSysMultilineMessage(table[i].Help.c_str());                else                    SendSysMessage(LANG_NO_SUBCMD);            }            return true;        }        // check security level only for simple  command (without child commands)        if(m_session->GetSecurity() < table[i].SecurityLevel)            continue;        // table[i].Name == "" is special case: send original command to handler        if((this->*(table[i].Handler))(strlen(table[i].Name)!=0 ? text : oldtext))        {            if(table[i].SecurityLevel > 0)            {                Player* p = m_session->GetPlayer();                uint64 sel_guid = p->GetSelection();                sLog.outCommand("Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected: %s (GUID: %u)]",                    fullcmd.c_str(),p->GetName(),m_session->GetAccountId(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(),p->GetMapId(),                    (GUID_HIPART(sel_guid)==HIGHGUID_UNIT ? "creature" : (sel_guid !=0 ? "player" : "none")),                    GUID_LOPART(sel_guid));            }        }        else        {            if(table[i].Help != "")                SendSysMultilineMessage(table[i].Help.c_str());            else                SendSysMessage(LANG_CMD_SYNTAX);        }        return true;    }    return false;}
开发者ID:Artea,项目名称:mangos-svn,代码行数:67,


示例12: while

bool ChatHandler::ExecuteCommandInTable(ChatCommand* table, const char* text, std::string const& fullcmd){    char const* oldtext = text;    std::string cmd = "";    while (*text != ' ' && *text != '/0')    {        cmd += *text;        ++text;    }    while (*text == ' ') ++text;    for (uint32 i = 0; table[i].Name != NULL; ++i)    {        if (!hasStringAbbr(table[i].Name, cmd.c_str()))            continue;        bool match = false;        if (strlen(table[i].Name) > cmd.length())        {            for (uint32 j = 0; table[j].Name != NULL; ++j)            {                if (!hasStringAbbr(table[j].Name, cmd.c_str()))                    continue;                if (strcmp(table[j].Name, cmd.c_str()) == 0)                {                    match = true;                    break;                }            }        }        if (match)            continue;        // select subcommand from child commands list        if (table[i].ChildCommands != NULL)        {            if (!ExecuteCommandInTable(table[i].ChildCommands, text, fullcmd))            {                if (text[0] != '/0')                    SendSysMessage(LANG_NO_SUBCMD);                else                    SendSysMessage(LANG_CMD_SYNTAX);                ShowHelpForCommand(table[i].ChildCommands, text);            }            return true;        }        // must be available and have handler        if (!table[i].Handler || !isAvailable(table[i]))            continue;        SetSentErrorMessage(false);        // table[i].Name == "" is special case: send original command to handler        if ((table[i].Handler)(this, table[i].Name[0] != '/0' ? text : oldtext))        {            if (!m_session) // ignore console                return true;            Player* player = m_session->GetPlayer();            if (!AccountMgr::IsPlayerAccount(m_session->GetSecurity()))            {                uint64 guid = player->GetTarget();                uint32 areaId = player->GetAreaId();                std::string areaName = "Unknown";                std::string zoneName = "Unknown";                if (AreaTableEntry const* area = GetAreaEntryByAreaID(areaId))                {                    int locale = GetSessionDbcLocale();                    areaName = area->area_name[locale];                    if (AreaTableEntry const* zone = GetAreaEntryByAreaID(area->zone))                        zoneName = zone->area_name[locale];                }                sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (Guid: %u) (Account: %u) X: %f Y: %f Z: %f Map: %u (%s) Area: %u (%s) Zone: %s Selected %s: %s (GUID: %u)]",                    fullcmd.c_str(), player->GetName().c_str(), GUID_LOPART(player->GetGUID()),                    m_session->GetAccountId(), player->GetPositionX(), player->GetPositionY(),                    player->GetPositionZ(), player->GetMapId(),                    player->GetMap() ? player->GetMap()->GetMapName() : "Unknown",                    areaId, areaName.c_str(), zoneName.c_str(), GetLogNameForGuid(guid),                    (player->GetSelectedUnit()) ? player->GetSelectedUnit()->GetName().c_str() : "",                    GUID_LOPART(guid));                if ((sIRC->logmask & 2) != 0)                    {                        std::string logchan = "#";                        logchan += sIRC->logchan;                        std::stringstream ss;                        ss << sIRC->iLog.GetLogDateTimeStr() << ": [ " << player->GetName() << "(" << GetSession()->GetSecurity() << ") ] Used Command: [ " << fullcmd << " ] Target Guid: [" << GUID_LOPART(guid) << "]";                        sIRC->Send_IRC_Channel(logchan,ss.str().c_str(), true, "LOG");                    }            }        }        // some commands have custom error messages. Don't send the default one in these cases.        else if (!HasSentErrorMessage())        {            if (!table[i].Help.empty())//.........这里部分代码省略.........
开发者ID:Archarean,项目名称:TrinityCore,代码行数:101,



注:本文中的ExecuteCommandInTable函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ExecuteEvent函数代码示例
C++ ExecuteCmd函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。