CanUnlock
Usage
- Return a non-null value to override default behavior
Example Autogenerated
csharp
private object CanUnlock( BasePlayer player, CodeLock instance )
{
Puts( "CanUnlock works!" );
return null;
}csharp
private object CanUnlock( BasePlayer player, KeyLock instance )
{
Puts( "CanUnlock works!" );
return null;
}csharp
private bool? CanUnlock( BasePlayer player, ModularCarCodeLock instance, string codeEntered )
{
Puts( "CanUnlock works!" );
return null;
}Location
- CodeLock::TryUnlock(BaseEntity.RPCMessage rpc)
- KeyLock::RPC_Unlock(BaseEntity.RPCMessage rpc)
- ModularCarCodeLock::TryOpenWithCode(BasePlayer player, string codeEntered)
csharp
[RPC_Server.MaxDistance(3f, CheckParent = true)]
[RPC_Server]
private void TryUnlock(RPCMessage rpc)
{
if (rpc.player.CanInteract() && IsLocked() && Interface.CallHook("CanUnlock", rpc.player, this) == null && !IsCodeEntryBlocked() && whitelistPlayers.Contains(rpc.player.userID))
{
DoEffect(effectUnlocked.resourcePath);
SetFlag(Flags.Locked, b: false);
SendNetworkUpdate();
}
//---csharp
[RPC_Server]
[RPC_Server.MaxDistance(3f, CheckParent = true)]
private void RPC_Unlock(RPCMessage rpc)
{
if (rpc.player.CanInteract() && IsLocked() && Interface.CallHook("CanUnlock", rpc.player, this) == null && HasLockPermission(rpc.player))
{
SetFlag(Flags.Locked, b: false);
SendNetworkUpdate();
}
}csharp
public bool TryOpenWithCode(BasePlayer player, string codeEntered)
{
object obj = Interface.CallHook("CanUnlock", player, this, codeEntered);
if (obj is bool)
{
return (bool)obj;
}
if (CodeEntryBlocked(player))
//---