From 8730d119e7ccb0ea69b996cb76ee059cee0e07f0 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 11 十月 2025 10:35:05 +0800
Subject: [PATCH] 0312 引导增加可重复触发

---
 Main/Config/Configs/GuideConfig.cs         |    5 ++
 Main/System/NewBieGuidance/NewBieCenter.cs |   62 +++++++++++++++++++++----------
 2 files changed, 46 insertions(+), 21 deletions(-)

diff --git a/Main/Config/Configs/GuideConfig.cs b/Main/Config/Configs/GuideConfig.cs
index 422390e..6ae4012 100644
--- a/Main/Config/Configs/GuideConfig.cs
+++ b/Main/Config/Configs/GuideConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�10鏈�9鏃�
+//    [  Date ]:           2025骞�10鏈�11鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -23,6 +23,7 @@
 	public string WinName;
 	public int PreGuideId;
 	public int[] Steps;
+	public int NoRecord;
 
     public override int LoadKey(string _key)
     {
@@ -59,6 +60,8 @@
 					 int.TryParse(StepsStringArray[i],out Steps[i]);
 				}
 			}
+
+			int.TryParse(tables[7],out NoRecord); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/NewBieGuidance/NewBieCenter.cs b/Main/System/NewBieGuidance/NewBieCenter.cs
index 4ea2df5..e511093 100644
--- a/Main/System/NewBieGuidance/NewBieCenter.cs
+++ b/Main/System/NewBieGuidance/NewBieCenter.cs
@@ -229,21 +229,29 @@
 
     }
 
+    bool IsNeedRecord(int _id)
+    {
+        return GuideConfig.Get(_id).NoRecord == 0;
+    }
+
     public void FinishNewBieGuide(int _id)
     {
         var guideRecord = currentGuide;
         currentGuide = 0;
 
         UIManager.Instance.CloseWindow<NewBieWin>();
-        if (!completeGuidesBuf.Contains(guideRecord))
+        if (IsNeedRecord(_id))
         {
-            completeGuidesBuf.Add(guideRecord);
-        }
+            if (!completeGuidesBuf.Contains(guideRecord))
+            {
+                completeGuidesBuf.Add(guideRecord);
+            }
 
-        var send = new CA222_tagCMSetGuideOK();
-        send.GuideIndex = (byte)_id;
-        send.IsOK = 1;
-        GameNetSystem.Instance.SendInfo(send);
+            var send = new CA222_tagCMSetGuideOK();
+            send.GuideIndex = (byte)_id;
+            send.IsOK = 1;
+            GameNetSystem.Instance.SendInfo(send);
+        }
 
         if (guideCompletedEvent != null)
         {
@@ -255,27 +263,37 @@
 
     public void RemoveNewBieGuide(int _id)
     {
-        if (!completeGuidesBuf.Contains(_id))
+        if (IsNeedRecord(_id))
         {
-            completeGuidesBuf.Add(_id);
-        }
+            if (!completeGuidesBuf.Contains(_id))
+            {
+                completeGuidesBuf.Add(_id);
+            }
 
-        var send = new CA222_tagCMSetGuideOK();
-        send.GuideIndex = (byte)_id;
-        send.IsOK = 1;
-        GameNetSystem.Instance.SendInfo(send);
+            var send = new CA222_tagCMSetGuideOK();
+            send.GuideIndex = (byte)_id;
+            send.IsOK = 1;
+            GameNetSystem.Instance.SendInfo(send);
+        }
     }
 
     public void FinishCurrentGuideWithoutCloseWin()
     {
         var guideRecord = currentGuide;
         currentGuide = 0;
-        completeGuidesBuf.Add(guideRecord);
 
-        var send = new CA222_tagCMSetGuideOK();
-        send.GuideIndex = (byte)guideRecord;
-        send.IsOK = 1;
-        GameNetSystem.Instance.SendInfo(send);
+        if (IsNeedRecord(guideRecord))
+        {
+            if (!completeGuidesBuf.Contains(guideRecord))
+            {
+                completeGuidesBuf.Add(guideRecord);
+            }
+
+            var send = new CA222_tagCMSetGuideOK();
+            send.GuideIndex = (byte)guideRecord;
+            send.IsOK = 1;
+            GameNetSystem.Instance.SendInfo(send);
+        }
 
         if (guideCompletedEvent != null)
         {
@@ -363,10 +381,14 @@
         currentGuide = 0;
         UIManager.Instance.CloseWindow<NewBieWin>();
 
+        completeGuidesBuf.Clear();
         var allGuideKeys = GuideConfig.GetKeys();
         for (int i = 0; i < allGuideKeys.Count; i++)
         {
-            completeGuidesBuf.Add(allGuideKeys[i]);
+            if (IsNeedRecord(allGuideKeys[i]))
+            {
+                completeGuidesBuf.Add(allGuideKeys[i]);
+            }
         }
 
     }

--
Gitblit v1.8.0