@@ -699,7 +699,7 @@ public ScpSpawnPreferences.SpawnPreferences ScpPreferences
699699 public Vector3 Scale
700700 {
701701 get => ReferenceHub . transform . localScale ;
702- set => SetScale ( value , List ) ;
702+ set => SetScale ( value ) ;
703703 }
704704
705705 /// <summary>
@@ -2065,27 +2065,25 @@ public void Disconnect(string reason = null) =>
20652065 /// </summary>
20662066 public void ResetStamina ( ) => Stamina = StaminaStat . MaxValue ;
20672067
2068+ /// <summary>
2069+ /// Sets the scale of a player on the server side.
2070+ /// </summary>
2071+ /// <param name="scale">The scale to set.</param>
2072+ public void SetScale ( Vector3 scale )
2073+ {
2074+ ReferenceHub . transform . localScale = scale ;
2075+ new SyncedScaleMessages . ScaleMessage ( scale , ReferenceHub ) . SendToAuthenticated ( ) ;
2076+ }
2077+
20682078 /// <summary>
20692079 /// Sets the scale of a player on the server side.
20702080 /// </summary>
20712081 /// <param name="scale">The scale to set.</param>
20722082 /// <param name="viewers">Who should see the updated scale.</param>
20732083 public void SetScale ( Vector3 scale , IEnumerable < Player > viewers )
20742084 {
2075- if ( scale == Scale )
2076- return ;
2077-
2078- try
2079- {
2080- ReferenceHub . transform . localScale = scale ;
2081-
2082- foreach ( Player target in viewers )
2083- Server . SendSpawnMessage ? . Invoke ( null , new object [ ] { NetworkIdentity , target . Connection } ) ;
2084- }
2085- catch ( Exception exception )
2086- {
2087- Log . Error ( $ "{ nameof ( SetScale ) } error: { exception } ") ;
2088- }
2085+ ReferenceHub . transform . localScale = scale ;
2086+ new SyncedScaleMessages . ScaleMessage ( scale , ReferenceHub ) . SendToHubsConditionally ( x => x != null && viewers . Contains ( Get ( x ) ) ) ;
20892087 }
20902088
20912089 /// <summary>
@@ -2095,21 +2093,9 @@ public void SetScale(Vector3 scale, IEnumerable<Player> viewers)
20952093 /// <param name="viewers">Who should see the fake scale.</param>
20962094 public void SetFakeScale ( Vector3 fakeScale , IEnumerable < Player > viewers )
20972095 {
2098- Vector3 currentScale = Scale ;
2099-
2100- try
2101- {
2102- ReferenceHub . transform . localScale = fakeScale ;
2103-
2104- foreach ( Player target in viewers )
2105- Server . SendSpawnMessage . Invoke ( null , new object [ ] { NetworkIdentity , target . Connection } ) ;
2106-
2107- ReferenceHub . transform . localScale = currentScale ;
2108- }
2109- catch ( Exception ex )
2110- {
2111- Log . Error ( $ "{ nameof ( SetFakeScale ) } : { ex } ") ;
2112- }
2096+ SyncedScaleMessages . ScaleMessage scaleMessage = new ( fakeScale , ReferenceHub ) ;
2097+ foreach ( Player player in viewers )
2098+ player . Connection . Send ( scaleMessage , 0 ) ;
21132099 }
21142100
21152101 /// <summary>
0 commit comments