Пример #1
0
    public override void OnShow(object msg)
    {
        base.OnShow(msg);
        RefreshHotKeyState(false);
        MissionOpenMsgInfo data = (MissionOpenMsgInfo)msg;

        m_MissionVO    = data.MissionVO;
        m_NpcTransform = data.NpcTransform;
    }
Пример #2
0
    public bool OpenMissionPanel(ulong npcUid, Npc npcVO, Transform transform)
    {
        uint?              talkId;
        MissionVO          missionVO = null;
        MissionOpenMsgInfo info      = new MissionOpenMsgInfo();

        info.NpcTransform = transform;

        //检查是否有已完成可以交的任务
        missionVO = GetCanSubmitMissionBy(npcVO.Id);
        if (missionVO != null)
        {
            info.MissionVO = missionVO;
            UIManager.Instance.OpenPanel(UIPanel.MissionDialogPanel, null, info);
            talkId = (uint)(missionVO.MissionMainConfig?.UnfinishedDialog ?? 0);
            OpenNpcChat(npcVO, transform, talkId.Value, npcVO.Id);
            return(true);
        }

        //检查是否有对话任务需要对话
        talkId = GetTalkMissionTalkTidBy(npcVO.Id);
        if (talkId.HasValue)
        {
            OpenNpcChat(npcVO, transform, talkId.Value, npcVO.Id, true);


            #region
            //HACK gaoyu
            //这是一个临时需求 by 张子华
            if (talkId.Value == 510109)
            {
                AssetManager.GetInstance().InstanceAssetAsync("Inter_ARJunk_S2Signal02",
                                                              (address, uObj, userData) =>
                {
                    GameObject gObj = uObj as GameObject;
                    gObj.transform.SetParent(transform, false);
                });
                WwiseUtil.PlaySound(9010, false, transform);                //李贺新 临时音效 修复什么东西的音效
            }

            #endregion



            return(true);
        }

        //检查是否有可接任务
        missionVO = GetAcceptTaskTidBy(npcVO.Id);
        if (missionVO != null)
        {
            info.MissionVO = missionVO;
            UIManager.Instance.OpenPanel(UIPanel.MissionDialogPanel, null, info);
            talkId = (uint)(missionVO.MissionMainConfig?.AcceptDialog ?? 0);
            OpenNpcChat(npcVO, transform, talkId.Value, npcVO.Id);
            return(true);
        }

        //找一个进行中的任务
        missionVO = GetGoingMissionBy(npcVO.Id);
        if (missionVO != null)
        {
            talkId = (uint)(missionVO.MissionMainConfig?.UnfinishedDialog ?? 0);
            OpenNpcChat(npcVO, transform, talkId.Value, npcVO.Id);
            return(false);
        }

        return(false);
    }