private static void OnPlayerDeath(PlayerDeathEventArgs e) { PlayerMobile dead = e.Mobile as PlayerMobile; if (dead == null || dead.Deleted || dead.Alive) { return; } if (!DeathRegister.Contains(dead)) { DeathRegister.Add(dead); } dead.Frozen = false; if (dead.LastKiller == null || dead.LastKiller is BaseCreature) { dead.SendMessage("Has sido noqueado"); Timer.DelayCall(TimeSpan.FromSeconds(60), DeleteCorpseAndResurrect, dead); } else { dead.SendMessage("Has sido noqueado"); Timer.DelayCall(TimeSpan.FromSeconds(60), DeleteCorpseAndResurrect, dead); // you use DeletePlayer instead DeleteCorpseAndResurrect for instant PVP Kill } }
private static void DeathOnTick() { if (Processing) { return; } Processing = true; foreach (PlayerMobile dead in DeathRegister.ToArray()) { if (dead.Deleted || dead.Alive) { //if (dead.Corpse != null) //dead.Corpse.Delete(); DeathRegister.Remove(dead); continue; } Corpse corpse = dead.Corpse as Corpse; if (corpse != null && !corpse.Deleted && corpse.Carved && DeleteOnCorpseCarved) { dead.SendMessage("Alguien talló tus restos en pedazos pequeños e irreconocibles. Estás muerto."); Timer.DelayCall(TimeSpan.FromSeconds(5), DeletePlayer, dead); DeathRegister.Remove(dead); } } Processing = false; }