亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? body.cpp

?? 魔域的源代碼
?? CPP
字號:
// Body.cpp: implementation of the CBody class.
//
//////////////////////////////////////////////////////////////////////

#include "windows.h"
#include "Body.h"
#include "Array.h"
#include "Vartype.h"
#include "AGent.h"
#include "AGentData.h"
#include "AllMsg.h"
#include "NpcWorld.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBody::CBody()
{

}

CBody::~CBody()
{

}

bool CBody::Create(CAgent* pOwner)
{
	m_pOwner	= pOwner;

	return true;
}

void CBody::OnTimer()
{
	IAiCenter* pAi = Cast<IAiCenter>(m_pOwner);
	CHECK(pAi);
	int idxAction;
	VarTypeSet setParam;
	if(pAi->FetchAction(&idxAction, &setParam))
	{
		DEBUG_TRY
		ProcessAction(idxAction, setParam);
		DEBUG_CATCH2("CBody::OnTimer(): %d", idxAction)
	}
}

bool CBody::ProcessAction(int idxAction, VarTypeSetRef setParam)
{
	CHECKF(idxAction >= 0);

	switch(idxAction)
	{
	case	ACTION_REBORN:						// "Reborn":
		{
			CMsgAction	msg;
			IF_OK(msg.Create(m_pOwner->GetID(), m_pOwner->GetPosX(), m_pOwner->GetPosY(), m_pOwner->GetDir(), actionReborn))
				m_pOwner->SendMsg(&msg);
		}
		break;
	case	ACTION_TALK_TO_NAME:				// "TalkToName",				// (name,str)
		{
			StringRef	szName	= setParam[0];
			StringRef	szMsg	= setParam[1];
			CUser* pRole = UserManager()->QueryUser(szName);
			if(pRole)
			{
				CMsgTalk	msg;
				IF_OK(msg.Create(m_pOwner->GetName(), szName, szMsg))
					m_pOwner->SendMsg(&msg);
			}
		}
		break;
	case	ACTION_TALK_TO_ID:					// "TalkToID",					// (id,str)
		{
			OBJID		idRole	= setParam[0];
			StringRef	szMsg	= setParam[1];
			CUser* pRole = UserManager()->QueryUser(idRole);
			if(pRole)
			{
				CMsgTalk	msg;
				IF_OK(msg.Create(m_pOwner->GetName(), pRole->GetName(), szMsg))
					m_pOwner->SendMsg(&msg);
			}
		}
		break;
	case	ACTION_MOVE_CLOSE:					// "MoveCloseTarget":			// (id),走到能攻擊對方的距離。
		{
			OBJID	idRole = setParam[0];
			IRole* pRole = UserManager()->QueryRole(idRole);
			CRoleMove* pMove;
			if(pRole && Cast(&pMove, m_pOwner))
			{
				if(::RandGet(3) == 0)
					pMove->JumpTo(pRole->GetPosX(), pRole->GetPosY(), m_pOwner->GetAttackRange(pRole->GetSizeAdd()));
				else
					pMove->RunTo(pRole->GetPosX(), pRole->GetPosY(), m_pOwner->GetAttackRange(pRole->GetSizeAdd()));
			}
		}
		break;
	case	ACTION_JUMP_CLOSE:					// "JumpClose":			// (x,y,dist),走到距對方一定的距離。
		{
			int		nPosX = setParam[0];
			int		nPosY = setParam[1];
			int		nDist = setParam[2];
			CRoleMove* pMove = Cast<CRoleMove>(m_pOwner);
			if(pMove)
			{
				pMove->JumpTo(nPosX, nPosY, nDist);
			}
		}
		break;
	case	ACTION_JUMP_TO_SAFE:				// "JumpToSafePos":			// 跳到安全的地方,防止被怪包圍
		{
			CRoleMove* pMove;
			if(Cast(&pMove, m_pOwner))
			{
				pMove->JumpSafePos();
			}
		}
		break;
	case	ACTION_CHGMAP:						// "ChangeMapTo",				// (id,x,y)用超級命令回到SHOP附近(類似回城卷)
		{
			OBJID	idMap = setParam[0];
			int		nPosX = setParam[1];
			int		nPosY = setParam[2];
			CMsgAction	msg;
			IF_OK(msg.Create(m_pOwner->GetID(), nPosX, nPosY, m_pOwner->GetDir(), actionSuperChgMap, idMap))
				m_pOwner->SendMsg(&msg);
		}
		break;
	case	ACTION_RANDOM_WALK:					// "RandomWalk":				// 亂走
		{
			CRoleMove* pMove;
			if(Cast(&pMove, m_pOwner))
			{
				POINT	pos = pMove->FindRandomPos();
				if(m_pOwner->GetMap()->IsJumpEnable(pos.x, pos.y))
					pMove->WalkTo(pos.x, pos.y);
			}
		}
		break;
	case	ACTION_CHANGE_MODE:					// "ChangeMode",				// 修改Mode(_,_)。用action來實現寫入永久事實。
		{
			int	nMode1 = setParam[0];
			int	nMode2 = setParam[1];

			int		nPriority	= 0;
			String	strFact = "Mode";					// (e,e)			// 0
			strFact	+= '(';
			strFact	+= String().FormatLong(nMode1);
			strFact	+= ',';
			strFact	+= String().FormatLong(nMode2);
			strFact	+= ')';

			IAiCenter* pAi = Cast<IAiCenter>(m_pOwner);
			pAi->AddFact(strFact, nPriority);

			LOGDUMP("ChangeMode to [%d,%d] OK! ===============================================", nMode1, nMode2);
		}
		break;
	case	ACTION_LEAVE_EVIL:					// "KeepOutEnemy":				// (dist),與敵人保持距離,逃跑
		{
			int	nDist = setParam[0];
			CRoleMove* pMove;
			if(Cast(&pMove, m_pOwner))			// && m_pOwner->GetMapID() == SHOP_MAP_ID
			{
				if(pMove->JumpSafePos(nDist))
					return true;

				POINT pos = pMove->FindRandomPos();
				if(m_pOwner->GetMap()->IsJumpEnable(pos.x, pos.y))
				{
					pMove->JumpTo(pos.x, pos.y);
					return true;
				}
			}
		}
		break;
	case	ACTION_ATTACK:						// "AttackRole":				// (id)
		{
			OBJID	idRole = setParam[0];
			IRole* pRole = UserManager()->QueryRole(idRole);
			CRoleFight* pFight;
			if(pRole && Cast(&pFight, m_pOwner))
			{
				pFight->Attack(pRole);
			}
		}
		break;
	case	ACTION_USE_ITEM:					// "UseItem":					// (type)吃一顆藥
		{
			OBJID	idType = setParam[0];
			CItemPack* pPack = Cast<CItemPack>(m_pOwner);
			CItem* pItem = pPack->FindItemByType(idType);
			if(pItem)
			{
				CMsgItem	msg;
				IF_OK(msg.Create(pItem->GetID(), ITEMACT_USE))
					m_pOwner->SendMsg(&msg);
			}
		}
		break;
	case	ACTION_FULL_MEDICINE:				// "FullMedicine":				// (type)到SHOP處裝滿藥
		{
			OBJID	idItem = setParam[0];
			CMsgAction	msg;
			IF_OK(msg.Create(m_pOwner->GetID(), m_pOwner->GetPosX(), m_pOwner->GetPosY(), m_pOwner->GetDir(), actionFullItem, idItem))
				m_pOwner->SendMsg(&msg);
			LOGDUMP("ACTION_FULL_MEDICINE");
		}
		break;
	case	ACTION_ACCEPT_INVITE:				// "AcceptTeamInvite":			// (id)
		{
			OBJID	idRole = setParam[0];
			CMsgTeam	msg;
			IF_OK(msg.Create(idRole, _MSGTEAM_ACCEPTINVEIT))
				m_pOwner->SendMsg(&msg);
		}
		break;
	case	ACTION_SEND_APPLY:					// "SendTeamApply":				// (id)
		{
			OBJID	idRole = setParam[0];
			CMsgTeam	msg;
			IF_OK(msg.Create(idRole, _MSGTEAM_APPLYJOIN))
				m_pOwner->SendMsg(&msg);
		}
		break;
	case	ACTION_LEAVE_TEAM:					// "LeaveTeam":
		{
			CMsgTeam	msg;
			IF_OK(msg.Create(m_pOwner->GetID(), _MSGTEAM_LEAVE))
				m_pOwner->SendMsg(&msg);
		}
		break;
	default:
		ASSERT(!"switch(idxAction)");
	}

	return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久先锋影音av鲁色资源网| **性色生活片久久毛片| 国产精品三级av在线播放| 亚洲成a人v欧美综合天堂 | 欧美视频一区在线| 久久综合色婷婷| 一区二区不卡在线播放| 国产成人精品免费一区二区| 欧美日韩第一区日日骚| 日韩美女久久久| 高清av一区二区| 精品久久久久久久久久久院品网| 亚洲综合偷拍欧美一区色| 国产成a人亚洲精品| 日韩欧美在线1卡| 亚洲一区二区成人在线观看| 成人av在线影院| 国产三级精品三级在线专区| 理论电影国产精品| 7777精品伊人久久久大香线蕉完整版 | 91麻豆蜜桃一区二区三区| 久久综合九色综合97_久久久| 日韩精品电影一区亚洲| 色吊一区二区三区| 亚洲欧美视频在线观看| 成人激情动漫在线观看| 久久综合九色综合97_久久久| 久久成人精品无人区| 欧美高清激情brazzers| 亚洲国产成人91porn| 欧美性xxxxx极品少妇| 亚洲综合色自拍一区| 欧美在线999| 亚洲影视资源网| 欧美日韩黄色影视| 亚洲 欧美综合在线网络| 欧美亚洲国产一卡| 亚洲18影院在线观看| 91精品国产综合久久香蕉的特点 | 国产日韩综合av| 成人手机电影网| 中文字幕一区av| 日本韩国精品一区二区在线观看| 亚洲精品国产a| 欧美日韩免费电影| 日韩精品午夜视频| 欧美xxxxxxxx| 国产91色综合久久免费分享| 国产精品女主播av| 91在线码无精品| 亚洲高清免费在线| 欧美一级一区二区| 国产成人av资源| 亚洲欧美日韩中文播放| 欧美日本在线看| 麻豆精品视频在线观看免费| 久久网站热最新地址| 成人av午夜电影| 亚洲国产日韩a在线播放性色| 欧美福利电影网| 国产麻豆9l精品三级站| 国产精品久久久久久久久久免费看 | 欧美综合一区二区三区| 日韩二区在线观看| 国产亚洲欧美在线| 色视频成人在线观看免| 青青草国产精品97视觉盛宴| 久久精品一区二区三区四区| 色综合久久99| 久久99在线观看| 亚洲男人天堂av网| 日韩欧美一区电影| 99久久免费国产| 蜜桃精品视频在线观看| 日韩毛片视频在线看| 717成人午夜免费福利电影| 国产一区在线精品| 一区二区三区电影在线播| 日韩精品一区二区三区三区免费 | 欧美在线视频全部完| 精品一区二区免费看| 一区二区在线免费观看| 欧美精品一区二区三区一线天视频 | 欧美日韩日日摸| 成人自拍视频在线观看| 日韩国产在线一| 成人免费一区二区三区在线观看| 欧美肥妇bbw| 成人精品在线视频观看| 免费成人小视频| 亚洲综合另类小说| 国产精品久久久久久久久图文区| 日韩一级黄色大片| 色婷婷激情久久| 成人在线视频首页| 蜜桃av一区二区| 三级成人在线视频| 亚洲激情五月婷婷| 国产精品二三区| 日本一区二区三区免费乱视频 | 亚洲人成伊人成综合网小说| 26uuu精品一区二区| 欧美日韩视频专区在线播放| 91在线视频播放| 风间由美中文字幕在线看视频国产欧美| 天堂在线一区二区| 亚洲精品免费在线观看| 中文字幕不卡在线| 国产欧美日韩卡一| 国产女人18毛片水真多成人如厕| 欧美一级专区免费大片| 这里是久久伊人| 欧美日韩电影在线播放| 欧美日韩一区小说| 欧美午夜宅男影院| 99久久久免费精品国产一区二区| 成人福利在线看| 成人福利在线看| 一本大道久久a久久精品综合| 成人在线一区二区三区| 成人高清免费在线播放| 不卡一区二区三区四区| 99久久久久久| 色综合久久久网| 欧美日韩午夜影院| 欧美一区二区三区白人| 精品少妇一区二区三区 | 欧美日韩国产大片| 69精品人人人人| 日韩精品中午字幕| 精品欧美乱码久久久久久1区2区| 日韩欧美激情四射| 久久奇米777| 中文字幕第一区二区| 日韩码欧中文字| 午夜不卡av免费| 麻豆国产91在线播放| 国产揄拍国内精品对白| 国产成人精品免费看| 91在线视频官网| 91精品国产一区二区人妖| 26uuu国产电影一区二区| 日本一二三四高清不卡| 亚洲精品自拍动漫在线| 日韩国产欧美视频| 国产成人一区二区精品非洲| 日本二三区不卡| 日韩精品一区国产麻豆| 国产精品久久精品日日| 亚洲成人精品一区| 国产精品夜夜嗨| 日本精品裸体写真集在线观看| 91精品国产91综合久久蜜臀| 国产人久久人人人人爽| 亚洲永久免费av| 国产另类ts人妖一区二区| 99久久免费精品| 欧美va在线播放| 亚洲综合网站在线观看| 国产一区二区免费在线| 91蝌蚪porny| 欧美大片免费久久精品三p| 国产精品福利一区| 精彩视频一区二区三区| 在线免费不卡视频| 久久品道一品道久久精品| 五月婷婷欧美视频| 成人黄色a**站在线观看| 日韩欧美综合在线| 亚洲视频一区二区在线| 国产一区二区三区四 | 成人天堂资源www在线| 欧美日韩成人一区二区| 亚洲欧美色图小说| 国产一区不卡视频| 欧美绝品在线观看成人午夜影视| 中文字幕av不卡| 精品午夜一区二区三区在线观看| 欧美日韩在线三级| 亚洲精品免费看| 成人av电影观看| 久久久www成人免费毛片麻豆 | 国产美女av一区二区三区| 欧美日韩免费观看一区二区三区| 国产精品久久免费看| 激情综合网av| 欧美一级二级在线观看| 亚洲成人手机在线| 色婷婷国产精品综合在线观看| 国产精品欧美一区喷水| 久久精品国产99| 欧美电影在哪看比较好| 亚洲午夜一二三区视频| 欧美性videosxxxxx| 夜夜嗨av一区二区三区| 91免费在线播放| 亚洲欧洲日韩在线| 成人免费看视频| 国产精品久久久久久久裸模| 国产河南妇女毛片精品久久久|