当前位置: 首页>>代码示例>>C++>>正文


C++ Being::setSpeech方法代码示例

本文整理汇总了C++中Being::setSpeech方法的典型用法代码示例。如果您正苦于以下问题:C++ Being::setSpeech方法的具体用法?C++ Being::setSpeech怎么用?C++ Being::setSpeech使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Being的用法示例。


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

示例1: handleGameChatMessage

void ChatHandler::handleGameChatMessage(Net::MessageIn &msg)
{
    short id = msg.readInt16();
    std::string chatMsg = msg.readString();

    if (id == 0)
    {
        localChatTab->chatLog(chatMsg, BY_SERVER);
        return;
    }

    Being *being = beingManager->findBeing(id);

    std::string mes;
    if (being)
    {
        mes = being->getName() + " : " + chatMsg;
        being->setSpeech(chatMsg, SPEECH_TIME);
    }
    else
        mes = "Unknown : " + chatMsg;

    localChatTab->chatLog(mes, being == player_node ? BY_PLAYER : BY_OTHER);
}
开发者ID:weimingtom,项目名称:guichan-input,代码行数:24,代码来源:chathandler.cpp

示例2: handleMessage

void ChatHandler::handleMessage(MessageIn &msg)
{
    Being *being;
    std::string chatMsg;
    std::string nick;
    int chatMsgLength;

    switch (msg.getId())
    {
        case SMSG_WHISPER_RESPONSE:
            switch (msg.readInt8())
            {
                case 0x00:
                    // comment out since we'll local echo in chat.cpp instead, then only report failures
                    //localChatTab->chatLog("Whisper sent", BY_SERVER);
                    break;
                case 0x01:
                    localChatTab->chatLog(_("Whisper could not be sent, user "
                                            "is offline."), BY_SERVER);
                    break;
                case 0x02:
                    localChatTab->chatLog(_("Whisper could not be sent, "
                                            "ignored by user."), BY_SERVER);
                    break;
            }
            break;

        // Received whisper
        case SMSG_WHISPER:
            chatMsgLength = msg.readInt16() - 28;
            nick = msg.readString(24);

            if (chatMsgLength <= 0)
                break;

            chatMsg = msg.readString(chatMsgLength);

            if (nick != "Server")
            {
                if (player_relations.hasPermission(nick, PlayerRelation::WHISPER))
                    chatWindow->whisper(nick, chatMsg);
            }
            else
            {
                localChatTab->chatLog(chatMsg, BY_SERVER);
            }

            break;

        // Received speech from being
        case SMSG_BEING_CHAT: {
            chatMsgLength = msg.readInt16() - 8;
            being = beingManager->findBeing(msg.readInt32());

            if (!being || chatMsgLength <= 0)
                break;

            chatMsg = msg.readString(chatMsgLength);

            std::string::size_type pos = chatMsg.find(" : ", 0);
            std::string sender_name = ((pos == std::string::npos)
                                       ? ""
                                       : chatMsg.substr(0, pos));

            // We use getIgnorePlayer instead of ignoringPlayer here because ignorePlayer' side
            // effects are triggered right below for Being::IGNORE_SPEECH_FLOAT.
            if (player_relations.checkPermissionSilently(sender_name, PlayerRelation::SPEECH_LOG))
                localChatTab->chatLog(chatMsg, BY_OTHER);

            chatMsg.erase(0, pos + 3);
            trim(chatMsg);

            if (player_relations.hasPermission(sender_name, PlayerRelation::SPEECH_FLOAT))
                being->setSpeech(chatMsg, SPEECH_TIME);
            break;
        }

        case SMSG_PLAYER_CHAT:
        case SMSG_GM_CHAT: {
            chatMsgLength = msg.readInt16() - 4;

            if (chatMsgLength <= 0)
                break;

            chatMsg = msg.readString(chatMsgLength);
            std::string::size_type pos = chatMsg.find(" : ", 0);

            if (msg.getId() == SMSG_PLAYER_CHAT)
            {
                if (localChatTab) localChatTab->chatLog(chatMsg, BY_PLAYER);

                if (pos != std::string::npos)
                    chatMsg.erase(0, pos + 3);

                trim(chatMsg);

                player_node->setSpeech(chatMsg, SPEECH_TIME);
            }
            else
            {
//.........这里部分代码省略.........
开发者ID:mekolat,项目名称:elektrogamesvn,代码行数:101,代码来源:chathandler.cpp

示例3: handleMessage

void ChatHandler::handleMessage(MessageIn *msg)
{
    Being *being;
    std::string chatMsg;
    std::string nick;
    int chatMsgLength;

    switch (msg->getId())
    {
        case SMSG_WHISPER_RESPONSE:
            switch (msg->readInt8())
            {
                case 0x00:
                    // This is a success, so not necessary to report
                    //chatWindow->chatLog(_("Whisper sent"));
                    break;
                case 0x01:
                    chatWindow->chatLog(_("Whisper could not be sent, user is offline."));
                    break;
                case 0x02:
                    chatWindow->chatLog(_("Whisper could not be sent, ignored by user."));
                    break;
            }
            break;

        // Received whisper
        case SMSG_WHISPER:
            chatMsgLength = msg->readInt16() - 28;
            nick = msg->readString(24);

            if (chatMsgLength <= 0)
                break;

            chatMsg = msg->readString(chatMsgLength);
            if (nick != SERVER_NAME)
                chatMsg = nick + " : " + chatMsg;

            if (nick == SERVER_NAME)
                chatWindow->chatLog(chatMsg);
            else if (player_relations.hasPermission(nick,
                                                    PlayerRelation::WHISPER))
                chatWindow->chatLog(chatMsg, Palette::WHISPER);

            break;

        // Received speech from being
        case SMSG_BEING_CHAT:
        {
            chatMsgLength = msg->readInt16() - 8;
            being = beingManager->findBeing(msg->readInt32());

            if (!being || chatMsgLength <= 0)
                break;

            chatMsg = msg->readString(chatMsgLength);

            std::string::size_type pos = chatMsg.find(" : ", 0);
            std::string sender_name = ((pos == std::string::npos) ? "" :
                                        chatMsg.substr(0, pos));

            // We use getIgnorePlayer instead of ignoringPlayer here because 
            // ignorePlayer' side effects are triggered right below for
            // Being::IGNORE_SPEECH_FLOAT.
            if (player_relations.checkPermissionSilently(sender_name,
                                                    PlayerRelation::SPEECH_LOG))
                chatWindow->chatLog(chatMsg, Palette::PLAYER);

            chatMsg.erase(0, pos + 3);
            trim(chatMsg);

            if (player_relations.hasPermission(sender_name,
                                               PlayerRelation::SPEECH_FLOAT))
                being->setSpeech(chatMsg, SPEECH_TIME);
            break;
        }

        case SMSG_PLAYER_CHAT:
        case SMSG_GM_CHAT:
        {
            chatMsgLength = msg->readInt16() - 4;

            if (chatMsgLength <= 0)
                break;

            chatMsg = msg->readString(chatMsgLength);
            std::string::size_type pos = chatMsg.find(" : ", 0);

            if (msg->getId() == SMSG_PLAYER_CHAT)
            {
                chatWindow->chatLog(chatMsg, Palette::CHAT);

                if (pos != std::string::npos)
                    chatMsg.erase(0, pos + 3);

                trim(chatMsg);

                player_node->setSpeech(chatMsg, SPEECH_TIME);
            }
            else
                chatWindow->chatLog(chatMsg, Palette::GM);
//.........这里部分代码省略.........
开发者ID:dreamsxin,项目名称:Aethyra,代码行数:101,代码来源:chathandler.cpp


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