Пример #1
0
    public void InitAdoration()
    {
        ResetUIRideGridAdoration();

        ResetAdoration();
        m_label_transExpNormal.text  = string.Format(LangTalkData.GetTextById(60001), GameTableManager.Instance.GetGlobalConfig <int>("PassOnRateRide", ((int)TransExpType.Normal * 10).ToString()));
        m_label_transExpPerfect.text = string.Format(LangTalkData.GetTextById(60001), GameTableManager.Instance.GetGlobalConfig <int>("PassOnRateRide", ((int)TransExpType.Perfect * 10).ToString()));
    }
Пример #2
0
    public void OnTalkData(LangTalkData langtalkdata, string strStep)
    {
        if (langtalkdata == null)
        {
            return;
        }
        if (langtalkdata.npcType == LangTalkData.NpcType.MissionTalk)
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcDialogPanel, data: langtalkdata);
        }
        //if (langtalkdata.npcType == LangTalkData.NpcType.CityWarOnly)
        //{
        //    DataManager.Manager<UIPanelManager>().ShowPanel(PanelID.NpcDialogPanel, data: langtalkdata);
        //}
        else if (langtalkdata.npcType == LangTalkData.NpcType.TalkOnly)
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcDialogPanel, data: langtalkdata);
        }
        else if (langtalkdata.npcType == LangTalkData.NpcType.MissionNoTalk)
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.MissionMessagePanel, data: langtalkdata);
        }
        else if (langtalkdata.npcType == LangTalkData.NpcType.TransferNpc)
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcDeliverPanel, data: langtalkdata);
        }
        else if (langtalkdata.npcType == LangTalkData.NpcType.Transmit)
        {
            NetService.Instance.Send(new GameCmd.stDialogSelectScriptUserCmd_C()
            {
                step    = strStep,
                dwChose = 1,
            });


            DataManager.Manager <UIPanelManager>().ShowLoading();

            Client.IControllerSystem cs = Client.ClientGlobal.Instance().GetControllerSystem();
            if (cs == null)
            {
                Engine.Utility.Log.Error("ExecuteCmd: ControllerSystem is null");
                return;
            }

            if (cs.GetCombatRobot().Status != Client.CombatRobotStatus.STOP)
            {
                cs.GetCombatRobot().Stop();
            }
        }
        else if (langtalkdata.npcType == LangTalkData.NpcType.MissionAutoReceive)
        {
            NetService.Instance.Send(new GameCmd.stDialogSelectScriptUserCmd_C()
            {
                step    = strStep,
                dwChose = 1,
            });
        }
    }
Пример #3
0
    protected override void OnShow(object data)
    {
        base.OnShow(data);
        m_lstTransfers.Clear();
        m_lst_TabType.Clear();
        if (data is LangTalkData)
        {
            isNpcTransfer     = true;
            m_label_name.text = "驿站车夫";
            m_langTalkData    = (LangTalkData)data;
            for (int i = 0; i < m_langTalkData.buttons.Count; i++)
            {
                uint id     = 0;
                uint sortID = 0;
                if (uint.TryParse(m_langTalkData.buttons[i].strBtnName, out id))
                {
                    TransferDatabase transf = GameTableManager.Instance.GetTableItem <TransferDatabase>(id);
                    if (transf != null)
                    {
                        if (!m_lst_TabType.Contains(transf.type))
                        {
                            m_lst_TabType.Add(transf.type);
                        }
                        sortID = transf.sortID;
                    }

                    m_lstTransfers.Add(new TransferData()
                    {
                        btnIndex = m_langTalkData.buttons[i].nindex,
                        tabID    = id,
                        isNpc    = true,
                        step     = m_langTalkData.strStep,
                        sortID   = transf.sortID,
                    });
                }
            }
            if (m_lstTransfers != null)
            {
                m_lstTransfers.Sort();
            }
        }
        else
        {
            isNpcTransfer     = false;
            m_label_name.text = "世界地图";
            for (int i = 0; i < lstTransmis.Count; i++)
            {
                if (!m_lst_TabType.Contains(lstTransmis[i].type))
                {
                    m_lst_TabType.Add(lstTransmis[i].type);
                }
            }
            StructDatas();
        }
        InitGrid();
    }
