Ejemplo n.º 1
0
 public GuildAcademyMember(GuildAcademy Academy, int CharacterID, GuildAcademyRank Rank, DateTime RegisterTime)
 {
     this.Academy = Academy;
     this.CharacterID = CharacterID;
     this.Rank = Rank;
     this.RegisterDate = RegisterDate;
 }
Ejemplo n.º 2
0
 public GuildAcademyMember(GuildAcademy Academy, int CharacterID, GuildAcademyRank Rank, DateTime RegisterTime)
 {
     this.Academy     = Academy;
     this.CharacterID = CharacterID;
     this.Rank        = Rank;
     RegisterDate     = RegisterDate;
 }
Ejemplo n.º 3
0
 public GuildAcademyMember(GuildAcademy Academy, WorldCharacter Character, DateTime RegisterDate, GuildAcademyRank Rank)
 {
     this.Academy = Academy;
     this.Character = Character;
     this.RegisterDate = RegisterDate;
     this.Rank = Rank;
 }
Ejemplo n.º 4
0
 public GuildAcademyMember(GuildAcademy Academy, WorldCharacter Character, DateTime RegisterDate,
                           GuildAcademyRank Rank)
 {
     this.Academy      = Academy;
     this.Character    = Character;
     this.RegisterDate = RegisterDate;
     this.Rank         = Rank;
 }
Ejemplo n.º 5
0
        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;
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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;
                        }
                    }
                }
            }
        }