OnEntityDeath
OxideEntityvoid OnEntityDeath(ResourceEntity resourceEntity, HitInfo info)
void OnEntityDeath(MonumentBlocker monumentBlocker, HitInfo info)
void OnEntityDeath(BaseCombatEntity baseCombatEntity, HitInfo info)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- resourceEntity
- ResourceEntity
- info
- HitInfo
Возвращаемое значение
voidВозвращаемое значение игнорируется — хук только уведомляет.
Пример
private void OnEntityDeath(ResourceEntity resourceEntity, HitInfo info)
{
Puts("OnEntityDeath");
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания 1
Rust.opj (Oxide)
void ResourceEntity.OnDied(HitInfo)
Передаёт: ResourceEntity resourceEntity, HitInfo info
РаботаетReturnBehavior: ContinueArgumentBehavior: AllAssembly-CSharp.dll
Где вызывается (код игры этой ветки)
public virtual void OnDied(HitInfo info)
{
isKilled = true;
Interface.CallHook("OnEntityDeath", this, info);
Kill();
}Место встраивания 2
Rust.opj (Oxide)
void MonumentBlocker.OnDied(HitInfo)
Передаёт: MonumentBlocker monumentBlocker, HitInfo info
РаботаетReturnBehavior: ContinueArgumentBehavior: AllAssembly-CSharp.dll
Где вызывается (код игры этой ветки)
public override void OnDied(HitInfo info)
{
isKilled = true;
Interface.CallHook("OnEntityDeath", this, info);
Kill(DestroyMode.Gib);
}Место встраивания 3
Rust.opj (Oxide)
void BaseCombatEntity.Die(HitInfo)
Передаёт: BaseCombatEntity baseCombatEntity, HitInfo info
РаботаетReturnBehavior: ContinueArgumentBehavior: AllAssembly-CSharp.dll
Где вызывается (код игры этой ветки)
// …
{
if (IsDead())
{
return;
}
LogEntry(RustLog.EntryType.Combat, 2, "died");
health = 0f;
lifestate = LifeState.Dead;
Interface.CallHook("OnEntityDeath", this, info);
if (info != null && info.InitiatorPlayer != null && !info.InitiatorPlayer.IsNpc && info.InitiatorPlayer != this)
{
BaseMission.MissionEventPayload payload = new BaseMission.MissionEventPayload
{
NetworkIdentifier = info.InitiatorPlayer.net.ID,
UintIdentifier = prefabID,
IntIdentifier = 1,
WorldPosition = transform.position
// …Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.