private void Parse(SysSkillHigheffVo higheff_vo) { if (StringUtils.CheckValid(higheff_vo.target_type)) { int[] stringToInt = StringUtils.GetStringToInt(higheff_vo.target_type, '|'); this.targetCamp = (SkillTargetCamp)((stringToInt == null) ? 0 : stringToInt[0]); this.targetTag = (TargetTag)((stringToInt.Length <= 1) ? 0 : stringToInt[1]); } if (StringUtils.CheckValid(higheff_vo.effective_range)) { float[] stringToFloat = StringUtils.GetStringToFloat(higheff_vo.effective_range, '|'); this.rangeRadius = ((stringToFloat == null) ? 0f : stringToFloat[0]); this.maxNum = ((stringToFloat.Length <= 1) ? 2147483647 : ((int)stringToFloat[1])); this.higheffTrigerCount = ((stringToFloat.Length <= 2) ? 2147483647 : ((int)stringToFloat[2])); } if (StringUtils.CheckValid(higheff_vo.higheff_type)) { string[] stringValue = StringUtils.GetStringValue(higheff_vo.higheff_type, '|'); this.higheffType = (HighEffType)int.Parse(stringValue[0]); this.SetHighEffParam(this.higheffType, stringValue); } if (StringUtils.CheckValid(higheff_vo.cd_time)) { string[] stringValue2 = StringUtils.GetStringValue(higheff_vo.cd_time, ','); this.cdTime = ((stringValue2.Length <= 0) ? 0f : float.Parse(stringValue2[0])); this.delayTime = ((stringValue2.Length <= 1) ? 0f : float.Parse(stringValue2[1])); } if (StringUtils.CheckValid(higheff_vo.perform_id)) { this.performIds = StringUtils.GetStringValue(higheff_vo.perform_id, ','); } if (StringUtils.CheckValid(higheff_vo.attach_higheff)) { this.attachHighEffs = StringUtils.GetStringValue(higheff_vo.attach_higheff, ','); } if (StringUtils.CheckValid(higheff_vo.attach_buff)) { this.attachBuffs = StringUtils.GetStringValue(higheff_vo.attach_buff, ','); } if (StringUtils.CheckValid(higheff_vo.attach_self_higheff)) { this.attachSelfHighEffs = StringUtils.GetStringValue(higheff_vo.attach_self_higheff, ','); } this.isAutoDestroy = (higheff_vo.isAutoDestroy != 0); if (StringUtils.CheckValid(higheff_vo.damage_id)) { this.damage_ids = StringUtils.GetStringToInt(higheff_vo.damage_id, ','); } if (StringUtils.CheckValid(higheff_vo.effectGain)) { string[] stringValue3 = StringUtils.GetStringValue(higheff_vo.effectGain, '|'); if (stringValue3.Length > 0) { this.DataType.MagicType = (EffectMagicType)int.Parse(stringValue3[0]); } if (stringValue3.Length > 1) { this.DataType.GainType = (EffectGainType)int.Parse(stringValue3[1]); } if (stringValue3.Length > 2) { this.DataType.ImmuneType = (EffectImmuneType)int.Parse(stringValue3[2]); } } }
private void SetHighEffParam(HighEffType higheffType, string[] param) { this.param1 = 0f; this.param2 = 0f; this.param3 = 0f; this.param4 = 0f; this.param5 = 0f; this.strParam1 = string.Empty; this.strParam2 = string.Empty; switch (higheffType) { case HighEffType.JiFei: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); if (param.Length >= 3) { this.param2 = float.Parse(param[2]); } break; case HighEffType.WeiYi: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); this.param3 = ((param.Length <= 3) ? 0f : float.Parse(param[3])); break; case HighEffType.YunXuan: case HighEffType.WuDi: case HighEffType.DingShen: case HighEffType.ChengMo: case HighEffType.Repel: case HighEffType.Petrifaction: case HighEffType.Occoecatio: case HighEffType.Frozen: case HighEffType.Charm: case HighEffType.Taunt: case HighEffType.Chaos: case HighEffType.ScreenEffect: case HighEffType.HuiGuangFanZhao: case HighEffType.BackHome: case HighEffType.StateEffect: case HighEffType.Funeral: case HighEffType.Fear: case HighEffType.Temptation: case HighEffType.Imprisonment: case HighEffType.Sprint: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); break; case HighEffType.MoFaMianchu: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); this.param2 = ((param.Length <= 2) ? -1f : float.Parse(param[2])); this.param3 = ((param.Length <= 3) ? -1f : float.Parse(param[3])); this.param4 = ((param.Length <= 4) ? -1f : float.Parse(param[4])); break; case HighEffType.BaoZha: this.strParam1 = ((param.Length <= 1) ? string.Empty : param[1]); break; case HighEffType.GuangHuang: case HighEffType.BloodBallGuangHuan: this.param1 = (float)((param.Length <= 1) ? 0 : int.Parse(param[1])); this.param2 = (float)((param.Length <= 2) ? 0 : int.Parse(param[2])); this.param3 = (float)((param.Length <= 3) ? 0 : int.Parse(param[3])); this.param4 = (float)((param.Length <= 4) ? 0 : int.Parse(param[4])); this.param5 = (float)((param.Length <= 5) ? 0 : int.Parse(param[5])); this.param6 = (float)((param.Length <= 6) ? 0 : int.Parse(param[6])); this.param7 = ((param.Length <= 7) ? 0f : float.Parse(param[7])); break; case HighEffType.AddBuff: case HighEffType.ClearAllBuff: case HighEffType.ClearHalfBuff: this.CheackParam(param, 2); this.strParam1 = param[1]; break; case HighEffType.JianShe: case HighEffType.BetweenSputter: case HighEffType.PassiveJianShe: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); break; case HighEffType.BornUnit: this.CheackParam(param, 2); this.unit_id = param[1]; this.param2 = (float)((param.Length <= 2) ? 0 : int.Parse(param[2])); this.param3 = (float)((param.Length <= 3) ? 0 : int.Parse(param[3])); this.param4 = ((param.Length <= 4) ? 20f : float.Parse(param[4])); this.param5 = ((param.Length <= 5) ? 0f : float.Parse(param[5])); this.param6 = ((param.Length <= 6) ? 0f : float.Parse(param[6])); break; case HighEffType.MoFaHuDun: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); this.strParam1 = ((param.Length <= 3) ? "[]" : param[3]); break; case HighEffType.Tow: case HighEffType.HookBack: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); break; case HighEffType.ShakeCamera: this.CheackParam(param, 4); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); this.param3 = float.Parse(param[3]); break; case HighEffType.ReBirth: this.CheackParam(param, 2); this.param1 = ((param.Length <= 1) ? 1f : float.Parse(param[1])); this.param2 = ((param.Length <= 2) ? 1f : float.Parse(param[2])); break; case HighEffType.AttackExtraDamage: this.CheackParam(param, 5); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); this.param3 = float.Parse(param[3]); this.param4 = float.Parse(param[4]); break; case HighEffType.Growth: this.param1 = ((param.Length <= 1) ? 0f : float.Parse(param[1])); this.param2 = ((param.Length <= 2) ? 0f : float.Parse(param[2])); this.param3 = ((param.Length <= 3) ? 0f : float.Parse(param[3])); break; case HighEffType.AttackForTargetBuff: this.CheackParam(param, 2); this.strParam1 = param[1]; break; case HighEffType.Morph: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.strParam1 = param[2]; this.param2 = ((param.Length <= 3) ? 1f : float.Parse(param[3])); this.param3 = ((param.Length <= 4) ? 1f : float.Parse(param[4])); break; case HighEffType.Jump: this.CheackParam(param, 2); this.param1 = (float)int.Parse(param[1]); break; case HighEffType.PerformReplace: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.param2 = (float)int.Parse(param[2]); this.strParam1 = param[3]; this.strParam2 = ((param.Length <= 4) ? string.Empty : param[4]); break; case HighEffType.PropertyReplace: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.strParam1 = param[2]; this.strParam2 = param[3]; break; case HighEffType.AttackEffctReplace: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.strParam1 = param[2]; this.strParam2 = param[3]; break; case HighEffType.PlayEffectPerform: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); this.param2 = ((param.Length <= 2) ? 0f : float.Parse(param[2])); break; case HighEffType.Invisible: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); this.param2 = (float)((param.Length <= 2) ? 0 : int.Parse(param[2])); break; case HighEffType.DoSkillEffAgain: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.param2 = (float)int.Parse(param[2]); this.param3 = float.Parse(param[3]); break; case HighEffType.SpawnerMonster: this.CheackParam(param, 6); this.param1 = (float)int.Parse(param[1]); this.strParam1 = param[2]; this.param2 = (float)int.Parse(param[3]); this.param3 = (float)int.Parse(param[4]); this.param4 = (float)int.Parse(param[5]); break; case HighEffType.Switch: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.strParam1 = param[2]; this.strParam2 = param[3]; break; case HighEffType.ResidentProp: this.CheackParam(param, 4); this.param1 = (float)int.Parse(param[1]); this.param2 = (float)int.Parse(param[2]); this.param3 = float.Parse(param[3]); break; case HighEffType.Flyingkick: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); break; case HighEffType.AddDataBag: this.CheackParam(param, 2); this.param1 = (float)int.Parse(param[1]); this.param2 = (float)((param.Length <= 2) ? 0 : int.Parse(param[2])); this.strParam1 = ((param.Length <= 3) ? string.Empty : param[3]); break; case HighEffType.ReplaceMaterial: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); break; case HighEffType.ConjureSkill: this.CheackParam(param, 2); this.strParam1 = param[1]; break; case HighEffType.RemoveHighEff: this.CheackParam(param, 2); this.strParam1 = param[1]; break; case HighEffType.AddGold: this.CheackParam(param, 3); this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); this.param3 = ((param.Length <= 3) ? 0f : float.Parse(param[3])); break; case HighEffType.PhysicCritProp: this.param1 = float.Parse(param[1]); this.param2 = float.Parse(param[2]); break; case HighEffType.AssistAddGold: this.param1 = float.Parse(param[1]); break; case HighEffType.BuffLayerEffect: this.param1 = (float)int.Parse(param[1]); this.strParams1 = StringUtils.SplitVoString((param.Length <= 2) ? string.Empty : param[2], ","); break; case HighEffType.RemoveBuff: this.CheackParam(param, 2); this.strParam1 = param[1]; break; case HighEffType.TengYunTuJi: this.CheackParam(param, 2); this.param1 = float.Parse(param[1]); break; case HighEffType.GaoJiYingSheng: this.param1 = float.Parse(param[1]); break; } }