public GuildAcademyMember(GuildAcademy Academy, int CharacterID, GuildAcademyRank Rank, DateTime RegisterTime) { this.Academy = Academy; this.CharacterID = CharacterID; this.Rank = Rank; this.RegisterDate = RegisterDate; }
public GuildAcademyMember(GuildAcademy Academy, int CharacterID, GuildAcademyRank Rank, DateTime RegisterTime) { this.Academy = Academy; this.CharacterID = CharacterID; this.Rank = Rank; RegisterDate = RegisterDate; }
public GuildAcademyMember(GuildAcademy Academy, WorldCharacter Character, DateTime RegisterDate, GuildAcademyRank Rank) { this.Academy = Academy; this.Character = Character; this.RegisterDate = RegisterDate; this.Rank = Rank; }
public void AddMember(WorldCharacter Character, GuildAcademyRank Rank) { if (Character.Character.CharLevel < 10 || Character.Character.CharLevel > 60) return; if (Character.IsInGuild || Character.IsInGuildAcademy) { Handlers.Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AlreadyInAcademy); return; } lock (Guild.ThreadLocker) { if (Members.Count >= MaxMembers) { Handlers.Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AcademyFull); return; } var registerDate = Program.CurrentTime; //add to sql using (var con = Program.DatabaseManager.GetClient().GetConnection()) { using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "GuildAcademyMember_Create"; cmd.Parameters.Add(new MySqlParameter("@pGuildID", Guild.ID)); cmd.Parameters.Add(new MySqlParameter("@pCharacterID", Character.ID)); cmd.Parameters.Add(new MySqlParameter("@pRegisterDate", registerDate)); cmd.Parameters.Add(new MySqlParameter("@pRank", (byte)Rank)); switch (Convert.ToInt32(cmd.ExecuteScalar())) { case 0: var member = new GuildAcademyMember(this, Character, registerDate, Rank); //Add to list Members.Add(member); //Update character Character.Guild = Guild; Character.GuildAcademy = this; Character.GuildAcademyMember = member; //send packets to client Handlers.Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.JoinSuccess); using (var packet = new Packet(SH4Type.CharacterGuildacademyinfo)) { WriteInfo(packet); Character.Client.SendPacket(packet); } member.BroadcastGuildName(); using (var packet = new Packet(SH38Type.AcademyMemberJoined)) { member.WriteInfo(packet); Broadcast(packet); Guild.Broadcast(packet); } //send packet to zones using (var packet = new InterPacket(InterHeader.ZONE_AcademyMemberJoined)) { packet.WriteInt(Guild.ID); packet.WriteInt(Character.ID); packet.WriteDateTime(registerDate); ZoneManager.Instance.Broadcast(packet); } break; case -1: Handlers.Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AlreadyInAcademy); return; case -2: default: Handlers.Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.DatabaseError); return; } } } } }
public void AddMember(WorldCharacter Character, GuildAcademyRank Rank) { if (Character.Character.CharLevel < 10 || Character.Character.CharLevel > 60) { return; } if (Character.IsInGuild || Character.IsInGuildAcademy) { Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AlreadyInAcademy); return; } lock (Guild.ThreadLocker) { if (Members.Count >= MaxMembers) { Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AcademyFull); return; } var registerDate = Program.CurrentTime; //add to sql using (var con = Program.DatabaseManager.GetClient().GetConnection()) { using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "GuildAcademyMember_Create"; cmd.Parameters.Add(new MySqlParameter("@pGuildID", Guild.ID)); cmd.Parameters.Add(new MySqlParameter("@pCharacterID", Character.ID)); cmd.Parameters.Add(new MySqlParameter("@pRegisterDate", registerDate)); cmd.Parameters.Add(new MySqlParameter("@pRank", (byte)Rank)); switch (Convert.ToInt32(cmd.ExecuteScalar())) { case 0: var member = new GuildAcademyMember(this, Character, registerDate, Rank); //Add to list Members.Add(member); //Update character Character.Guild = Guild; Character.GuildAcademy = this; Character.GuildAcademyMember = member; //send packets to client Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.JoinSuccess); using (var packet = new Packet(SH4Type.CharacterGuildacademyinfo)) { WriteInfo(packet); Character.Client.SendPacket(packet); } member.BroadcastGuildName(); using (var packet = new Packet(SH38Type.AcademyMemberJoined)) { member.WriteInfo(packet); Broadcast(packet); Guild.Broadcast(packet); } //send packet to zones using (var packet = new InterPacket(InterHeader.ZoneAcademyMemberJoined)) { packet.WriteInt(Guild.ID); packet.WriteInt(Character.ID); packet.WriteDateTime(registerDate); ZoneManager.Broadcast(packet); } break; case -1: Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.AlreadyInAcademy); return; case -2: default: Handler38.SendAcademyResponse(Character.Client, Guild.Name, GuildAcademyResponse.DatabaseError); return; } } } } }