yyl
3 天以前 5a4e34c8a85737c0fa5b5775122da31155cbaef3
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()