Ejemplo n.º 1
0
        /// <summary>
        /// Handles a client players updated camera values to be stored in their ClientConnection, until
        /// they either leave or the server is being shutdown, to then be backed up into the database
        /// </summary>
        /// <param name="ClientID">NetworkID of the target client</param>
        /// <param name="Packet">Packet containing the information were after</param>
        public static void HandlePlayerCameraUpdate(int ClientID, ref NetworkPacket Packet)
        {
            //Log what we are doing here
            CommunicationLog.LogIn(ClientID + " Player Camera Update");

            //Extract all the values from the packet data
            float Zoom      = Packet.ReadFloat();
            float XRotation = Packet.ReadFloat();
            float YRotation = Packet.ReadFloat();

            //Try getting the ClientConnection object who sent this packet to us
            ClientConnection Client = ConnectionManager.GetClient(ClientID);

            //Display an error and exit from the function if they couldnt be found
            if (Client == null)
            {
                MessageLog.Print("ERROR: " + ClientID + " ClientConnection object couldnt be found, Player Camera Update could not be performed.");
                return;
            }

            //Store them in the ClientConnection object
            Client.Character.CameraZoom      = Zoom;
            Client.Character.CameraXRotation = XRotation;
            Client.Character.CameraYRotation = YRotation;
        }
Ejemplo n.º 2
0
    //Handles spawning our local player character back into the game world
    public static void HandleLocalPlayerRespawn(ref NetworkPacket Packet)
    {
        Vector3    SpawnPos   = Packet.ReadVector3();
        Quaternion SpawnRot   = Packet.ReadQuaternion();
        float      CameraZoom = Packet.ReadFloat();
        float      CameraX    = Packet.ReadFloat();
        float      CameraY    = Packet.ReadFloat();

        PlayerManager.Instance.RespawnLocalPlayer(SpawnPos, SpawnRot, CameraZoom, CameraX, CameraY);
    }
Ejemplo n.º 3
0
        //Retrives values for an account login request
        public static NetworkPacket GetValuesPlayerCameraUpdate(NetworkPacket ReadFrom)
        {
            NetworkPacket Packet = new NetworkPacket();

            Packet.WriteType(ClientPacketType.PlayerCameraUpdate);
            Packet.WriteFloat(ReadFrom.ReadFloat());
            Packet.WriteFloat(ReadFrom.ReadFloat());
            Packet.WriteFloat(ReadFrom.ReadFloat());
            return(Packet);
        }
Ejemplo n.º 4
0
    //Reads packet values for LocalPlayerRespawn
    public static NetworkPacket GetValuesLocalPlayerRespawn(NetworkPacket ReadFrom)
    {
        NetworkPacket Packet = new NetworkPacket();

        Packet.WriteType(ServerPacketType.LocalPlayerRespawn);
        Packet.WriteVector3(ReadFrom.ReadVector3());
        Packet.WriteQuaternion(ReadFrom.ReadQuaternion());
        Packet.WriteFloat(ReadFrom.ReadFloat());
        Packet.WriteFloat(ReadFrom.ReadFloat());
        Packet.WriteFloat(ReadFrom.ReadFloat());
        return(Packet);
    }
Ejemplo n.º 5
0
    public static NetworkPacket GetValuesCharacterDataReply(NetworkPacket ReadFrom)
    {
        NetworkPacket Packet = new NetworkPacket();

        Packet.WriteType(ServerPacketType.CharacterDataReply);
        int CharacterCount = ReadFrom.ReadInt();

        Packet.WriteInt(CharacterCount);
        for (int i = 0; i < CharacterCount; i++)
        {
            Packet.WriteString(ReadFrom.ReadString());
            Packet.WriteVector3(ReadFrom.ReadVector3());
            Packet.WriteQuaternion(ReadFrom.ReadQuaternion());
            Packet.WriteFloat(ReadFrom.ReadFloat());
            Packet.WriteFloat(ReadFrom.ReadFloat());
            Packet.WriteFloat(ReadFrom.ReadFloat());
            Packet.WriteInt(ReadFrom.ReadInt());
            Packet.WriteInt(ReadFrom.ReadInt());
            Packet.WriteBool(ReadFrom.ReadBool());
        }
        return(Packet);
    }
Ejemplo n.º 6
0
    public static void HandleCharacterDataReply(ref NetworkPacket Packet)
    {
        //Log what we are doing here
        Log.In("Handling Character Data Reply.");

        //Read the number of characters data that has been sent to us
        int CharacterCount = Packet.ReadInt();

        //If there arent any characters in our account then we proceed straight to the character creation screen
        if (CharacterCount == 0)
        {
            InterfaceManager.Instance.SetObjectActive("Loading Characters Panel", false);
            InterfaceManager.Instance.SetObjectActive("Character Create Panel", true);
            return;
        }

        //Otherwise we move on to the character select screen
        InterfaceManager.Instance.SetObjectActive("Loading Characters Panel", false);
        InterfaceManager.Instance.SetObjectActive("Character Select Panel", true);

        //Loop through and read the data of each character provided
        for (int i = 0; i < CharacterCount; i++)
        {
            //Create and store each characters info into a new CharacterData object
            CharacterData Data = new CharacterData();
            Data.Name            = Packet.ReadString();
            Data.Position        = Packet.ReadVector3();
            Data.Rotation        = Packet.ReadQuaternion();
            Data.CameraZoom      = Packet.ReadFloat();
            Data.CameraXRotation = Packet.ReadFloat();
            Data.CameraYRotation = Packet.ReadFloat();
            Data.CurrentHealth   = Packet.ReadInt();
            Data.MaxHealth       = Packet.ReadInt();
            Data.IsAlive         = Packet.ReadBool();

            //Store each characters data to be accessed later
            if (i == 0)
            {
                GameState.Instance.FirstCharacter = Data;
            }
            else if (i == 1)
            {
                GameState.Instance.SecondCharacter = Data;
            }
            else
            {
                GameState.Instance.ThirdCharacter = Data;
            }

            //Set each character as selectable from the character select screen
            string     InfoObjectName = "Character Info " + (i + 1);
            GameObject InfoObject     = GameObject.Find(InfoObjectName);
            if (InfoObject == null)
            {
                Log.Chat("Unable to find " + InfoObjectName);
            }
            else
            {
                InfoObject.GetComponent <Text>().text = Data.Name;
            }
        }
    }