RustTip

OnRespawnInformationGiven

OxideCarbonPlayer

Called when respawn information given occurs.

void OnRespawnInformationGiven(BasePlayer basePlayer, List<ProtoBuf.RespawnInformation.SpawnOptions> list)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

basePlayer
BasePlayer
list
List<ProtoBuf.RespawnInformation.SpawnOptions>

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

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

Пример

private void OnRespawnInformationGiven(BasePlayer basePlayer, List<ProtoBuf.RespawnInformation.SpawnOptions> list)
{
    Puts("OnRespawnInformationGiven");
}

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

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

Rust.opj (Oxide)
void BasePlayer.SendRespawnOptions()

Передаёт: BasePlayer basePlayer, List<ProtoBuf.RespawnInformation.SpawnOptions> list

РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, l0)Assembly-CSharp.dll

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

// …
{
	if (NexusServer.Started && ZoneController.Instance.CanRespawnAcrossZones(this))
	{
		CollectExternalAndSend();
		return;
	}
	List<RespawnInformation.SpawnOptions> spawnOptions = Facepunch.Pool.Get<List<RespawnInformation.SpawnOptions>>();
	GetRespawnOptionsForPlayer(spawnOptions, userID);
	Interface.CallHook("OnRespawnInformationGiven", this, spawnOptions);
	SendToPlayer(spawnOptions, loading: false);
	async void CollectExternalAndSend()
	{
		List<RespawnInformation.SpawnOptions> list = Facepunch.Pool.Get<List<RespawnInformation.SpawnOptions>>();
		GetRespawnOptionsForPlayer(list, userID);
		List<RespawnInformation.SpawnOptions> allSpawnOptions = Facepunch.Pool.Get<List<RespawnInformation.SpawnOptions>>();
		foreach (RespawnInformation.SpawnOptions item in list)
		{
// …

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