public void LoadGuildMembers() { try { LoadGuildMemberIds(Character.Network.Guild.Guildid, ref Character.Network.Guild.Members); foreach (int m in Character.Network.Guild.Members) { Global.guild_player PlayerGuild = new Global.guild_player(); PlayerGuild.MemberID = m; DB ms = new DB("SELECT * FROM character WHERE id='" + m + "'"); using (System.ObjData.Manager.SqlClient.SqlDataReader reader = ms.Read()) { while (reader.Read()) { PlayerGuild.Model = reader.GetInt32(3); PlayerGuild.Xsector = reader.GetByte(16); PlayerGuild.Ysector = reader.GetByte(17); PlayerGuild.Level = reader.GetByte(5); PlayerGuild.Name = reader.GetString(2); PlayerGuild.Online = (reader.GetInt32(47) == 1); if (PlayerGuild.Online) { Systems sys = GetPlayerMainid(m); if (sys != null) Character.Network.Guild.MembersClient.Add(sys.client); } } } ms.Close(); DB ms2 = new DB("SELECT * FROM guild_members WHERE guild_member_id='" + m + "'"); using (System.ObjData.Manager.SqlClient.SqlDataReader reader2 = ms2.Read()) { while (reader2.Read()) { PlayerGuild.joinRight = (reader2.GetByte(7) == 1); PlayerGuild.withdrawRight = (reader2.GetByte(8) == 1); PlayerGuild.unionRight = (reader2.GetByte(9) == 1); PlayerGuild.guildstorageRight = (reader2.GetByte(10) == 1); PlayerGuild.noticeeditRight = (reader2.GetByte(11) == 1); PlayerGuild.FWrank = reader2.GetByte(6); PlayerGuild.DonateGP = reader2.GetInt32(4); PlayerGuild.Rank = reader2.GetByte(3); } } ms2.Close(); Character.Network.Guild.MembersInfo.Add(PlayerGuild); } } catch (Exception ex) { Console.WriteLine(ex); } }
///////////////////////////////////////////////////////////////////////// //Guild Permissions ///////////////////////////////////////////////////////////////////////// void GuildPermissions() { try { PacketReader Reader = new PacketReader(PacketInformation.buffer); Reader.Byte(); int memberid = Reader.Int32(); byte permissions = (byte)Reader.Int32(); char[] bits = new char[8]; for (int i = 0; i < 8; ++i) bits[i] = (char)0; bits = Convert.ToString(permissions, 2).ToCharArray(); Reader.Close(); // set the amount to the target player :) int targetindex = Character.Network.Guild.MembersInfo.FindIndex(i => i.MemberID == memberid); if (Character.Network.Guild.MembersInfo[targetindex].Online) { Systems member = GetPlayerMainid(memberid); // so here we can set chars right member.Character.Network.Guild.joinRight = bits[4] == '1' ? true : false; member.Character.Network.Guild.withdrawRight = bits[3] == '1' ? true : false; member.Character.Network.Guild.unionRight = bits[2] == '1' ? true : false; member.Character.Network.Guild.guildstorageRight = bits[0] == '1' ? true : false; member.Character.Network.Guild.noticeeditRight = bits[1] == '1' ? true : false; } // set new amount to every guild members guild class foreach (int m in Character.Network.Guild.Members) { int index = Character.Network.Guild.MembersInfo.FindIndex(i => i.MemberID == m); if (Character.Network.Guild.MembersInfo[index].Online) { Systems sys = Helpers.GetInformation.GetPlayerMainid(m); // here comes the messy way Global.guild_player mygp = new Global.guild_player(); int myindex = 0; foreach (Global.guild_player gp in sys.Character.Network.Guild.MembersInfo) { if (gp.MemberID == memberid) { mygp = gp; // mygp.joinRight = bits[4] == '1' ? true : false; mygp.withdrawRight = bits[3] == '1' ? true : false; mygp.unionRight = bits[2] == '1' ? true : false; mygp.guildstorageRight = bits[0] == '1' ? true : false; mygp.noticeeditRight = bits[1] == '1' ? true : false; break; } myindex++; } sys.Character.Network.Guild.MembersInfo[myindex] = mygp; } } DB.query("UPDATE guild_members SET guild_perm_join='" + bits[4] + "',guild_perm_withdraw='" + bits[3] + "',guild_perm_union='" + bits[2] + "',guild_perm_storage='" + bits[0] + "',guild_perm_notice='" + bits[1] + "' WHERE guild_member_id='" + memberid + "'"); Character.Network.Guild.Send(Packet.GuildUpdate(Character, 4, 0, permissions, 0)); } catch (Exception ex) { Console.WriteLine("Guild permission error: {0}", ex); Log.Exception(ex); } }