コード例 #1
0
ファイル: GuildManager.cs プロジェクト: 372285834/GServer
        public bool AddGuildInstance(GuildInstance guild)
        {
            if (mGuilds.ContainsValue(guild))
            {
                return(false);
            }

            mGuilds.Add(guild.GuildData.GuildId, guild);
            return(true);
        }
コード例 #2
0
ファイル: Role_Guild.cs プロジェクト: 372285834/GServer
        public void RPC_CreateGuild(ulong roleId, string GuildName, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd)
        {
            RPC.PackageWriter retPkg = new RPC.PackageWriter();
            var role = GetRole(roleId);

            if (role == null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.NoRole);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.GuildInstance != null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.RoleHasGuild);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }

            GuildInstance GuildInstance = new GuildInstance();

            CSCommon.Data.GuildCom guild = new CSCommon.Data.GuildCom();
            guild.GuildName     = GuildName;
            guild.PlanesId      = role.RoleData.PlanesId;
            guild.PresidentName = role.RoleData.Name;
            guild.MemberNum     = 1;
            if (DB_CreatGuildCom(guild) == false)
            {
                retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.SameGuildName);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            role.RoleData.GuildId   = guild.GuildId;
            role.RoleData.GuildPost = (byte)CSCommon.eGuildPost.BangZhu;
            role.GuildInstance      = GuildInstance;

            GuildInstance.GuildData = guild;
            GuildInstance.Members.Add(roleId, role);
            GuildManager.Instance.AddGuildInstance(GuildInstance);

            //存盘,这里后面要改成异步执行
            DB_SaveRoleData(role);

            retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.Succeed);
            retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
        }
コード例 #3
0
ファイル: GuildManager.cs プロジェクト: 372285834/GServer
        public void DissolveGuild(ulong guildId)
        {
            GuildInstance guild = null;

            mGuilds.TryGetValue(guildId, out guild);
            if (guild == null)
            {
                return;
            }

            foreach (var i in guild.Members)
            {
                UserRoleManager.Instance.DissolveGuildMember(guild.GuildData.GuildId, i.Key);
            }
            guild.Members.Clear();
            RemoveGuildInstance(guildId);
            UserRoleManager.Instance.DB_DelGuildCom(guild.GuildData);
        }
コード例 #4
0
ファイル: GuildManager.cs プロジェクト: 372285834/GServer
        private GuildInstance DB_LoadGuild(ulong guildId)
        {
            GuildInstance guild = new GuildInstance();

            var condition = "GuildId=" + guildId;
            var dbOp      = ServerFrame.DB.DBConnect.SelectData(condition, guild.GuildData, "");
            var tab       = UserRoleManager.Instance.DBConnect._ExecuteSelect(dbOp, "GuildCom");

            if (tab == null || tab.Rows.Count != 1)
            {
                return(null);
            }

            if (false == ServerFrame.DB.DBConnect.FillObject(guild.GuildData, tab.Rows[0]))
            {
                return(null);
            }

            return(guild);
        }
コード例 #5
0
ファイル: GuildManager.cs プロジェクト: 372285834/GServer
        public void DB_InitAllGuildMember(GuildInstance guild)
        {
            ServerFrame.DB.DBOperator dbOp = new ServerFrame.DB.DBOperator();
            dbOp.SqlCode = "select RoleId from RoleCom where GuildId=\'" + guild.GuildData.GuildId + "\'";
            var tab = UserRoleManager.Instance.DBConnect._ExecuteSelect(dbOp, "RoleCom");

            if (tab == null || tab.Rows.Count < 1)
            {
                return;
            }

            for (int i = 0; i < tab.Rows.Count; i++)
            {
                ulong roleId = (ulong)tab.Rows[i]["RoleId"];
                if (roleId != 0)
                {
                    var role = UserRoleManager.Instance.GetRole(roleId);
                    if (role != null)
                    {
                        guild.Members.Add(roleId, role);
                    }
                }
            }
        }