RustTip

OnDefaultItemsReceived

OxideCarbonPlayer

Called when a default items is received.

void OnDefaultItemsReceived(PlayerInventory playerInventory)
Метод изменился — проверить — код метода игры отличается от того, под который записан хук в Oxide. Хук всё равно вызывается, но место вызова могло сместиться — стоит проверить после обновления.

Параметры

playerInventory
PlayerInventory

Возвращаемое значение

voidВозвращаемое значение игнорируется — хук только уведомляет.

Пример

private void OnDefaultItemsReceived(PlayerInventory playerInventory)
{
    Puts("OnDefaultItemsReceived");
}

Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.

Место встраивания

Rust.opj (Oxide)
void PlayerInventory.GiveDefaultItems()

Передаёт: PlayerInventory playerInventory

Метод изменился — проверитьReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this)Assembly-CSharp.dll

Где вызывается (код игры этой ветки)

// …
	TryGiveItem("partyhat", 0uL, containerWear);
}
if (IsChristmas() && !baseEntity.IsInTutorial)
{
	TryGiveItem("snowball", 0uL, containerBelt);
	TryGiveItem("snowball", 0uL, containerBelt);
	TryGiveItem("snowball", 0uL, containerBelt);
}
Interface.CallHook("OnDefaultItemsReceived", this);
defaultItemsAwaitingSkins = baseEntity.IsConnected && !baseEntity.blueprints.steamInventory.IsLoaded;
void GiveDefaultItemWithSkin(string convarSkinName, string itemShortName)
{
	ulong num = 0uL;
	int infoInt = baseEntity.GetInfoInt(convarSkinName, 0);
	bool flag = false;
	if (infoInt > 0 && baseEntity.blueprints.CheckSkinOwnership(infoInt, baseEntity))
	{
// …

Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.