Пример #4
0
    public void Excute(stTalkDataScriptUserCmd_S cmd)
    {
        LangTalkData langtalkdata = LangTalkData.GetDataByCmd(cmd);

        if (langtalkdata == null)
        {
            Engine.Utility.Log.Error("对话id{0} 有问题", cmd.txt_id);
        }
        DataManager.Manager <TaskDataManager>().OnTalkData(langtalkdata, cmd.step);
    }
Пример #5
0
    protected override void OnShow(object data)
    {
        base.OnShow(data);
        if (data is LangTalkData)
        {
            this.m_dialogInfo = data as LangTalkData;
            if (this.m_dialogInfo == null)
            {
                return;
            }

            m_btn_btn_jump.gameObject.SetActive(m_dialogInfo.npcType != LangTalkData.NpcType.TalkOnly);

            m_nindex = 0;
            ShowTalkStr(m_nindex);
            ShowBtns();
        }
    }
Пример #6
0
    protected override void OnShow(object data)
    {
        base.OnShow(data);

        if (data is LangTalkData)
        {
            LangTalkData currDialogData = (LangTalkData)data;
            m_nTaskid = currDialogData.nTaskId;
            m_strStep = currDialogData.strStep;

            ShowUI();
        }
        else if (data is uint)
        {
            m_nTaskid = (uint)data;

            ShowUI();
        }
    }
Пример #7
0
    protected override void OnShow(object data)
    {
        base.OnShow(data);

        if (data is LangTalkData)
        {
            m_LangTalkData = data as LangTalkData;

            m_trans_BtnRoot.transform.DestroyChildren();

            m_trans_BtnRoot.transform.parent.GetComponent <UIScrollView>().ResetPosition();

            table.NpcDataBase npcdb = GameTableManager.Instance.GetTableItem <table.NpcDataBase>(m_LangTalkData.nNpcId);
            if (npcdb != null)
            {
                m_label_Npc_Name.text = npcdb.strName;
            }

            m_UIXmlRichText.Clear();
            if (m_LangTalkData.lstTalks.Count > 0)
            {
                m_UIXmlRichText.AddXml(RichXmlHelper.RichXmlAdapt(m_LangTalkData.lstTalks[0].strText));
            }

            for (int i = 0; i < m_LangTalkData.buttons.Count; i++)
            {
                GameObject go = NGUITools.AddChild(m_trans_BtnRoot.gameObject, m_btn_btn.gameObject);
                if (go != null)
                {
                    go.GetComponentInChildren <UILabel>().text = m_LangTalkData.buttons[i].strBtnName;
                    go.name = string.Format("btn_{0}", i);
                    UIEventListener.Get(go).onClick = onClick_Btn_Btn;
                    go.transform.localPosition      = new UnityEngine.Vector3(0, -i * 58, 0);
                    go.SetActive(true);
                }
            }
        }
    }
