private void OutOfAreaDecay() { _outofAreaCount++; if (_outofAreaCount > 5) { SiegeInterface.RemoveAllPlayers(); Destroy(); } }
protected override void SetDeath(Unit killer) { base.SetDeath(killer); Pet pet = killer as Pet; Player credited = (pet != null) ? pet.Owner : (killer as Player); if (credited != null) { HandleXPRenown(credited); } SiegeInterface.RemoveAllPlayers(); Health = 0; States.Add((byte)CreatureState.Dead); // Death State PacketOut Out = new PacketOut((byte)Opcodes.F_OBJECT_DEATH, 12); Out.WriteUInt16(Oid); Out.WriteByte(1); Out.WriteByte(0); Out.WriteUInt16(killer.IsPet() ? killer.GetPet().Owner.Oid : killer.Oid); Out.Fill(0, 6); DispatchPacket(Out, true); switch (_type) { case SiegeType.OIL: EvtInterface.AddEvent(Destroy, 180000, 1); // Oil is replacable after 180 seconds break; case SiegeType.GTAOE: case SiegeType.SNIPER: EvtInterface.AddEvent(Destroy, 30000, 1); break; case SiegeType.RAM: EvtInterface.AddEvent(Destroy, 30000, 1); break; } }
public override void Dispose() { SiegeInterface.RemoveAllPlayers(); base.Dispose(); }