private void View_ReceivedStream(NetMessage message, Player player) { if ((m_state & ReciveingFlag) != 0) { SyncEntry sync = default(SyncEntry), last = m_last; sync.OnDeserialize(message); if (m_time > sync.Time) { sync.Position = m_owner.Position + (sync.Position - last.Position); sync.Rotation = m_owner.Rotation + (sync.Rotation - last.Rotation); } m_last = sync; m_owner.UpdateLocation(sync.Position, sync.Rotation); } }
private void View_ReceivedStream(NetMessage arg1, Player arg2) { _entry.OnDeserialize(arg1); _position = _entry.Position; _rotation = _entry.Rotation; }
private void View_ReceivedStream(NetMessage arg1, Player arg2) { if (_resetLock) { _creature.View.Lock(_resetLock = _locked = false); } else if (_locked) { return; } _entry.OnDeserialize(arg1); if (_time < _entry.Time) { float distance = Vector3.DistanceSquared(_position, _entry.Position); _speed = distance / (float)(_entry.Time - _time); if (distance > Constants.EpsilonX2) { //if (_speed > 45f && _player.User.Access < AccessLevel.TeamMember) //{ //_locked = true; //_player.Disconnect("MOV EAX, #DEADC0DE"); //} //else { switch (_player.Char.Pony.Race) { case CharacterType.EarthPony: _running = _speed > 6f; break; case CharacterType.Unicorn: _running = _speed > 5.15f; break; case CharacterType.Pegasus: if (_flying) { _running = _speed > 18f; } else { _running = _speed > 5.25f; } break; } } if (_player.Shop != null && Vector3.DistanceSquared(_position, _player.Shop.Position) > Constants.MaxInteractionDistanceSquared) { _player.Shop.CloseShop(_player); } if (_player.Trade.IsTrading && Vector3.DistanceSquared(_position, _player.Trade.Target.Object.Position) > Constants.MaxInteractionDistanceSquared) { _player.Trade.CloseBoth(); } } else { _running = false; } _time = _entry.Time; _position = _entry.Position; _rotation = _entry.Rotation; } }