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); } else { } } } } } } }
private void Load(ScriptableData.ScriptableDataFile dataFile, int type) { lock (m_Lock) { for (int i = 0; i < dataFile.ScriptableDatas.Count; i++) { if (dataFile.ScriptableDatas[i].GetId() == "skill" || dataFile.ScriptableDatas[i].GetId() == "script") { ScriptableData.FunctionData funcData = dataFile.ScriptableDatas[i].First; if (null != funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData && callData.HaveParam()) { int storyId = int.Parse(callData.GetParamId(0)); int id = GenId(storyId, type); if (!m_Instances.ContainsKey(id)) { Instance instance = new Instance(); instance.Init(dataFile.ScriptableDatas[i]); m_Instances.Add(id, instance); LogUtil.Debug("ParseStory {0}", id); } else { //repeated story config. } } } } } } }
private void Load(ScriptableData.ScriptableDataFile dataFile) { lock (m_Lock) { for (int i = 0; i < dataFile.ScriptableDatas.Count; i++) { if (dataFile.ScriptableDatas[i].GetId() == "skill") { ScriptableData.FunctionData funcData = dataFile.ScriptableDatas[i].First; if (null != funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData && callData.HaveParam()) { int id = int.Parse(callData.GetParamId(0)); if (!m_SkillInstances.ContainsKey(id)) { SkillInstance instance = new SkillInstance(); instance.Init(dataFile.ScriptableDatas[i]); m_SkillInstances.Add(id, instance); LogSystem.Debug("ParseSkill {0}", id); } //else //{ //repeated skill config. //} } } } } /* * foreach (ScriptableData.ScriptableDataInfo info in dataFile.ScriptableDatas) { * if (info.GetId() == "skill") { * ScriptableData.FunctionData funcData = info.First; * if (null != funcData) { * ScriptableData.CallData callData = funcData.Call; * if (null != callData && callData.HaveParam()) { * int id = int.Parse(callData.GetParamId(0)); * if (!m_SkillInstances.ContainsKey(id)) { * SkillInstance instance = new SkillInstance(); * instance.Init(info); * m_SkillInstances.Add(id, instance); * * LogSystem.Debug("ParseSkill {0}", id); * } else { * //repeated skill config. * } * } * } * } * }*/ } }
public void Load(ScriptableData.FunctionData messageHandlerData) { ScriptableData.CallData callData = messageHandlerData.Call; if (null != callData && callData.HaveParam()) { string[] args = new string[callData.GetParamNum()]; for (int i = 0; i < callData.GetParamNum(); ++i) { args[i] = callData.GetParamId(i); } m_MessageId = string.Join(":", args); } RefreshCommands(messageHandlerData); }
public void Load(ScriptableData.FunctionData sectionData, int skillId) { ScriptableData.CallData callData = sectionData.Call; if (null != callData && callData.HaveParam()) { string[] args = new string[callData.GetParamNum()]; for (int i = 0; i < callData.GetParamNum(); ++i) { args[i] = callData.GetParamId(i); } m_MsgId = string.Join(":", args); } RefreshTrigers(sectionData, skillId); }
/// <summary> /// 加载命令,存到loaded的链表中 /// </summary> /// <param name="messageHandlerData"></param> public void Load(ScriptableData.FunctionData messageHandlerData) { ScriptableData.CallData callData = messageHandlerData.Call; if (callData != null && callData.HaveParam()) { int argsNum = callData.GetParamNum(); string[] args = new string[argsNum]; for (int i = 0; i < argsNum; i++) { args[i] = callData.GetParamId(i); } m_sMessageId = string.Join(":", args); } RefreshCommand(messageHandlerData); }
public void Load(ScriptableData.FunctionData sectionData, int skillId) { ScriptableData.CallData callData = sectionData.Call; if (null != callData && callData.HaveParam()) { if (callData.GetParamNum() > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } else { m_Duration = 1000; LogSystem.Error("Skill {0} DSL, section must have a time argument !", skillId); } } RefreshTrigers(sectionData, skillId); }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData story = config.First; if (story != null && (story.GetId() == "story" || story.GetId() == "script")) { ret = true; //参数 ScriptableData.CallData callData = story.Call; if (callData != null && callData.HaveParam()) { //第一个参数是剧情的id m_iStoryId = int.Parse(callData.GetParamId(0)); } foreach (var info in story.Statements) { if (info.GetId() == "local") { ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; if (null != sectionData) { foreach (ScriptableData.ISyntaxComponent def in sectionData.Statements) { ScriptableData.CallData defData = def as ScriptableData.CallData; if (null != defData && defData.HaveId() && defData.HaveParam()) { string id = defData.GetId(); if (id.StartsWith("@") && !id.StartsWith("@@")) { StoryValue val = new StoryValue(); val.InitFromDsl(defData.GetParam(0)); if (!m_dicLocalVariables.ContainsKey(id)) { m_dicLocalVariables.Add(id, val.Value); } else { m_dicLocalVariables[id] = val.Value; } } } } } else { Debug.LogError("剧情" + m_iStoryId + "DSL语法,必须是个函数"); } } else if (info.GetId() == "onmessage") { ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; if (null != sectionData) { StoryMessageHandler handler = new StoryMessageHandler(); handler.Load(sectionData); m_listMessageHandlers.Add(handler); } else { Debug.LogError("剧情" + m_iStoryId + "DSL语法,必须是个函数"); } } else { Debug.LogError("StoryInstance::Init,不知道DSL语法部分:" + info.GetId()); } } } else { Debug.LogError("StoryInstance::Init,不是一个DSL语法"); } return ret; }
private void Load(ScriptableData.ScriptableDataFile dataFile, int sceneId) { lock (m_Lock) { #if false for (int i = 0; i < dataFile.ScriptableDatas.Count; i++) { if (dataFile.ScriptableDatas[i].GetId() == "story" || dataFile.ScriptableDatas[i].GetId() == "script") { ScriptableData.FunctionData funcData = dataFile.ScriptableDatas[i].First; if (null != funcData) { ScriptableData.CallData callData = funcData.Call; if (null != callData && callData.HaveParam()) { int storyId = int.Parse(callData.GetParamId(0)); int id = GenId(storyId, sceneId); if (!m_StoryInstances.ContainsKey(id)) { StoryInstance instance = new StoryInstance(); instance.Init(dataFile.ScriptableDatas[i]); m_StoryInstances.Add(id, instance); LogSystem.Debug("ParseStory {0}", id); } else { //repeated story config. } } } } } #else int id = GenId(1, sceneId); if (!m_StoryInstances.ContainsKey(id)) { StoryInstance instance = new StoryInstance(); instance.Init(dataFile); m_StoryInstances.Add(id, instance); } #endif /* * foreach (ScriptableData.ScriptableDataInfo info in dataFile.ScriptableDatas) { * if (info.GetId() == "story" || info.GetId() == "script") { * ScriptableData.FunctionData funcData = info.First; * if (null != funcData) { * ScriptableData.CallData callData = funcData.Call; * if (null != callData && callData.HaveParam()) { * int storyId = int.Parse(callData.GetParamId(0)); * int id = GenId(storyId, sceneId); * if (!m_StoryInstances.ContainsKey(id)) { * StoryInstance instance = new StoryInstance(); * instance.Init(info); * m_StoryInstances.Add(id, instance); * * LogSystem.Debug("ParseStory {0}", id); * } else { * //repeated story config. * } * } * } * } * }*/ } }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData skill = config.First; if (null != skill && (skill.GetId() == "skill" || skill.GetId() == "script")) { ret = true; ScriptableData.CallData callData = skill.Call; if (null != callData && callData.HaveParam()) { m_Id = int.Parse(callData.GetParamId(0)); } for (int i = 0; i < skill.Statements.Count; i++) { if (skill.Statements[i].GetId() == "local") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { for (int j = 0; j < sectionData.Statements.Count; j++) { ScriptableData.CallData defData = sectionData.Statements[j] as ScriptableData.CallData; if (null != defData && defData.HaveId() && defData.HaveParam()) { string id = defData.GetId(); if (id.StartsWith("@") && !id.StartsWith("@@")) { SkillValue val = new SkillValue(); val.InitFromDsl(defData.GetParam(0)); if (!m_PreInitedLocalVariables.ContainsKey(id)) { m_PreInitedLocalVariables.Add(id, val.Value); } else { m_PreInitedLocalVariables[id] = val.Value; } } } } } else { LogUtil.Error("Story {0} DSL, local must be a function !", m_Id); } } else if (skill.Statements[i].GetId() == "onmessage") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { MessageHandler handler = new MessageHandler(); handler.Load(sectionData); string msgId = handler.MessageId; if (!m_MessageQueues.ContainsKey(msgId)) { m_MessageHandlers.Add(handler); m_MessageQueues.Add(msgId, new Queue<MessageInfo>()); } else { LogUtil.Error("Story {0} DSL, onmessage {1} duplicate, discard it !", m_Id, msgId); } } else { LogUtil.Error("Story {0} DSL, onmessage must be a function !", m_Id); } } else { LogUtil.Error("Instance::Init, unknown part {0}", skill.Statements[i].GetId()); } } } else { LogUtil.Error("Instance::Init, isn't story DSL"); } //LogSystem.Debug("Instance.Init message handler num:{0} {1}", m_MessageHandlers.Count, ret); return ret; }
public bool Init(ScriptableData.ScriptableDataInfo config) { bool ret = false; ScriptableData.FunctionData skill = config.First; if (null != skill && skill.GetId() == "skill") { ret = true; ScriptableData.CallData callData = skill.Call; if (null != callData && callData.HaveParam()) { m_SkillId = int.Parse(callData.GetParamId(0)); } for (int i = 0; i < skill.Statements.Count; i++) { if (skill.Statements[i].GetId() == "section") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { SkillSection section = new SkillSection(); section.Load(sectionData, m_SkillId); m_Sections.Add(section); } else { LogSystem.Error("Skill {0} DSL, section must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "onmessage") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { SkillMessageHandler handler = new SkillMessageHandler(); handler.Load(sectionData, m_SkillId); m_MessageHandlers.Add(handler); } else { LogSystem.Error("Skill {0} DSL, onmessage must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "onstop") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { m_StopSection = new SkillMessageHandler(); m_StopSection.Load(sectionData, m_SkillId); } else { LogSystem.Error("Skill {0} DSL, onstop must be a function !", m_SkillId); } } else if (skill.Statements[i].GetId() == "oninterrupt") { ScriptableData.FunctionData sectionData = skill.Statements[i] as ScriptableData.FunctionData; if (null != sectionData) { m_InterruptSection = new SkillMessageHandler(); m_InterruptSection.Load(sectionData, m_SkillId); } else { LogSystem.Error("Skill {0} DSL, oninterrupt must be a function !", m_SkillId); } } else { LogSystem.Error("SkillInstance::Init, unknown part {0}", skill.Statements[i].GetId()); } } /* * foreach (ScriptableData.ISyntaxComponent info in skill.Statements) { * if (info.GetId() == "section") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * SkillSection section = new SkillSection(); * section.Load(sectionData, m_SkillId); * m_Sections.Add(section); * } else { * LogSystem.Error("Skill {0} DSL, section must be a function !", m_SkillId); * } * } else if (info.GetId() == "onmessage") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * SkillMessageHandler handler = new SkillMessageHandler(); * handler.Load(sectionData, m_SkillId); * m_MessageHandlers.Add(handler); * } else { * LogSystem.Error("Skill {0} DSL, onmessage must be a function !", m_SkillId); * } * } else if (info.GetId() == "onstop") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * m_StopSection = new SkillMessageHandler(); * m_StopSection.Load(sectionData, m_SkillId); * } else { * LogSystem.Error("Skill {0} DSL, onstop must be a function !", m_SkillId); * } * } else if (info.GetId() == "oninterrupt") { * ScriptableData.FunctionData sectionData = info as ScriptableData.FunctionData; * if (null != sectionData) { * m_InterruptSection = new SkillMessageHandler(); * m_InterruptSection.Load(sectionData, m_SkillId); * } else { * LogSystem.Error("Skill {0} DSL, oninterrupt must be a function !", m_SkillId); * } * } else { * LogSystem.Error("SkillInstance::Init, unknown part {0}", info.GetId()); * } * }*/ } else { LogSystem.Error("SkillInstance::Init, isn't skill DSL"); } //LogSystem.Debug("SkillInstance.Init section num:{0} {1}", m_Sections.Count, ret); return(ret); }