예제 #1
0
        /// <summary>
        /// Downloads the pet.
        /// </summary>
        /// <returns>The pet.</returns>
        /// <param name="petID">Pet identifier.</param>
        /// <param name="shared">If set to <c>true</c> shared.</param>
        public static ServerPacketDownloadPet DownloadPet(int petID, Boolean shared = false)
        {
            //create new client packet download pet
            ClientPacketDownloadPet clientPacketDownloadPet = new ClientPacketDownloadPet(petID, shared);

            //send packet to server
            ServerPacketDownloadPet serverPacketDownloadPet = TCPClient.SendPacket(clientPacketDownloadPet) as ServerPacketDownloadPet;

            //if no answer
            if (serverPacketDownloadPet == null)
            {
                return(new ServerPacketDownloadPet(null));
            }

            //return packet
            return(serverPacketDownloadPet);
        }
예제 #2
0
        public override Packet OnPacketReceive(Packet receivedPacket)
        {
            //get received packet
            ClientPacketDownloadPet clientPacketDownloadPet = receivedPacket as ClientPacketDownloadPet;

            ConsoleHelper.Write("Receive - ClientPacketDownloadPet");

            //read packet infos
            int petID = clientPacketDownloadPet.PetID;

            //get share power
            Dictionary <int, int> sharedPetPower = SQLHelper.GetPetSharePower(new List <int>()
            {
                petID
            });

            //download pet
            MySqlCommand downloadPetsCommand = new MySqlCommand();

            downloadPetsCommand.Connection  = Program.mySQLManager.MySQLConnection.MysqlConnection;
            downloadPetsCommand.CommandText = $@"SELECT * FROM `T_Pet` WHERE `petID` IN ({petID})";

            MySqlDataReader mysqlDataReader = null;

            PLFPet pet = new PLFPet(PetType.OTHER);

            try
            {
                //execute reader
                mysqlDataReader = downloadPetsCommand.ExecuteReader();

                //open reader
                while (mysqlDataReader.Read())
                {
                    //get pet
                    pet = new PLFPet(mysqlDataReader.GetInt32(0), (PetType)mysqlDataReader.GetInt32(1),
                                     mysqlDataReader.GetString(2));

                    //if is a shared pet
                    if (clientPacketDownloadPet.Shared)
                    {
                        pet.SharePower = sharedPetPower[mysqlDataReader.GetInt32(0)];
                    }
                }
                //close reader
                mysqlDataReader.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            //close reader
            if (mysqlDataReader != null && !mysqlDataReader.IsClosed)
            {
                mysqlDataReader.Close();
            }

            ConsoleHelper.Write("Send - ServerPacketDownloadPet");

            return(new ServerPacketDownloadPet(pet));
        }