OnMountedWeaponReload
OxidePrimitiveobject OnMountedWeaponReload(BaseMountedWeapon baseMountedWeapon, BasePlayer player)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- baseMountedWeapon
- BaseMountedWeapon
- player
- BasePlayer
Возвращаемое значение
objectВерните не null, чтобы прервать метод игры.
Пример
object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.
private object OnMountedWeaponReload(BaseMountedWeapon baseMountedWeapon, BasePlayer player)
{
Puts("OnMountedWeaponReload");
// ничего не меняем — игра продолжит как обычно
return null;
// повлиять на игру:
// return false; // не null — действие игры отменяется
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания
Rust.opj (Oxide)
bool BaseMountedWeapon.ServerStartReload(BasePlayer)
Передаёт: BaseMountedWeapon baseMountedWeapon, BasePlayer player
РаботаетReturnBehavior: ExitWhenNonNullArgumentBehavior: UseArgumentString (this, a0)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
public bool ServerStartReload(BasePlayer player)
{
BasePlayer mounted = GetMounted();
if (mounted == null || player == null || player != mounted || HasFlag(Flags.Reserved4) || UnableToStartReloadServer(player))
{
return false;
}
object returnvar = Interface.CallHook("OnMountedWeaponReload", this, player);
if (returnvar != null)
{
return returnvar is bool && (bool)returnvar;
}
reloadingPlayer = player;
using (FlagsUpdateScope flagsUpdateScope = StartSetFlags(FlagsUpdateMode.SendNetworkUpdate))
{
flagsUpdateScope.Set(Flags.Reserved4, b: true);
// …Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.