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


C++ CMoveShape::SetTalkLiveTimer方法代码示例

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


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

示例1: OnOtherMessage

/*
 * 功能: 响应其他消息
 * 摘要: -
 * 参数: pMsg - 服务器发送的消息
 * 返回值: -
 * 作者: -
 * 创建日期: -
 * 修改日志:
 *	2008.04.21 - lpf
 *		增加了对MSG_S2C_OTHER_EXPATC消息的响应,用来支持仪态动作的播放;
 *	2008.06.12 - lpf
 *		在MSG_S2C_OTHER_EXPATC消息的响应中,增加了"没有说话消息的判断";
 *	2008.06.17 - lpf
 *		根据仪态动作新的结构修改了MSG_S2C_OTHER_EXPATC消息的响应,对得到仪态动作的处理;
 *	2008.08.14 - lpf
 *		在MSG_S2C_OTHER_EXPATC消息响应处增加了对得到场景指针是否为空的判断;
 *	2008.08.21 - lpf
 *		增加了对视频播放消息的处理;
 */
void OnOtherMessage(CMessage* pMsg)
{
	CGlobeSetup::tagSetup *pSetup = CGlobeSetup::GetSetup();

	switch(pMsg->GetType())
	{
	///////////////////////////////////////////////////////////////////////////////////////
	// 对话消息
	///////////////////////////////////////////////////////////////////////////////////////
	case MSG_S2C_OTHER_TALK:
		{
			if (GetGame()->GetMainPlayer() == NULL)
				break;
			CMainBarPageEx * pMainPage = GetGame()->GetCGuiEx()->GetMainBarPageEx();
			if( ! pMainPage )
				return;

			// 字符or索引
			BYTE bFlag = pMsg->GetByte();
			long lType = pMsg->GetLong();

			// 聊天信息中,物品信息其实位置的调节长度
			long lAdjustLen = 0;
			char str[1024] = "";

			// 说话人type 和 GUID
			long lSenderType = pMsg->GetLong();	
			CGUID SenderID;
			pMsg->GetGUID(SenderID);

			string strName;
			string strmem;

			//=========================对话信息中的聊天信息=======================
			list<CEditField::stSpecialTextInfo> * pTextInfoList = pMainPage->GetSpecialText();
			pTextInfoList->clear();

			char strGoodsName[1024] = "";
			long lNum = pMsg->GetLong();
			for(long i=0; i<lNum; ++i)
			{
				CEditField::stSpecialTextInfo stInfo;
				pMsg->GetEx(&stInfo, sizeof(CEditField::stSpecialTextInfo));
				stInfo.str = pMsg->GetStr(strGoodsName,1024);
				pTextInfoList->push_back(stInfo);
			}

			//====================================================================
			TCHAR	szChatWords[ 2056 ];

			switch( lType )
			{
				case RUN_HELP:
				case CHAT_NPC:
				case CHAT_NORMAL:
					{
						strName = pMsg->GetStr(str,1024);

						// 检查黑名单
						if( GetGame()->GetCGuiEx()->GetFriendsPageEx()->IsInGroup( strName.c_str(), CFriendsPageEx::PANEL_BLACK ) )
							break;

						if(bFlag==0)
							strmem = pMsg->GetStr(str,1024);
						else
						{
							DWORD dwType = pMsg->GetDWord();
							DWORD dwIndex = pMsg->GetDWord();
							strmem = CStringReading::LoadString(dwType,dwIndex);
						}

						// 脏话过滤
						CClientWordsFilter::GetInstance()->Check(strmem, true, true);

						// 加入说话者的头上
						CMoveShape* pSender = dynamic_cast<CMoveShape*>(GetGame()->GetRegion()->FindChildObject(lSenderType, SenderID));
						if(pSender)
						{
							pSender->SetTalkText(strmem.c_str());
							pSender->SetTalkLiveTimer(500);
							if(lSenderType == TYPE_MONSTER)
//.........这里部分代码省略.........
开发者ID:xiongshaogang,项目名称:mmo-resourse,代码行数:101,代码来源:otheressage.cpp


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