TA的每日心情 | 无聊 2014-8-8 12:31 |
---|
签到天数: 37 天 [LV.5]常住居民I 鲜花( 0) 鸡蛋( 0)
|
一 右键点击目标头像界面,首先分析是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() )
{
|
|