游戏乐悠悠网游开发网

标题: 武侠-右键下拉菜单实现 [打印本页]

作者: 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