@@ -699,7 +699,7 @@ public ScpSpawnPreferences.SpawnPreferences ScpPreferences
699699 public Vector3 Scale
700700 {
701701 get => ReferenceHub . transform . localScale ;
702- set => SetScale ( value ) ;
702+ set => SetScale ( value , List ) ;
703703 }
704704
705705 /// <summary>
@@ -2065,25 +2065,27 @@ 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-
20782068 /// <summary>
20792069 /// Sets the scale of a player on the server side.
20802070 /// </summary>
20812071 /// <param name="scale">The scale to set.</param>
20822072 /// <param name="viewers">Who should see the updated scale.</param>
20832073 public void SetScale ( Vector3 scale , IEnumerable < Player > viewers )
20842074 {
2085- ReferenceHub . transform . localScale = scale ;
2086- new SyncedScaleMessages . ScaleMessage ( scale , ReferenceHub ) . SendToHubsConditionally ( x => x != null && viewers . Contains ( Get ( x ) ) ) ;
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+ }
20872089 }
20882090
20892091 /// <summary>
@@ -2093,9 +2095,21 @@ public void SetScale(Vector3 scale, IEnumerable<Player> viewers)
20932095 /// <param name="viewers">Who should see the fake scale.</param>
20942096 public void SetFakeScale ( Vector3 fakeScale , IEnumerable < Player > viewers )
20952097 {
2096- SyncedScaleMessages . ScaleMessage scaleMessage = new ( fakeScale , ReferenceHub ) ;
2097- foreach ( Player player in viewers )
2098- player . Connection . Send ( scaleMessage , 0 ) ;
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+ }
20992113 }
21002114
21012115 /// <summary>
0 commit comments