@@ -62,12 +62,12 @@ public void SpawnBoss()
62
62
63
63
public void KillTarget ( )
64
64
{
65
- LogCheatNotImplemented ( "KillTarget" ) ;
65
+ KillTargetServerRpc ( ) ;
66
66
}
67
67
68
68
public void KillAllEnemies ( )
69
69
{
70
- LogCheatNotImplemented ( "KillAllEnemies" ) ;
70
+ KillAllEnemiesServerRpc ( ) ;
71
71
}
72
72
73
73
public void ToggleGodMode ( )
@@ -121,6 +121,47 @@ void SpawnBossServerRpc(ServerRpcParams serverRpcParams = default)
121
121
LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "SpawnBoss" ) ;
122
122
}
123
123
124
+ [ ServerRpc ( RequireOwnership = false ) ]
125
+ void KillTargetServerRpc ( ServerRpcParams serverRpcParams = default )
126
+ {
127
+ ulong clientId = serverRpcParams . Receive . SenderClientId ;
128
+ var playerServerCharacter = PlayerServerCharacter . GetPlayerServerCharacter ( clientId ) ;
129
+ if ( playerServerCharacter != null )
130
+ {
131
+ var targetId = playerServerCharacter . NetState . TargetId . Value ;
132
+ if ( NetworkManager . Singleton . SpawnManager . SpawnedObjects . TryGetValue ( targetId , out NetworkObject obj ) )
133
+ {
134
+ var damageable = obj . GetComponent < IDamageable > ( ) ;
135
+ if ( damageable != null && damageable . IsDamageable ( ) )
136
+ {
137
+ damageable . ReceiveHP ( playerServerCharacter , int . MinValue ) ;
138
+ LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "KillTarget" ) ;
139
+ }
140
+ else
141
+ {
142
+ UnityEngine . Debug . Log ( $ "Target { targetId } has no IDamageable component or cannot be damaged.") ;
143
+ }
144
+ }
145
+
146
+ }
147
+ }
148
+
149
+ [ ServerRpc ( RequireOwnership = false ) ]
150
+ void KillAllEnemiesServerRpc ( ServerRpcParams serverRpcParams = default )
151
+ {
152
+ foreach ( var serverCharacter in FindObjectsOfType < ServerCharacter > ( ) )
153
+ {
154
+ if ( serverCharacter . IsNpc && serverCharacter . NetState . LifeState == LifeState . Alive )
155
+ {
156
+ if ( serverCharacter . gameObject . TryGetComponent ( out IDamageable damageable ) )
157
+ {
158
+ damageable . ReceiveHP ( null , - serverCharacter . NetState . HitPoints ) ;
159
+ }
160
+ }
161
+ }
162
+ LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "KillAllEnemies" ) ;
163
+ }
164
+
124
165
[ ServerRpc ( RequireOwnership = false ) ]
125
166
void ToggleGodModeServerRpc ( ServerRpcParams serverRpcParams = default )
126
167
{
0 commit comments