/// <summary> /// 招募佣兵或招募灵魂 /// </summary> /// <param name="userID"></param> /// <param name="generalInfo"></param> /// <param name="type"></param> public static void UpdateUserGeneral(string userID, GeneralInfo generalInfo, GeneralType type, int num) { var cacheSet = new GameDataCacheSet <UserGeneral>(); UserGeneral userGeneral = null; if (type == GeneralType.YongBing) { userGeneral = cacheSet.FindKey(userID, generalInfo.GeneralID); if (userGeneral == null) { CreateUserGeneral(userID, generalInfo, type, num); } else { UpdateUserGeneral(userID, generalInfo, GeneralType.Soul, num); } } else if (type == GeneralType.Soul) { userGeneral = cacheSet.FindKey(userID, generalInfo.SoulID); if (userGeneral == null) { CreateUserGeneral(userID, generalInfo, type, num); } else { userGeneral.AtmanNum = MathUtils.Addition(userGeneral.AtmanNum, num); } } }
/// <summary> /// 升级加属性 /// </summary> /// <param name="general"></param> /// <param name="property"></param> public static void UpdateGeneralPro(UserGeneral general, AbilityType type, decimal num) { if (type == AbilityType.Potential) { general.Potential = MathUtils.Addition(general.Potential, num).ToInt(); } var property = general.Attribute.Find(s => s.AbilityType == type); if (property != null) { general.Attribute.UpdateNotify(obj => { property.AbilityValue = MathUtils.Addition(property.AbilityValue, num); return(true); }); //property.UpdateNotify(obj => //{ // property.AbilityValue = num; // return true; //}); } else { property = new GeneralProperty(); property.AbilityType = type; property.AbilityValue = num; general.Attribute.Add(property); } }
public override void BuildPacket() { PushIntoStack(bossPlotID); PushIntoStack(_guild == null ? (short)0 : _guild.GuildBossInfo.BossLv); PushIntoStack(_guild == null ? 0 : _guild.ColdTime); PushIntoStack(_regNum); PushIntoStack(_guild == null ? (short)0 : _guild.CombatStatus.ToShort()); PushIntoStack((_inspirePercent * 100).ToInt()); PushIntoStack(_reLiveNum); PushIntoStack(_bossUserList.Count); foreach (BossUser bossUser in _bossUserList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(bossUser.NickName.ToNotNullString()); UserGeneral userGeneral = UserGeneral.GetMainGeneral(bossUser.UserId); dsItem.PushIntoStack(userGeneral == null ? string.Empty : userGeneral.HeadID.ToNotNullString()); dsItem.PushIntoStack(bossUser.IsRelive ? 0 : 1); dsItem.PushIntoStack(bossUser.CodeTime); dsItem.PushIntoStack(NoviceHelper.IsWingFestivalInfo(bossUser.UserId) ? (short)1 : (short)0); dsItem.PushIntoStack(0); PushIntoStack(dsItem); } PushIntoStack((_reliveInspirePercent * 100).ToInt()); }
/// <summary> /// 传承人或被传承人、传承类型选择 /// </summary> /// <param name="userID"></param> /// <param name="generalHeritagesList"></param> /// <param name="type"></param> public static void HeritageGeneral(GameUser user, int type) { if (user.HeritageList.Count == 0) { return; } GeneralHeritage heritage = user.HeritageList.Find(m => m.Type == HeritageType.Heritage); GeneralHeritage hGernal = user.HeritageList.Find(m => m.Type == HeritageType.IsHeritage); if (heritage == null || hGernal == null) { return; } var cacheSet = new GameDataCacheSet <UserGeneral>(); UserGeneral ugeneral = cacheSet.FindKey(user.UserID, heritage.GeneralID); UserGeneral general = cacheSet.FindKey(user.UserID, hGernal.GeneralID); if (ugeneral == null || general == null) { return; } heritage.GeneralLv = ugeneral.GeneralLv; OpsInfo info = HeritageOpsInfo(type); if (info != null) { int generLv = (heritage.GeneralLv * info.Num).ToFloorInt(); //().ToShort(); if (generLv < general.GeneralLv) { generLv = general.GeneralLv; } hGernal.GeneralLv = generLv.ToShort(); hGernal.opsType = type; } }
public override bool TakeAction() { var userGeneralList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, s => s.GeneralID != generalID && s.GeneralType == GeneralType.YongBing && s.GeneralType != GeneralType.Soul); foreach (var general in userGeneralList) { general.GeneralCard = string.Empty; } userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral != null) { nextLv = MathUtils.Addition(userGeneral.GeneralLv, (short)1); if (!string.IsNullOrEmpty(userGeneral.GeneralCard)) { strUserItemID = userGeneral.GeneralCard.TrimEnd(',').Split(','); } } var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID); if (generalInfo != null) { isUp = 1; } return(true); }
public override bool TakeAction() { GeneralProperty property = null; UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID); if (userTrump != null && userTrump.PropertyInfo.Count > 0) { property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID); } if (property == null) { return(false); } if (ops == 1) { ErrorCode = ops; ErrorInfo = LanguageManager.GetLang().St1467_WorshipGridNotEnough; return(false); } else if (ops == 2) { ErrorCode = ops; userTrump.PropertyInfo.Remove(property); var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID); if (usergeneral != null) { usergeneral.RefreshMaxLife(); } } return(true); }
void Awake() { // set the original spawn point // spawnPoint = m_OriginalPlayer.transform.position; // delete the default player (Singleton) if (Instance == null) { Instance = this; } else { // Destroy(); Debug.Log("Destroyed Instance"); return; } // DontDestroyOnLoad(gameObject); // set the player location to that of the original / default // m_player = GameObject.Find("Player"); // m_player.transform.position = spawnPoint; // if (SL.GetSceneName().Equals("MainHub 1")){ // m_player.transform.rotation = Quaternion.Euler(0, 90, 0); // } }
public override void BuildPacket() { PushIntoStack(moreTeam.MorePlot.PlotID); PushIntoStack(moreTeam.MorePlot.PlotName.ToNotNullString()); PushIntoStack(moreTeam.UserList.Count); PushIntoStack(PlotTeamCombat.TeamMaxPeople); PushIntoStack(moreTeam.MorePlot.ItemId); PushIntoStack(moreTeam.MorePlot.ItemName.ToNotNullString()); PushIntoStack(moreTeam.MorePlot.ItemNum); PushIntoStack(moreTeam.MorePlot.ExpNum); PushIntoStack(moreTeam.TeamUser != null && moreTeam.TeamUser.UserId.ToNotNullString().Equals(Uid) ? 1 : 0); PushIntoStack(moreTeam.Status); PushIntoStack(moreTeam.UserList.Count); foreach (var teamUser in moreTeam.UserList) { var gameUser = new GameDataCacheSet <GameUser>().FindKey(teamUser.UserId); UserGeneral general = UserGeneral.GetMainGeneral(teamUser.UserId); CareerInfo careerInfo = null; if (general != null) { careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(general.CareerID); } DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(teamUser.UserId); dsItem.PushIntoStack(teamUser.NickName.ToNotNullString()); dsItem.PushIntoStack(careerInfo == null ? 0 : (int)careerInfo.CareerID); dsItem.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString()); dsItem.PushIntoStack(gameUser == null ? (short)0 : gameUser.UserLv); PushIntoStack(dsItem); } }
protected override int ComparerTo(UserRank x, UserRank y) { int result = 0; if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } result = y.UserLv.CompareTo(x.UserLv); if (result == 0) { var generalX = UserGeneral.GetMainGeneral(x.UserID); var generalY = UserGeneral.GetMainGeneral(y.UserID); if (generalX != null && generalY != null) { result = generalY.CurrExperience.CompareTo(generalX.CurrExperience); if (result == 0) { result = y.UserID.CompareTo(x.UserID); } } } return(result); }
public override bool TakeAction() { UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID); if (userTrump != null && userTrump.PropertyInfo.Count > 0) { GeneralProperty property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID); if (property != null) { if (property.AbilityLv >= TrumpPropertyInfo.MaxTrumpPropertyLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1466_OutPropertyMaxLv; return(false); } TrumpPropertyInfo trumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, property.AbilityLv); if (trumpProperty != null) { int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, trumpProperty.ItemID); if (upItemNum < trumpProperty.ItemNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough; return(false); } if (ContextUser.GameCoin < trumpProperty.GameCoin) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough; return(false); } if (ContextUser.ObtainNum < trumpProperty.ObtainNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough; return(false); } ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, trumpProperty.ObtainNum); ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, trumpProperty.GameCoin); UserItemHelper.UseUserItem(ContextUser.UserID, trumpProperty.ItemID, trumpProperty.ItemNum); short upLv = MathUtils.Addition(property.AbilityLv, (short)1, (short)TrumpPropertyInfo.MaxTrumpPropertyLv); TrumpPropertyInfo uptrumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, upLv); property.UpdateNotify(obj => { property.AbilityLv = MathUtils.Addition(property.AbilityLv, (short)1, TrumpPropertyInfo.MaxTrumpPropertyLv); property.AbilityValue = uptrumpProperty.PropertyNum; return(true); }); var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID); if (usergeneral != null) { usergeneral.RefreshMaxLife(); } ErrorCode = 0; ErrorInfo = LanguageManager.GetLang().St1464_UpgradeWasSsuccessful; } } } return(true); }
public override bool TakeAction() { var package = UserItemPackage.Get(ContextUser.UserID); UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID == userItemID); if (userItem != null) { UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID); if (userTrump != null && userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1456_OutTrumpMaxLv; return(false); } ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID); if (itemInfo != null && itemInfo.PropType == 10) { TrumpHelper.CheckTrumpEscalate(ContextUser.UserID, itemInfo.EffectNum); UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1); var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID); if (usergeneral != null) { usergeneral.RefreshMaxLife(); } } } return(true); }
public override bool TakeAction() { string publicUserID = string.Empty; if (string.IsNullOrEmpty(toUserID)) { publicUserID = ContextUser.UserID; } else { publicUserID = toUserID; UserCacheGlobal.LoadOffline(publicUserID); } generalInfo = UserGeneral.GetMainGeneral(publicUserID); generalMedicineArray = new PersonalCacheStruct <GeneralMedicine>().FindAll(publicUserID, m => m.GeneralID == generalID); foreach (GeneralMedicine medicine in generalMedicineArray) { if (medicine.MedicineType == 1) { powerNum = MathUtils.Addition(powerNum, (short)medicine.BaseNum, short.MaxValue); } else if (medicine.MedicineType == 2) { soulNum = MathUtils.Addition(soulNum, (short)medicine.BaseNum, short.MaxValue); } else if (medicine.MedicineType == 3) { intellectNum = MathUtils.Addition(intellectNum, (short)medicine.BaseNum, short.MaxValue); } } return(true); }
/// <summary> /// 法宝每战斗M次就扣除N点寿命 /// </summary> /// <param name="userID"></param> public static void CombatTrumpLift(string userID) { GameUser user = new GameDataCacheSet <GameUser>().FindKey(userID); UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID); if (userTrump != null && user != null && user.UserExtend != null) { user.UserExtend.UpdateNotify(obj => { user.UserExtend.TrumpCombat = MathUtils.Addition(user.UserExtend.TrumpCombat, 1); return(true); }); if (user.UserExtend.TrumpCombat >= GameConfigSet.TrumpCombatNum) { userTrump.LiftNum = MathUtils.Subtraction(userTrump.LiftNum, GameConfigSet.TrumpLifeNum); user.UserExtend.UpdateNotify(obj => { user.UserExtend.TrumpCombat = 0; return(true); }); } var usergeneral = UserGeneral.GetMainGeneral(userID); if (userTrump.LiftNum <= 0 && usergeneral != null) { usergeneral.RefreshMaxLife(); } } }
public override void BuildPacket() { PushIntoStack(isSuccess); PushIntoStack(memberArray.Count); foreach (GuildMember member in memberArray) { UserCacheGlobal.CheckLoadUser(member.UserID); GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(member.UserID); UserGeneral general = UserGeneral.GetMainGeneral(member.UserID); int isHelp = 0; if (member.DevilNum > 1) { isHelp = 1; } else { isHelp = 2; } DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(member.UserID); dsItem.PushIntoStack(gameUser == null ? string.Empty : gameUser.NickName.ToNotNullString()); dsItem.PushIntoStack(general == null ? string.Empty : general.HeadID.ToNotNullString()); dsItem.PushIntoStack(isHelp); PushIntoStack(dsItem); } PushIntoStack(currNum); PushIntoStack(isPilgrimage); PushIntoStack(chaoShengNum); }
public override bool TakeAction() { int upitemNum = 0; var cacheSet = new GameDataCacheSet <UserTrump>(); UserTrump userTrump = cacheSet.FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID); if (userTrump == null) { return(false); } WashConsumeInfo consumeInfo = TrumpHelper.GetWashConsumeInfo(userTrump.MatureNum); if (consumeInfo == null) { return(false); } upitemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, consumeInfo.ItemID); if (ops == 1) { string success = ((double)consumeInfo.SuccessNum * 100).ToString(); ErrorCode = ops; ErrorInfo = string.Format(LanguageManager.GetLang().St1458_UseBackDaysOrb, consumeInfo.ItemNum, consumeInfo.MatureNum, success); return(false); } else if (ops == 2) { ErrorCode = ops; if (upitemNum < consumeInfo.ItemNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1458_BackDaysOrbNotEnough; return(false); } int maxMatrueNum = ConfigEnvSet.GetInt("Trump.MaxMatrueNum"); if (userTrump.MatureNum >= maxMatrueNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1458_MaxMatrueNumFull; return(false); } UserItemHelper.UseUserItem(ContextUser.UserID, consumeInfo.ItemID, consumeInfo.ItemNum); if (RandomUtils.IsHit(consumeInfo.SuccessNum)) { userTrump.MatureNum = MathUtils.Addition(userTrump.MatureNum, consumeInfo.MatureNum.ToShort(), maxMatrueNum.ToShort()); ErrorInfo = LanguageManager.GetLang().St1458_XiLianSuccess; var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID); if (usergeneral != null) { usergeneral.RefreshMaxLife(); } } else { ErrorInfo = LanguageManager.GetLang().St1458_XiLianFail; } } return(true); }
/// <summary> /// 新手礼包 /// </summary> /// <param name="user"></param> /// <param name="item"></param> /// <param name="noviceActivities"></param> /// <returns></returns> public static bool GetNoviceActivities(GameUser user, UserItemInfo item, NoviceActivities noviceActivities) { List <NoviceReward> noviceArray = noviceActivities.Reward.ToList(); var package = UserItemPackage.Get(user.UserID); var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao); int subPackNum = MathUtils.Subtraction(user.GridNum, MathUtils.Subtraction(userItemArray.Count, 5, 0), 0); if (noviceArray.Count > subPackNum) { return(false); } bool isupdate = false; foreach (NoviceReward reward in noviceArray) { if (reward.Type == 1) { isupdate = true; user.EnergyNum = MathUtils.Addition(user.EnergyNum, (short)reward.Num, short.MaxValue); } if (reward.Type == 2) { isupdate = true; user.GameCoin = MathUtils.Addition(user.GameCoin, reward.Num, int.MaxValue); } else if (reward.Type == 3) { ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(reward.Reward); UserGeneral userGeneral = UserGeneral.GetMainGeneral(user.UserID); if (itemInfo.ItemType == ItemType.ZhuangBei && !itemInfo.CheckCareer(userGeneral.CareerID)) { continue; } UserItemHelper.AddUserItem(user.UserID, itemInfo.ItemID, reward.Num); } else if (reward.Type == 4) { //晶石 isupdate = true; user.GiftGold = MathUtils.Addition(user.GiftGold, reward.Num, int.MaxValue); } } UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1); if (isupdate) { //user.Update(); } if (item.ItemID == 5000 || item.ItemID == 5001 || item.ItemID == 5002 || item.ItemID == 5003) { int itemID = MathUtils.Addition(item.ItemID, 1, int.MaxValue); UserItemHelper.AddUserItem(user.UserID, itemID, 1); } return(true); }
public override bool TakeAction() { PlantType pType = (PlantType)Enum.Parse(typeof(PlantType), plantType.ToString()); UserPlantQuality userPlantQuality = new GameDataCacheSet <UserPlantQuality>().FindKey(ContextUser.UserID, generalID, pType); if (userPlantQuality != null) { plantQualityType = (short)userPlantQuality.PlantQuality; } else { UserPlantQuality plant = new UserPlantQuality() { UserID = ContextUser.UserID, GeneralID = generalID, PlantQuality = PlantQualityType.PuTong, PlantType = pType, RefreshNum = 0, RefreshDate = DateTime.Now, }; new GameDataCacheSet <UserPlantQuality>().Add(plant); plantQualityType = 1; } PlantQualityType qualityType = (PlantQualityType)Enum.Parse(typeof(PlantQualityType), plantQualityType.ToString()); short generalLv = 0; userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } if (pType == PlantType.Experience) { generalLv = ContextUser.UserLv; } else if (pType == PlantType.GameGoin) { generalLv = userGeneral.GeneralLv; } plantInfo = new ConfigCacheSet <PlantInfo>().FindKey(generalLv, plantType, qualityType); double addNum = FestivalHelper.SurplusPurchased(ContextUser.UserID, FestivalType.ManorAddition);//活动加成 rewardNum = plantInfo.GainNum; UserLand land = new GameDataCacheSet <UserLand>().FindKey(ContextUser.UserID, landPostion); if (land != null && land.IsRedLand == 1) { rewardNum = MathUtils.Addition(rewardNum, (int)(rewardNum * 0.2), int.MaxValue); } if (land != null && land.IsBlackLand == 1) { rewardNum = MathUtils.Addition(rewardNum, (int)(rewardNum * 0.4), int.MaxValue); } rewardNum = (rewardNum * addNum).ToInt(); return(true); }
/// <summary> /// 佣兵升级加升级属性 /// </summary> /// <param name="general"></param> public static void GeneralUpgradeproperty(UserGeneral general) { GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(general.GeneralID); if (generalInfo != null && generalInfo.Mature.Count > 0) { foreach (var mature in generalInfo.Mature) { UpdateGeneralPro(general, mature.AbilityType, mature.AbilityValue); } } }
public override bool TakeAction() { if (ops == 1) { ErrorCode = ops; ErrorInfo = LanguageManager.GetLang().St1457_UseLifeExtension; return(false); } else if (ops == 2) { var package = UserItemPackage.Get(ContextUser.UserID); UserItemInfo[] userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemType == ItemType.DaoJu && m.PropType == 11).ToArray(); if (userItemArray.Length == 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1457_LifeExtensionNotEnough; return(false); } ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(userItemArray[0].ItemID); if (itemInfo == null) { return(false); } UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID); if (userTrump != null) { TrumpInfo trumpInfo = new ShareCacheStruct <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, userTrump.TrumpLv); if (trumpInfo != null) { if (userTrump.LiftNum < trumpInfo.MaxLift) { userTrump.LiftNum = MathUtils.Addition(userTrump.LiftNum, itemInfo.EffectNum, trumpInfo.MaxLift); UserItemHelper.UseUserItem(ContextUser.UserID, userItemArray[0].ItemID, 1); var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID); if (userTrump.LiftNum > 0 && usergeneral != null) { usergeneral.RefreshMaxLife(); } ErrorCode = ops; ErrorInfo = string.Format(LanguageManager.GetLang().St1457_ChangeLifeNum, itemInfo.EffectNum); } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1457_MaxLifeExtension; return(false); } } } } return(true); }
/// <summary> /// 创建佣兵或佣兵灵魂 /// </summary> /// <param name="userID"></param> /// <param name="general"></param> /// <param name="type"></param> /// <param name="num"></param> public static void CreateUserGeneral(string userID, GeneralInfo general, GeneralType type, int num) { var cacheSet = new GameDataCacheSet <UserGeneral>(); int generalID = 0; CareerInfo careerInfo = null; if (type == GeneralType.YongBing) { generalID = general.GeneralID; careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(general.CareerID); } else if (type == GeneralType.Soul) { generalID = general.SoulID; } if (generalID > 0) { UserGeneral userGeneral = new UserGeneral(); userGeneral.UserID = userID; userGeneral.GeneralID = generalID; userGeneral.GeneralName = general.GeneralName; userGeneral.HeadID = general.HeadID; userGeneral.PicturesID = general.PicturesID; userGeneral.GeneralLv = 1; userGeneral.GeneralType = type; userGeneral.CareerID = general.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; if (careerInfo != null) { userGeneral.LifeNum = MathUtils.Addition(general.LifeNum, careerInfo.LifeIncreaseNum * (MathUtils.Subtraction(careerInfo.Lv, (short)1, (short)0)), int.MaxValue); } if (type == GeneralType.Soul) { userGeneral.AtmanNum = num; } userGeneral.HeritageType = HeritageType.Normal; userGeneral.AbilityNum = 3; cacheSet.Add(userGeneral, GameEnvironment.CacheUserPeriod); } }
public override bool TakeAction() { int maxGeneralNum = ContextUser.GeneralMaxNum; var userGeneralsList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul); if (userGeneralsList.Count >= MathUtils.Addition(maxGeneralNum, 1, int.MaxValue)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1404_MaxGeneralNumFull; return(false); } var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID); if (generalInfo == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral == null && GeneralHelper.IsGeneralRecruit(ContextUser.UserID, generalID) == 1) { userGeneral = new UserGeneral(); userGeneral.UserID = ContextUser.UserID; userGeneral.GeneralID = generalID; userGeneral.GeneralName = generalInfo.GeneralName; userGeneral.HeadID = generalInfo.HeadID; userGeneral.PicturesID = generalInfo.PicturesID; userGeneral.GeneralLv = (short)generalInfo.GeneralLv; userGeneral.LifeNum = generalInfo.LifeNum; userGeneral.GeneralType = GeneralType.YongBing; userGeneral.CareerID = generalInfo.CareerID; userGeneral.PowerNum = generalInfo.PowerNum; userGeneral.SoulNum = generalInfo.SoulNum; userGeneral.IntellectNum = generalInfo.IntellectNum; userGeneral.TrainingPower = 0; userGeneral.TrainingSoul = 0; userGeneral.TrainingIntellect = 0; userGeneral.HitProbability = ConfigEnvSet.GetDecimal("Combat.HitiNum"); userGeneral.AbilityID = generalInfo.AbilityID; userGeneral.Momentum = 0; userGeneral.Description = generalInfo.Description; userGeneral.GeneralStatus = GeneralStatus.DuiWuZhong; userGeneral.CurrExperience = 0; userGeneral.Experience1 = 0; userGeneral.Experience2 = 0; var cacheSet = new GameDataCacheSet <UserGeneral>(); cacheSet.Add(userGeneral, GameEnvironment.CacheUserPeriod); } ErrorCode = 0; ErrorInfo = LanguageManager.GetLang().St1434_RecruitmentErfolg; return(true); }
/// <summary> /// 法宝技能——属性转换 /// </summary> /// <param name="userID"></param> /// <returns></returns> public static TList <GeneralProperty> AttributeConversion(string userID, decimal powerNum, decimal soulNum, decimal intellectNum) { decimal changeNum = 0; TList <GeneralProperty> propertyList = new TList <GeneralProperty>(); UserGeneral general = UserGeneral.GetMainGeneral(userID); if (general == null) { return(propertyList); } UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID); if (userTrump != null && userTrump.LiftNum > 0 && userTrump.SkillInfo.Count > 0) { foreach (SkillInfo skillInfo in userTrump.SkillInfo) { AbilityInfo abilityInfo = new ConfigCacheSet <AbilityInfo>().FindKey(skillInfo.AbilityID); if (abilityInfo != null && abilityInfo.AttackType == AttackType.Change) { SkillLvInfo skillLvInfo = new ConfigCacheSet <SkillLvInfo>().FindKey(skillInfo.AbilityID, skillInfo.AbilityLv); if (skillLvInfo == null) { break; } switch (abilityInfo.ChangeAbility) { case AbilityType.PowerNum: changeNum = powerNum; break; case AbilityType.SoulNum: changeNum = soulNum; break; case AbilityType.IntelligenceNum: changeNum = intellectNum; break; default: changeNum = 0; break; } GeneralProperty property = new GeneralProperty(); property.AbilityType = abilityInfo.AfterAbility; property.AbilityValue = changeNum * skillLvInfo.Coefficient; propertyList.Add(property); } } } return(propertyList); }
/// <summary> /// 佣兵战斗死亡扣除N点寿命 /// </summary> /// <param name="userID"></param> public static void GeneralOverTrumpLift(string userID, int generalID) { UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID); if (userTrump != null && generalID == LanguageManager.GetLang().GameUserGeneralID) { userTrump.LiftNum = MathUtils.Subtraction(userTrump.LiftNum, GameConfigSet.GeneralOverLife); var usergeneral = UserGeneral.GetMainGeneral(userID); if (userTrump.LiftNum <= 0 && usergeneral != null) { usergeneral.RefreshMaxLife(); } } }
public override bool TakeAction() { List <UserFriends> userFriendsesArray = new ShareCacheStruct <UserFriends>().FindAll(m => m.UserID == ContextUser.UserID && m.FriendType == _friendType); userFriendsesArray.QuickSort((x, y) => { if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } //普通的玩家根据等级来排序 如果是仇敌的话需要用最后战斗时间来排序 int result = 0; if (_friendType != FriendType.ChouDi) { GameUser userx = new GameDataCacheSet <GameUser>().FindKey(x.UserID); GameUser usery = new GameDataCacheSet <GameUser>().FindKey(y.UserID); int userLvx = userx == null ? 0 : userx.UserLv; int userLvy = usery == null ? 0 : usery.UserLv; int currExperiencex = (UserGeneral.GetMainGeneral(x.UserID) ?? new UserGeneral()).CurrExperience; int currExperiencey = (UserGeneral.GetMainGeneral(y.UserID) ?? new UserGeneral()).CurrExperience; result = userLvy.CompareTo(userLvx); if (result == 0) { result = currExperiencey.CompareTo(currExperiencex); } } else { result = x.FightTime.CompareTo(y.FightTime); if (result == 0) { result = x.UserID.CompareTo(y.UserID); } } return(result); }); _userFriendList = userFriendsesArray.GetPaging(_pageIndex, _pageSize, out _pageCount); return(true); }
public override void BuildPacket() { PushIntoStack(cityInfo == null ? string.Empty : cityInfo.CityName.ToNotNullString()); PushIntoStack(gameUserArray.Count); foreach (GameUser user in gameUserArray) { UserGeneral uGeneral = UserGeneral.GetMainGeneral(user.UserID); string HeadID = string.Empty; if (uGeneral != null) { CareerInfo careerInfo = new ShareCacheStruct <CareerInfo>().FindKey(uGeneral.CareerID); HeadID = user.Sex ? careerInfo.HeadID2 : careerInfo.HeadID; } UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(user.MercenariesID); string pictureID = string.Empty; //原因:排除月饼和双倍材料卡 List <UserProps> propsArray = new PersonalCacheStruct <UserProps>().FindAll(user.UserID, u => u.PropType == 3 && u.ItemID != 5200 && u.ItemID != 7003); if (propsArray.Count > 0 && propsArray[0].DoRefresh() > 0) { ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(propsArray[0].ItemID); if (itemInfo != null) { pictureID = itemInfo.PictrueID; } } else { pictureID = string.Empty; } DataStruct ds = new DataStruct(); ds.PushIntoStack(user.UserID.ToNotNullString()); ds.PushIntoStack(user.NickName.ToNotNullString()); ds.PushIntoStack(HeadID.ToNotNullString()); ds.PushIntoStack(user.MercenariesID.ToNotNullString()); ds.PushIntoStack(userGuild == null ? string.Empty : userGuild.GuildName.ToNotNullString()); ds.PushIntoStack((short)user.UserStatus); ds.PushIntoStack(user.PointX); ds.PushIntoStack(user.PointY); ds.PushIntoStack(pictureID.ToNotNullString()); ds.PushIntoStack(NoviceHelper.IsWingFestivalInfo(user.UserID) ? (short)1 : (short)0); ds.PushIntoStack(0); PushIntoStack(ds); } }
private int GetOverGeneralNum(List <CombatEmbattle> userEmbattleList) { int num = 0; foreach (CombatEmbattle item in userEmbattleList) { if (!string.IsNullOrEmpty(item.UserID)) { var general = UserGeneral.GetMainGeneral(item.UserID); if (general != null && general.IsOver) { num += 1; } } } return(num); }
public override void BuildPacket() { this.PushIntoStack(cityName.ToNotNullString()); this.PushIntoStack(codeTime); this.PushIntoStack(stage.ToShort()); this.PushIntoStack(guildStr.Length); foreach (var guildID in guildStr) { short isLead; short guildNum = 0; List <FightUser> memberCombat = new List <FightUser>(); UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(guildID); ServerFight fight = new ShareCacheStruct <ServerFight>().FindKey(fightCombat.FastID, guildID); if (fight != null && !string.IsNullOrEmpty(fight.CombatMember)) { string combatMember = fight.CombatMember.TrimEnd(','); if (combatMember.Length > 1) { guildNum = (short)combatMember.Split(',').Length; } memberCombat = GuildFightCombat._fightUserList.FindAll(m => !m.IsRemove && m.GuildID == guildID); } isLead = GuildIsLead(guildID, stage, fightCombat.FastID) ? (short)1 : (short)0; DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(guildID.ToNotNullString()); dsItem.PushIntoStack(userGuild == null ? string.Empty : userGuild.GuildName.ToNotNullString()); dsItem.PushIntoStack(userGuild == null ? (short)0 : (short)userGuild.GuildLv); dsItem.PushIntoStack((short)guildNum); dsItem.PushIntoStack((short)isLead); dsItem.PushIntoStack(memberCombat.Count); foreach (var member in memberCombat) { GameUser user = UserCacheGlobal.CheckLoadUser(member.UserId); UserGeneral userGeneral = UserGeneral.GetMainGeneral(member.UserId); DataStruct dsItem1 = new DataStruct(); dsItem1.PushIntoStack(member.UserId.ToNotNullString()); dsItem1.PushIntoStack(user == null ? string.Empty : user.NickName.ToNotNullString()); dsItem1.PushIntoStack(userGeneral == null ? string.Empty : userGeneral.HeadID.ToNotNullString()); dsItem1.PushIntoStack(user == null ? (short)0 : (short)user.UserLv); dsItem.PushIntoStack(dsItem1); } this.PushIntoStack(dsItem); } this.PushIntoStack(fatigue.ToNotNullString()); }
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); }
public override bool TakeAction() { string publicUserID = string.Empty; if (string.IsNullOrEmpty(toUserID)) { publicUserID = ContextUser.UserID; } else { publicUserID = toUserID; } var package = UserCrystalPackage.Get(publicUserID); userCrystalArray = package.CrystalPackage.FindAll(m => m.GeneralID.Equals(_generalID)); userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, _generalID); var generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(userGeneral != null ? userGeneral.GeneralID : 0); _maxHeadID = generalInfo != null ? generalInfo.PicturesID : string.Empty; return(true); }
private void Process(string userID, int generalID) { GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID); if (generalInfo != null) { var cacheSet = new GameDataCacheSet <UserGeneral>(); var usergeneral = cacheSet.FindKey(userID, generalID); if (usergeneral == null) { usergeneral = new UserGeneral() { UserID = userID, GeneralID = generalID, GeneralName = generalInfo.GeneralName, HeadID = generalInfo.HeadID, PicturesID = generalInfo.PicturesID, GeneralLv = generalInfo.GeneralLv, LifeNum = generalInfo.LifeNum, GeneralType = GeneralType.YongBing, CareerID = generalInfo.CareerID, PowerNum = generalInfo.PowerNum, SoulNum = generalInfo.SoulNum, IntellectNum = generalInfo.IntellectNum, TrainingPower = 0, TrainingSoul = 0, TrainingIntellect = 0, AbilityID = generalInfo.AbilityID, Momentum = 25, HitProbability = 85, GeneralStatus = GeneralStatus.DuiWuZhong, Experience1 = 0, Experience2 = 0, CurrExperience = 0, Description = string.Empty, }; cacheSet.Add(usergeneral); } } }