public override bool TakeAction() { var guildsSet = new ShareCacheStruct <GuildsCache>(); var guild = guildsSet.FindKey(GetGuild.GuildID); if (guild == null) { return(false); } var member = guild.FindMember(Current.UserId); if (member == null) { return(false); } if (GetGuild.IsSignIn) { receipt = RequestGuildResult.HadSignIn; return(true); } GetGuild.IsSignIn = true; int addLiveness = ConfigEnvSet.GetInt("Guild.SignInLiveness") * 500; member.Liveness = MathUtils.Addition(member.Liveness, addLiveness, int.MaxValue); guild.Liveness = MathUtils.Addition(guild.Liveness, addLiveness, int.MaxValue); GuildLogData log = new GuildLogData() { UserId = Current.UserId, UserName = GetBasis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 进行了签到。", GetBasis.NickName), }; guild.NewLog(log); foreach (var v in guild.MemberList) { PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), Current.UserId); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } int newlv = guild.ConvertLevel(); if (guild.Lv < newlv) { guild.Lv = newlv; foreach (var v in guild.MemberList) { PushMessageHelper.GuildBasisChangeNotification(GameSession.Get(v.UserID)); } } receipt = RequestGuildResult.Successfully; return(true); }
public override bool TakeAction() { var guildData = new ShareCacheStruct <GuildsCache>().FindKey(GetGuild.GuildID); if (guildData == null) { return(false); } if (Current.UserId == _DestUid || (guildData.FindAtevent().UserID != Current.UserId && guildData.FindVice(Current.UserId) == null)) { receipt = RequestGuildResult.NoAuthority; return(true); } var basis = UserHelper.FindUserBasis(_DestUid); var guild = UserHelper.FindUserGuild(_DestUid); var member = guildData.FindMember(_DestUid); if (basis == null || member == null) { return(false); } GuildLogData log = new GuildLogData() { UserId = basis.UserID, UserName = basis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 被移出公会。", basis.NickName), }; guildData.NewLog(log); foreach (var v in guildData.MemberList) { PushMessageHelper.GuildMemberRemoveNotification(GameSession.Get(v.UserID), _DestUid); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } guildData.RemoveMember(member); guild.GuildID = string.Empty; GlobalRemoteService.SendUserData(basis, guild.GuildID); receipt = RequestGuildResult.Successfully; return(true); }
public override bool TakeAction() { var guildsSet = new ShareCacheStruct <GuildsCache>(); var guild = guildsSet.FindKey(GetGuild.GuildID); if (guild == null) { return(false); } var member = guild.FindMember(Current.UserId); if (member == null || member.JobTitle == GuildJobTitle.Normal) { receipt = RequestGuildResult.NoAuthority; return(true); } guild.Notice = _content; GuildLogData log = new GuildLogData() { UserId = Current.UserId, UserName = GetBasis.NickName, LogTime = DateTime.Now, Content = string.Format("{0} 设置了新公告。", GetBasis.NickName), }; guild.NewLog(log); foreach (var v in guild.MemberList) { PushMessageHelper.GuildNoticeChangeNotification(GameSession.Get(v.UserID)); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } receipt = RequestGuildResult.Successfully; return(true); }
public override bool TakeAction() { var guild = new ShareCacheStruct <GuildsCache>().FindKey(guildId); if (guild == null) { receipt = RequestGuildResult.NoGuild; return(true); } if (guild.MemberList.Count >= 50) { receipt = RequestGuildResult.Full; return(true); } if (guild.FindRequest(Current.UserId) != null) { receipt = RequestGuildResult.HadRequest; return(true); } GuildCharacter character = new GuildCharacter() { UserID = Current.UserId, Date = DateTime.Now }; guild.AddNewRequest(character); foreach (var v in guild.MemberList) { PushMessageHelper.NewGuildRequestNotification(GameSession.Get(v.UserID), Current.UserId); } receipt = RequestGuildResult.Successfully; return(true); }
public override bool TakeAction() { var guildsSet = new ShareCacheStruct <GuildsCache>(); if (!GetGuild.GuildID.IsEmpty()) { var oldguild = guildsSet.FindKey(GetGuild.GuildID); if (oldguild != null && oldguild.FindMember(Current.UserId) != null) { return(false); } } int needDiamond = ConfigEnvSet.GetInt("User.CreateGuildNeedDiamond"); if (GetBasis.DiamondNum < needDiamond) { receipt = RequestGuildResult.NoDiamond; return(true); } if (guildsSet.Find(t => t.GuildName == _guildName) != null) { receipt = RequestGuildResult.HadName; return(true); } GuildsCache guild = new GuildsCache() { GuildID = Guid.NewGuid().ToString(), GuildName = _guildName, Liveness = 0, RankID = 0, CreateDate = DateTime.Now, Lv = 1 }; GuildCharacter member = new GuildCharacter() { UserID = Current.UserId, JobTitle = GuildJobTitle.Atevent, Liveness = 0 }; guild.AddNewMember(member); GuildLogData log = new GuildLogData() { UserId = Current.UserId, UserName = GetBasis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 创建了公会。", GetBasis.NickName), }; guild.NewLog(log); guildsSet.Add(guild); guildsSet.Update(); GetGuild.GuildID = guild.GuildID; PushMessageHelper.JoinGuildNotification(Current); GlobalRemoteService.SendUserData(GetBasis, GetGuild.GuildID); receipt = RequestGuildResult.Successfully; return(true); }
public override bool TakeAction() { var guildData = new ShareCacheStruct <GuildsCache>().FindKey(GetGuild.GuildID); if (guildData == null) { return(false); } var guildcfg = new ShareCacheStruct <Config_Society>().FindKey(guildData.Lv); if (guildcfg == null) { return(false); } if (guildData.FindAtevent().UserID != Current.UserId && guildData.FindVice(Current.UserId) == null) { receipt = RequestGuildResult.NoAuthority; return(true); } var basis = UserHelper.FindUserBasis(_DestUid); var guild = UserHelper.FindUserGuild(_DestUid); if (basis == null) { return(false); } if (_isAgree) { if (guildData.MemberList.Count >= guildcfg.Number) { receipt = RequestGuildResult.Full; } else if (!guild.GuildID.IsEmpty()) { receipt = RequestGuildResult.HadGuild; } else { GuildCharacter member = new GuildCharacter() { UserID = basis.UserID, JobTitle = GuildJobTitle.Normal, Liveness = 0 }; GuildLogData log = new GuildLogData() { UserId = basis.UserID, UserName = basis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 加入了公会。", basis.NickName), }; guildData.NewLog(log); // 通知公会成员有新成员加入 foreach (var v in guildData.MemberList) { PushMessageHelper.NewGuildMemberNotification(GameSession.Get(v.UserID), _DestUid); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } guildData.AddNewMember(member); guild.GuildID = guildData.GuildID; guild.IsSignIn = false; // 通知新成员公会信息 PushMessageHelper.JoinGuildNotification(GameSession.Get(_DestUid)); GlobalRemoteService.SendUserData(basis, guild.GuildID); receipt = RequestGuildResult.Successfully; } } // 从邀请列表里清除 guildData.RemoveRequest(_DestUid); foreach (var v in guildData.MemberList) { PushMessageHelper.GuildApplyRemoveNotification(GameSession.Get(v.UserID), _DestUid); } return(true); }
public override bool TakeAction() { var guildsSet = new ShareCacheStruct <GuildsCache>(); var guild = guildsSet.FindKey(GetGuild.GuildID); if (guild == null) { return(false); } int needDiamond = ConfigEnvSet.GetInt("User.CreateGuildNeedDiamond"); if (GetBasis.DiamondNum < needDiamond) { receipt = RequestGuildResult.NoDiamond; return(true); } var basis = UserHelper.FindUserBasis(_destUid); var self = guild.FindMember(Current.UserId); var destMember = guild.FindMember(_destUid); if (Current.UserId == _destUid || guild.FindAtevent().UserID != Current.UserId || destMember == null) { receipt = RequestGuildResult.NoAuthority; return(true); } switch (_jobTitle) { case GuildJobTitle.Atevent: { destMember.JobTitle = GuildJobTitle.Atevent; self.JobTitle = GuildJobTitle.Normal; GuildLogData log = new GuildLogData() { UserId = basis.UserID, UserName = basis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 被提升为会长。", basis.NickName), }; guild.NewLog(log); foreach (var v in guild.MemberList) { PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), _destUid); PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), Current.UserId); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } } break; case GuildJobTitle.Vice: { if (guild.FindVice(_destUid) != null) { receipt = RequestGuildResult.NoAuthority; return(true); } if (guild.FindVice().Count >= 2) { return(false); } destMember.JobTitle = GuildJobTitle.Vice; GuildLogData log = new GuildLogData() { UserId = basis.UserID, UserName = basis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 被提升为副会长。", basis.NickName), }; guild.NewLog(log); foreach (var v in guild.MemberList) { PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), _destUid); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } } break; case GuildJobTitle.Normal: { if (guild.FindVice(_destUid) == null) { receipt = RequestGuildResult.NoAuthority; return(true); } destMember.JobTitle = GuildJobTitle.Normal; GuildLogData log = new GuildLogData() { UserId = basis.UserID, UserName = basis.NickName, LogTime = DateTime.Now, Content = string.Format("玩家 {0} 被降为普通成员。", basis.NickName), }; guild.NewLog(log); foreach (var v in guild.MemberList) { PushMessageHelper.GuildMemberChangeNotification(GameSession.Get(v.UserID), _destUid); PushMessageHelper.NewGuildLogNotification(GameSession.Get(v.UserID)); } } break; } receipt = RequestGuildResult.Successfully; return(true); }