0312 隐藏灵兽,皇宫,府邸标签;内政中功能未开启时对应的npc也不显示
2个文件已修改
57 ■■■■ 已修改文件
Main/System/InternalAffairs/AffairBaseWin.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/InternalAffairs/FuncNPCManager.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/InternalAffairs/AffairBaseWin.cs
@@ -119,6 +119,20 @@
            autoBtn.SetActive(false);
            goldRushItemBtn.SetActive(false);
        }
        foreach (var npc in funcNPCs)
        {
            var key = npc.heroSkinID;
            if (!FuncOpen.Instance.IsFuncOpen(FuncNPCManager.Instance.funcNPCToFuncID[key]))
            {
                npc.SetActive(false);
            }
            else
            {
                npc.SetActive(true);
            }
        }
    }
@@ -172,8 +186,17 @@
    void OnFiveSecondEvent()
    {
        var index = FuncNPCManager.Instance.GetRandomAffairNpcTalk();
        var talk = FuncNPCManager.Instance.GetAffairTalk(funcNPCs[index].heroSkinID);
        var skinID = FuncNPCManager.Instance.GetRandomAffairNpcTalk();
        var talk = FuncNPCManager.Instance.GetAffairTalk(skinID);
        var index = 0;
        for (int i = 0; i < funcNPCs.Length; i++)
        {
            if (funcNPCs[i].heroSkinID == skinID)
            {
                index = i;
                break;
            }
        }
        if (talk != null)
        {
            talkTexts[index].text = Language.Get(talk);
Main/System/InternalAffairs/FuncNPCManager.cs
@@ -8,6 +8,7 @@
    //内政NPC
    Dictionary<int, string[]> affairNpcTalkDic = new Dictionary<int, string[]>();
    public List<int> affairTalkIndexList = new List<int>();
    public Dictionary<int, int> funcNPCToFuncID = new Dictionary<int, int>();
    public float lastAffairTalkTime;
    public int lastAffiarRandomIndex;
@@ -38,10 +39,7 @@
            affairNpcTalkDic.Add(npcID, talkList);
        }
        for (int i = 0; i < affairNpcTalkDic.Count; i++)
        {
            affairTalkIndexList.Add(i);
        }
        json = JsonMapper.ToObject(config.Numerical2);
        keys = json.Keys.ToList();
@@ -56,19 +54,41 @@
            guildTalkIndexList.Add(i);
        }
        funcNPCToFuncID = ConfigParse.ParseIntDict(config.Numerical3);
    }
    void RefreshAffairTalkIndexList()
    {
        affairTalkIndexList.Clear();
        foreach (var key in affairNpcTalkDic.Keys)
        {
            if (!FuncOpen.Instance.IsFuncOpen(funcNPCToFuncID[key]))
            {
                continue;
            }
            if (funcNPCToFuncID[key] == 54 && MinggeManager.Instance.isStartAuto)
            {
                //算命中不参与喊话
                continue;
            }
            affairTalkIndexList.Add(key);
        }
    }
    //随机某个NPC对话,与上一次随机的NPC索引不重复
    //返回NPCID
    public int GetRandomAffairNpcTalk()
    {
        RefreshAffairTalkIndexList();
        int index = Random.Range(0, affairTalkIndexList.Count);
        if (index == lastAffiarRandomIndex)
        {
            index = (index + 1) % affairTalkIndexList.Count;
        }
        lastAffiarRandomIndex = index;
        return index;
        return affairTalkIndexList[index];
    }
    public int GetRandomGuildNpcTalk()