private static void Process(ZNet __instance, ZDOID zdoID) { if (zdoID.IsNone()) { return; } var zdo = ZDOMan.instance.GetZDO(zdoID); if (zdo == null) { return; } var dead = zdo.GetBool("dead", false); // If dead, and not in deadPlayers, add to deadPlayers and create event // If dead, and in deadPlayers, do nothing // If not dead, and in deadPlayers, remove // If not dead, and not in deadPlayers, do nothing if (dead) { if (DeadPlayers.Contains(zdoID.userID)) { return; } DeadPlayers.Add(zdoID.userID); ValheimEventHandler.OnPlayerDeath(GetPlayerInfo(__instance, zdoID)); } else if (DeadPlayers.Contains(zdoID.userID)) { DeadPlayers.Remove(zdoID.userID); } }
private static void Postfix(ref Player __instance) { if (!ZNet.instance.IsServer() || ZNet.instance.IsDedicated()) { return; } ValheimEventHandler.OnPlayerDeath(getBasicPlayerInfoFromPlayer(__instance)); }