public static string GetActionSection(IEnumerable <object> attributes) { ActionSection attribute = CustomAttributeHelpers.GetAttribute <ActionSection>(attributes); if (attribute == null) { return(null); } return(attribute.get_Section()); }
/** * @brief 提取数据 * * @param node * * @return */ public bool CollectDataFromDBC(DBC_Row node) { ActionId = DBCUtil.ExtractNumeric <int>(node, "Id", 0, true); ActionLogicId = DBCUtil.ExtractNumeric <int>(node, "LogicId", 0, true); BreakLevel = DBCUtil.ExtractNumeric <int>(node, "BreakLevel", 0, true); CallbackSection = DBCUtil.ExtractNumeric <int>(node, "CallbackSection", 0, true); CallbackPoint = DBCUtil.ExtractNumeric <float>(node, "CallbackPoint", 0, true); SectionNumber = DBCUtil.ExtractNumeric <int>(node, "SectionNum", 0, true); EffectNum = DBCUtil.ExtractNumeric <int>(node, "EffectNum", 0, true); EffectList.Clear(); for (int i = 0; i < EffectNum; i++) { string keySuffix = i.ToString(); ActionEffectInfo effect_info = new ActionEffectInfo(); effect_info.EffectTime = DBCUtil.ExtractNumeric <float>(node, "EffectTime" + keySuffix, 0, false); effect_info.SkeletonNodeName = DBCUtil.ExtractString(node, "SkeletonNodeName" + keySuffix, "", false); effect_info.EffectName = DBCUtil.ExtractString(node, "EffectName" + keySuffix, "", false); EffectList.Insert(i, effect_info); } for (int i = 0; i < SectionNumber; i++) { string keySuffix = i.ToString(); ActionSection actionSection = new ActionSection(); actionSection.ActionType = DBCUtil.ExtractNumeric <int>(node, "ActionType" + keySuffix, -1, true); actionSection.WapMode = DBCUtil.ExtractString(node, "WapMode" + keySuffix, "ONCE", false); actionSection.IsUpperBody = DBCUtil.ExtractBool(node, "IsUpperBody" + keySuffix, false, false); actionSection.PlaySpeed = DBCUtil.ExtractNumeric <float>(node, "PlaySpeed" + keySuffix, 1.0f, false); actionSection.PlayTime = DBCUtil.ExtractNumeric <float>(node, "PlayTime" + keySuffix, 0, false); actionSection.MoveSpeed = DBCUtil.ExtractNumeric <float>(node, "MoveSpeed" + keySuffix, 0, false); actionSection.MoveTowards = DBCUtil.ExtractNumeric <int>(node, "MoveTowards" + keySuffix, 0, false); SectionList.Insert(i, actionSection); } ParamNum = DBCUtil.ExtractNumeric <int>(node, "ParamNum", 0, false); if (ParamNum > 0) { for (int i = 0; i < ParamNum; ++i) { string key = "Param" + i.ToString(); ExtraParams.Insert(i, DBCUtil.ExtractString(node, key, "", false)); } } return(true); }
// implement build methods here public override void SetFields(string[] fields, GameObject Field) { Section = Field.AddComponent(typeof(ActionSection)) as ActionSection; Section.Action = fields[4]; }