Пример #8
0
    /// <summary>
    /// 更新动态任务追踪
    /// </summary>
    public void UpdateTaskTrace(uint nTaskID, uint nTextID, List <string> lstParams)
    {
        QuestTraceInfo quest = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID);

        if (quest != null)
        {
            string strDesc = LangTalkData.GetTextById(nTextID);
            strDesc = strDesc.Replace("\n", "");
            if (quest.taskSubType == TaskSubType.DeliverItem)
            {
                if (lstParams.Count > (int)GameCmd.RandomParamType.SubmitItemID - 1)
                {
                    quest.QuestTable.usecommitItemID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.SubmitItemID - 1]);
                    table.QuestItemDataBase questItemDb = GameTableManager.Instance.GetTableItem <table.QuestItemDataBase>(quest.QuestTable.usecommitItemID);
                    if (questItemDb != null && questItemDb.dwSubType == (uint)TaskSubType.DeliverItem)
                    {
                        quest.QuestTable.destMapID   = questItemDb.destMapID;
                        quest.QuestTable.monster_npc = questItemDb.monster_npc;
                        quest.QuestTable.dwDoingNpc  = questItemDb.monster_npc;
                    }
                }
            }
            else if (quest.taskSubType == TaskSubType.UseItem)
            {
                if (lstParams.Count > (int)GameCmd.RandomParamType.UseItemID - 1)
                {
                    quest.QuestTable.usecommitItemID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.UseItemID - 1]);
                }

                quest.QuestTable.destMapID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.JumpMap - 1]);
            }
            else if (quest.taskSubType == TaskSubType.KillMonster /*|| quest.taskSubType == TaskSubType.KillMonsterCollect */ || quest.taskSubType == TaskSubType.CallMonster)
            {
                if (lstParams.Count > (int)GameCmd.RandomParamType.KillNpcMap - 1)
                {
                    quest.QuestTable.destMapID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillNpcMap - 1]);
                }
                if (lstParams.Count > (int)GameCmd.RandomParamType.KillNpcID - 1)
                {
                    quest.QuestTable.monster_npc = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillNpcID - 1]);
                }
            }
            else if (quest.taskSubType == TaskSubType.KillMonsterCollect)
            {
                if (quest.taskType == TaskType.TaskType_Loop)
                {
                    quest.QuestTable.destMapID       = uint.Parse(lstParams[(int)GameCmd.RandomParamType.JumpMap - 1]);
                    quest.QuestTable.usecommitItemID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillDropItemID - 1]);
                    quest.QuestTable.monster_npc     = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillDropNpcID - 1]);
                    //uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillDropNum - 1]);
                }
                else
                {
                    if (lstParams.Count > (int)GameCmd.RandomParamType.KillNpcMap - 1)
                    {
                        quest.QuestTable.destMapID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillNpcMap - 1]);
                    }
                    if (lstParams.Count > (int)GameCmd.RandomParamType.KillNpcID - 1)
                    {
                        quest.QuestTable.monster_npc = uint.Parse(lstParams[(int)GameCmd.RandomParamType.KillNpcID - 1]);
                    }
                }
            }
            else if (quest.taskSubType == TaskSubType.Collection)
            {
                if (lstParams.Count > (int)GameCmd.RandomParamType.CollectNpcMap - 1)
                {
                    quest.QuestTable.destMapID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.CollectNpcMap - 1]);
                }
                if (lstParams.Count > (int)GameCmd.RandomParamType.CollectNpcID - 1)
                {
                    quest.QuestTable.collect_npc = uint.Parse(lstParams[(int)GameCmd.RandomParamType.CollectNpcID - 1]);
                }

                //if (lstParams.Count>2)
                //{
                //    quest.QuestTable.coll
                //}
            }
            else if (quest.taskSubType == TaskSubType.Talk)
            {
                if (lstParams.Count > (int)GameCmd.RandomParamType.TalkNpcMap - 1)
                {
                    quest.QuestTable.submitMapID = uint.Parse(lstParams[(int)GameCmd.RandomParamType.TalkNpcMap - 1]);
                }
                if (lstParams.Count > (int)GameCmd.RandomParamType.TalkNpcID - 1)
                {
                    quest.QuestTable.dwEndNpc = uint.Parse(lstParams[(int)GameCmd.RandomParamType.TalkNpcID - 1]);
                }
            }

            quest.dynamicTranceUpdate          = true;
            quest.QuestTable.strTaskTraceBegin = strDesc;
            quest.UpdateDesc();

            if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel))
            {
                DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MissionAndTeamPanel, UIMsgID.eUpdateTaskList, null);
            }

            if (FirstLoginSuccess)
            {
                if (!quest.QuestTable.dwAuto)//如果非自动 则不发送做任务消息
                {
                    return;
                }

                if (m_bReconnect)
                {
                    m_bReconnect = false;
                    return;
                }
                Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.TASK_DONING,
                                                                    new Client.stDoingTask()
                {
                    taskid = quest.taskId, state = quest.state, oprate = quest.operate, desc = strDesc
                });
            }
        }
    }
