Esempio n. 1
0
        /// <summary>
        /// Updates our zonelist screen with required info
        /// </summary>
        /// <param name="msg">Incoming message</param>
        public void UpdateList(Lidgren.Network.NetIncomingMessage msg)
        {
            if (Zones.Count > 0)
            {
                foreach (string zname in Zones.Keys)
                {
                    oldZones.Add(zname);
                }
            }
            Zones.Clear();

            int count = msg.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                ZoneSettings _zone = new ZoneSettings();
                _zone.ID          = msg.ReadInt64();
                _zone.Name        = msg.ReadString();
                _zone.Description = msg.ReadString();
                _zone.Address     = msg.ReadIPEndPoint();

                //Add it to our dictionary
                Zones.Add(_zone.Name, _zone);

                //Remove it from our old list
                if (oldZones.Contains(_zone.Name))
                {
                    oldZones.Remove(_zone.Name);
                }
            }

            UpdateButtons();
        }
Esempio n. 2
0
 /// <summary>
 /// deserialize into quaternion
 /// </summary>
 /// <param name="message"></param>
 public override void OnDeserialize(Lidgren.Network.NetIncomingMessage message)
 {
     Value.x = message.ReadFloat();
     Value.y = message.ReadFloat();
     Value.z = message.ReadFloat();
     Value.w = message.ReadFloat();
 }
Esempio n. 3
0
 public ActorStats(Lidgren.Network.NetIncomingMessage r)
 {
     life        = new Container(r);
     breath      = new FloatContainer(r);
     power       = new Container(r);
     share_power = r.ReadBoolean();
     ammo        = new Container(r);
     experience  = r.ReadInt32();
     level       = 1 + (int)Math.Pow(experience / 5, .5f);
     if (level > 1)
     {
         experience_to_level = new Container(experience - ((int)Math.Pow((level - 1), 2) * 5), ((int)Math.Pow((level), 2) * 5) - (int)Math.Pow((level - 1), 2) * 5);
     }
     else
     {
         experience_to_level = new Container(experience, (int)Math.Pow((level), 2) * 5);
     }
     complexity             = r.ReadInt32();
     armor                  = r.ReadString();
     jump_speed             = r.ReadSingle();
     run_speed              = r.ReadSingle();
     jump_max_time          = r.ReadSingle();
     jump_cur_time          = 0f;
     can_swim               = r.ReadBoolean();
     boyant                 = r.ReadBoolean();
     jump_can_resume        = r.ReadBoolean();
     life_regen             = r.ReadSingle();
     accum_life_regen       = 0f;
     ammo_regen             = r.ReadSingle();
     accum_ammo_regen       = 0f;
     energy_regen           = r.ReadSingle();
     accum_energy_regen     = 0f;
     water_jump_proficiency = r.ReadSingle();
     max_safe_fall          = r.ReadInt32();
 }
 void s2c_stub_OnResSend(Lidgren.Network.NetIncomingMessage im, S2C.Message.ResSend data)
 {
     if (data.ret == (short)S2C.Message.Flag.kFlagFail)
     {
         Console.WriteLine("Sending message to {0} was failed. Result = [{1}:{2}].", data.to_id, data.ret, data.ret_message);
     }
 }
Esempio n. 5
0
        public static Quaternion ReadQuaternion(Lidgren.Network.NetIncomingMessage im)
        {
            var maxIndex = im.ReadByte();

            if (maxIndex >= 4 && maxIndex <= 7)
            {
                var x = (maxIndex == 4) ? 1f : 0f;
                var y = (maxIndex == 5) ? 1f : 0f;
                var z = (maxIndex == 6) ? 1f : 0f;
                var w = (maxIndex == 7) ? 1f : 0f;
                return(new Quaternion(x, y, z, w));
            }

            var a = (float)im.ReadInt16() / PRECISION;
            var b = (float)im.ReadInt16() / PRECISION;
            var c = (float)im.ReadInt16() / PRECISION;
            var d = (float)Math.Sqrt(1f - (a * a + b * b + c * c));

            if (maxIndex == 0)
            {
                return(new Quaternion(d, a, b, c));
            }
            if (maxIndex == 1)
            {
                return(new Quaternion(a, d, b, c));
            }
            if (maxIndex == 2)
            {
                return(new Quaternion(a, b, d, c));
            }
            return(new Quaternion(a, b, c, d));
        }
