private static void OnStatChangedMessage(ref EntityStatChangedMsg msg, MyNetworkClient sender)
        {
            MyEntity entity;

            if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
            {
                return;
            }

            MyEntityStatComponent statComp = null;

            if (!entity.Components.TryGet <MyEntityStatComponent>(out statComp))
            {
                return;
            }

            foreach (var statChange in msg.ChangedStats)
            {
                MyEntityStat localStat;
                if (!statComp.TryGetStat(statChange.StatId, out localStat))
                {
                    continue;
                }
                localStat.Value         = statChange.Amount;
                localStat.StatRegenLeft = statChange.RegenLeft;
            }
        }
        private static void OnStatChangedRequest(ref EntityStatChangedMsg msg, MyNetworkClient sender)
        {
            Debug.Assert(Sync.IsServer);

            MyEntity entity;

            if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
            {
                return;
            }

            MyEntityStatComponent statComp = null;

            if (!entity.Components.TryGet <MyEntityStatComponent>(out statComp))
            {
                return;
            }

            foreach (var statChange in msg.ChangedStats)
            {
                MyEntityStat localStat;
                if (!statComp.TryGetStat(statChange.StatId, out localStat))
                {
                    continue;
                }
                localStat.Value = statChange.Amount;
            }
        }
		public void RequestStatChange(MyEntityStat stat)
		{
			EntityStatChangedMsg msg = new EntityStatChangedMsg();
			msg.EntityId = Entity.EntityId;
			msg.ChangedStats = new List<StatInfo>();

			msg.ChangedStats.Add(new StatInfo() { StatId = stat.StatId, Amount = stat.Value });	// Regen left not used

			MySession.Static.SyncLayer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
		}
        public void RequestStatChange(MyEntityStat stat)
        {
            EntityStatChangedMsg msg = new EntityStatChangedMsg();

            msg.EntityId     = Entity.EntityId;
            msg.ChangedStats = new List <StatInfo>();

            msg.ChangedStats.Add(new StatInfo()
            {
                StatId = stat.StatId, Amount = stat.Value
            });                                                                                                 // Regen left not used

            MySession.Static.SyncLayer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
        }
示例#5
0
        private void SendStatsChanged(List <MyEntityStat> stats)
        {
            Debug.Assert(Sync.IsServer);

            EntityStatChangedMsg msg = new EntityStatChangedMsg();

            msg.EntityId     = Entity.EntityId;
            msg.ChangedStats = new List <StatPair>();

            foreach (var stat in stats)
            {
                msg.ChangedStats.Add(new StatPair()
                {
                    StatId = stat.StatId, Amount = stat.Value
                });
            }

            MySession.Static.SyncLayer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
        }
        private void SendStatsChanged(List <MyEntityStat> stats)
        {
            Debug.Assert(Sync.IsServer);

            EntityStatChangedMsg msg = new EntityStatChangedMsg();

            msg.EntityId     = Entity.EntityId;
            msg.ChangedStats = new List <StatInfo>();

            foreach (var stat in stats)
            {
                stat.CalculateRegenLeftForLongestEffect();
                msg.ChangedStats.Add(new StatInfo()
                {
                    StatId = stat.StatId, Amount = stat.Value, RegenLeft = stat.StatRegenLeft,
                });
            }

            MySession.Static.SyncLayer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
        }
		private static void OnStatChangedRequest(ref EntityStatChangedMsg msg, MyNetworkClient sender)
		{
			Debug.Assert(Sync.IsServer);

			MyEntity entity;
			if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
				return;

			MyEntityStatComponent statComp = null;
			if (!entity.Components.TryGet<MyEntityStatComponent>(out statComp))
				return;

			foreach (var statChange in msg.ChangedStats)
			{
				MyEntityStat localStat;
				if (!statComp.TryGetStat(statChange.StatId, out localStat))
					continue;
				localStat.Value = statChange.Amount;
			}
		}
		private static void OnStatChangedMessage(ref EntityStatChangedMsg msg, MyNetworkClient sender)
		{
			MyEntity entity;
			if (!MyEntities.TryGetEntityById(msg.EntityId, out entity))
				return;

			MyEntityStatComponent statComp = null;
			if (!entity.Components.TryGet<MyEntityStatComponent>(out statComp))
				return;

			foreach (var statChange in msg.ChangedStats)
			{
				MyEntityStat localStat;
				if (!statComp.TryGetStat(statChange.StatId, out localStat))
					continue;
				localStat.Value = statChange.Amount;
				localStat.StatRegenLeft = statChange.RegenLeft;
			}
		}
		private void SendStatsChanged(List<MyEntityStat> stats)
		{
			Debug.Assert(Sync.IsServer);

			EntityStatChangedMsg msg = new EntityStatChangedMsg();
			msg.EntityId = Entity.EntityId;
			msg.ChangedStats = new List<StatInfo>();

			foreach (var stat in stats)
			{
				stat.CalculateRegenLeftForLongestEffect();
				msg.ChangedStats.Add(new StatInfo() { StatId = stat.StatId, Amount = stat.Value, RegenLeft = stat.StatRegenLeft, });
			}

			MySession.Static.SyncLayer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
		}
		private void SendStatsChanged(List<MyEntityStat> stats)
		{
			Debug.Assert(Sync.IsServer);

			EntityStatChangedMsg msg = new EntityStatChangedMsg();
			msg.EntityId = Entity.EntityId;
			msg.ChangedStats = new List<StatPair>();

			foreach (var stat in stats)
				msg.ChangedStats.Add(new StatPair() { StatId = stat.StatId, Amount = stat.Value });

			MySession.Static.SyncLayer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
		}