OnVehicleModuleMove
OxideCarbonVehicleCalled when an admin repair action fixes nearby vehicles.
object OnVehicleModuleMove(BaseVehicleModule local0, BaseModularVehicle baseModularVehicle, BasePlayer player)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- local0
- BaseVehicleModule
- baseModularVehicle
- BaseModularVehicle
- player
- BasePlayer
Возвращаемое значение
objectВозвращённое значение заменяет результат игры; null — игра решает сама.
Пример
object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.
private object OnVehicleModuleMove(BaseVehicleModule local0, BaseModularVehicle baseModularVehicle, BasePlayer player)
{
Puts("OnVehicleModuleMove");
// ничего не меняем — игра продолжит как обычно
return null;
// повлиять на игру:
// return default(PlayerInventory.CanMoveFromResponse); // своё значение вместо результата игры
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания
Rust.opj (Oxide)
PlayerInventory.CanMoveFromResponse BaseModularVehicle.CanMoveFrom(BasePlayer, Item)
Передаёт: BaseVehicleModule local0, BaseModularVehicle baseModularVehicle, BasePlayer player
РаботаетReturnBehavior: ExitWhenNonNullArgumentBehavior: UseArgumentString (l0, this, a0)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
// …
{
if (item.info.GetComponent<ItemModVehicleChassis>() != null)
{
return PlayerInventory.CanMoveFromResponse.Failure(ItemModVehicleChassis.CantMoveChassisError);
}
BaseVehicleModule moduleForItem = GetModuleForItem(item);
if (moduleForItem != null)
{
object returnvar = Interface.CallHook("OnVehicleModuleMove", moduleForItem, this, player);
if (returnvar is PlayerInventory.CanMoveFromResponse)
{
return (PlayerInventory.CanMoveFromResponse)returnvar;
}
return new PlayerInventory.CanMoveFromResponse(moduleForItem.CanBeMovedNow(), moduleForItem.CannotBeMovedNowReason());
}
return PlayerInventory.CanMoveFromResponse.Success();
}Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.