From f31a204c7332999f22efd9d6c24d73dc0a5f3fe1 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 26 三月 2019 11:38:52 +0800
Subject: [PATCH] 6394 【前端】【2.0】剧情任务对话支持同一NPC不同任务状态的多段对话
---
Core/GameEngine/Model/Config/StoryMissionsConfig.cs | 432 ++++++++++++++++++++++++++---------------------------
1 files changed, 211 insertions(+), 221 deletions(-)
diff --git a/Core/GameEngine/Model/Config/StoryMissionsConfig.cs b/Core/GameEngine/Model/Config/StoryMissionsConfig.cs
index e4dcd7d..cfc9462 100644
--- a/Core/GameEngine/Model/Config/StoryMissionsConfig.cs
+++ b/Core/GameEngine/Model/Config/StoryMissionsConfig.cs
@@ -1,240 +1,230 @@
-锘�//--------------------------------------------------------
-// [Author]: Fish
-// [ Date ]: Thursday, February 14, 2019
-//--------------------------------------------------------
-
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System;
-using UnityEngine;
-
-[XLua.LuaCallCSharp]
-public partial class StoryMissionsConfig
-{
-
- public readonly int TaskID;
- public readonly int[] NpcID;
+锘�//--------------------------------------------------------
+// [Author]: Fish
+// [ Date ]: Tuesday, March 26, 2019
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+
+[XLua.LuaCallCSharp]
+public partial class StoryMissionsConfig
+{
+
+ public readonly int id;
+ public readonly int TaskID;
+ public readonly int state;
+ public readonly int NpcID;
public readonly int[] TalkNum;
- public readonly string[] content;
+ public readonly string content;
public readonly int[] Speaker1;
- public readonly int[] Speaker2;
- public readonly string[] NpcIcon;
- public readonly int TaskMusic;
+ public readonly int TaskMusic;
+
+ public StoryMissionsConfig()
+ {
+ }
+
+ public StoryMissionsConfig(string input)
+ {
+ try
+ {
+ var tables = input.Split('\t');
+
+ int.TryParse(tables[0],out id);
- public StoryMissionsConfig()
- {
- }
+ int.TryParse(tables[1],out TaskID);
- public StoryMissionsConfig(string input)
- {
- try
- {
- var tables = input.Split('\t');
+ int.TryParse(tables[2],out state);
- int.TryParse(tables[0],out TaskID);
+ int.TryParse(tables[3],out NpcID);
- string[] NpcIDStringArray = tables[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- NpcID = new int[NpcIDStringArray.Length];
- for (int i=0;i<NpcIDStringArray.Length;i++)
- {
- int.TryParse(NpcIDStringArray[i],out NpcID[i]);
- }
-
- string[] TalkNumStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] TalkNumStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
TalkNum = new int[TalkNumStringArray.Length];
for (int i=0;i<TalkNumStringArray.Length;i++)
{
int.TryParse(TalkNumStringArray[i],out TalkNum[i]);
}
- content = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ content = tables[5];
- string[] Speaker1StringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] Speaker1StringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
Speaker1 = new int[Speaker1StringArray.Length];
for (int i=0;i<Speaker1StringArray.Length;i++)
{
int.TryParse(Speaker1StringArray[i],out Speaker1[i]);
}
- string[] Speaker2StringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- Speaker2 = new int[Speaker2StringArray.Length];
- for (int i=0;i<Speaker2StringArray.Length;i++)
- {
- int.TryParse(Speaker2StringArray[i],out Speaker2[i]);
- }
-
- NpcIcon = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
-
- int.TryParse(tables[7],out TaskMusic);
- }
- catch (Exception ex)
- {
- DebugEx.Log(ex);
- }
- }
-
- static Dictionary<string, StoryMissionsConfig> configs = new Dictionary<string, StoryMissionsConfig>();
- public static StoryMissionsConfig Get(string id)
- {
- if (!inited)
- {
- Debug.Log("StoryMissionsConfig 杩樻湭瀹屾垚鍒濆鍖栥��");
- return null;
- }
-
- if (configs.ContainsKey(id))
- {
- return configs[id];
- }
-
- StoryMissionsConfig config = null;
- if (rawDatas.ContainsKey(id))
- {
- config = configs[id] = new StoryMissionsConfig(rawDatas[id]);
- rawDatas.Remove(id);
- }
-
- return config;
- }
-
- public static StoryMissionsConfig Get(int id)
- {
- return Get(id.ToString());
- }
-
- public static List<string> GetKeys()
- {
- var keys = new List<string>();
- keys.AddRange(configs.Keys);
- keys.AddRange(rawDatas.Keys);
- return keys;
- }
-
- public static List<StoryMissionsConfig> GetValues()
- {
- var values = new List<StoryMissionsConfig>();
- values.AddRange(configs.Values);
-
- var keys = new List<string>(rawDatas.Keys);
- foreach (var key in keys)
- {
- values.Add(Get(key));
- }
-
- return values;
- }
-
- public static bool Has(string id)
- {
- return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
- }
-
- public static bool Has(int id)
- {
- return Has(id.ToString());
- }
-
- public static bool inited { get; private set; }
- protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
- public static void Init(bool sync=false)
- {
- inited = false;
- var path = string.Empty;
- if (AssetSource.refdataFromEditor)
- {
- path = ResourcesPath.CONFIG_FODLER +"/StoryMissions.txt";
- }
- else
- {
- path = AssetVersionUtility.GetAssetFilePath("config/StoryMissions.txt");
- }
-
- var tempConfig = new StoryMissionsConfig();
- var preParse = tempConfig is IConfigPostProcess;
-
- if (sync)
- {
- var lines = File.ReadAllLines(path);
- if (!preParse)
- {
- rawDatas = new Dictionary<string, string>(lines.Length - 3);
- }
- for (int i = 3; i < lines.Length; i++)
- {
- try
- {
- var line = lines[i];
- var index = line.IndexOf("\t");
- if (index == -1)
- {
- continue;
- }
- var id = line.Substring(0, index);
-
- if (preParse)
- {
- var config = new StoryMissionsConfig(line);
- configs[id] = config;
- (config as IConfigPostProcess).OnConfigParseCompleted();
- }
- else
- {
- rawDatas[id] = line;
- }
- }
- catch (System.Exception ex)
- {
- Debug.LogError(ex);
- }
- }
- inited = true;
- }
- else
- {
- ThreadPool.QueueUserWorkItem((object _object) =>
- {
- var lines = File.ReadAllLines(path);
- if (!preParse)
- {
- rawDatas = new Dictionary<string, string>(lines.Length - 3);
- }
- for (int i = 3; i < lines.Length; i++)
- {
- try
- {
- var line = lines[i];
- var index = line.IndexOf("\t");
- if (index == -1)
- {
- continue;
- }
- var id = line.Substring(0, index);
-
- if (preParse)
- {
- var config = new StoryMissionsConfig(line);
- configs[id] = config;
- (config as IConfigPostProcess).OnConfigParseCompleted();
- }
- else
- {
- rawDatas[id] = line;
- }
- }
- catch (System.Exception ex)
- {
- Debug.LogError(ex);
- }
- }
-
- inited = true;
- });
- }
- }
-
-}
-
-
-
-
+ int.TryParse(tables[7],out TaskMusic);
+ }
+ catch (Exception ex)
+ {
+ DebugEx.Log(ex);
+ }
+ }
+
+ static Dictionary<string, StoryMissionsConfig> configs = new Dictionary<string, StoryMissionsConfig>();
+ public static StoryMissionsConfig Get(string id)
+ {
+ if (!inited)
+ {
+ Debug.Log("StoryMissionsConfig 杩樻湭瀹屾垚鍒濆鍖栥��");
+ return null;
+ }
+
+ if (configs.ContainsKey(id))
+ {
+ return configs[id];
+ }
+
+ StoryMissionsConfig config = null;
+ if (rawDatas.ContainsKey(id))
+ {
+ config = configs[id] = new StoryMissionsConfig(rawDatas[id]);
+ rawDatas.Remove(id);
+ }
+
+ return config;
+ }
+
+ public static StoryMissionsConfig Get(int id)
+ {
+ return Get(id.ToString());
+ }
+
+ public static List<string> GetKeys()
+ {
+ var keys = new List<string>();
+ keys.AddRange(configs.Keys);
+ keys.AddRange(rawDatas.Keys);
+ return keys;
+ }
+
+ public static List<StoryMissionsConfig> GetValues()
+ {
+ var values = new List<StoryMissionsConfig>();
+ values.AddRange(configs.Values);
+
+ var keys = new List<string>(rawDatas.Keys);
+ foreach (var key in keys)
+ {
+ values.Add(Get(key));
+ }
+
+ return values;
+ }
+
+ public static bool Has(string id)
+ {
+ return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
+ }
+
+ public static bool Has(int id)
+ {
+ return Has(id.ToString());
+ }
+
+ public static bool inited { get; private set; }
+ protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
+ public static void Init(bool sync=false)
+ {
+ inited = false;
+ var path = string.Empty;
+ if (AssetSource.refdataFromEditor)
+ {
+ path = ResourcesPath.CONFIG_FODLER +"/StoryMissions.txt";
+ }
+ else
+ {
+ path = AssetVersionUtility.GetAssetFilePath("config/StoryMissions.txt");
+ }
+
+ var tempConfig = new StoryMissionsConfig();
+ var preParse = tempConfig is IConfigPostProcess;
+
+ if (sync)
+ {
+ var lines = File.ReadAllLines(path);
+ if (!preParse)
+ {
+ rawDatas = new Dictionary<string, string>(lines.Length - 3);
+ }
+ for (int i = 3; i < lines.Length; i++)
+ {
+ try
+ {
+ var line = lines[i];
+ var index = line.IndexOf("\t");
+ if (index == -1)
+ {
+ continue;
+ }
+ var id = line.Substring(0, index);
+
+ if (preParse)
+ {
+ var config = new StoryMissionsConfig(line);
+ configs[id] = config;
+ (config as IConfigPostProcess).OnConfigParseCompleted();
+ }
+ else
+ {
+ rawDatas[id] = line;
+ }
+ }
+ catch (System.Exception ex)
+ {
+ Debug.LogError(ex);
+ }
+ }
+ inited = true;
+ }
+ else
+ {
+ ThreadPool.QueueUserWorkItem((object _object) =>
+ {
+ var lines = File.ReadAllLines(path);
+ if (!preParse)
+ {
+ rawDatas = new Dictionary<string, string>(lines.Length - 3);
+ }
+ for (int i = 3; i < lines.Length; i++)
+ {
+ try
+ {
+ var line = lines[i];
+ var index = line.IndexOf("\t");
+ if (index == -1)
+ {
+ continue;
+ }
+ var id = line.Substring(0, index);
+
+ if (preParse)
+ {
+ var config = new StoryMissionsConfig(line);
+ configs[id] = config;
+ (config as IConfigPostProcess).OnConfigParseCompleted();
+ }
+ else
+ {
+ rawDatas[id] = line;
+ }
+ }
+ catch (System.Exception ex)
+ {
+ Debug.LogError(ex);
+ }
+ }
+
+ inited = true;
+ });
+ }
+ }
+
+}
+
+
+
+
--
Gitblit v1.8.0