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 PersonalCacheStruct<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 ShareCacheStruct<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 static short _currMaxLv = GameConfigSet.CurrMaxLv.ToShort(); //玩家最大等级 /// <summary> /// 将星佣兵完成任务后奖励物品名称 /// </summary> /// <param name="prize"></param> /// <returns></returns> public static string PrizeItemName(PrizeInfo prize) { string name = string.Empty; switch (prize.Type) { case RewardType.CrystalId: CrystalInfo crystal = new ShareCacheStruct<CrystalInfo>().FindKey(prize.ItemID); name = crystal == null ? string.Empty : crystal.CrystalName; break; case RewardType.Item: ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(prize.ItemID); name = itemInfo == null ? string.Empty : itemInfo.ItemName; break; case RewardType.Spare: SparePartInfo sparePartInfo = new ShareCacheStruct<SparePartInfo>().FindKey(prize.ItemID); name = sparePartInfo == null ? string.Empty : sparePartInfo.Name; break; case RewardType.CrystalType: name = string.Format(LanguageManager.GetLang().St_Crystal, CrystalHelper.GetQualityName(prize.CrystalType.ToEnum<CrystalQualityType>()), string.Empty); break; } return name; }
public override void BuildPacket() { PushIntoStack(pageCount); PushIntoStack(_itemCount); PushIntoStack(_gridNum); PushIntoStack(ContextUser.GameCoin); PushIntoStack(ContextUser.GoldNum); PushIntoStack(mlist.Count); foreach (UserItemInfo item in mlist) { DataStruct ds = new DataStruct(); ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(item.ItemID); ds.PushIntoStack(item.UserItemID.ToNotNullString()); ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.ItemID); ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.ItemType); ds.PushIntoStack(item.Num); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString()); ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.PropType); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString()); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString()); ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.SalePrice); ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.IsUse ? 1 : 0); ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.IsCostly ? 1 : 0); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.MaxHeadID); ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.PropType != 15 ? 0 : ItemUseHelper.ItemNum(ContextUser.UserID, itemInfo.EffectNum) <= 0 ? 0 : 1); PushIntoStack(ds); } }
public override void BuildPacket() { PushIntoStack(_currVersion); PushIntoStack(_chatArray.Count); foreach (var chatMessage in _chatArray) { var chat = chatMessage as ChatData ?? new ChatData(); UserFriends friends = new ShareCacheStruct<UserFriends>().FindKey(ContextUser.UserID, chat.FromUserID); int isFriend = friends != null && friends.FriendType == FriendType.Friend ? 1 : 2; DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(chat.FromUserID.ToNotNullString()); dsItem.PushIntoStack(chat.FromUserName.ToNotNullString()); dsItem.PushIntoStack(chat.Content.ToNotNullString()); dsItem.PushIntoStack(FormatDate(chat.SendDate)); dsItem.PushIntoStack((short)chat.ChatType); dsItem.PushIntoStack(chat.ToUserID.ToNotNullString()); dsItem.PushIntoStack(chat.ToUserName.ToNotNullString()); dsItem.PushIntoStack(isFriend); dsItem.PushIntoStack(chat.FromUserVip); dsItem.PushIntoStack(chat.ToUserVip); PushIntoStack(dsItem); } PushIntoStack(_charItemNum); }
public override bool TakeAction() { var cache = new ShareCacheStruct<UserRanking>(); rankingList = cache.FindAll(false); rankingList = MathUtils.QuickSort<UserRanking>(rankingList, compareTo); rankingList = rankingList.GetPaging(pageIndex, pageSize, out pageCount); return true; }
public override bool TakeAction() { GuildMember member = new ShareCacheStruct<GuildMember>().FindKey(ContextUser.MercenariesID, ContextUser.UserID); if (member != null) { if (member.PostType == PostType.Member) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6007_AuditPermissions; return false; } else { var cacheSet = new ShareCacheStruct<UserApply>(); List<UserApply> userApplyArray = cacheSet.FindAll(m => m.GuildID == member.GuildID); foreach (UserApply apply in userApplyArray) { List<GuildMember> gMemberArray = new ShareCacheStruct<GuildMember>().FindAll(m => m.UserID == apply.UserID); if (gMemberArray.Count > 0) { cacheSet.Delete(apply); } } applyArray = userApplyArray.GetPaging(pageIndex, pageSize, out pageCount); } } return true; }
public override void BuildPacket() { var cacheSetItemEqu = new ShareCacheStruct<ItemEquAttrInfo>(); PushIntoStack(_userItemArray.Count); foreach (UserItemInfo item in _userItemArray) { ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(item.ItemID); var general = new PersonalCacheStruct<UserGeneral>().FindKey(Uid, item.GeneralID); var itemEquList = cacheSetItemEqu.FindAll(e => e.ItemID.Equals(item.ItemID)); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(item.UserItemID.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack(item.ItemLv); dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType); dsItem.PushIntoStack(general != null ? general.GeneralName : string.Empty); PushIntoStack(dsItem); dsItem.PushIntoStack(itemEquList.Count); foreach (var itemEquAttrInfo in itemEquList) { DataStruct dsItem1 = new DataStruct(); dsItem1.PushIntoStack(itemEquAttrInfo.AttributeID.ToInt()); int strengNum = 0; strengNum = MathUtils.Addition(itemEquAttrInfo.BaseNum, (itemEquAttrInfo.IncreaseNum * item.ItemLv), int.MaxValue); // dsItem1.PushIntoStack(itemEqu.BaseNum); dsItem1.PushIntoStack(strengNum); dsItem.PushIntoStack(dsItem1); } } }
/// <summary> /// 创始成功之后处理事件 /// </summary> public void OnCreateAfter(GameUser user) { var cacheSet = new ShareCacheStruct<UserNickName>(); UserNickName u = new UserNickName(user.UserId); u.NickName = user.NickName; cacheSet.Add(u); }
protected override void ProcessCmd(string[] args) { int magicID = args.Length > 0 ? args[0].Trim().ToInt() : 0; short magicLv = args.Length > 1 ? args[1].Trim().ToShort() : (short)1; var cacheSet = new PersonalCacheStruct<UserMagic>(); var userMagic = cacheSet.FindKey(UserID, magicID); MagicInfo magic = new ShareCacheStruct<MagicInfo>().FindKey(magicID); if (magic == null) { return; } if (userMagic == null) { userMagic = new UserMagic() { UserID = UserID, MagicID = magicID, MagicLv = magicLv, IsEnabled = false, MagicType = magic.MagicType, }; cacheSet.Add(userMagic); } else { userMagic.MagicLv = magicLv; } }
/// <summary> /// 每日限制次数 /// </summary> /// <returns></returns> public static int GetVipUseNum(int vipLv, RestrainType restrainType) { int rType = (int)restrainType; int baseNum = 0; int MaxNum = 0; int vipNum = 0; DailyRestrainSet restrainSet = new ShareCacheStruct<DailyRestrainSet>().FindKey(restrainType); if (restrainSet != null) { baseNum = restrainSet.MaxNum; } VipLvInfo lvInfo = new ConfigCacheSet<VipLvInfo>().FindKey(vipLv); var restrainArray = new CacheList<DailyRestrain>(); if (lvInfo != null) { restrainArray = lvInfo.DailyRestrain; } foreach (DailyRestrain daily in restrainArray) { if (daily.ID == rType) { vipNum = daily.Num; } } MaxNum = MathUtils.Addition(baseNum, vipNum, int.MaxValue); return MaxNum; }
public override bool TakeAction() { var plotTeam = new PlotTeamCombat(ContextUser); MorePlotTeam moreTeam = plotTeam.GetTeam(teamID); if (moreTeam != null && moreTeam.UserList.Count <= 1) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St4210_PeopleNotEnough; return false; } PlotInfo plotInfo = new ShareCacheStruct<PlotInfo>().FindKey(plotID); if (plotInfo == null) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St4210_PlotNotEnough; return false; } if(!plotTeam.DoStart(teamID)) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; return false; } return true; }
public override void BuildPacket() { this.PushIntoStack(magicList.Count); foreach (MagicInfo magicInfo in magicList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(magicInfo.MagicID); dsItem.PushIntoStack(magicInfo.MagicType.ToInt()); dsItem.PushIntoStack(magicInfo.MagicName.ToNotNullString()); dsItem.PushIntoStack(magicInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack(magicInfo.MagicDesc.ToNotNullString()); var magicLvList = new ShareCacheStruct<MagicLvInfo>().FindAll(m => m.MagicID == magicInfo.MagicID); dsItem.PushIntoStack(magicLvList.Count); foreach (MagicLvInfo magicLv in magicLvList) { DataStruct dsItem1 = new DataStruct(); dsItem1.PushIntoStack(magicLv.MagicLv.ToShort()); dsItem1.PushIntoStack(magicLv.ExpNum); dsItem1.PushIntoStack(magicLv.ColdTime); dsItem1.PushIntoStack(magicLv.EscalateMinLv.ToShort()); dsItem1.PushIntoStack(magicLv.AbilityType.ToShort()); dsItem1.PushIntoStack(magicLv.EffectNum.ToNotNullString()); dsItem1.PushIntoStack(magicLv.GridMaxNum); dsItem.PushIntoStack(dsItem1); } this.PushIntoStack(dsItem); } }
public override void BuildPacket() { PushIntoStack(firstName.ToNotNullString()); this.PushIntoStack((short)postType); this.PushIntoStack((short)isApply); this.PushIntoStack(fightList.Count); foreach (var fight in fightList) { CityInfo cityInfo = new ShareCacheStruct<CityInfo>().FindKey(fight.CityID); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(fight.CityID); dsItem.PushIntoStack(cityInfo == null ? string.Empty : cityInfo.CityName.ToNotNullString()); dsItem.PushIntoStack(fight.CityHead.ToNotNullString()); dsItem.PushIntoStack((short)fight.GuildLv); dsItem.PushIntoStack(fight.SkillNum); this.PushIntoStack(dsItem); } this.PushIntoStack(currCityName.ToNotNullString()); this.PushIntoStack(rewardDesc.ToNotNullString()); this.PushIntoStack(guildName.ToNotNullString()); this.PushIntoStack(endData); this.PushIntoStack((short)isChampion); }
/// <summary> /// 竞技场每日奖励 /// </summary> /// <param name="user"></param> public static void DailySportsRankPrize(GameUser user) { UserDailyRestrain dailyRestrain = new PersonalCacheStruct<UserDailyRestrain>().FindKey(user.UserID); if (IsGainSportsReward(user.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null) { //var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, ""); SportsRewardInfo sportsInfo = new ShareCacheStruct<SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID); //if (envSet != null && sportsInfo != null && envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date && // dailyRestrain.UserExtend.UserRankID > 0) if (sportsInfo != null && DateTime.Now.Date != dailyRestrain.Funtion11.Date && dailyRestrain.UserExtend.UserRankID > 0) { dailyRestrain.Funtion11 = DateTime.Now; dailyRestrain.UserExtend.UserRankID = 0; user.SportsIntegral = MathUtils.Addition(user.SportsIntegral, sportsInfo.RewardObtian, int.MaxValue); user.GameCoin = MathUtils.Addition(user.GameCoin, sportsInfo.RewardGoin, int.MaxValue); string sportContent = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward, sportsInfo.RewardObtian, sportsInfo.RewardGoin); var chatService = new TjxChatService(); chatService.SystemSendWhisper(user, sportContent); } } }
public override void BuildPacket() { this.PushIntoStack(TaskHelper.DailyEveryMaxNum); this.PushIntoStack(currNum); this.PushIntoStack(userTaskList.Count); foreach (UserTask userTask in userTaskList) { DailyTaskInfo dtaskInfo = new ShareCacheStruct<DailyTaskInfo>().FindKey(userTask.TaskID); var userItem = userTask.GetDailyItem(userLv); ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(userItem != null ? userItem.ItemID : 0); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(userTask.TaskID); dsItem.PushIntoStack(dtaskInfo.TaskName.ToNotNullString()); dsItem.PushIntoStack((short)userTask.TaskState); dsItem.PushIntoStack((short)userTask.TaskType); dsItem.PushIntoStack((short)userTask.TaskStar); dsItem.PushIntoStack(dtaskInfo.TaskDescp.ToNotNullString()); dsItem.PushIntoStack(dtaskInfo.TaskTarget); dsItem.PushIntoStack((int)userTask.TaskStar); dsItem.PushIntoStack(userTask.TaskTargetNum.ToInt()); dsItem.PushIntoStack(userTask.GetDailyExpNum(userLv)); dsItem.PushIntoStack(itemInfo != null ? itemInfo.ItemName.ToNotNullString() : string.Empty); dsItem.PushIntoStack(userItem != null ? userItem.Num : 0); this.PushIntoStack(dsItem); } }
public override bool TakeAction() { if (!string.IsNullOrEmpty(ContextUser.MercenariesID)) { int maxDonateGold = ConfigEnvSet.GetInt("UserGuild.MaxDonateGold"); int maxDonateCoin = UserHelper.MaxDonateGameCoin(ContextUser.UserLv.ToInt()); int gameCoinProportion = ConfigEnvSet.GetInt("UserGuild.DonateGameCoinProportion"); int goldProportion = ConfigEnvSet.GetInt("UserGuild.DonateGoldProportion"); GuildMember member = new ShareCacheStruct<GuildMember>().FindKey(ContextUser.MercenariesID, ContextUser.UserID); if (member != null) { if (donateType == 1) { donateNum = member.DonateCoin; maxDonateNum = maxDonateCoin; proportion = gameCoinProportion; } else if (donateType == 2) { donateNum = member.DonateGold; maxDonateNum = maxDonateGold; proportion = goldProportion; } } } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6203_GuildMemberNotEnough; return false; } return true; }
//private MiddlewareSection section; public ServersDataProvider() { if (_provider == null) { _provider = DbConnectionProvider.CreateDbProvider(ConnectKey); var command = _provider.CreateCommandStruct("StaticServer", CommandMode.Inquiry,"ServerId,Name,Ip,Port"); command.Parser(); using (var dr = _provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { var serversDatas = new ShareCacheStruct<StaticServer>(); while (dr.Read()) { StaticServer oneServerModel = new StaticServer(); oneServerModel.ServerId = Convert.ToInt32(dr["ServerId"]) ; oneServerModel.Name = dr["Name"].ToString(); oneServerModel.Ip = dr["Ip"].ToString(); oneServerModel.Port = Convert.ToInt32(dr["Port"]); //ServerList.Add(oneServerModel); serversDatas.Add(oneServerModel); } } //this.AddATestCache(); } }
public override bool TakeAction() { UserHelper.ChecheDailyContribution(ContextUser.MercenariesID, ContextUser.UserID); int summonGold = ConfigEnvSet.GetInt("GuildMember.SummonSanxian"); List<GuildMember> guildMemberArray = new ShareCacheStruct<GuildMember>().FindAll(m => m.UserID == ContextUser.UserID && m.IsDevil == 1 && DateTime.Now.Date == m.DevilDate.Date); if (guildMemberArray.Count > 0) { GuildMember member = guildMemberArray[0]; if (ops == 1) { ErrorCode = 1; ErrorInfo = string.Format(LanguageManager.GetLang().St6015_SummonSanxian, summonGold); return false; } else if (ops == 2) { if (ContextUser.GoldNum < summonGold) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough; return false; } member.SummonNum = MathUtils.Addition(member.SummonNum, 1, int.MaxValue); member.CurrNum = MathUtils.Addition(member.CurrNum, 1, int.MaxValue); //member.Update(); ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, summonGold, int.MaxValue); //ContextUser.Update(); } } return true; }
public override void BuildPacket() { PushIntoStack(ContextUser.GoldNum); PushIntoStack(ContextUser.GameCoin); PushIntoStack(freeNum); PushIntoStack(isSale); PushIntoStack(issTelegrams); PushIntoStack(grayCrystalArray.Count); foreach (GrayCrystal crystal in grayCrystalArray) { CrystalInfo crystalInfo = new ShareCacheStruct<CrystalInfo>().FindKey(crystal.CrystalID) ?? new CrystalInfo(); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(crystal.UserCrystalID); dsItem.PushIntoStack(crystalInfo.CrystalID); dsItem.PushIntoStack(crystalInfo.CrystalName.ToNotNullString()); dsItem.PushIntoStack(crystalInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack((short)crystalInfo.CrystalQuality); PushIntoStack(dsItem); } PushIntoStack(userLightArray.Count); foreach (UserLight light in userLightArray) { ProbabilityInfo probabilityInfo = new ShareCacheStruct<ProbabilityInfo>().FindKey(light.HuntingID); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(light.HuntingID); dsItem.PushIntoStack(probabilityInfo == null ? 0 : probabilityInfo.Price); dsItem.PushIntoStack(light.IsLight); PushIntoStack(dsItem); } }
public override bool TakeAction() { if (new GameDataCacheSet<UserFunction>().FindKey(Uid, FunctionEnum.PetRun) == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_NoFun; return false; } UserDailyRestrain restrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(Uid); if (restrain != null && restrain.UserExtend != null) { var dailyCacheSet = new ShareCacheStruct<DailyRestrainSet>(); if (dailyCacheSet.FindKey(RestrainType.PetRun) != null) _runTimes = MathUtils.Subtraction(dailyCacheSet.FindKey(RestrainType.PetRun).MaxNum, restrain.UserExtend.PetRunTimes, 0); if (dailyCacheSet.FindKey(RestrainType.PetIntercept) != null) _interceptTimes = MathUtils.Subtraction(dailyCacheSet.FindKey(RestrainType.PetIntercept).MaxNum, restrain.UserExtend.PetIntercept, 0); if (dailyCacheSet.FindKey(RestrainType.PetHelp) != null) _helpTimes = MathUtils.Subtraction(dailyCacheSet.FindKey(RestrainType.PetHelp).MaxNum, restrain.UserExtend.PetHelp, 0); } var petRun = new ShareCacheStruct<PetRunPool>().FindKey(Uid); if (petRun != null) { //问题:在赛跑时有重刷点亮宠物后,等赛跑完服务端与客户端记录宠物ID不一致,原因是赛跑完有将宠物ID清除 if (petRun.PetID > 0 && petRun.ColdTime == 0) { UserHelper.ProcessPetPrize(petRun); } _coldTime = petRun.ColdTime; _petHead = (new ConfigCacheSet<PetInfo>().FindKey(petRun.PetID) ?? new PetInfo()).PetHead; if (ContextUser.UserExtend != null) _petId = ContextUser.UserExtend.LightPetID; } return true; }
public override bool TakeAction() { var package = UserEnchant.Get(ContextUser.UserID); if (package == null) { return false; } UserEnchantInfo userEnchantInfo = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID); if (userEnchantInfo == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1256_EnchantNotEnough; return false; } EnchantInfo enchant = new ShareCacheStruct<EnchantInfo>().FindKey(userEnchantInfo.EnchantID); EnchantLvInfo enchantLvInfo = new ShareCacheStruct<EnchantLvInfo>().FindKey(userEnchantInfo.EnchantID, userEnchantInfo.EnchantLv); if (enchant != null && enchantLvInfo != null) { ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, enchantLvInfo.CoinPrice); if (ContextUser.UserExtend == null) { ContextUser.UserExtend = new GameUserExtend(); } ContextUser.UserExtend.UpdateNotify(obj => { ContextUser.UserExtend.MoJingNum = MathUtils.Addition(ContextUser.UserExtend.MoJingNum, enchantLvInfo.MoJingPrice); return true; }); UserLogHelper.AppenEnchantLog(ContextUser.UserID, 1, userEnchantInfo, new CacheList<SynthesisInfo>()); package.RemoveEnchant(userEnchantInfo); } return true; }
public override void BuildPacket() { PushIntoStack(generalInfo == null ? string.Empty : generalInfo.GeneralName.ToNotNullString()); PushIntoStack(generalMedicineArray.Count); foreach (GeneralMedicine item in generalMedicineArray) { ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(item.MedicineID); int itemcount = TrumpHelper.GetUserItemNum(item.UserID, item.MedicineID); if (itemcount > 0) { gridStatus = 1; } else { gridStatus = 2; } DataStruct ds = new DataStruct(); ds.PushIntoStack(item.MedicineID); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString()); ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.MedicineLv); ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.MedicineType); ds.PushIntoStack((short)GetGeneralMedicine(item)); ds.PushIntoStack(gridStatus); ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString()); PushIntoStack(ds); } this.PushIntoStack(powerNum); this.PushIntoStack(soulNum); this.PushIntoStack(intellectNum); }
public override bool TakeAction() { if (string.IsNullOrEmpty(ContextUser.MercenariesID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; return false; } var cacheSet = new ShareCacheStruct<ServerFight>(); FightCombat combat = new FightCombat(); ServerFight fight = cacheSet.FindKey(combat.FastID, ContextUser.MercenariesID); if (fight != null) { if (!string.IsNullOrEmpty(fight.CombatMember)) { fight.CombatMember = fight.CombatMember.Replace(ContextUser.UserID, "").Replace(",,", ","); if (fight.CombatMember == ",") { fight.CombatMember = string.Empty; } } FightUser fightUser = GuildFightCombat._fightUserList.Find(m => m.UserId == ContextUser.UserID); if (fightUser != null) { GuildFightCombat._fightUserList.Remove(fightUser); } ContextUser.UserStatus = UserStatus.Normal; } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6411_FailedToExit; return false; } return true; }
public override void BuildPacket() { this.PushIntoStack(abilityInfoArray.Count); foreach (GuildAbilityInfo abilityInfo in abilityInfoArray) { var guildAbilityLvInfos = new ShareCacheStruct<GuildAbilityLvInfo>().FindAll(m => m.ID == abilityInfo.ID); DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(abilityInfo.ID); dsItem.PushIntoStack(abilityInfo.IsCityCombat ? (short)1 : (short)0); dsItem.PushIntoStack(abilityInfo.AbilityName.ToNotNullString()); dsItem.PushIntoStack((short)abilityInfo.GuildAbilityType); dsItem.PushIntoStack(abilityInfo.AbilityHead.ToNotNullString()); dsItem.PushIntoStack(abilityInfo.AbilityDesc.ToNotNullString()); dsItem.PushIntoStack(guildAbilityLvInfos.Count); foreach (GuildAbilityLvInfo lvInfo in guildAbilityLvInfos) { DataStruct dsItem1 = new DataStruct(); dsItem1.PushIntoStack(lvInfo.AbilityLv); dsItem1.PushIntoStack(lvInfo.UpDonateNum); dsItem1.PushIntoStack(lvInfo.EffectNum.ToString().ToNotNullString()); dsItem.PushIntoStack(dsItem1); } this.PushIntoStack(dsItem); } }
public static void AddPrize(string UserID, int itemID, string mailContent) { string ItemPackage = itemID + "=1=1"; var cacheset = new ShareCacheStruct<UserTakePrize>(); UserTakePrize takeprize = new UserTakePrize() { CreateDate = DateTime.Now, CrystalPackage = string.Empty, EnergyNum = 0, ExpNum = 0, GainBlessing = 0, GameCoin = 0, Gold = 0, ID = Guid.NewGuid().ToString(), ItemPackage = ItemPackage, IsTasked = false, MailContent = mailContent, ObtainNum = 0, OpUserID = 0, SparePackage = string.Empty, UserID = UserID.ToInt(), VipLv = 0, }; cacheset.Add(takeprize, GameEnvironment.CacheGlobalPeriod); }
public override bool TakeAction() { List<GameUser> friendArray = new List<GameUser>(); new PersonalCacheStruct<GameUser>().Foreach((personId, key, user) => { //查找相同等级的 并且好友类型非好友和关注的类型 if (user.UserLv == ContextUser.UserLv && user.UserID != ContextUser.UserID) { UserFriends userInfo = new ShareCacheStruct<UserFriends>().FindKey(ContextUser.UserID, user.UserID); if (userInfo == null) { friendArray.Add(user); } else { if (userInfo.FriendType != FriendType.Friend && userInfo.FriendType != FriendType.Attention) { friendArray.Add(user); } } } return true; }); _userFriendArray = friendArray.GetPaging(_pageIndex, _pageSize, out _pageCount); return true; }
public bool Add(int type,int index,string code) { var cache = new ShareCacheStruct<ExchangeCode>(); int key = UniqueKey(type, index); //if (null != cache.FindKey(key)) return false; // this type has been added ExchangeCode ec = cache.FindKey(key); if (null != ec) { return true; } else { ec = new ExchangeCode(); ec.key = key; ec.Type = (byte)type; ec.Index = index; ec.Code = code; if (ec.Type == (byte)GameConfigExchangeCode.ExchangeCodeType.ASType_NSNSDuiHuan_AnHuiTai_1 || ec.Type == (byte)GameConfigExchangeCode.ExchangeCodeType.ASType_NSNSDuiHuan_JiaRi_1) { ec.cnt = int.MaxValue; } cache.Add(ec); } return true; }
private GameTable() { _cardRole = new CardRole(); _pokerConfig = new ShareCacheStruct<PokerInfo>(); _userCacheSet = new GameDataCacheSet<GameUser>(); _roomStruct = new MemoryCacheStruct<RoomData>(); }
public override bool TakeAction() { ItemBaseInfo itemBaseInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(_materialsID); if (itemBaseInfo.ItemType == ItemType.CaiLiao) { //寻材料 List<MonsterInfo> monsterArray = new ShareCacheStruct<MonsterInfo>().FindAll(m => m.ItemID == _materialsID); if (monsterArray.Count > 0) { MonsterInfo monsterInfo = monsterArray[0]; var plotEmbattles = new ShareCacheStruct<PlotEmbattleInfo>().FindAll(m => m.MonsterID == monsterInfo.MonsterID); foreach (var embattle in plotEmbattles) { PlotNPCInfo npcInfo = new ShareCacheStruct<PlotNPCInfo>().FindKey(embattle.PlotNpcID); if (npcInfo != null) { PlotInfo temp = new ShareCacheStruct<PlotInfo>().FindKey(npcInfo.PlotID); if (temp != null && temp.CityID > CurrCityID(ContextUser.UserLv)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1604_MaterialsCityID; return false; } if (CheckPlot(temp)) { _plotInfo = temp; break; } } } } } return true; }
public override void BuildPacket() { PushIntoStack(_pageCount); PushIntoStack(ContextUser.GameCoin); PushIntoStack(ContextUser.GoldNum); PushIntoStack(_mallItemsInfoArray.Count); foreach (MallItemsInfo mallItems in _mallItemsInfoArray) { ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(mallItems.ItemID); int mallPrice = 0; int specilPrice = 0; if (itemInfo != null) { mallPrice = mallItems.Price; if (mallItems.MallType == ShopType.Props || mallItems.MallType == ShopType.PresendBox) { mallPrice = (FestivalHelper.StoreDiscount() * mallPrice).ToInt(); } specilPrice = mallItems.SpecialPrice; } DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(mallItems.ItemID); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.MaxHeadID.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType); dsItem.PushIntoStack(mallPrice); dsItem.PushIntoStack(specilPrice); dsItem.PushIntoStack(mallItems.SeqNO); dsItem.PushIntoStack((short)_commandType); PushIntoStack(dsItem); } PushIntoStack(ContextUser.ObtainNum); }
public override bool TakeAction() { ContextUser.UserLocation = Location.City; UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(ContextUser.MercenariesID); if (guild == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } GameActive gameactive = new ShareCacheStruct <GameActive>().FindKey(11); if (gameactive == null || !gameactive.State) { return(false); } gameactive.BeginTime = gameactive.EnablePeriod.ToDateTime(DateTime.MinValue); gameactive.EndTime = gameactive.BeginTime.AddMinutes(gameactive.Minutes); DateTime readytime = gameactive.BeginTime.AddMinutes(0 - gameactive.WaitMinutes); if (gameactive.BeginTime > DateTime.Now) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6301_GuildExerciseNoOpen; return(false); } if (gameactive.BeginTime.AddMinutes(gameactive.WaitMinutes) < DateTime.Now && gameactive.EndTime > DateTime.Now) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6301_GuildExerciseIsOpen; return(false); } if (gameactive.EndTime < DateTime.Now) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6301_GuildExerciseClose; return(false); } if (guild.GuildExercise == null) { TraceLog.ReleaseWriteFatal("重新刷了6301接口1"); guild.GuildExercise = new GuildExercise(); } if (guild.GuildExercise.QuestionNo > 0) { TraceLog.ReleaseWriteFatal("重新刷了6301接口2"); guild.GuildExercise = new GuildExercise(); } if (guild.GuildExercise.UserList.Find(u => u.UserID == ContextUser.UserID) == null) { ExerciseUser exUser = new ExerciseUser(); exUser.AnswerStatus = false; exUser.QuestionNo = 0; exUser.Status = GuildExerciseStatus.Default; exUser.UserID = ContextUser.UserID; guild.GuildExercise.UpdateNotify(obj => { guild.GuildExercise.UserList.Add(exUser); return(true); }); //guild.Update(); } ContextUser.UserLocation = Location.GuildExercise; //ContextUser.Update(); return(true); }
public override bool TakeAction() { if (string.IsNullOrEmpty(ContextUser.MercenariesID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6203_GuildMemberNotEnough; return(false); } string guildFight = string.Empty; DateTime nextDate; stage = GuildFightCombat.GetStage(out nextDate); if (stage != FightStage.Apply) { codeTime = (int)(nextDate - DateTime.Now).TotalSeconds; } ServerFight fight = new ShareCacheStruct <ServerFight>().FindKey(fightCombat.FastID, ContextUser.MercenariesID); if (fight != null) { CityInfo cityInfo = new ConfigCacheSet <CityInfo>().FindKey(fight.CityID); if (cityInfo != null) { cityName = cityInfo.CityName; } FightStage fightStage; if (stage <= FightStage.quarter_final) { fightStage = FightStage.quarter_final; } else if (stage > FightStage.quarter_final && stage < FightStage.final_Wait) { fightStage = FightStage.semi_final; } else { fightStage = FightStage.final; } var fightGroupList = new ShareCacheStruct <ServerFightGroup>().FindAll(s => s.FastID == fightCombat.FastID && s.Stage == fightStage); if (fightGroupList.Count == 0) { fightGroupList = new ShareCacheStruct <ServerFightGroup>().FindAll(s => s.FastID == fightCombat.FastID && s.Stage < fightStage); if (fightGroupList.Count == 0) { fightGroupList = new ShareCacheStruct <ServerFightGroup>().FindAll(s => s.FastID == fightCombat.FastID && s.Stage >= fightStage); } } foreach (var fightGroup in fightGroupList) { if (!string.IsNullOrEmpty(fightGroup.WinGuildID) && fightGroup.WinGuildID == ContextUser.MercenariesID) { guildFight = fightGroup.WinGuildID; continue; } if (fightGroup.GuildIDA == ContextUser.MercenariesID || fightGroup.GuildIDB == ContextUser.MercenariesID) { guildFight = fightGroup.GuildIDA + "," + fightGroup.GuildIDB; } } if (!string.IsNullOrEmpty(guildFight)) { guildStr = guildFight.Split(','); } TraceLog.ReleaseWriteFatal("6409公会争斗战配对城市{0} 阶段:{1},公会:{2}。", fight.CityID, stage, guildFight.ToNotNullString()); } var totalfatigue = ContextUser.Fatigue * GameConfigSet.Fatigue; int tfatigue = (int)(totalfatigue * 100); fatigue = string.Format(LanguageManager.GetLang().St6409_fatigueDesc, ContextUser.Fatigue, tfatigue); if (guildStr.Length == 0) { guildFight = ContextUser.MercenariesID + ","; guildStr = guildFight.Split(','); } return(true); }
protected override bool DoSuccess(int userId, out IUser user) { user = null; //原因:重登录时,数据会回档问题 var cacheSet = new PersonalCacheStruct <GameUser>(); GameUser userInfo = cacheSet.FindKey(userId.ToString()); if (userInfo != null) { //原因:还在加载中时,返回 if (userInfo.IsRefreshing) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().ServerLoading; return(false); } } if (userInfo == null || string.IsNullOrEmpty(userInfo.SessionID) || !userInfo.IsOnline) { UserCacheGlobal.Load(userId.ToString()); //重新刷缓存 userInfo = cacheSet.FindKey(userId.ToString()); } if (userInfo != null) { if (userInfo.UserStatus == UserStatus.FengJin) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1004_IDDisable; return(false); } user = new SessionUser(userInfo); //todo //NoticeHelper.RankNotice(userInfo); //公告 CombatHelper.LoadProperty(userInfo); //todo //NoviceHelper.OldFriendPack(Uid, userInfo.LoginTime); //好友礼包 UserLoginLog userLoginLog = new UserLoginLog(); userLoginLog.UserId = userInfo.UserID; userLoginLog.SessionID = Sid; userLoginLog.MobileType = MobileType; userLoginLog.ScreenX = ScreenX; userLoginLog.ScreenY = ScreenY; userLoginLog.RetailId = RetailID; userLoginLog.AddTime = DateTime.Now; userLoginLog.State = LoginStatus.Logined; userLoginLog.DeviceID = DeviceID; userLoginLog.Ip = this.GetRealIP(); userLoginLog.Pid = userInfo.Pid; userLoginLog.UserLv = userInfo.UserLv; //原因:报表统计 userLoginLog.PlotID = userInfo.PlotProgress; PlotInfo plotInfo = new ShareCacheStruct <PlotInfo>().FindKey(userInfo.PlotProgress); if (plotInfo != null) { userLoginLog.PlotName = plotInfo.PlotName; } var sender = DataSyncManager.GetDataSender(); sender.Send(userLoginLog); //int vipLv; //var vipLvArray = new ShareCacheStruct<VipLvInfo>().FindAll(u => u.PayGold <= userInfo.PayGold); //vipLv = vipLvArray.Count > 0 ? vipLvArray[vipLvArray.Count - 1].VipLv : (short)0; userInfo.LoginTime = DateTime.Now; userInfo.SessionID = Sid; userInfo.IsOnline = true; //userInfo.VipLv = vipLv; userInfo.GameId = GameType; userInfo.ServerId = ServerID; userInfo.ChatVesion = 0; userInfo.ChatDate = DateTime.MinValue; userInfo.BroadcastVesion = 0; if (userInfo.DailyLoginTime == MathUtils.SqlMinDate || userInfo.DailyLoginTime.Date != DateTime.Now.Date) { userInfo.DailyLoginTime = DateTime.Now; } //todo RankingHelper.DailySportsRankPrize(userInfo); } else { user = new SessionUser() { UserId = userId, PassportId = PassportId }; ErrorCode = 1005; ErrorInfo = LanguageManager.GetLang().St1005_RoleCheck; } return(true); }
public override bool TakeAction() { var cacheSet = new ShareCacheStruct <UserFriends>(); _isSuccess = 1; if (_friendId != "") { //找到本玩家的数据 List <UserFriends> friendArray = cacheSet.FindAll(m => m.UserID == ContextUser.UserID); int friendNum = ConfigEnvSet.GetInt("UserFriends.MaxFriendNum"); //添加的好友上限 if (friendArray.Count >= friendNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9103_TheMaximumReachedAFriend; return(false); } //查看是否在user库中有该玩家 GameUser userInfo = new GameDataCacheSet <GameUser>().FindKey(_friendId); if (userInfo == null) { UserCacheGlobal.LoadOffline(_friendId); userInfo = new GameDataCacheSet <GameUser>().FindKey(_friendId); } if (userInfo == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9103_NotFriendsUserID; return(false); } //在好友表中查找本玩家 和添加好友的关系 var userFriend = cacheSet.FindKey(ContextUser.UserID, _friendId); var userFriend1 = cacheSet.FindKey(_friendId, ContextUser.UserID); if (userFriend == null) { //创建新的数据 并且添加成关注类型 var friends = new UserFriends { UserID = ContextUser.UserID, FriendID = _friendId, FriendType = FriendType.Attention }; cacheSet.Add(friends); //todo test friends.ChatTime = DateTime.Now; } //如果玩家数据不为空 else { //判断两个玩家的关系 if (userFriend.FriendType == FriendType.Friend) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9103_TheUserHasAFriendIn; return(false); } ////如果已经发送请求就不在继续发 //if (userFriend.FriendType == FriendType.Attention) //{ // ErrorCode = LanguageManager.GetLang().ErrorCode; // ErrorInfo = LanguageManager.GetLang().St_FirendNoticeTip; // return false; //} //加好友都是变为关注 从仇敌那里也能转换为关注 if (userFriend.FriendType != FriendType.Friend) { userFriend.FriendType = FriendType.Attention; } } //判断对方是否有和本玩家的数据 如果没有创建 有改状态 if (userFriend1 == null) { var friends2 = new UserFriends { UserID = _friendId, FriendID = ContextUser.UserID, FriendType = FriendType.Fans, }; cacheSet.Add(friends2); //todo test friends2.ChatTime = DateTime.Now; } // 发送系统信件 try { Guid newGuid = Guid.NewGuid(); UserMail userMail = new UserMail(newGuid); userMail.UserId = Int32.Parse(_friendId); userMail.MailType = (int)MailType.Friends; userMail.Title = LanguageManager.GetLang().St_AskFirendMailTitle; userMail.Content = string.Format(LanguageManager.GetLang().St_AskFirendTip, ContextUser.NickName); userMail.SendDate = DateTime.Now; userMail.IsReply = true; userMail.ReplyStatus = 0; userMail.FromUserId = Int32.Parse(ContextUser.UserID); userMail.FromUserName = ContextUser.NickName; TjxMailService mailService = new TjxMailService(ContextUser); mailService.Send(userMail); } catch (Exception) { } } //上传的好友名字不为空 else if (_friendName != null) { List <UserFriends> friendArray = cacheSet.FindAll(m => m.UserID == ContextUser.UserID); int friendNum = ConfigEnvSet.GetInt("UserFriends.MaxFriendNum"); if (friendArray.Count >= friendNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9103_TheMaximumReachedAFriend; return(false); } GameUser friend = null; new GameDataCacheSet <GameUser>().Foreach((personalId, key, user) => { if (user.NickName == _friendName) { friend = user; return(false); } return(true); }); if (friend != null) { GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(friend.UserID); UserFriends userFriend = cacheSet.FindKey(ContextUser.UserID, _friendId); if (userFriend != null) { if (userFriend.FriendType == FriendType.Fans) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St9103_TheUserHasTheFansIn; return(false); } else if (userFriend.FriendType == FriendType.Blacklist) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St9103_TheUserHasTheBlacklist; return(false); } else { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St9103_TheUserHasAFriendIn; return(false); } } UserFriends friends = new UserFriends() { UserID = ContextUser.UserID, FriendID = gameUser.UserID, FriendType = FriendType.Attention }; cacheSet.Add(friends); UserFriends friends2 = new UserFriends() { UserID = gameUser.UserID, FriendID = ContextUser.UserID, FriendType = FriendType.Fans, }; cacheSet.Add(friends2); } else { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St9103_DoesNotExistTheUser; return(false); } } return(true); }
public override bool TakeAction() { UserHelper.ChecheDailyContribution(ContextUser.MercenariesID, ContextUser.UserID); chaoShengNum = ConfigEnvSet.GetInt("GuildMember.QiXingZhaoSheng"); var guidCacheSet = new ShareCacheStruct <GuildMember>(); GuildMember member = guidCacheSet.FindKey(ContextUser.MercenariesID, ContextUser.UserID); if (member != null) { List <GuildMember> gmemberArray = new ShareCacheStruct <GuildMember>().FindAll(m => m.GuildID == member.GuildID && m.IsDevil == 1); foreach (GuildMember guildMember in gmemberArray) { if (guildMember.DevilDate.Date != DateTime.Now.Date) { guildMember.IsDevil = 2; guildMember.DevilNum = 0; } } memberArray = new ShareCacheStruct <GuildMember>().FindAll(m => m.GuildID == member.GuildID && m.IsDevil == 1 && (DateTime.Now.Date == m.DevilDate.Date)); foreach (GuildMember guildMember in memberArray) { currNum = MathUtils.Addition(currNum, guildMember.CurrNum, int.MaxValue); if (guildMember.UserID == ContextUser.UserID) { isPilgrimage = 1; } } int totalNum = MathUtils.Addition(memberArray.Count, currNum, int.MaxValue); if (totalNum >= 7) { isSuccess = 1; foreach (GuildMember guildMember in memberArray) { guildMember.IsDevil = 2; if (guildMember.DevilNum <= 1) { GameUser gameUser = UserCacheGlobal.CheckLoadUser(guildMember.UserID); if (gameUser != null) { gameUser.ObtainNum = MathUtils.Addition(gameUser.ObtainNum, chaoShengNum, int.MaxValue); UserHelper.Contribution(guildMember.UserID, chaoShengNum); GuildMemberLog.AddLog(member.GuildID, new MemberLog() { UserID = guildMember.UserID, IdolID = 0, LogType = 1, GainObtion = chaoShengNum, Experience = chaoShengNum, GainAura = 0, InsertDate = DateTime.Now, }); } else { return(false); } } guildMember.CurrNum = 0; } } else { isSuccess = 2; } } return(true); }
private static GeneralProperty GetAbilityProperty(string userID, int generalID, AbilityType abilityType) { decimal val = 0; int careerID = 0; UserGeneral ugeneral = new PersonalCacheStruct <UserGeneral>().FindKey(userID, generalID); GeneralInfo generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(generalID); if (ugeneral != null) { careerID = ugeneral.CareerID; } else if (generalInfo != null) { careerID = generalInfo.CareerID; } if (abilityType == AbilityType.WuLiGongJi || abilityType == AbilityType.WuLiFangYu || abilityType == AbilityType.HunJiGongJi || abilityType == AbilityType.HunJiFangYu || abilityType == AbilityType.MoFaGongJi || abilityType == AbilityType.MoFaFangYu) { int equNum = GetEquNum(userID, generalID, abilityType).ToInt(); int fateNum = GetFateNum(userID, generalID, abilityType).ToInt(); int propertyNum = GetPropertyNum(userID, generalID, abilityType).ToInt(); int magicNum = (int)GetEmbattleNum(userID, abilityType); int upgradeNum = GeneralUpGradeProperty(userID, generalID, abilityType).ToInt(); val = MathUtils.Addition(equNum, fateNum, int.MaxValue); val = MathUtils.Addition(val, propertyNum, int.MaxValue); val = MathUtils.Addition(val, magicNum, int.MaxValue); val = MathUtils.Addition(val, upgradeNum); //佣兵好感度数值加成 int feelNum = FeelEffectNum(userID, generalID, abilityType); val = MathUtils.Addition(val, feelNum, int.MaxValue); //法宝附加属性值 int trumpPro = (int)TrumpAbilityAttack.TrumpGeneralProperty(userID, generalID, abilityType); val = MathUtils.Addition(val, trumpPro, int.MaxValue); //附魔符属性值 int enchantNum = EnchantProprety(userID, generalID, abilityType).ToInt(); val = MathUtils.Addition(val, enchantNum); //属性转换 //val = MathUtils.Addition(val, (int)TrumpAbilityAttack.ConversionPropertyNum(userID, val, abilityType), int.MaxValue); } else if (abilityType == AbilityType.BaoJi || abilityType == AbilityType.MingZhong || abilityType == AbilityType.PoJi || abilityType == AbilityType.RenXing || abilityType == AbilityType.ShanBi || abilityType == AbilityType.GeDang || abilityType == AbilityType.BiSha) { val = GetCareerNum(careerID, abilityType); val = MathUtils.Addition(val, GetEquNum(userID, generalID, abilityType), decimal.MaxValue); val = MathUtils.Addition(val, GetFateNum(userID, generalID, abilityType), decimal.MaxValue); val = MathUtils.Addition(val, GetEmbattleNum(userID, abilityType), decimal.MaxValue); val = MathUtils.Addition(val, GeneralUpGradeProperty(userID, generalID, abilityType).ToDecimal()); //法宝附加属性值 decimal trumpPro = TrumpAbilityAttack.TrumpGeneralProperty(userID, generalID, abilityType); val = MathUtils.Addition(val, trumpPro, int.MaxValue); //附魔符属性值 decimal enchantNum = EnchantProprety(userID, generalID, abilityType); val = MathUtils.Addition(val, enchantNum); //属性转换 //val = MathUtils.Addition(val, TrumpAbilityAttack.ConversionPropertyNum(userID, val, abilityType), decimal.MaxValue); } return(new GeneralProperty() { AbilityType = abilityType, AbilityValue = val }); }
public override bool TakeAction() { bool isAtevent = false; var guildsSet = new ShareCacheStruct <GuildsCache>(); var guildData = guildsSet.FindKey(GetGuild.GuildID); if (guildData == null) { return(false); } var member = guildData.FindMember(Current.UserId); if (member == null) { return(false); } isAtevent = member.JobTitle == GuildJobTitle.Atevent; guildData.RemoveMember(member); GetGuild.GuildID = string.Empty; if (guildData.MemberList.Count > 0) { if (isAtevent) { var ac = guildData.FindAteventCandidate(); if (ac != null) { ac.JobTitle = GuildJobTitle.Atevent; foreach (var v in guildData.MemberList) { PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), ac.UserID); } } } GuildLogData log = new GuildLogData() { UserId = Current.UserId, UserName = GetBasis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 退出了公会。", GetBasis.NickName), }; guildData.NewLog(log); foreach (var v in guildData.MemberList) { PushMessageHelper.GuildMemberRemoveNotification(GameSession.Get(v.UserID), Current.UserId); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } } GlobalRemoteService.SendUserData(GetBasis, GetGuild.GuildID); receipt = true; return(true); }
public override bool TakeAction() { ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(medicineID); var userItemArray = UserItemHelper.GetItems(Uid).FindAll(u => (u.ItemStatus == ItemStatus.BeiBao || u.ItemStatus == ItemStatus.CangKu)); if (userItemArray.Count == 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1407_MedicineNum; return(false); } UserGeneral general = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (general == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St10006_DoesNotExistTheGeneral; return(false); } if (itemInfo.DemandLv > general.GeneralLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough; return(false); } int sum = 0; short baseNum = 0; //佣兵服用ID为medicineID的丹药 var generalMedicineArray = new PersonalCacheStruct <GeneralMedicine>().FindAll(ContextUser.UserID, g => g.MedicineID.Equals(medicineID) && g.GeneralID == generalID); if (generalMedicineArray.Count > 0) { int mLv = itemInfo.MedicineLv; int mNum = generalMedicineArray.Count; if (mLv == 1 && mNum >= 2 || mLv == 2 && mNum >= 3 || mLv == 3 && mNum >= 4 || mLv == 4 && mNum >= 5 || mLv == 5 && mNum >= 6 || mLv == 6 && mNum >= 7) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1407_MedicineNumFull; return(false); } sum = mNum * 5; // baseNum = MathUtils.Subtraction(itemInfo.MedicineNum, (short)sum, (short)0); } else { baseNum = itemInfo.MedicineNum; } //vip int useGold = 0; int[] vipMeArray = { 30, 150, 300, 600, 1200, 2400 }; for (int i = 1; i <= vipMeArray.Length; i++) { if (itemInfo.MedicineLv == i) { useGold = vipMeArray[i - 1]; } } if (ops == 0) { GeneralMedicine generalMedicine = new GeneralMedicine() { GeneralMedicineID = Guid.NewGuid().ToString(), UserID = ContextUser.UserID, GeneralID = generalID, MedicineID = medicineID, BaseNum = (int)baseNum }; var cacheSet = new PersonalCacheStruct <GeneralMedicine>(); cacheSet.Add(generalMedicine); UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1); if (itemInfo.MedicineType == 1) { general.PowerNum = MathUtils.Addition(general.PowerNum, baseNum, short.MaxValue); } else if (itemInfo.MedicineType == 2) { general.SoulNum = MathUtils.Addition(general.SoulNum, baseNum, short.MaxValue); } else if (itemInfo.MedicineType == 3) { general.IntellectNum = MathUtils.Addition(general.IntellectNum, baseNum, short.MaxValue); } //general.Update(); } else if (ops == 1) { ErrorCode = 1; ErrorInfo = string.Format(LanguageManager.GetLang().St1407_MedicineUseGold, useGold); return(false); } else if (ops == 2) { if (ContextUser.GoldNum < useGold) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough; return(false); } GeneralMedicine generalMedicine = new GeneralMedicine() { GeneralMedicineID = Guid.NewGuid().ToString(), UserID = ContextUser.UserID, GeneralID = generalID, MedicineID = medicineID, BaseNum = (int)baseNum }; var cacheSet = new PersonalCacheStruct <GeneralMedicine>(); cacheSet.Add(generalMedicine); ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue); //ContextUser.Update(); if (itemInfo.MedicineType == 1) { general.PowerNum = MathUtils.Addition(general.PowerNum, baseNum, short.MaxValue); } else if (itemInfo.MedicineType == 2) { general.SoulNum = MathUtils.Addition(general.SoulNum, baseNum, short.MaxValue); } else if (itemInfo.MedicineType == 3) { general.IntellectNum = MathUtils.Addition(general.IntellectNum, baseNum, short.MaxValue); } //general.Update(); } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().UrlElement; return(false); } return(true); }
protected override void ChangeRankNo(GuildRank item) { var guilddata = new ShareCacheStruct <GuildsCache>().FindKey(item.GuildID); guilddata.RankID = item.RankId; }
public override void BuildPacket() { this.PushIntoStack(plotList.Count); foreach (PlotInfo plotInfo in plotList) { DataStruct ds = new DataStruct(); ds.PushIntoStack(plotInfo.PlotID); ds.PushIntoStack(plotInfo.CityID); ds.PushIntoStack(plotInfo.PlotType.ToShort()); ds.PushIntoStack(plotInfo.PlotSeqNo); ds.PushIntoStack(plotInfo.PlotName.ToNotNullString()); ds.PushIntoStack(plotInfo.BossHeadID.ToNotNullString()); ds.PushIntoStack(plotInfo.BgScene.ToNotNullString()); ds.PushIntoStack(plotInfo.FgScene.ToNotNullString()); ds.PushIntoStack(plotInfo.AftPlotID); ds.PushIntoStack(plotInfo.SceneY1); ds.PushIntoStack(plotInfo.SceneY2); var npcList = new ShareCacheStruct <PlotNPCInfo>().FindAll(m => m.PlotID == plotInfo.PlotID); ds.PushIntoStack(npcList.Count); foreach (PlotNPCInfo npcInfo in npcList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(npcInfo.PlotNpcID); dsItem.PushIntoStack(npcInfo.NpcName.ToNotNullString()); dsItem.PushIntoStack(npcInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack(npcInfo.NpcSeqNo.ToInt()); dsItem.PushIntoStack(npcInfo.PointX); dsItem.PushIntoStack(npcInfo.PointY); dsItem.PushIntoStack(npcInfo.NpcTip.ToNotNullString()); dsItem.PushIntoStack(npcInfo.PreStoryCode.ToNotNullString()); dsItem.PushIntoStack(npcInfo.AftStoryCode.ToNotNullString()); dsItem.PushIntoStack(npcInfo.IsBoss.ToShort()); var plotEmbattleList = new ShareCacheStruct <PlotEmbattleInfo>().FindAll(m => m.PlotNpcID == npcInfo.PlotNpcID); dsItem.PushIntoStack(plotEmbattleList.Count); foreach (PlotEmbattleInfo embattleInfo in plotEmbattleList) { MonsterInfo monster = new ShareCacheStruct <MonsterInfo>().FindKey(embattleInfo.MonsterID); if (monster == null) { SaveLog(new Exception(string.Format(LanguageManager.GetLang().St4011_NoMonster, plotInfo.PlotID, embattleInfo.MonsterID))); } DataStruct dsItem1 = new DataStruct(); dsItem1.PushIntoStack(embattleInfo.MonsterID); dsItem1.PushIntoStack(embattleInfo.GridSeqNo.ToInt()); dsItem1.PushIntoStack(monster == null ? (short)0 : monster.MonsterType.ToShort()); dsItem1.PushIntoStack(monster == null ? string.Empty : monster.HeadID.ToNotNullString()); dsItem1.PushIntoStack(monster == null ? string.Empty : monster.GeneralName.ToNotNullString()); dsItem1.PushIntoStack(monster == null ? (short)0 : monster.GeneralLv.ToShort()); dsItem1.PushIntoStack(monster == null ? (int)0 : monster.LifeNum); dsItem1.PushIntoStack(monster == null ? (int)0 : monster.MomentumNum); dsItem1.PushIntoStack(monster == null ? (short)0 : monster.CareerID); dsItem1.PushIntoStack(monster == null ? (int)0 : monster.ItemID); dsItem.PushIntoStack(dsItem1); } ds.PushIntoStack(dsItem); } this.PushIntoStack(ds); } }
public override bool TakeAction() { if (string.IsNullOrEmpty(name)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6405_GuildBannerNotEnough; return(false); } UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(ContextUser.MercenariesID); if (guild == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } if (string.IsNullOrEmpty(ContextUser.MercenariesID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6011_GuildMemberNotMember; return(false); } GuildMember member = new ShareCacheStruct <GuildMember>().FindKey(ContextUser.MercenariesID, ContextUser.UserID); if (member == null || member.PostType == PostType.Member) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_OrdinaryMemberNotCompetence; return(false); } FightCombat fightCombat = new FightCombat(); int fastID = MathUtils.Subtraction(fightCombat.FastID, 1); ServerFight fight = new ShareCacheStruct <ServerFight>().FindKey(fastID, ContextUser.MercenariesID); if (fight != null && fight.IsBanner) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6413_HaveBeenModified; return(false); } if (fight == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6405_GuildNotEnterName; return(false); } if (name.Length > 1) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6405_FillInACharacter; return(false); } if (fight.FastID == fastID && fight.RankID == 1 && !fight.IsRemove) { if (fight.IsBanner) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6413_HaveBeenModified; return(false); } fight.IsBanner = true; } fight.GuildBanner = name.Substring(0, 1); ErrorCode = 0; ErrorInfo = LanguageManager.GetLang().St6405_SettingTheBannerSuccess; return(true); }
/// <summary> /// 玩家获得奖励 /// </summary> /// <param name="userInfo"></param> /// <param name="prizeList"></param> /// <returns></returns> public static string GetPrizeUserTake(GameUser userInfo, List <PrizeInfo> prizeList) { string prizeContent = string.Empty; foreach (var prize in prizeList) { switch (prize.Type) { case RewardType.GameGoin: userInfo.GameCoin = MathUtils.Addition(userInfo.GameCoin, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_GameCoin, prize.Num) + ","; break; case RewardType.ExpNum: userInfo.ExpNum = MathUtils.Addition(userInfo.ExpNum, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_ExpNum, prize.Num) + ","; break; case RewardType.EnergyNum: userInfo.EnergyNum = MathUtils.Addition(userInfo.EnergyNum, prize.Num.ToShort()); prizeContent += string.Format(LanguageManager.GetLang().St_EnergyNum, prize.Num) + ","; break; case RewardType.HonourNum: GeneralEscalateHelper.AddUserLv(userInfo, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_HonourNum, prize.Num) + ","; break; case RewardType.Experience: UserHelper.UserGeneralExp(userInfo.UserID, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_Experience, prize.Num) + ","; break; case RewardType.Gold: userInfo.GiftGold = MathUtils.Addition(userInfo.GiftGold, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_GiftGoldNum, prize.Num) + ","; break; case RewardType.Item: short itemLv = prize.UserLv > 0 ? prize.UserLv : 1.ToShort(); int priNum = prize.Num > 0 ? prize.Num : 1; ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(prize.ItemID); if (itemInfo != null) { UserItemHelper.AddUserItem(userInfo.UserID, itemInfo.ItemID, priNum, itemLv); prizeContent += string.Format("{0}*{1}", itemInfo.ItemName, priNum) + ","; } break; case RewardType.CrystalType: List <CrystalInfo> crystalArray = new ShareCacheStruct <CrystalInfo>().FindAll(s => s.CrystalQuality == prize.CrystalType); if (crystalArray.Count > 0) { int index1 = RandomUtils.GetRandom(0, crystalArray.Count); CrystalInfo crystalInfo = crystalArray[index1]; short crystalLv = prize.UserLv > 0 ? prize.UserLv : 1.ToShort(); CrystalHelper.AppendCrystal(userInfo.UserID, crystalInfo.CrystalID, crystalLv); } break; case RewardType.CrystalId: short cLv = prize.UserLv > 0 ? prize.UserLv : 1.ToShort(); CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(prize.ItemID); if (crystal != null) { CrystalHelper.AppendCrystal(userInfo.UserID, crystal.CrystalID, cLv); prizeContent += string.Format("{0}*{1}", crystal.CrystalName, prize.Num) + ","; } break; case RewardType.Spare: break; case RewardType.Enchant: break; case RewardType.PayGold: userInfo.PayGold = MathUtils.Addition(userInfo.PayGold, prize.Num); prizeContent += string.Format(LanguageManager.GetLang().St_PayGoldNum, prize.Num) + ","; break; default: break; } } return(prizeContent); }
public static UserTakePrize GetUserTake(PrizeInfo prize, string userID, FestivalInfo info) { UserTakePrize userPrize = new UserTakePrize(); userPrize.CreateDate = DateTime.Now; userPrize.ID = Guid.NewGuid().ToString(); userPrize.UserID = Convert.ToInt32(userID); userPrize.MailContent = info.FestivalExtend.KeyWord; userPrize.IsTasked = false; userPrize.TaskDate = MathUtils.SqlMinDate; userPrize.ItemPackage = string.Empty; userPrize.SparePackage = string.Empty; userPrize.CrystalPackage = string.Empty; userPrize.EnchantPackage = string.Empty; userPrize.OpUserID = 10000; switch (prize.Type) { case RewardType.GameGoin: userPrize.GameCoin = prize.Num; userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GameCoin, prize.Num); break; case RewardType.Obtion: userPrize.ObtainNum = prize.Num; userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ObtionNum, prize.Num); break; case RewardType.ExpNum: userPrize.ExpNum = prize.Num; userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ExpNum, prize.Num); break; case RewardType.EnergyNum: userPrize.EnergyNum = prize.Num; userPrize.MailContent += string.Format(LanguageManager.GetLang().St_EnergyNum, prize.Num); break; case RewardType.Experience: break; case RewardType.Gold: userPrize.Gold = prize.Num; userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GiftGoldNum, prize.Num); break; case RewardType.Item: userPrize.ItemPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num); ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(prize.ItemID); if (itemInfo != null) { userPrize.MailContent += string.Format("{0}*{1}", itemInfo.ItemName, prize.Num); } break; case RewardType.CrystalType: //List<CrystalInfo> crystalArray2 = new ShareCacheStruct<CrystalInfo>().FindAll(CrystalInfo.Index_CrystalQuality, prize.CrystalType); //userPrize.CrystalPackage = string.Format("{0}={1}={2}", itemID, prize.UserLv, itemNum); break; case RewardType.CrystalId: userPrize.CrystalPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num); CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(prize.ItemID); if (crystal != null) { userPrize.MailContent += string.Format("{0}*{1}", crystal.CrystalName, prize.Num); } break; case RewardType.Spare: userPrize.SparePackage = string.Format("{0}={1}={2}", prize.ItemID, prize.Num, prize.Num); SparePartInfo spare = new ShareCacheStruct <SparePartInfo>().FindKey(prize.ItemID); if (spare != null) { userPrize.MailContent += string.Format("{0}*{1}", spare.Name, prize.Num); } break; case RewardType.Enchant: userPrize.EnchantPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num); EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(prize.ItemID); if (enchantInfo != null) { userPrize.MailContent += string.Format("{0}*{1}", enchantInfo.EnchantName, prize.Num); } break; default: break; } return(userPrize); }
public static string HuntingLife(GameUser user, out string errStr) { #region errStr = string.Empty; int huntingID = UserLightLit(user.UserID); int huntingID2 = UserNextLight(user.UserID, huntingID); UserDailyRestrain userRestrain = new PersonalCacheStruct <UserDailyRestrain>().FindKey(user.UserID); var probabilityInfo = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率 if (probabilityInfo == null) { return(errStr); } ProbabilityInfo probability1 = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID2); if (userRestrain != null && userRestrain.Funtion2 >= VipHelper.GetVipUseNum(user.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date) { if (probabilityInfo.Price > user.GameCoin) { errStr = LanguageManager.GetLang().St_GameCoinNotEnough; return(errStr); } } //暑期第三弹 if (huntingID2 == 1001 && !NoviceHelper.IsGianCrystalPack(user)) { errStr = LanguageManager.GetLang().St1305_BeiBaoBackpackFull; return(errStr); } var lightCacheSet = new PersonalCacheStruct <UserLight>(); if (huntingID != 1001) { UserLight userLight1 = lightCacheSet.FindKey(user.UserID, huntingID); if (userLight1.IsLight == 2) { return(string.Empty); } if (userLight1.IsLight == 1) { userLight1.IsLight = 2; } } UserLight userLight = new PersonalCacheStruct <UserLight>().FindKey(user.UserID, huntingID2); if (RandomUtils.IsHit(probability1.Light)) { if (userLight != null) { userLight.IsLight = 1; if (userLight.HuntingID == 1005) { errStr = LanguageManager.GetLang().St1305_HuntingIDLight; } } else { userLight = new UserLight() { UserID = user.UserID, HuntingID = huntingID2, IsLight = 1 }; lightCacheSet.Add(userLight); } } if (userRestrain != null) { if (userRestrain.Funtion2 >= VipHelper.GetVipUseNum(user.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date) { user.GameCoin = MathUtils.Subtraction(user.GameCoin, probabilityInfo.Price, 0); } else { userRestrain.Funtion2 = MathUtils.Addition(userRestrain.Funtion2, 1, int.MaxValue); } } else { user.GameCoin = MathUtils.Subtraction(user.GameCoin, probabilityInfo.Price, 0); } //每种品质的概率 double[] probabilityArray2 = { (double)probabilityInfo.Gray, (double)probabilityInfo.Green, (double)probabilityInfo.Blue, (double)probabilityInfo.Purple, (double)probabilityInfo.Yellow, (double)probabilityInfo.Red }; int index2 = RandomUtils.GetHitIndex(probabilityArray2); CrystalQualityType qualityType = (CrystalQualityType)Enum.Parse(typeof(CrystalQualityType), (index2 + 1).ToString()); List <CrystalInfo> crystalArray2 = new ShareCacheStruct <CrystalInfo>().FindAll(u => u.CrystalQuality == qualityType && u.DemandLv <= user.UserLv); if (crystalArray2.Count > 0) { int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count); var crystal = new ShareCacheStruct <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID); if (crystal != null && crystal.CrystalQuality == CrystalQualityType.Gray) { //wuzf修改 8-15 灰色放在临时背包不存DB CrystalHelper.AppendGrayCrystal(user, crystal.CrystalID); } else if (crystal != null) { var package = UserCrystalPackage.Get(user.UserID); UserCrystalInfo userCrystal = new UserCrystalInfo() { UserCrystalID = Guid.NewGuid().ToString(), CrystalID = crystal.CrystalID, CrystalLv = 1, CurrExprience = 0, GeneralID = 0, IsSale = 1, CreateDate = DateTime.Now }; package.SaveCrystal(userCrystal); UserLogHelper.AppenCtystalLog(user.UserID, 5, crystal.CrystalID, probabilityInfo.Price, 0, null, 1, 0); //高品质聊天通知); if (crystal.CrystalQuality >= CrystalQualityType.Yellow) { var cacheChat = new TjxChatService(); string content = string.Format(LanguageManager.GetLang().St1305_HighQualityNotice, user.NickName, CrystalHelper.GetQualityName(crystal.CrystalQuality), crystal.CrystalName ); cacheChat.SystemSend(ChatType.World, content); } } } return(errStr); #endregion }
public override bool TakeAction() { UserHelper.GetFeelHunger(ContextUser.UserID, generalID); UserHelper.ChechDailyRestrain(ContextUser.UserID); generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(generalID); if (generalInfo != null) { giftName = GiftHelper.GetGiftTypeName(generalInfo.GiftType); if (generalInfo.ReplaceSkills != null) { demandLv = generalInfo.ReplaceSkills.FeelLv; AbilityInfo abilityInfo = new ShareCacheStruct <AbilityInfo>().FindKey(generalInfo.ReplaceSkills.AbilityID); if (abilityInfo != null) { skillName = abilityInfo.AbilityName; skillDesc = abilityInfo.AbilityDesc; } } } userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral != null) { FeelLvInfo feelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(userGeneral.FeelLv); if (feelLvInfo != null) { propertyList = feelLvInfo.Property.ToList(); } short feelLv = MathUtils.Addition(userGeneral.FeelLv, (short)1, GiftHelper.maxFeelLv); FeelLvInfo upfeelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(feelLv); if (upfeelLvInfo != null) { upExperience = upfeelLvInfo.Experience; } if (demandLv > 0 && userGeneral.FeelLv >= demandLv) { isLearn = 1; } else { isLearn = 0; } } goldNum = GiftHelper.SurplusGoldNum(ContextUser.UserID); int _itemid = 5050; //消除饱食度物品ID var package = UserItemPackage.Get(ContextUser.UserID); var itemArray = package.ItemPackage.FindAll( m => m.ItemStatus.Equals(ItemStatus.BeiBao) && m.ItemID.Equals(_itemid)); if (itemArray.Count > 0) { isSaturation = 1; } else { isSaturation = 0; } return(true); }
public override bool TakeAction() { EquipData equip = GetEquips.FindEquipData(equipID); List <int> gemList = new List <int>(); if (atkGem != 0) { gemList.Add(atkGem); } if (defGem != 0) { gemList.Add(defGem); } if (hpGem != 0) { gemList.Add(hpGem); } if (critGem != 0) { gemList.Add(critGem); } if (hitGem != 0) { gemList.Add(hitGem); } if (dodgeGem != 0) { gemList.Add(dodgeGem); } if (tenacityGem != 0) { gemList.Add(tenacityGem); } foreach (var v in gemList) { if (GetPackage.FindItem(v) == null) { receipt = UsedItemResult.NoItem; return(true); } } foreach (var v in gemList) { var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(v); if (itemcfg.ItemType != ItemType.Gem) { return(false); } switch ((GemType)itemcfg.Species) { case GemType.Attack: { if (equip.AtkGem != 0) { return(false); } equip.AtkGem = v; } break; case GemType.Defense: { if (equip.DefGem != 0) { return(false); } equip.DefGem = v; } break; case GemType.Hp: { if (equip.HpGem != 0) { return(false); } equip.HpGem = v; } break; case GemType.Crit: { if (equip.CritGem != 0) { return(false); } equip.CritGem = v; } break; case GemType.Hit: { if (equip.HitGem != 0) { return(false); } equip.HitGem = v; } break; case GemType.Dodge: { if (equip.DodgeGem != 0) { return(false); } equip.DodgeGem = v; } break; case GemType.Tenacity: { if (equip.TenacityGem != 0) { return(false); } equip.TenacityGem = v; } break; } GetPackage.RemoveItem(v, 1); } UserHelper.RefreshUserFightValue(Current.UserId); receipt = UsedItemResult.Successfully; return(true); }
public override bool TakeAction() { short currMaxLv = ConfigEnvSet.GetInt("User.CurrMaxLv").ToShort(); //NoviceHelper.CheckFestival(ContextUser); NoviceHelper.GetFunctionEnum(Uid); //默认开启金币,精力大作战功能 if (!string.IsNullOrEmpty(ContextUser.MercenariesID)) { UserHelper.ChecheDailyContribution(ContextUser.MercenariesID, ContextUser.UserID); } PaymentService.Trigger(ContextUser); if (ContextUser.UserLv > currMaxLv) { genlv = currMaxLv; } else { genlv = ContextUser.UserLv; } var cacheSetGeneralEscalate = new ShareCacheStruct <GeneralEscalateInfo>(); GeneralEscalateHelper.AddUserLv(ContextUser, 0); _honourNum = ContextUser.HonourNum; int lv = ContextUser.UserLv; lv = lv < 0 ? 1 : lv + 1; var generalEscalate = cacheSetGeneralEscalate.Find(s => s.GeneralType == GeneralType.YongHu && s.GeneralLv == lv); if (generalEscalate != null) { _nextHonourNum = generalEscalate.UpExperience; } guildID = ContextUser.MercenariesID; var userGeneralList = new PersonalCacheStruct <UserGeneral>().FindAll(ContextUser.UserID); if (userGeneralList.Count == 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } userGeneralInfo = userGeneralList[0]; //UserGeneral.GetMainGeneral(ContextUser.UserID); if (userGeneralInfo != null) { //wuzf 去掉刷新血量,其它改变血量接口有触发刷新 //userGeneralInfo.RefreshMaxLife(); generalID = userGeneralInfo.GeneralID; //careerInfo = new ShareCacheStruct<CareerInfo>().FindKey(userGeneralInfo.CareerID); headID = userGeneralInfo.HeadID; //ContextUser.Sex ? careerInfo.HeadID2 : careerInfo.HeadID; escalateInfo = new ShareCacheStruct <GeneralEscalateInfo>().FindKey(genlv); lifeNum = userGeneralInfo.LifeNum; careerID = userGeneralInfo.CareerID; } lifeMaxNum = UserHelper.GetMaxLife(ContextUser.UserID, generalID); maxEnergyNum = (short)ConfigEnvSet.GetInt("User.MaxEnergyNum"); sex = ContextUser.Sex ? 1 : 0; //道具图标 _blessingList = UserHelper.BlessingInfoList(ContextUser); //变身卡图标 List <UserProps> userPropsList = new PersonalCacheStruct <UserProps>().FindAll(ContextUser.UserID, u => u.PropType == 3 && u.ItemID != 5200 && u.ItemID != 7003); if (userPropsList.Count > 0) { UserProps props = userPropsList[0]; int pTime = props.DoRefresh(); ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(props.ItemID); if (itemInfo != null && pTime > pictureTime) { pictureID = itemInfo.PictrueID; pictureTime = pTime; } } //兼容客户端上已版本血量图标 List <UserProps> userPropsList2 = new PersonalCacheStruct <UserProps>().FindAll(ContextUser.UserID, u => u.PropType == 1); if (userPropsList2.Count > 0) { UserProps props = userPropsList2[0]; int pTime = props.DoRefresh(); ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(props.ItemID); if (itemInfo != null && pTime > pictureTime) { _itemLiveNum = props.SurplusNum; _itemLiveMaxNum = itemInfo.EffectNum; } } //加量,领土战不能加血wuzf) if (ContextUser.UserStatus != UserStatus.CountryCombat) { UserHelper.GetGeneralLife(ContextUser.UserID); } //精力恢复 List <UserQueue> energyQueueArray = new PersonalCacheStruct <UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.EnergyHuiFu); if (energyQueueArray.Count > 0) { UserQueue energyQueue = energyQueueArray[0]; short energyMaxNum = (short)ConfigEnvSet.GetInt("User.MaxEnergyNum"); int restorationDate = ConfigEnvSet.GetInt("UserQueue.EnergyRestorationDate"); //半小时 int restorationNum = ConfigEnvSet.GetInt("UserQueue.EnergyRestorationNum"); //恢复5点 if (energyQueue.Timing > DateTime.Now) { energyQueue.Timing = DateTime.Now; } //原因:玩家满精力时,精力恢复累加 int timeCount = (int)(DateTime.Now - energyQueue.Timing).TotalSeconds / restorationDate; if (timeCount > 0) { short energyNum = (short)(timeCount * restorationNum); if (ContextUser.EnergyNum < energyMaxNum) { ContextUser.EnergyNum = MathUtils.Addition(ContextUser.EnergyNum, energyNum, energyMaxNum); } energyQueue.Timing = DateTime.Now; } else { if (energyMaxNum > ContextUser.EnergyNum) { rstore = (int)(energyQueue.Timing.AddSeconds(restorationDate) - DateTime.Now).TotalSeconds; totalRstore = (energyQueue.Timing.AddSeconds((energyMaxNum - ContextUser.EnergyNum) * restorationDate) - DateTime.Now).TotalSeconds.ToInt(); } } } else { UserQueue queue = new UserQueue() { QueueID = Guid.NewGuid().ToString(), UserID = ContextUser.UserID, QueueType = QueueType.EnergyHuiFu, QueueName = QueueType.EnergyHuiFu.ToString(), Timing = DateTime.Now, ColdTime = 0, TotalColdTime = 0, IsSuspend = false, StrengNum = 0 }; new PersonalCacheStruct <UserQueue>().Add(queue); } VipLvInfo lvInfo = new ShareCacheStruct <VipLvInfo>().FindKey(MathUtils.Addition(ContextUser.VipLv, 1, int.MaxValue)); if (lvInfo != null) { demandGold = MathUtils.Subtraction(lvInfo.PayGold, ContextUser.PayGold, 0); demandGold = MathUtils.Subtraction(demandGold, ContextUser.ExtGold, 0); } UserHelper.GetGameUserCombat(ContextUser.UserID); if ((int)(DateTime.Now - ContextUser.DailyLoginTime).TotalSeconds <= 5 && ContextUser.UserLv > 10) { isHelper = 1; } FestivalHelper.DoFestival(ContextUser); if (ContextUser.UserExtend != null) { if ((plotstatucID > 0 || ContextUser.TempEnergyNum == 0) && !ContextUser.UserExtend.IsBoss) { ContextUser.TempEnergyNum = 1; } if ((plotstatucID == 0 && ContextUser.TempEnergyNum == 0) || ContextUser.UserExtend.IsBoss) { ContextUser.UserExtend.UpdateNotify(obj => { ContextUser.UserExtend.PlotStatusID = 0; ContextUser.UserExtend.PlotNpcID = -1; ContextUser.UserExtend.MercenarySeq = 0; ContextUser.UserExtend.IsBoss = false; return(true); }); } plotstatucID = ContextUser.UserExtend.PlotStatusID; mercenarySeq = ContextUser.UserExtend.MercenarySeq; cardUserID = ContextUser.UserExtend.CardUserID; } //公会晨练结束,退出公会晨练 int activeID = 11; GameActive active = new ShareCacheStruct <GameActive>().FindKey(activeID); if (active != null) { DateTime stratTime = active.BeginTime; DateTime endTime = active.BeginTime.AddMinutes(active.Minutes); if (ContextUser.UserLocation == Location.GuildExercise && (DateTime.Now < stratTime || DateTime.Now > endTime)) { ContextUser.UserLocation = Location.Guid; } } DateTime nextDate; FightStage stage = GuildFightCombat.GetStage(out nextDate); //公会战结束后 if (stage == FightStage.Apply && ContextUser.UserStatus == UserStatus.FightCombat) { ContextUser.UserStatus = UserStatus.Normal; } battleNum = EmbattleHelper.CurrEmbattle(ContextUser.UserID, true).Count; totalBattle = EmbattleHelper.CurrEmbattle(ContextUser.UserID, false).Count; var userEmbattleList = EmbattleHelper.CurrEmbattle(ContextUser.UserID, true); foreach (var userEmbattle in userEmbattleList) { _talPriority = MathUtils.Addition(_talPriority, PriorityHelper.GeneralTotalPriority(ContextUser.UserID, userEmbattle.GeneralID)); } functionList = new PersonalCacheStruct <UserFunction>().FindAll(ContextUser.UserID); // 精灵祝福 if (ContextUser != null) { if (MathUtils.SqlMinDate == ContextUser.WizardDate) // 玩家第一次进入 { ContextUser.WizardDate = DateTime.Now; ContextUser.WizardNum = 1; } else { double diffHours = (DateTime.Now - ContextUser.WizardDate).TotalHours; if (diffHours >= 1) { ContextUser.WizardNum = MathUtils.Addition(ContextUser.WizardNum, Convert.ToInt32(diffHours), 3); ContextUser.WizardDate = DateTime.Now; } } } // 未读信件的数量 TjxMailService tjxMailService = new TjxMailService(ContextUser); tjxMailService.GetMail(out unReadCount); return(true); }
public override bool TakeAction() { if (string.IsNullOrEmpty(ContextUser.MercenariesID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6203_GuildMemberNotEnough; return(false); } GuildMember member = new ShareCacheStruct <GuildMember>().FindKey(ContextUser.MercenariesID, ContextUser.UserID); if (member == null || member.PostType == PostType.Member) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_OrdinaryMemberNotCompetence; return(false); } UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(ContextUser.MercenariesID); if (guild == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } FightCombat fightCombat = new FightCombat(); var cacheSet = new ShareCacheStruct <ServerFight>(); ServerFight fight = cacheSet.FindKey(fightCombat.FastID, ContextUser.MercenariesID); if (fight != null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_HaveSignedUp; return(false); } DateTime nextDate; FightStage stage = GuildFightCombat.GetStage(out nextDate); if (GuildFightCombat.IsFightDate()) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_CityABattleTime; return(false); } if (stage != FightStage.Apply) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_CityABattleTime; return(false); } //if (DateTime.Now > fightCombat.GuildEndTime && DateTime.Now < fightCombat.GuildStartTime) //{ // ErrorCode = LanguageManager.GetLang().ErrorCode; // ErrorInfo = LanguageManager.GetLang().St6404_OutRegistrationTime; // return false; //} GuildFightInfo fightInfo = new ShareCacheStruct <GuildFightInfo>().FindKey(cityID); if (fightInfo == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } if (guild.GuildLv < fightInfo.GuildLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_GuildLvNotEnough; return(false); } if (guild.CurrDonateNum < fightInfo.SkillNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6404_CurrDonateNumNotEnough; return(false); } guild.CurrDonateNum = MathUtils.Subtraction(guild.CurrDonateNum, fightInfo.SkillNum); fight = new ServerFight(fightCombat.FastID, ContextUser.MercenariesID); fight.GuildBanner = string.Empty; fight.CityID = cityID; fight.RankID = 0; fight.ApplyDate = DateTime.Now; fight.IsRemove = false; fight.IsBanner = false; cacheSet.Add(fight); ErrorCode = 0; ErrorInfo = LanguageManager.GetLang().St6401_SuccessfulRegistration; return(true); }
public override bool TakeAction() { PostType pType = (PostType)Enum.Parse(typeof(PostType), postType.ToString()); GuildMember gMember = new ShareCacheStruct <GuildMember>().FindKey(guildID, memberID); GuildMember userMember = new ShareCacheStruct <GuildMember>().FindKey(guildID, ContextUser.UserID); if (userMember.PostType != PostType.Chairman) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6008_NotChairman; return(false); } if (ops == 1) { var memberArray = new ShareCacheStruct <GuildMember>().FindAll(m => m.GuildID == guildID && m.PostType == PostType.VicePresident); if (memberArray.Count >= 2) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6008_VicePresidentNum; return(false); } if (gMember != null) { gMember.PostType = pType; //gMember.Update(); } } else if (ops == 2) { if (gMember.PostType != PostType.VicePresident) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6008_NotVicePresident; return(false); } if (gMember.PostType != PostType.Chairman) { gMember.PostType = PostType.Chairman; //gMember.Update(); } if (userMember.PostType != PostType.Member) { userMember.PostType = PostType.Member; //userMember.Update(); } } else if (ops == 3) { if (gMember.PostType != PostType.VicePresident) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6008_NotVicePresidentCeXiao; return(false); } if (gMember.PostType != PostType.Member) { gMember.PostType = PostType.Member; //gMember.Update(); } } return(true); }
public static int IsSelect(string guildID, BossDate bossDate) { DateTime priod = new DateTime(); DateTime endPriod = new DateTime(); int isSelect = 0; GameActive gameActive = new ShareCacheStruct <GameActive>().FindKey(UserGuild.ActiveID); UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(guildID); if (guild != null && guild.GuildBossInfo != null) { if (UserHelper.IsCurrentWeek(guild.GuildBossInfo.RefreshDate)) { priod = UserHelper.GuildBossDate(guild.GuildBossInfo); endPriod = priod.AddMinutes(gameActive.Minutes); if (guild.GuildBossInfo.EnableWeek == (int)bossDate.EnableWeek) { isSelect = 1; } else if (DateTime.Now > endPriod) { isSelect = 2; } else if ((priod - DateTime.Now).TotalSeconds > 3600) { isSelect = 0; } } else { priod = UserHelper.GuildEnableWeek(bossDate.EnableWeek); endPriod = priod.AddMinutes(gameActive.Minutes); if ((priod - DateTime.Now).TotalSeconds > 3600) { isSelect = 0; } else if (DateTime.Now > endPriod) { isSelect = 2; } } } else { priod = UserHelper.GuildEnableWeek(bossDate.EnableWeek); endPriod = priod.AddMinutes(gameActive.Minutes); if (DateTime.Now > endPriod) { isSelect = 2; } else if ((priod - DateTime.Now).TotalSeconds > 3600) { isSelect = 0; } else { isSelect = 2; } } return(isSelect); }
public override bool TakeAction() { int currMaxLv = GameConfigSet.CurrMaxLv; string lifeUserID = string.Empty; UserCrystalInfo[] userCrystalsArrray = new UserCrystalInfo[0]; if (!string.IsNullOrEmpty(toUserID)) { var packageCrystal = UserCrystalPackage.Get(toUserID); userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(toUserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(toUserID); userItemArray = package.ItemPackage.FindAll( u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = toUserID; } else { var packageCrystal = UserCrystalPackage.Get(ContextUser.UserID); userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(ContextUser.UserID); userItemArray = package.ItemPackage.FindAll(u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = ContextUser.UserID; } UserCacheGlobal.LoadOffline(lifeUserID); GeneralInfo generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(generalID); generalQuality = generalInfo == null ? (short)0 : generalInfo.GeneralQuality; if (generalInfo != null && userGeneral != null) { description = generalInfo.Description; if (userGeneral.GeneralLv >= currMaxLv) { genLv = (short)currMaxLv; userGeneral.CurrExperience = 0; } else { genLv = userGeneral.GeneralLv; } generalName = userGeneral.GeneralName; headID = userGeneral.HeadID; picturesID = userGeneral.PicturesID; _battleHeadId = generalInfo.BattleHeadID; _hitProbability = generalInfo.HitProbability; careerInfo = new ShareCacheStruct <CareerInfo>().FindKey(userGeneral.CareerID); GeneralEscalateInfo generalEscalate = new ShareCacheStruct <GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = userGeneral.CurrExperience; maxExperience = generalEscalate.UpExperience; } powerNum = MathUtils.Addition(userGeneral.PowerNum, userGeneral.TrainingPower, short.MaxValue); soulNum = MathUtils.Addition(userGeneral.SoulNum, userGeneral.TrainingSoul, short.MaxValue); intellectNum = MathUtils.Addition(userGeneral.IntellectNum, userGeneral.TrainingIntellect, short.MaxValue); if (!string.IsNullOrEmpty(ContextUser.MercenariesID) && generalID == LanguageManager.GetLang().GameUserGeneralID) { //公会技能加成 powerNum = MathUtils.RoundCustom(powerNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.PowerNum)).ToShort(); soulNum = MathUtils.RoundCustom(soulNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.SoulNum)).ToShort(); intellectNum = MathUtils.RoundCustom(intellectNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.IntellectNum)).ToShort(); } if (generalID == LanguageManager.GetLang().GameUserGeneralID) { //法宝基础属性加成 powerNum = MathUtils.Addition(powerNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.PowerNum)); soulNum = MathUtils.Addition(soulNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.SoulNum)); intellectNum = MathUtils.Addition(intellectNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.IntelligenceNum)); //法宝--技能属性转换获得的值 //法宝--技能属性转换获得的值 decimal trumpPower = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.PowerNum); decimal trumpsoul = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.SoulNum); decimal trumpintellect = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.IntelligenceNum); powerNum = MathUtils.Addition(trumpPower.ToShort(), powerNum); soulNum = MathUtils.Addition(trumpsoul.ToShort(), soulNum); intellectNum = MathUtils.Addition(trumpintellect.ToShort(), intellectNum); } lifeNum = userGeneral.LifeNum; lifeMaxNum = UserHelper.GetMaxLife(lifeUserID, generalID); genLv = userGeneral.GeneralLv; generalStatus = (short)userGeneral.GeneralStatus; talentAbility = userGeneral.AbilityID; _potential = userGeneral.Potential; _battleHeadID = generalInfo.BattleHeadID; //玩家佣兵职业名称 userCareerName = careerInfo.CareerName; } else if (generalInfo != null) { genLv = 1; generalName = generalInfo.GeneralName; headID = generalInfo.HeadID; picturesID = generalInfo.PicturesID; _battleHeadId = generalInfo.BattleHeadID; careerInfo = new ShareCacheStruct <CareerInfo>().FindKey(generalInfo.CareerID); GeneralEscalateInfo generalEscalate = new ShareCacheStruct <GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = 0; maxExperience = generalEscalate.UpExperience; } powerNum = generalInfo.PowerNum; soulNum = generalInfo.SoulNum; intellectNum = generalInfo.IntellectNum; lifeNum = generalInfo.LifeNum; lifeMaxNum = generalInfo.LifeNum; genLv = generalInfo.GeneralLv; generalStatus = (short)GeneralStatus.KeZhaoMu; talentAbility = generalInfo.AbilityID; } AbilityInfo ability = new ShareCacheStruct <AbilityInfo>().FindKey(talentAbility); talentName = ability == null ? string.Empty : ability.AbilityName; gPropertyList = CombatHelper.GetAbility(lifeUserID, generalID, userGeneral); int sumCrystal = 0; foreach (UserCrystalInfo crystal in userCrystalsArrray) { sumCrystal = MathUtils.Addition(sumCrystal, crystal.CurrExprience, int.MaxValue); } vitalityNum = (sumCrystal / 10); functionList = ViewHelper.GetFunctionList(lifeUserID); //佣兵魂技 UserAbility userAbility = new PersonalCacheStruct <UserAbility>().FindKey(ContextUser.UserID); if (userAbility != null) { abilityList = userAbility.AbilityList.FindAll(s => s.GeneralID == generalID); } soulGrid = UserPackHelper.GetPackTypePositionNum(BackpackType.HunJi, ContextUser.UserID); // 缘分系统 KarmaInfo karmaInfo = new ShareCacheStruct <KarmaInfo>().FindKey(generalID); if (karmaInfo != null && karmaInfo.KarmaList != null) { // 满足缘分条件显示激活状态 // 判断佣兵 UserMagic userMagic = new PersonalCacheStruct <UserMagic>().Find(ContextUser.UserID, s => s.IsEnabled); var cacheSetUserEmbattle = new PersonalCacheStruct <UserEmbattle>(); List <Karma> yongBingList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.YongBing); yongBingList.ForEach(yongBingInfo => { //yongBingInfo.IsActive = 1; // 若阵型中存在该记录,该缘分为激活状态 if (yongBingInfo.ValueID.Contains(",")) { string[] valueID = yongBingInfo.ValueID.Split(','); int i = 0; foreach (var id in valueID) { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(id)) != null) { i++; } } yongBingInfo.IsActive = i == valueID.Length ? 1 : 0; } else { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(yongBingInfo.ValueID)) != null) { yongBingInfo.IsActive = 1; } else { yongBingInfo.IsActive = 0; } } }); // 判断装备 UserItemPackage itemPackage = new PersonalCacheStruct <UserItemPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List <Karma> itemList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ZhuangBei); itemList.ForEach(itemInfo => { if (itemPackage.ItemPackage.Find(s => s.ItemID == MathUtils.ToInt(itemInfo.ValueID) && s.GeneralID == generalID) != null) { itemInfo.IsActive = 1; } else { itemInfo.IsActive = 0; } }); } // 判断命运水晶 UserCrystalPackage crystalPackage = new PersonalCacheStruct <UserCrystalPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List <Karma> crystalList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ShuiJing); crystalList.ForEach(crystalInfo => { if (crystalPackage.CrystalPackage.Find(s => s.CrystalID == MathUtils.ToInt(crystalInfo.ValueID) && s.GeneralID == generalID) != null) { crystalInfo.IsActive = 1; } else { crystalInfo.IsActive = 0; } }); } // 判断技能 UserAbility userAbilityInfo = new PersonalCacheStruct <UserAbility>().FindKey(UserId.ToString()); if (userAbilityInfo != null) { List <Karma> abilityList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.JiNen); abilityList.ForEach(abilityInfo => { if (userAbilityInfo.AbilityList.Find(s => s.AbilityID == MathUtils.ToInt(abilityInfo.ValueID) && s.GeneralID == generalID) != null) { abilityInfo.IsActive = 1; } else { abilityInfo.IsActive = 0; } }); } karmaList = karmaInfo.KarmaList; if (userGeneral != null) { lifeNum = userGeneral.TLifeNum; lifeMaxNum = userGeneral.TLifeMaxNun; } } return(true); }
public override bool TakeAction() { //判断充值礼包是否开启 FestivalInfo festivalInfo = new ShareCacheStruct <FestivalInfo>().FindKey(festivalID); if (festivalInfo != null && !festivalInfo.IsStop) { return(false); } UserRecharge recharges = new GameDataCacheSet <UserRecharge>().FindKey(ContextUser.UserID); RechargePacks rePacksInfo = new ConfigCacheSet <RechargePacks>().FindKey(_packsID); List <PackageReward> rewardArray = new List <PackageReward>(); if (rePacksInfo != null) { rewardArray = rePacksInfo.Reward.ToList(); var userItemArray = UserItemHelper.GetItems(Uid).FindAll(m => m.ItemStatus == ItemStatus.BeiBao); int subPackNum = MathUtils.Subtraction(ContextUser.GridNum, userItemArray.Count, 0); if (rewardArray.Count > subPackNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1606_GridNumNotEnough; return(false); } } else { return(false); } if (!isRecevies(ContextUser.UserID, _packsID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9003_AlreadyReceived; return(false); } List <PackageReceive> receiveArray = new GameDataCacheSet <PackageReceive>().FindAll(ContextUser.UserID, m => m.PacksID == _packsID); bool isRece = false; PackageReceive pReceive = null; foreach (PackageReceive receive in receiveArray) { if (!receive.IsReceive) { isRece = true; receive.IsReceive = true; pReceive = receive; break; } } if (pReceive == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St9003_AlreadyReceived; return(false); } pReceive.IsReceive = true; pReceive.ReceiveDate = DateTime.Now; //pReceive.Update(); if (pReceive.PacksType == 1 && recharges != null && isRece) { int totalPay = (int)(recharges.FirstNum * rePacksInfo.ProportionNum); if (totalPay >= 1) { ContextUser.ItemGold = MathUtils.Addition(ContextUser.ItemGold, totalPay, int.MaxValue); //ContextUser.Update(); } //ContextUser.PayGold = ContextUser.PayGold.Addition(recharges.FirstNum, int.MaxValue); foreach (PackageReward reward in rewardArray) { UserItemHelper.AddUserItem(ContextUser.UserID, reward.Num, 1); } } else if (recharges != null && isRece) { foreach (PackageReward reward in rewardArray) { if (reward.Type == 2) { ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, reward.Num, int.MaxValue); } else if (reward.Type == 3) { ContextUser.ExpNum = MathUtils.Addition(ContextUser.ExpNum, reward.Num, int.MaxValue); } else if (reward.Type == 4) { ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, reward.Num, int.MaxValue); } else if (reward.Type == 5) { ContextUser.EnergyNum = MathUtils.Addition(ContextUser.EnergyNum, reward.Num.ToShort(), short.MaxValue); } else if (reward.Type == 6) { GameUserExtend extend = ContextUser.UserExtend; extend.GainBlessing = MathUtils.Addition(extend.GainBlessing, reward.Num, int.MaxValue); //List<GuildMember> memberArray = new ShareCacheStruct<GuildMember>().FindAll(m => m.UserID == ContextUser.UserID); //if (memberArray.Length > 0) //{ // memberArray[0].GainBlessing = memberArray[0].GainBlessing.Addition(reward.Num, int.MaxValue); // memberArray[0].Update(); //} } //ContextUser.Update(); } } PackageReceiveLog receiveLog = new PackageReceiveLog() { LogID = Guid.NewGuid().ToString(), ReceiveID = receiveArray[0].ReceiveID, PacksID = _packsID, UserID = ContextUser.UserID, ReceiveDate = DateTime.Now, }; var sender = DataSyncManager.GetDataSender(); sender.Send(receiveLog); return(true); }
protected override object ProcessPrize() { var userGeneral = UserGeneral.GetMainGeneral(UserId.ToString()); if (userGeneral == null) { return(null); } var noviceUser = new GameDataCacheSet <NoviceUser>().FindKey(UserId.ToString()); if (noviceUser == null) { return(null); } var noviceTaskInfo = new ShareCacheStruct <NoviceTaskInfo>().FindKey(noviceUser.CurrGuideId); if (noviceTaskInfo == null || noviceTaskInfo.PrizeList.Count <= 0) { return(null); } var itemList = new List <ItemBaseInfo>(); foreach (var prizeInfo in noviceTaskInfo.PrizeList) { switch (prizeInfo.Key) { case 0: foreach (var itemId in prizeInfo.Value) { var itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemId); if (itemInfo == null) { continue; } UserItemHelper.AddUserItem(UserId.ToString(), itemId, 1); itemList.Add(itemInfo); var gameUser = new GameDataCacheSet <GameUser>().FindKey(UserId.ToString()); if (gameUser != null) { if (gameUser.UserExtend.NoviceIsPase == true) { var noviceTask = new ConfigCacheSet <NoviceTaskInfo>().FindKey("1013"); if (noviceTask != null && noviceTask.PrizeList != null) { foreach (var gift in noviceTask.PrizeList) { foreach (var Id in gift.Value) { var item = new ConfigCacheSet <ItemBaseInfo>().FindKey(Id); UserItemHelper.AddUserItem(UserId.ToString(), Id, 1); itemList.Add(item); } } } } } } break; case 1: if (prizeInfo.Value.Count > userGeneral.CareerID) { var itemId = prizeInfo.Value[userGeneral.CareerID]; var itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemId); if (itemInfo == null) { continue; } UserItemHelper.AddUserItem(UserId.ToString(), itemId, 1); itemList.Add(itemInfo); } break; } } return(itemList); }
public override bool TakeAction() { List <UserTakePrize> userPrizeList = new ShareCacheStruct <UserTakePrize>().FindAll(m => !m.IsTasked && m.UserID == ObjectExtend.ToInt(Uid)); if (userPrizeList.Count > 0) { var userPrize = userPrizeList[0]; if (userPrize.ItemPackage.Length > 0) { if (UserItemHelper.CheckItemOut(ContextUser, ItemStatus.BeiBao, PutItemNum(userPrize))) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1107_GridNumFull; return(false); } } if (userPrize.SparePackage.Length > 0) { int currNum = ContextUser.SparePartList.FindAll(m => string.IsNullOrEmpty(m.UserItemID)).Count; currNum = MathUtils.Addition(currNum, PutCrystalSpareNum(userPrize.SparePackage.Split(','), 1)); //原因:零件等于开启格子时提示背包已满 if (currNum > ContextUser.UserExtend.SparePartGridNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1213_GridNumFull; return(false); } } if (userPrize.CrystalPackage.Length > 0) { var package = UserCrystalPackage.Get(ContextUser.UserID); UserCrystalInfo[] crystalArrayErr = package.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(0)).ToArray(); int crystalNum = MathUtils.Addition(crystalArrayErr.Length, PutCrystalSpareNum(userPrize.CrystalPackage.Split(','), 2)); //原因:命运水晶等于开启格子时提示背包已满 if (crystalNum > ContextUser.CrystalNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1307_FateBackpackFull; return(false); } } if (!string.IsNullOrEmpty(userPrize.EnchantPackage) && userPrize.EnchantPackage.Length > 0) { var package = UserEnchant.Get(ContextUser.UserID); if (package != null) { var enchantList = package.EnchantPackage.FindAll(m => string.IsNullOrEmpty(m.UserItemID)); int enchantNum = MathUtils.Addition(enchantList.Count, PutCrystalSpareNum(userPrize.EnchantPackage.Split(','), 2)); if (ContextUser.UserExtend != null && enchantNum > ContextUser.UserExtend.EnchantGridNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1259_EnchantGridNumFull; return(false); } } } if (doProcessPrize(userPrize)) { ErrorInfo = userPrize.MailContent; } else { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } } return(true); }
public override void BuildPacket() { PushIntoStack(generalName.ToNotNullString()); this.PushIntoStack(headID.ToNotNullString()); this.PushIntoStack(picturesID.ToNotNullString()); this.PushIntoStack((short)generalQuality); this.PushIntoStack(currExperience); this.PushIntoStack(maxExperience); this.PushIntoStack(powerNum); this.PushIntoStack(soulNum); this.PushIntoStack(intellectNum); this.PushIntoStack(careerInfo == null ? 0 : careerInfo.CareerID); this.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString()); this.PushIntoStack(lifeNum); this.PushIntoStack(lifeMaxNum); this.PushIntoStack(genLv); this.PushIntoStack(generalStatus); this.PushIntoStack(description.ToNotNullString()); this.PushIntoStack(attackNum); this.PushIntoStack(vitalityNum); this.PushIntoStack(talentAbility); this.PushIntoStack(talentName.ToNotNullString()); this.PushIntoStack(userItemArray.Count); foreach (var item in userItemArray) { int isSynthesis; DataStruct dsItem = new DataStruct(); ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID); if (IsSynthesis(ContextUser.UserID, item.ItemID, genLv)) { isSynthesis = 1; } else { isSynthesis = 2; } dsItem.PushIntoStack(item.UserItemID.ToNotNullString()); dsItem.PushIntoStack(item.ItemID); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString()); dsItem.PushIntoStack(itemInfo == null ? 0 : (int)itemInfo.EquParts); dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack((short)item.ItemLv); dsItem.PushIntoStack((short)isSynthesis); dsItem.PushIntoStack(itemInfo == null ? 0 : itemInfo.QualityType.ToInt()); this.PushIntoStack(dsItem); } this.PushIntoStack(abilityList.Count); foreach (var ability in abilityList) { DataStruct dsItem = new DataStruct(); AbilityInfo abilityInfo = new ShareCacheStruct <AbilityInfo>().FindKey(ability.AbilityID); dsItem.PushIntoStack(ability.AbilityID); dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString()); dsItem.PushIntoStack((short)ability.AbilityLv); dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityDesc.ToNotNullString()); dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.HeadID.ToNotNullString()); dsItem.PushIntoStack(ability.Position); dsItem.PushIntoStack(ability.UserItemID.ToNotNullString()); dsItem.PushIntoStack(abilityInfo != null ? abilityInfo.AbilityQuality : 0); this.PushIntoStack(dsItem); } this.PushIntoStack(gPropertyList.Count); foreach (var property in gPropertyList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(property.AbilityType.ToShort()); if (property.AbilityType == AbilityType.MingZhong) { string value = (property.AbilityValue + _hitProbability).ToNotNullString(); dsItem.PushIntoStack(value); } else { dsItem.PushIntoStack(property.AbilityValue.ToNotNullString()); } this.PushIntoStack(dsItem); } this.PushIntoStack(functionList.Count); foreach (var function in functionList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(function.FunEnum.ToShort()); this.PushIntoStack(dsItem); } PushIntoStack(_potential); this.PushIntoStack(soulGrid); this.PushIntoStack(_battleHeadId.ToNotNullString()); PushIntoStack(userGeneral != null ? userGeneral.AbilityNum : 3); // 缘分信息 if (karmaList != null) { PushIntoStack(karmaList.Count); foreach (var karmaInfo in karmaList) { DataStruct dsItem = new DataStruct(); dsItem.PushIntoStack(karmaInfo.KarmaName); dsItem.PushIntoStack(karmaInfo.KarmaDesc); dsItem.PushIntoStack(karmaInfo.IsActive); this.PushIntoStack(dsItem); } } else { PushIntoStack(0); } PushIntoStack(userCareerName); }
public override bool TakeAction() { if (!string.IsNullOrEmpty(ContextUser.MercenariesID) && ContextUser.MercenariesID == guildID) { if (CombatHelper.GuildBossKill(ContextUser.MercenariesID)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St5405_BossKilled; return(false); } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); GameActive gameActive = new ShareCacheStruct <GameActive>().FindKey(_activeId); if (gameActive != null) { bossPlotID = gameActive.BossPlotID; GuildBossCombat bossCombat = new GuildBossCombat(guildID); if (bossCombat.HasCombat) { _guild = bossCombat.UserGuild; if (_guild != null && _guild.GuildBossInfo != null) { if (_guild.GuildBossInfo.EnableWeek > 0 && _guild.GuildBossInfo.BossLv > 0) { _guild.BeginTime = UserHelper.GuildBossDate(_guild.GuildBossInfo); _guild.EndTime = _guild.BeginTime.AddMinutes(gameActive.Minutes); CombatStatus combatStatus = _guild.GuildBossRefreshStatus(); if (UserHelper.IsCurrentWeek(_guild.BeginTime) && UserHelper.IsCurrentWeek(_guild.GuildBossInfo.RefreshDate)) { if (DateTime.Now < _guild.BeginTime) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossNotOpen; return(false); } else if ((combatStatus == CombatStatus.Killed && DateTime.Now < _guild.EndTime) || DateTime.Now > _guild.EndTime) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossOver; return(true); } } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossSet; return(false); } if (combatStatus == CombatStatus.Wait || combatStatus == CombatStatus.Combat) { bossCombat.Append(ContextUser); BossUser bossUser = bossCombat.GetCombatUser(ContextUser.UserID); if (bossUser != null) { _inspirePercent = bossUser.InspirePercent; _reliveInspirePercent = bossUser.ReliveInspirePercent; _reLiveNum = bossUser.ReliveNum; } } List <BossUser> userList = bossCombat.GetCombatUser(); _regNum = userList.Count; int recordCount = 0; _bossUserList = userList.GetPaging(_pageIndex, _pageSize, out recordCount); } } } else { UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(ContextUser.MercenariesID); if (guild != null && guild.GuildBossInfo != null) { if (guild.GuildBossInfo.EnableWeek > 0 && guild.GuildBossInfo.BossLv > 0) { guild.BeginTime = UserHelper.GuildBossDate(guild.GuildBossInfo); guild.EndTime = guild.BeginTime.AddMinutes(gameActive.Minutes); if (UserHelper.IsCurrentWeek(guild.BeginTime) && UserHelper.IsCurrentWeek(guild.GuildBossInfo.RefreshDate)) { if (DateTime.Now < guild.BeginTime.AddMinutes(1)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossNotOpen; return(false); } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossOver; return(true); } } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossSet; return(false); } } } else { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6101_GuildBossSet; return(false); } } } stopwatch.Stop(); new BaseLog().SaveLog("公会boss6101所需时间:" + stopwatch.Elapsed.TotalMilliseconds + "ms"); } return(true); }
public override bool TakeAction() { UserGeneral userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } if (ops == 0) { //用户装备更换 var package = UserItemPackage.Get(Uid); if (package == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID)); if (userItem == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(userItem.ItemID); if (itemInfo != null) { if (string.IsNullOrEmpty(itemInfo.CareerRange) || itemInfo.CareerRange.IndexOf(userGeneral.CareerID.ToString()) == -1) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1203_CareerError; return(false); } //佣兵装备部位为空才能更换 var generalItem = package.ItemPackage.Find(s => !s.IsRemove && s.Equparts == itemInfo.EquParts && s.GeneralID == userGeneral.GeneralID && s.ItemStatus == ItemStatus.YongBing); if (generalItem != null) { generalItem.GeneralID = 0; generalItem.ItemStatus = ItemStatus.BeiBao; package.SaveItem(generalItem); userItem.GeneralID = generalID; userItem.ItemStatus = ItemStatus.YongBing; package.SaveItem(userItem); } else { userItem.GeneralID = generalID; userItem.ItemStatus = ItemStatus.YongBing; package.SaveItem(userItem); } //int equCount = UserItemHelper.GetItems(Uid).FindAll( // m => new UserItemHelper(m).EquPartsID == (int)itemInfo.EquParts && m.GeneralID == userGeneral.GeneralID && m.ItemStatus == ItemStatus.YongBing).Count; //if (equCount == 0) //{ // userItem.GeneralID = generalID; // userItem.ItemStatus = ItemStatus.YongBing; // package.SaveItem(userItem); //} } } else if (ops == 1) { //卸下 //if (UserItemHelper.CheckItemOut(ContextUser, ItemStatus.BeiBao)) //{ // ErrorCode = LanguageManager.GetLang().ErrorCode; // ErrorInfo = LanguageManager.GetLang().St1606_GridNumNotEnough; // return false; //} string str = string.Empty; if (UserPackHelper.PackIsFull(ContextUser, BackpackType.ZhuangBei, 1, out str)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1606_GridNumNotEnough; ErrorInfo = str; return(false); } var package = UserItemPackage.Get(Uid); UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID)); if (userItem != null && userItem.GeneralID > 0 && userItem.ItemStatus == ItemStatus.YongBing) { userItem.GeneralID = 0; userItem.ItemStatus = ItemStatus.BeiBao; package.SaveItem(userItem); } } userGeneral.RefreshMaxLife(); return(true); }
public override bool TakeAction() { UserGuild guild = new ShareCacheStruct <UserGuild>().FindKey(ContextUser.MercenariesID); if (guild == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } GameActive gameactive = new ShareCacheStruct <GameActive>().FindKey(11); if (gameactive == null || !gameactive.State) { return(false); } gameactive.BeginTime = gameactive.EnablePeriod.ToDateTime(DateTime.MinValue); gameactive.EndTime = gameactive.BeginTime.AddMinutes(gameactive.Minutes); DateTime readytime = gameactive.BeginTime.AddMinutes(0 - gameactive.WaitMinutes); if (readytime > DateTime.Now) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6301_GuildExerciseNoOpen; return(false); } if (gameactive.EndTime < DateTime.Now) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6301_GuildExerciseClose; return(false); } if (guild.GuildExercise == null) { return(false); } ExerciseUser exUser = guild.GuildExercise.UserList.Find(u => u.UserID == ContextUser.UserID); if (exUser == null) { return(false); } if (QuestionNo != guild.GuildExercise.QuestionNo) { return(false); } if ((DateTime.Now - guild.GuildExercise.QuesTime).TotalSeconds < 20) { return(false); } if (guild.GuildExercise.CheckAllAnswer == 0) { checkAnswer(guild); if (guild.GuildExercise.CheckAllAnswer == 1) { if (guild.GuildExercise.Level < 20) { guild.GuildExercise.Level = MathUtils.Addition(guild.GuildExercise.Level, 1); } } if (guild.GuildExercise.CheckAllAnswer == 2) { guild.GuildExercise.Level = guild.GuildExercise.Level = 1; } //guild.Update(); } if (guild.GuildExercise.CheckAllAnswer == 1) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6303_GuildExerciseAllAnswerTrue; } if (guild.GuildExercise.CheckAllAnswer == 2) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6303_GuildExerciseAllAnswerFalse; } return(true); }
public override bool TakeAction() { receipt = new RobData(); receipt.Rob = GetLottery.Rob; var rob = UserHelper.FindUserBasis(GetLottery.Rob.RivalUid); receipt.Rob.RivalLevel = rob.UserLv; var lotterycfg = new ShareCacheStruct <Config_Lottery>().Find(t => (t.Type == LotteryAwardType.Rob)); if (lotterycfg == null) { return(false); } receipt.TodayRobList = GetFriends.TodayRobList.ToList(); foreach (var v in GetFriends.FriendsList) { JPFriendRobData friendrob = new JPFriendRobData() { UserId = v.UserId, }; if (v.RobGold.Equals("0")) { var enemy = GetEnemys.FindEnemy(v.UserId); if (enemy != null && !enemy.RobGold.Equals("0")) { v.RobGold = enemy.RobGold; continue; } var rival = UserHelper.FindUserBasis(v.UserId); int baseValue = lotterycfg.Content.ToInt(); int goldMin = baseValue / 4; int goldmax = random.Next(baseValue - goldMin) + goldMin; BigInteger targetGold = Math.Ceiling(rival.UserLv / 50.0).ToInt() * goldmax; v.RobGold = targetGold.ToString(); } friendrob.Gold = v.RobGold; receipt.FriendRobList.Add(friendrob); } foreach (var v in GetEnemys.EnemyList) { JPEnemyRobData enemyrob = new JPEnemyRobData() { UserId = v.UserId, }; if (v.RobGold.Equals("0")) { var friend = GetFriends.FindFriend(v.UserId); if (friend != null && !friend.RobGold.Equals("0")) { v.RobGold = friend.RobGold; continue; } var rival = UserHelper.FindUserBasis(v.UserId); int baseValue = lotterycfg.Content.ToInt(); int goldMin = baseValue / 4; int goldmax = random.Next(baseValue - goldMin) + goldMin; BigInteger targetGold = Math.Ceiling(rival.UserLv / 50.0).ToInt() * goldmax; v.RobGold = targetGold.ToString(); } enemyrob.Gold = v.RobGold; receipt.EnemyRobList.Add(enemyrob); } return(true); }
public override bool TakeAction() { GuildMember member = new ShareCacheStruct <GuildMember>().FindKey(guildID, ContextUser.UserID); if (member != null && member.PostType == PostType.Member) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6007_AuditPermissions; return(false); } List <GuildMember> memberArray = new ShareCacheStruct <GuildMember>().FindAll(m => m.GuildID == guildID); UserGuild guildInfo = new ShareCacheStruct <UserGuild>().FindKey(guildID); if (guildInfo != null) { GuildLvInfo guildLvInfo = new ShareCacheStruct <GuildLvInfo>().FindKey(guildInfo.GuildLv); if (guildLvInfo != null) { int maxPeople = MathUtils.Addition(guildInfo.AddMember, guildLvInfo.MaxPeople); if (memberArray.Count > 0 && memberArray.Count >= maxPeople) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6019_GuildMaxPeople; return(false); } } } GameUser userInfo = UserCacheGlobal.CheckLoadUser(memberID); if (userInfo == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } var memberList = new ShareCacheStruct <GuildMember>().FindAll(s => s.UserID == memberID); if (memberList.Count > 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6019_AddGuild; return(false); } GuildMember gMember = new GuildMember() { GuildID = guildID, UserID = memberID, PostType = PostType.Member, Contribution = 0, TotalContribution = 0, IncenseNum = 0, DevilNum = 0, IsDevil = 0, InsertDate = DateTime.Now }; new ShareCacheStruct <GuildMember>().Add(gMember); userInfo.MercenariesID = guildID; CombatHelper.LoadGuildAbility(userInfo.UserID); //加载公会技能 var cacheSet = new ShareCacheStruct <UserApply>(); List <UserApply> appliesArray = cacheSet.FindAll(m => m.UserID == memberID); foreach (UserApply apply in appliesArray) { cacheSet.Delete(apply); } return(true); }