private void CreateGeneral(CareerInfo careerInfo) { GeneralInfo general = new ConfigCacheSet <GeneralInfo>().FindKey(generalID); List <UserGeneral> userGeneralArray = new GameDataCacheSet <UserGeneral>().FindAll(Uid); if (userGeneralArray.Count > 0 || general == null) { return; } UserGeneral userGeneral = new UserGeneral(); userGeneral.UserID = Uid; userGeneral.GeneralID = general.GeneralID; userGeneral.GeneralName = general.GeneralName; userGeneral.HeadID = general.HeadID; userGeneral.PicturesID = general.PicturesID; userGeneral.GeneralLv = (short)careerInfo.Lv; userGeneral.GeneralType = GeneralType.YongHu; userGeneral.CareerID = _careerID; userGeneral.PowerNum = general.PowerNum; userGeneral.SoulNum = general.SoulNum; userGeneral.IntellectNum = general.IntellectNum; userGeneral.TrainingPower = 0; userGeneral.TrainingSoul = 0; userGeneral.TrainingIntellect = 0; userGeneral.AbilityID = general.AbilityID; userGeneral.Momentum = 0; userGeneral.Description = string.Empty; userGeneral.HitProbability = ConfigEnvSet.GetDecimal("Combat.HitiNum"); userGeneral.GeneralStatus = GeneralStatus.DuiWuZhong; userGeneral.CurrExperience = 0; userGeneral.Experience1 = 0; userGeneral.Experience2 = 0; //userGeneral.LifeNum = MathUtils.Addition(general.LifeNum, careerInfo.LifeIncreaseNum * (MathUtils.Subtraction(careerInfo.Lv, (short)1, (short)0)), int.MaxValue); userGeneral.RefreshMaxLife(); userGeneral.HeritageType = HeritageType.Normal; userGeneral.AbilityNum = 3; var cacheSet = new GameDataCacheSet <UserGeneral>(); cacheSet.Add(userGeneral); cacheSet.Update(); UserAbilityHelper.AddUserAbility(general.AbilityID, Uid.ToInt(), generalID, 1); }
/// <summary> /// 好感度升级 /// </summary> /// <param name="general"></param> /// <param name="experience"></param> public static void GeneralFeelUpgrade(UserGeneral general, int experience, short saturationNum) { if (general != null) { int maxSatiationNum = ConfigEnvSet.GetInt("User.FeelMaxSatiationNum"); general.FeelExperience = MathUtils.Addition(general.FeelExperience, experience); general.SaturationNum = MathUtils.Addition(general.SaturationNum, saturationNum, (short)maxSatiationNum); while (true) { short feelLv = MathUtils.Addition(general.FeelLv, (short)1, maxFeelLv); FeelLvInfo upfeelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(feelLv); if (general.FeelLv < feelLv && upfeelLvInfo != null) { if (general.FeelExperience >= upfeelLvInfo.Experience) { general.FeelLv = MathUtils.Addition(general.FeelLv, (short)1, maxFeelLv); general.FeelExperience = MathUtils.Subtraction(general.FeelExperience, upfeelLvInfo.Experience, 0); general.RefreshMaxLife(); GeneralInfo generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(general.GeneralID); if (generalInfo != null && generalInfo.ReplaceSkills != null) { if (general.FeelLv >= generalInfo.ReplaceSkills.FeelLv && general.AbilityID != generalInfo.ReplaceSkills.AbilityID) { general.AbilityID = generalInfo.ReplaceSkills.AbilityID; } } } else { break; } } else { break; } } } }