public override bool TakeAction() { int nameLength = System.Text.Encoding.Default.GetByteCount(guildName); List<UserQueue> queueArray = new PersonalCacheStruct<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.TuiChuGongHui); if (queueArray.Count > 0 && queueArray[0].DoRefresh() > 0 && queueArray[0].IsSuspend == false) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6006_GuildMemberNotDate; return false; } int createGoinNum = ConfigEnvSet.GetInt("UserGuild.CreateGoinNum"); int createLv = ConfigEnvSet.GetInt("UserGuild.CreateUserLv"); if (ContextUser.UserLv < createLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough; return false; } if (ContextUser.GameCoin < createGoinNum) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough; return false; } if (guildName == "") { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6017_GuildNameNotEmpty; return false; } if (nameLength < 4 || nameLength > 12) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6017_GuildNameTooLong; return false; } List<GuildMember> memberArray = new ShareCacheStruct<GuildMember>().FindAll(m => m.UserID == ContextUser.UserID); if (memberArray.Count > 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6017_UnionMembers; return false; } List<UserGuild> guildArray = new ShareCacheStruct<UserGuild>().FindAll(u => u.GuildName == guildName); if (guildArray.Count > 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St6017_GuildRename; return false; } List<UserGuild> userGuildArray = new ShareCacheStruct<UserGuild>().FindAll(); int rankID = 0; if (userGuildArray.Count > 0) { rankID = MathUtils.Addition(userGuildArray.Count, 1, int.MaxValue); } else { rankID = 1; } string guildID = Guid.NewGuid().ToString(); ContextUser.MercenariesID = guildID; ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, createGoinNum, 0); UserGuild userGuild = new UserGuild() { GuildID = guildID, UserID = ContextUser.UserID, GuildName = guildName, GuildLv = 1, GuildRank = rankID, WeekExperience = 0, CurrExperience = 0, CreateDate = DateTime.Now, }; new ShareCacheStruct<UserGuild>().Add(userGuild); GuildMember member = new GuildMember() { GuildID = guildID, UserID = ContextUser.UserID, PostType = PostType.Chairman, Contribution = 0, TotalContribution = 0, DevilNum = 0, SummonNum = 0, IsDevil = 0, IncenseNum = 0, InsertDate = DateTime.Now }; new ShareCacheStruct<GuildMember>().Add(member); var temp = new ShareCacheStruct<GuildMember>().FindKey(guildID, ContextUser.UserID); if (temp.HasChanged) { TraceLog.WriteInfo("6017 GuildMember update success."); } GuildIdol idolInfo = new GuildIdol() { GuildID = guildID, IdolLv = 1, CurrExperience = 0 }; new ShareCacheStruct<GuildIdol>().Add(idolInfo); return true; }
/// <summary> /// 捐献数量,贡献声望 /// </summary> /// <param name="guild"></param> /// <param name="member"></param> /// <param name="wholeNum"></param> private void GetAddDonate(UserGuild guild, GuildMember member, int wholeNum) { guild.CurrDonateNum = MathUtils.Addition(guild.CurrDonateNum, wholeNum); //guild.Update(); if (donateType == 1) { ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, totalDonateNum); member.DonateCoin = MathUtils.Addition(member.DonateCoin, totalDonateNum); } else if (donateType == 2) { ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, totalDonateNum); member.DonateGold = MathUtils.Addition(member.DonateGold, totalDonateNum); } ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, wholeNum); //ContextUser.Update(); member.Contribution = MathUtils.Addition(member.Contribution, wholeNum); member.TotalContribution = MathUtils.Addition(member.TotalContribution, wholeNum); //member.Update(); UserHelper.UserGuildUpLv(member.GuildID, wholeNum); //公会添加经验,升级 GuildMemberLog.AddLog(member.GuildID, new MemberLog { UserID = ContextUser.UserID, IdolID = 0, LogType = 1, GainObtion = wholeNum, Experience = wholeNum, GainAura = 0, InsertDate = DateTime.Now }); }
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; }