public static bool Summon(BaseCreature creature, bool controlled, Mobile caster, Point3D p, int sound, TimeSpan duration) { /* if ( caster.Followers + creature.ControlSlots > caster.FollowersMax ) { caster.SendLocalizedMessage( 1049645 ); // You have too many followers to summon that creature. creature.Delete(); return false; }*/ m_Summoning = true; creature.RangeHome = 10; creature.Summoned = true; if (controlled) { creature.SetControlMaster(caster); creature.SummonMaster = caster; } Container pack = creature.Backpack; if (pack != null) { for (int i = pack.Items.Count - 1; i >= 0; --i) { if (i >= pack.Items.Count) continue; pack.Items[i].Delete(); } } new UnsummonTimer(caster, creature, duration).Start(); creature.m_SummonEnd = DateTime.Now + duration; creature.MoveToWorld(p, caster.Map); Effects.PlaySound(p, creature.Map, sound); m_Summoning = false; creature.Freeze(TimeSpan.FromSeconds(2)); creature.NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(2); return true; }