示例#1
0
        public void WriteCreateCharacter(string nickname, GameObjectDAO charData)
        {
            using (MemoryStream ms = new MemoryStream())
            using (BinaryWriter bw = new BinaryWriter(ms))
            {
                bw.Write((byte)ASCII.SOH);
                bw.Write((byte)Opcodes.NEW_PLAYER);
                bw.Write((byte)ASCII.STX);
                bw.Write(nickname);
                bw.Write(charData.Id);
                bw.Write(charData.X);
                bw.Write(charData.Y);
                bw.Write(charData.Width);
                bw.Write(charData.Height);
                bw.Write(0); // Temporary till EntityType enum is implemented on server.

                bw.Write((byte)ASCII.EOT);
                SendTcp(ms.ToArray());
            }
        }
示例#2
0
        public void WriteCreateCharacter(string nickname, GameObjectDAO charData)
        {
            using (MemoryStream ms = new MemoryStream())
            using (BinaryWriter bw = new BinaryWriter(ms))
            {
                bw.Write((byte)ASCII.SOH);
                bw.Write((uint)Opcodes.NEW_PLAYER);
                bw.Write((byte)ASCII.STX);
                bw.Write(nickname);
                bw.Write(charData.Id);
                bw.Write(charData.X);
                bw.Write(charData.Y);
                bw.Write(charData.Width);
                bw.Write(charData.Height);
                bw.Write(charData.Specialization);
                bw.Write(charData.Type);

                bw.Write((byte)ASCII.EOT);
                BroadcastTcp(ms.ToArray());
            }
        }
示例#3
0
        public Character AddCharacter(string nickname, Specializations specialization)
        {
            Character c = CharacterFactory.CreateCharacter(specialization);

            if (GameObjects.TryAdd(c.Id, c))
            {
                c.Register(Observation.KILLING, this, ExterminationNotification);
                c.Register(Observation.EXTERMINATION, this, ExterminationNotification);

                Body b = c.Body;
                GameObjectDAO data = new GameObjectDAO
                {
                    X = b.Position.X,
                    Y = b.Position.Y,
                    Width = b.Width,
                    Height = b.Height,
                    Id = c.Id,
                    Specialization = (int)c.Specialization
                };

                Broker.WriteCreateCharacter(nickname, data);
            }
            return c;
        }