| | |
| | | //内政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; |
| | | |
| | |
| | | affairNpcTalkDic.Add(npcID, talkList); |
| | | } |
| | | |
| | | for (int i = 0; i < affairNpcTalkDic.Count; i++) |
| | | { |
| | | affairTalkIndexList.Add(i); |
| | | } |
| | | |
| | | |
| | | json = JsonMapper.ToObject(config.Numerical2); |
| | | keys = json.Keys.ToList(); |
| | |
| | | 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() |