---
title: "OnNPCDeath | open.mp"
description: "当 NPC 死亡时调用此回调。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCDeath
language: zh-CN
---

# OnNPCDeath

注意

这个回调是在omp v1.5.8.3079中添加的，在以前的版本中不起作用！

## 描述

当 NPC 死亡时调用此回调。

| 参数 | 说明 |
| --- | --- |
| npcid | 死亡的 NPC 的 ID |
| killerid | 击杀 NPC 的玩家/NPC 的 ID（如果没有则为 INVALID\_PLAYER\_ID） |
| Weapon:reason | 死亡原因（武器 ID 或死亡原因） |

## 示例

```c
public OnNPCDeath(npcid, killerid, WEAPON:reason)
{
    printf("[NPC] NPC %d 死亡（击杀者：%d，武器：%d）", npcid, killerid, _:reason);

    // 通知追踪此 NPC 的玩家
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
        if (!IsPlayerConnected(playerid))
            continue;

        if (PlayerNPC[playerid] == npcid)
        {
            if (killerid == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, 0xFF0000FF, "你追踪的 NPC %d 已死亡（武器：%d）", npcid, _:reason);
            }
            else
            {
                SendClientMessage(playerid, 0xFF0000FF, "你追踪的 NPC %d 被玩家 %d 击杀（武器：%d）", npcid, killerid, _:reason);
            }
        }
    }
    return 1;
}
```

## 注意事项

-   如果 NPC 死亡不是由玩家造成的，`killerid` 参数将为 `INVALID_PLAYER_ID`
-   `reason` 参数包含导致死亡的武器 ID（未知/其他原因为 255）

## 相关函数

以下函数可能有用，因为它们与此回调以某种方式相关。

-   [NPC\_Kill](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_Kill): 击杀 NPC
-   [NPC\_Respawn](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_Respawn): 重生死亡的 NPC
-   [NPC\_GetHealth](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_GetHealth): 获取 NPC 的生命值
-   [NPC\_SetHealth](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/NPC_SetHealth): 设置 NPC 的生命值

## 相关回调

-   [OnNPCSpawn](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCSpawn): 当 NPC 生成时调用
-   [OnNPCRespawn](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCRespawn): 当 NPC 重生时调用
-   [OnNPCTakeDamage](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnNPCTakeDamage): 当 NPC 受到伤害时调用
-   [OnPlayerDeath](https://omp.itsneufox.com/zh-CN/docs/scripting/callbacks/OnPlayerDeath): 当玩家死亡时调用
