Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }