游戏乐悠悠网游开发网
标题:
武侠-右键下拉菜单实现
[打印本页]
作者:
tianyalanzi
时间:
2012-2-26 13:39
标题:
武侠-右键下拉菜单实现
一 右键点击目标头像界面,首先分析是NPC,其他玩家,玩家自己头像。然后判断状态,根据状态,发送不同的命令给lua脚本
VOID CGameInterface::Object_ShowContexMenu(INT idObj,BOOL showMyself)
{
CObject
*
pObject
=
(CObject
*
)CObjectManager::GetMe()
->
FindServerObject(idObj);
if
(
!
pObject)
return
;
CHAR szObjId[
32
]; _snprintf(szObjId,
32
,
"
%d
"
, pObject
->
GetID());
//
得到鼠标位置
POINT ptMouse
=
CInputSystem::GetMe()
->
MouseGetPos();
CHAR szXPos[
32
]; _snprintf(szXPos,
32
,
"
%d
"
, ptMouse.x);
CHAR szYPos[
32
]; _snprintf(szYPos,
32
,
"
%d
"
, ptMouse.y);
std::vector
<
STRING
>
vParam;
//
根据不同物体产生不同右键事件
//
主角自身
if
(g_theKernel.IsKindOf(pObject
->
GetClass(), GETCLASS(CObject_PlayerMySelf)))
{
if
(showMyself)
{
//
如果自己已经在队伍中了
if
( CUIDataPool::GetMe()
->
IsInTeam())
{
vParam.push_back(
"
player_in_team
"
);
vParam.push_back(szObjId);
vParam.push_back(szXPos);
vParam.push_back(szYPos);
CEventSystem::GetMe()
->
PushEvent(GE_SHOW_CONTEXMENU, vParam);
return
;
}
//
自己没有组队
vParam.push_back(
"
player
"
);
vParam.push_back(szObjId);
vParam.push_back(szXPos);
vParam.push_back(szYPos);
CEventSystem::GetMe()
->
PushEvent(GE_SHOW_CONTEXMENU, vParam);
}
}
//
其他玩家
else
if
(g_theKernel.IsKindOf(pObject
->
GetClass(), GETCLASS(CObject_PlayerOther)))
{
CObject_PlayerOther
*
pOtherObject
=
(CObject_PlayerOther
*
)pObject;
//
是否有帮会
if
( INVALID_ID
!=
CObjectManager::GetMe()
->
GetMySelf()
->
GetCharacterData()
->
Get_Guild() )
{
欢迎光临 游戏乐悠悠网游开发网 (http://bbs.yxlyy.club/)
Powered by Discuz! X3.2