OnItemSubmit
OxideCarbonItemCalled when item submit occurs.
object OnItemSubmit(Item local1, Mailbox mailbox, BasePlayer fromPlayer)
object OnItemSubmit()Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- local1
- Item
- mailbox
- Mailbox
- fromPlayer
- BasePlayer
Возвращаемое значение
objectВерните не null, чтобы отменить действие игры.
Пример
object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.
private object OnItemSubmit(Item local1, Mailbox mailbox, BasePlayer fromPlayer)
{
Puts("OnItemSubmit");
// ничего не меняем — игра продолжит как обычно
return null;
// повлиять на игру:
// return false; // не null — действие игры отменяется
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания 1
Rust.opj (Oxide)
void Mailbox.SubmitInputItems(BasePlayer)
Передаёт: Item local1, Mailbox mailbox, BasePlayer fromPlayer
РаботаетReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (l1, this, a0)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
public void SubmitInputItems(BasePlayer fromPlayer)
{
for (int i = 0; i < InputContainer.capacity; i++)
{
Item slot = InputContainer.GetSlot(i);
if (Interface.CallHook("OnItemSubmit", slot, this, fromPlayer) != null)
{
return;
}
if (slot == null || !slot.MoveToContainer(inventory))
{
continue;
}
Effect.server.Run(mailDropSound.resourcePath, GetDropPosition());
// …Место встраивания 2
Rust.opj (Oxide)
void Mailbox.SubmitInputItems(BasePlayer)
Передаёт: —
РаботаетReturnBehavior: CustomAssembly-CSharp.dll
Где вызывается (код игры этой ветки)
public void SubmitInputItems(BasePlayer fromPlayer)
{
for (int i = 0; i < InputContainer.capacity; i++)
{
Item slot = InputContainer.GetSlot(i);
object result = Interface.CallHook("OnItemSubmit");
// … проверка результата (Modify-хук, см. Rust.opj)
if (slot == null || !slot.MoveToContainer(inventory))
{
continue;
}
Effect.server.Run(mailDropSound.resourcePath, GetDropPosition());
if (fromPlayer != null && !PlayerIsOwner(fromPlayer))
{
// …Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.