Пример #9
0
    /// <summary>
    /// 发送消息
    /// </summary>
    /// <param name="caster"></param>
    void onClick_Btn_send_Btn(GameObject caster)
    {
        //if (!string.IsNullOrEmpty(m_input_input.value))
        {
            //string inputText = m_input_input.value;
            string inputText = string.IsNullOrEmpty(m_input_input.value) ? this.m_defaultText : m_input_input.value;  //不打字就默认 “懂的来”

            uint   leaderId   = DataManager.Manager <TeamDataManager>().LeaderId;
            uint   activityId = DataManager.Manager <TeamDataManager>().TeamActivityTargetId;
            string sendText   = string.Empty;
            if (activityId != 0)
            {
                TeamActivityDatabase data = GameTableManager.Instance.GetTableItem <TeamActivityDatabase>(activityId);
                if (data != null)
                {
                    string name    = ClientGlobal.Instance().MainPlayer.GetName();
                    string strText = LangTalkData.GetTextById(20007);
                    sendText = string.Format(strText, data.mainName, data.indexName, data.min, data.max, name, inputText, leaderId);
                }

                if (sendText == string.Empty)
                {
                    TipsManager.Instance.ShowTips(LocalTextType.Team_Activity_qingxianxuanzehuodongmubiao);//请选择活动目标
                }
            }



            if (DataManager.Manager <TeamDataManager>().MainPlayerIsMember() && sendText != string.Empty)
            {
                bool   b           = false;
                string channelName = "";

                //氏族
                if (GetSelectBtnIndex() == CHATTYPE.CHAT_CLAN)
                {
                    channelName = DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Local_TXT_TaskTitle_Clan);//氏族
                    bool IsJoinClan = DataManager.Manager <ClanManger>().IsJoinClan;
                    if (IsJoinClan == false)
                    {
                        TipsManager.Instance.ShowTips("你还没有加入氏族");//你还没有加入氏族
                        return;
                    }

                    b = DataManager.Manager <ChatDataManager>().SendText(CHATTYPE.CHAT_CLAN, sendText);
                }

                //世界
                else if (GetSelectBtnIndex() == CHATTYPE.CHAT_WORLD)
                {
                    channelName = "世界";

                    //判断钱够不够
                    if (UserData.Coupon < DataManager.Manager <ChatDataManager>().ChatWorldCost)
                    {
                        TipsManager.Instance.ShowTipsById(4);
                        return;
                    }

                    b = DataManager.Manager <ChatDataManager>().SendText(CHATTYPE.CHAT_WORLD, sendText);
                }

                //招募
                else if (GetSelectBtnIndex() == CHATTYPE.CHAT_RECRUIT)
                {
                    channelName = DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Team_Recruit_zhaomu);
                    b           = DataManager.Manager <ChatDataManager>().SendText(CHATTYPE.CHAT_RECRUIT, sendText);
                }

                if (b)
                {
                    m_input_input.value      = "";
                    m_input_input.isSelected = false;

                    //已经发送招募信息至{0}
                    TipsManager.Instance.ShowLocalFormatTips(LocalTextType.Team_Recruit_zhaomuxinxifasongchenggong, channelName);
                    HideSelf();
                }
            }
        }

        m_input_input.Start();
    }
