示例#1
0
 public static Guild GetGuild(int GuildID)
 {
     var ret = new Guild();
     MySqlDataReader reader = ExecuteDataQuery("SELECT * FROM guild_info WHERE id = {0};", GuildID);
     ret.GuildID = GuildID;
     while (reader.Read())
     {
         ret.Name = Convert.ToString(reader["Name"]);
         ret.Point = Convert.ToInt32(reader["Point"]);
         ret.MemberCap = Convert.ToInt32(reader["MemberCap"]);
         ret.EmblemBG = Convert.ToInt32(reader["EmblemBG"]);
         ret.EmblemBGColour = Convert.ToInt32(reader["EmblemBGColour"]);
         ret.Emblem = Convert.ToInt32(reader["Emblem"]);
         ret.EmblemColour = Convert.ToInt32(reader["EmblemColour"]);
         ret.Created = Convert.ToInt64(reader["Created"]);
     }
     reader.Close();
     reader = ExecuteDataQuery("SELECT * FROM guild_member WHERE GuildID = {0};", GuildID);
     List<GuildMember> members = new List<GuildMember>();
     while (reader.Read())
     {
         var member = new GuildMember();
         member.GuildID = GuildID;
         member.CharacterID = Convert.ToInt32(reader["CharacterID"]);
         member.Grade = Convert.ToInt32(reader["Grade"]);
         members.Add(member);
     }
     reader.Close();
     ret.Members = members.ToArray();
     return ret;
 }
 public static byte[] GuildOperation(int cid, Guild guild)
 {
     var packet = new PacketWriter();
     packet.WriteCenterServerOpcode(CenterSendOps.GuildOperation);
     packet.WriteInt(cid);
     packet.WriteInt(guild.GuildID);
     packet.WriteMapleString(guild.Name ?? string.Empty);
     packet.WriteInt(guild.Point);
     packet.WriteInt(guild.MemberCap);
     packet.WriteShort(guild.EmblemBG);
     packet.WriteShort(guild.EmblemBGColour);
     packet.WriteShort(guild.Emblem);
     packet.WriteShort(guild.EmblemColour);
     packet.WriteInt(guild.Members.Length);
     foreach (var member in guild.Members)
     {
         packet.WriteInt(member.CharacterID);
         packet.WriteInt(member.Grade);
     }
     return packet.ToArray();
 }
        public static void HandleGuildOperation(PacketReader packet)
        {
            int cid = packet.ReadInt();
            int gid = packet.ReadInt();
            string name = packet.ReadMapleString();
            int point = packet.ReadInt();
            int membercap = packet.ReadInt();
            int emblemBG = packet.ReadShort();
            int emblemBGC = packet.ReadShort();
            int emblem = packet.ReadShort();
            int emblemC = packet.ReadShort();
            int membercount = packet.ReadInt();
            List<GuildMember> mems = new List<GuildMember>();
            for (int i = 0; i < membercount; ++i)
            {
                var member = new GuildMember();
                member.CharacterID = packet.ReadInt();
                member.Grade = packet.ReadInt();
                member.GuildID = gid;
                mems.Add(member);
            }

            if (membercap == 0)
                ++membercap;
            var guild = new Guild();
            guild.Name = name;
            guild.GuildID = gid;
            guild.Point = point;
            guild.MemberCap = membercap;
            guild.EmblemBG = emblemBG;
            guild.EmblemBGColour = emblemBGC;
            guild.Emblem = emblem;
            guild.EmblemColour = emblemC;
            guild.Members = mems.ToArray();
            Program.mServer.GetClient(cid).mCharacter.mGuild = guild;
        }