From 5a4e34c8a85737c0fa5b5775122da31155cbaef3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 09 二月 2026 14:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/InternalAffairs/FuncNPCManager.cs | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/Main/System/InternalAffairs/FuncNPCManager.cs b/Main/System/InternalAffairs/FuncNPCManager.cs
index 6d482f2..6308d2d 100644
--- a/Main/System/InternalAffairs/FuncNPCManager.cs
+++ b/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()
--
Gitblit v1.8.0