Пример #10
0
    public static LangTalkData GetDataByCmd(GameCmd.stTalkDataScriptUserCmd_S cmd)
    {
        table.LangTextDataBase langtextDb = GameTableManager.Instance.GetTableItem <table.LangTextDataBase>(cmd.txt_id);
        LangTalkData           data       = new LangTalkData();

        data.strStep = cmd.step;
        if (langtextDb != null)
        {
            data.nTextID = langtextDb.dwID;

            uint npcId;
            if (GetNpcIdForDaliyRingTask(out npcId))
            {
                data.nNpcId = npcId;
            }
            else
            {
                data.nNpcId = langtextDb.npcID;
            }

            data.npcType = (NpcType)langtextDb.npcType;
            data.nTaskId = langtextDb.taskID;

            if (!string.IsNullOrEmpty(langtextDb.talkVoice))
            {
                string[] voices = langtextDb.talkVoice.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                data.talkVoice = new uint[voices.Length];
                for (int i = 0; i < voices.Length; i++)
                {
                    data.talkVoice[i] = uint.Parse(voices[i]);
                }
            }

            for (int i = 0; i < cmd.buttons.Count; ++i)
            {
                table.LangTextDataBase btnDb = GameTableManager.Instance.GetTableItem <table.LangTextDataBase>(cmd.buttons[i]);
                if (btnDb != null)
                {
                    LangTalkData.Button btn = new LangTalkData.Button();
                    btn.taskId     = btnDb.taskID;
                    btn.nindex     = (uint)i + 1;
                    btn.strBtnName = btnDb.strText;
                    data.buttons.Add(btn);
                }
            }

            IEnumerable <XNode> nodes = XDocument.Parse("<root>" + langtextDb.strText + "</root>").Root.Nodes();
            if (nodes != null)
            {
                foreach (var n in nodes)
                {
                    var e = n as XElement;
                    if (e != null)
                    {
                        switch (e.Name.ToString())
                        {
                        case "talk":
                            LangTalkData.Talk talk = new LangTalkData.Talk();
                            if (e.Attribute("type") != null)
                            {
                                var type = int.Parse(e.AttributeValue("type"));
                                talk.bUser = type == 2;
                            }
                            if (e.Attribute("text") != null)
                            {
                                System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                                string text       = e.AttributeValue("text");
                                string strColor   = "";
                                bool   starttoken = false;
                                for (int i = 0; i < text.Length; i++)
                                {
                                    if (starttoken)
                                    {
                                        if (text[i] == '0' || text[i] == '1' || text[i] == '2' || text[i] == '3' ||
                                            text[i] == '4' || text[i] == '5' || text[i] == '6' || text[i] == '7' ||
                                            text[i] == '8' || text[i] == '9' || text[i] == 'a' || text[i] == 'b' ||
                                            text[i] == 'c' || text[i] == 'd' || text[i] == 'e' || text[i] == 'f' ||
                                            text[i] == 'A' || text[i] == 'B' || text[i] == 'C' || text[i] == 'D' ||
                                            text[i] == 'E' || text[i] == 'F' || text[i] == '-')
                                        {
                                            strColor += text[i];
                                        }
                                        else if (text[i] == ']')
                                        {
                                            starttoken = false;
                                            strColor  += ']';
                                            if (strColor.Length == 8)
                                            {
                                                strColor = strColor.Replace("[", "<color value=\"#");
                                                strColor = strColor.Replace("]", "\">");
                                                stringBuilder.Append(strColor);
                                            }
                                            else if (strColor.Length == 3)
                                            {
                                                strColor = strColor.Replace("[-]", "</color>");
                                                stringBuilder.Append(strColor);
                                            }
                                            else
                                            {
                                                stringBuilder.Append(strColor);
                                            }
                                            strColor = "";
                                        }
                                        else
                                        {
                                            starttoken = false;
                                            strColor  += text[i];
                                            stringBuilder.Append(strColor);
                                        }
                                    }
                                    else if (text[i] == '[')
                                    {
                                        strColor   = "[";
                                        starttoken = true;
                                    }
                                    else
                                    {
                                        starttoken = false;
                                        stringBuilder.Append(text[i]);
                                    }
                                }
                                talk.strText = stringBuilder.ToString();
                            }
                            data.lstTalks.Add(talk);
                            break;
                        }
                        continue;
                    }
                }
            }
        }
        else
        {
            Engine.Utility.Log.Error("Not Found LangTextDataBase id {0}", cmd.txt_id);
        }

        return(data);
    }