private void Load(ScriptableData.ScriptableDataFile dataFile, int sceneId) { lock (m_oLock) { foreach (var info in dataFile.ScriptableDatas) { if (info.GetId() == "story" || info.GetId() == "script") { ScriptableData.FunctionData funcData = info.First; if (funcData != null) { ScriptableData.CallData callData = funcData.Call; if (callData != null && callData.HaveParam()) { int storyId = int.Parse(callData.GetParamId(0)); int id = GetId(storyId, sceneId); if (!m_dicStoryInstance.ContainsKey(id)) { StoryInstance instance = new StoryInstance(); instance.Init(info); m_dicStoryInstance.Add(id, instance); m_log.Debug("加载剧情" + id + "成功"); } else { } } } } } } }
public static void Main(string[] args) { Dictionary <string, string> encodeTable = new Dictionary <string, string>(); Dictionary <string, string> decodeTable = new Dictionary <string, string>(); AddCrypto("skill", "@1", encodeTable, decodeTable); AddCrypto("section", "@2", encodeTable, decodeTable); AddCrypto("effect", "@3", encodeTable, decodeTable); AddCrypto("sound", "@4", encodeTable, decodeTable); AddCrypto("triger", "@5", encodeTable, decodeTable); AddCrypto("duration", "@6", encodeTable, decodeTable); AddCrypto("grap", "@7", encodeTable, decodeTable); AddCrypto("range", "@8", encodeTable, decodeTable); AddCrypto("animation", "@9", encodeTable, decodeTable); AddCrypto("impact", "@10", encodeTable, decodeTable); AddCrypto("hittarget", "@11", encodeTable, decodeTable); AddCrypto("throw", "@12", encodeTable, decodeTable); ScriptableDataFile file = new ScriptableDataFile(); file.Load("test.txt"); #if FULL_VERSION file.Save("copy.txt"); string code0 = file.GenerateObfuscatedCode(File.ReadAllText("test.txt"), encodeTable); File.WriteAllText("obfuscation.txt", code0); #endif file.ScriptableDatas.Clear(); string code = File.ReadAllText("obfuscation.txt"); file.LoadObfuscatedCode(code, decodeTable); #if FULL_VERSION file.Save("unobfuscation.txt"); #endif }
/// <summary> /// 加载剧情,根据配置文件 /// </summary> /// <param name="file"></param> /// <param name="sceneId"></param> public void LoadStory(string file, int sceneId) { if (!string.IsNullOrEmpty(file)) { ScriptableData.ScriptableDataFile dataFile = new ScriptableData.ScriptableDataFile(); if (dataFile.Load(file)) { Load(dataFile, sceneId); } else { Debug.Log("不能读取DSL文件"); } } }