Exemple #1
0
        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;
        }
Exemple #2
0
        /// <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
            });
        }
Exemple #3
0
        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;
        }