Esempio n. 6
0
        public static Quaternion ReadQuaternion(this Lidgren.Network.NetIncomingMessage im)
        {
            var maxIndex = im.ReadRangedInteger(0, 3);

            var a = im.ReadRangedSingle(UNIT_MIN, UNIT_MAX, BITS_COMPONENT);
            var b = im.ReadRangedSingle(UNIT_MIN, UNIT_MAX, BITS_COMPONENT);
            var c = im.ReadRangedSingle(UNIT_MIN, UNIT_MAX, BITS_COMPONENT);
            var d = (float)Math.Sqrt(1f - (a * a + b * b + c * c));

            im.ReadPadBits();
            Quaternion q;

            if (maxIndex == 0)
            {
                return(new Quaternion(d, a, b, c));
            }
            if (maxIndex == 1)
            {
                return(new Quaternion(a, d, b, c));
            }
            if (maxIndex == 2)
            {
                return(new Quaternion(a, b, d, c));
            }
            return(new Quaternion(a, b, c, d));
        }
        public void ReadMe(Lidgren.Network.NetIncomingMessage msg)
        {
            EmmitingDirection   = msg.ReadVector();
            EmitingTime         = msg.ReadFloat();
            MinAngle            = msg.ReadFloat();
            MaxAngle            = msg.ReadFloat();
            MaxForce            = msg.ReadFloat();
            MinForce            = msg.ReadFloat();
            MaxLife             = msg.ReadFloat();
            MinLife             = msg.ReadFloat();
            MaxSize             = msg.ReadFloat();
            MinSize             = msg.ReadFloat();
            MaxRotation         = msg.ReadFloat();
            MinRotation         = msg.ReadFloat();
            MaxStartingRotation = msg.ReadFloat();
            MinStartingRotation = msg.ReadFloat();
            Delay          = msg.ReadFloat();
            SizeMultiplier = msg.ReadFloat();
            Amount         = msg.ReadInt32();
            FireAll        = msg.ReadBoolean();
            Infinite       = msg.ReadBoolean();
            Position       = msg.ReadVector();
            Direction      = msg.ReadVector();

            Factory = NetDataHelper.ReadParticleFactory(msg);
            IList <IControl> controls = NetDataHelper.ReadControls(msg);

            foreach (IControl control in controls)
            {
                AddControl(control);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// deserialize from the stream
 /// </summary>
 /// <param name="message"></param>
 public void OnDeserialize(Lidgren.Network.NetIncomingMessage message)
 {
     quaternion.X = message.ReadFloat();
     quaternion.Y = message.ReadFloat();
     quaternion.Z = message.ReadFloat();
     quaternion.W = message.ReadFloat();
 }
Esempio n. 9
0
 /// <summary>
 /// deserialize into quaternion
 /// </summary>
 /// <param name="message"></param>
 public void OnDeserialize(Lidgren.Network.NetIncomingMessage message)
 {
     quaternion.x = message.ReadFloat();
     quaternion.y = message.ReadFloat();
     quaternion.z = message.ReadFloat();
     quaternion.w = message.ReadFloat();
 }
Esempio n. 10
0
 /// <summary>
 /// deserialize from the stream
 /// </summary>
 /// <param name="message"></param>
 public override void OnDeserialize(Lidgren.Network.NetIncomingMessage message)
 {
     Value.X = message.ReadFloat();
     Value.Y = message.ReadFloat();
     Value.Z = message.ReadFloat();
     Value.W = message.ReadFloat();
 }
Esempio n. 11
0
 public static Vector3 ReadDirection(Lidgren.Network.NetIncomingMessage om)
 {
     return(new Vector3(
                (float)om.ReadInt16() / short.MaxValue,
                (float)om.ReadInt16() / short.MaxValue,
                (float)om.ReadInt16() / short.MaxValue
                ));
 }
Esempio n. 12
0
        /// <summary>
        /// Get a new color3 from the incoming message
        /// </summary>
        /// <param name="color"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static Color3 Deserialize(this Color3 color, Lidgren.Network.NetIncomingMessage msg)
        {
            var cr = msg.ReadByte();
            var cg = msg.ReadByte();
            var cb = msg.ReadByte();

            return(new Color3(BitConverter.ToInt32(new byte[] { cb, cg, cr, 0 }, 0)));
        }
Esempio n. 13
0
 public ItemConnector(Lidgren.Network.NetIncomingMessage r)
 {
     conn_type   = (ItemConnectionType)r.ReadByte();
     target_type = (TargetType)r.ReadByte();
     target_id   = r.ReadInt32();
     data_one    = r.ReadInt32();
     data_two    = r.ReadInt32();
 }
Esempio n. 14
0
 void s2c_stub_OnNotifySend(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifySend data)
 {
     if (data.from_id == id)
     {
         return;
     }
     Console.WriteLine("[{0}] {1}", data.from_id, data.message);
 }
Esempio n. 15
0
        public override NetworkMessage Read(Lidgren.Network.NetIncomingMessage msgIn)
        {
            base.Read(msgIn);

            values.FromByteArray(NetworkMessage.ReadByteBuffer(msgIn));

            return(this);
        }
Esempio n. 16
0
 void s2c_stub_OnNotifyLogout(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifyLogout data)
 {
     Console.WriteLine("{0} leaved out.", data.logout_id);
     if (data.logout_id == this.id)
     {
         Close();
     }
 }
Esempio n. 17
0
            public static void UpdateZoneList(Lidgren.Network.NetIncomingMessage msg)
            {
                if (zonelist == null)
                {
                    return;
                }

                zonelist.UpdateList(msg);
            }
Esempio n. 18
0
 public void Deserialize(ref Lidgren.Network.NetIncomingMessage buff)
 {
     _player  = (PLAYER)buff.ReadInt32();
     _obj     = (SIM_OBJ)buff.ReadInt32();
     _action  = (OBJ_ACTION)buff.ReadInt32();
     _pos[0]  = buff.ReadFloat();
     _pos[1]  = buff.ReadFloat();
     _angle   = buff.ReadFloat();
     _inst_id = buff.ReadInt32();
 }
Esempio n. 19
0
        public static string[] ReadStringArray(this Lidgren.Network.NetIncomingMessage im)
        {
            var strs = new string[(int)im.ReadVariableUInt32()];

            for (int i = 0; i < strs.Length; i++)
            {
                strs[i] = im.ReadString();
            }
            return(strs);
        }
Esempio n. 20
0
 public DamageMove(Lidgren.Network.NetIncomingMessage p)
 {
     time_execute = p.ReadSingle();
     attacker     = (TargetType)p.ReadByte();
     attacker_id  = p.ReadUInt16();
     target       = (TargetType)p.ReadByte();
     target_id    = p.ReadUInt16();
     damage       = p.ReadInt16();
     damage_code  = (CauseDamage)p.ReadByte();
     range        = p.ReadUInt16();
 }
Esempio n. 21
0
        void s2c_stub_OnNotifySendAll(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifySendAll data)
        {
            Console.WriteLine("OnNotifySendAll...[ThreadID:{0}]", Thread.CurrentThread.ManagedThreadId);

            if (data.from_id == id)
            {
                return;
            }

            Console.WriteLine("[{0}] {1}", data.from_id, data.message);
        }
Esempio n. 22
0
 public PlantUnit(Lidgren.Network.NetIncomingMessage r)
 {
     top_left   = new Point(r.ReadUInt16(), r.ReadUInt16());
     width      = r.ReadByte();
     height     = r.ReadByte();
     piece_type = r.ReadString();
     images     = new ushort[r.ReadByte()];
     for (int x = 0; x < images.Length; x++)
     {
         images[x] = r.ReadUInt16();
     }
 }
Esempio n. 23
0
        public override void ReadInUpdateData(Lidgren.Network.NetIncomingMessage im)
        {
            base.ReadInUpdateData(im);

            wDone = im.ReadFloat();
            updateMenu();
            if ((wDone == wNeed) && (!builtCalled))
            {
                builtCalled = true;
                OnUpdateMenu(this);
            }
        }
Esempio n. 24
0
        public Item(Lidgren.Network.NetIncomingMessage r)
        {
            init_empty();
            item_name = r.ReadString();
            int num_sub_pieces = r.ReadInt32();

            for (int x = 0; x < num_sub_pieces; x++)
            {
                pieces.Add(new ItemPieceEnumeration(r));
            }
            construct_item(item_name);
        }
Esempio n. 25
0
 public Chunk(Lidgren.Network.NetIncomingMessage i, World w)
 {
     area      = new Rectangle(i.ReadUInt16(), i.ReadUInt16(), i.ReadUInt16(), i.ReadUInt16());
     timestamp = System.DateTime.Now.Ticks / 10000;
     for (int x = area.X; x < area.Right; x++)
     {
         for (int y = area.Y; y < area.Bottom; y++)
         {
             w.map[x, y] = new Voxel(i);
         }
     }
 }
Esempio n. 26
0
        public ItemPieceEnumeration(Lidgren.Network.NetIncomingMessage r)
        {
            itempiece_id = r.ReadInt32();
            loc          = new Point((int)r.ReadInt16(), (int)r.ReadInt16());
            rotation     = r.ReadByte();
            children     = new Dictionary <int, int>();
            int num_child = r.ReadInt32();

            for (int x = 0; x < num_child; x++)
            {
                children[r.ReadInt32()] = r.ReadInt32();
            }
        }
Esempio n. 27
0
        public static Canvas Receive(Lidgren.Network.NetIncomingMessage message, Palette pal)
        {
            var width  = message.ReadVariableInt32();
            var height = message.ReadVariableInt32();

            message.ReadPadBits();
            var stream = message.ReadStream();

            var canvas = new MemoryCanvas(new Size(width, height));

            Pablo.Load(stream, canvas, pal);
            return(canvas);
        }
Esempio n. 28
0
        protected void OnServerAnswer(Lidgren.Network.NetIncomingMessage msg)
        {
            //SpaceWar2006.GameSystem.GameServerInfo info = p as SpaceWar2006.GameSystem.GameServerInfo;
            SpaceWar2006.GameSystem.GameServerInfo info;
            //if (info == null)
            {
                string p = msg.ReadString();
                info = new SpaceWar2006.GameSystem.GameServerInfo(p);
            }
            ListViewItem lvi = FindServer(msg.SenderEndpoint);
            bool         add = false;

            string[] subitems = new string[5];
            if (lvi == null)
            {
                lvi     = new ListViewItem();
                lvi.Tag = msg.SenderEndpoint.ToString();
                add     = true;
            }


            //subitems[1] = msg.SenderEndpoint.ToString();

            if (info != null)
            {
                subitems[0] = msg.SenderEndpoint.ToString();
                subitems[1] = info.Map;
                subitems[2] = info.GameType;
                subitems[3] = info.NumPlayers.ToString() + "/" + info.MaxPlayers.ToString();
                subitems[4] = info.Password.ToString();
                lvi.Text    = info.ServerName;
            }

            lvi.SubItems.Clear();
            lvi.SubItems.AddRange(subitems);

            if (info != null)
            {
                lvi.Text = info.ServerName;
            }
            else
            {
                lvi.Text = "???";
            }

            if (add)
            {
                ServerList.Items.Add(lvi);
            }
        }
Esempio n. 29
0
        void s2c_stub_OnResLogin(Lidgren.Network.NetIncomingMessage im, S2C.Message.ResLogin data)
        {
            Console.WriteLine("OnResLogin...[ThreadID:{0}]", Thread.CurrentThread.ManagedThreadId);

            is_login = data.ret == (short)S2C.Message.Flag.kFlagSuccess ? true : false;

            if (is_login)
            {
                Console.WriteLine("You entered in.", data.ret);
            }
            else
            {
                Console.WriteLine("You can't entered in.", data.ret);
            }
        }
Esempio n. 30
0
        public ItemChest(Lidgren.Network.NetIncomingMessage r)
        {
            destroyable    = r.ReadBoolean();
            chest_name     = r.ReadString();
            security       = r.ReadString();
            world_top_left = new Point(r.ReadUInt16(), r.ReadUInt16());
            furniture_id   = r.ReadUInt16();
            items          = new List <Cubby>();
            int num_items = r.ReadByte();

            for (int i = 0; i < num_items; i++)
            {
                items.Add(new Cubby(r));
            }
        }