Beispiel #1
0
    //打开NPC对话
    public bool OpenMissionNpcDialog(int npcId, ulong objId = TypeDefine.INVALID_ULONG)
    {
        NpcId                   = npcId;
        NpcObjId                = objId;
        CurrentMissionData      = null;
        CurrentMissionTableData = null;

        var tableCharacter = Table.GetCharacterBase(npcId);

        if (null != tableCharacter)
        {
            var tableNpc = Table.GetNpcBase(tableCharacter.ExdataId);
            if (null != tableNpc)
            {
                for (var i = 0; i < tableNpc.pop.Length; i++)
                {
                    if (!string.IsNullOrEmpty(tableNpc.pop[i]))
                    {
                        //打开任务的时候关闭引导
                        EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.NewbieGuide));
                        EventDispatcher.Instance.DispatchEvent(new UIEvent_UpdateCurrentMission(-1));
                        UIManager.Instance.ShowUI(UIConfig.MissionFrame);

                        return(true);
                    }
                }
            }
        }

        return(false);
    }
Beispiel #2
0
    //打开当前任务
    public bool OpenMissionById(int Id, int npcId = -1, ulong objId = TypeDefine.INVALID_ULONG)
    {
        var tableData = Table.GetMissionBase(Id);

        if (null == tableData)
        {
            return(false);
        }

        MissionBaseModel data = null;

        if (!MissionData.Datas.TryGetValue(Id, out data))
        {
            Logger.Fatal("Don't have this mission[" + Id + "]");
            return(false);
        }

        NpcId                   = npcId;
        NpcObjId                = objId;
        CurrentMissionData      = data;
        CurrentMissionTableData = Table.GetMissionBase(Id);
        //打开任务的时候关闭引导
        EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.NewbieGuide));
        EventDispatcher.Instance.DispatchEvent(new UIEvent_UpdateCurrentMission(-1));

        //if (!UIConfig.MissionFrame.Visible())
        {
            UIManager.Instance.ShowUI(UIConfig.MissionFrame);
        }

        return(true);
    }
Beispiel #3
0
    //计算任务显示内容
    public static string MissionContent(MissionBaseRecord missionData, ReadonlyList <int> data)
    {
        var str = "(";

        if (data[0] == (int)eMissionState.Finished)
        {
            str += GameUtils.GetDictionaryText(1031);
        }
        else if (data[0] == (int)eMissionState.Acceptable)
        {
            str += GameUtils.GetDictionaryText(1034);
        }
        else if (data[0] == (int)eMissionState.Failed)
        {
            str += GameUtils.GetDictionaryText(1033);
        }
        else
        {
            var missionType = (eMissionType)missionData.FinishCondition;
            switch (missionType)
            {
            case eMissionType.Finish:
            {
                str += GameUtils.GetDictionaryText(1031);
            }
            break;

            case eMissionType.AcceptProgressBar:
            case eMissionType.AreaProgressBar:
            case eMissionType.AcceptStroy:
            {
                str += string.Format("{0}/{1}", 0, 1);
            }
            break;

            default:
            {
                str += string.Format("{0}/{1}", data[2], data[4]);
            }
            break;
            }
        }


        str += ")";

        if (data[0] == (int)eMissionState.Finished)
        {
            str = "[5DFF00]" + str + "[-]";
        }

        return(str);
    }