Пример #1
0
 public void DeleteItem()
 {
     SlotItem.gameObject.SetActive(false);
     SlotItem.Delete();
 }
Пример #2
0
            protected override void OnTick()
            {
                m_Count++;
                if (m_Count < m_MaxCount)
                {
                    switch (Utility.Random(6))
                    {
                    case 0: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "Hear me, animal friends!"); break;

                    case 1: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "Come to my aid."); break;

                    case 2: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "I am a friend to the animals."); break;

                    case 3: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "I call to you my friends."); break;

                    case 4: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "Hear me, my friends!"); break;

                    case 5: m_From.PublicOverheadMessage(MessageType.Emote, 0x47, true, "** whistles softly **"); break;
                    }

                    LokaiSkill lokaiSkill = LokaiSkillUtilities.XMLGetSkills(m_From).SpeakToAnimals;

                    int Max = m_From.FollowersMax - m_From.Followers;
                    int Cur = 0;

                    foreach (Mobile mob in m_From.GetMobilesInRange(10))
                    {
                        if (mob is BaseCreature)
                        {
                            BaseCreature creature = mob as BaseCreature;
                            if (m_Animals.Contains(creature) || creature.Controlled)
                            {
                                continue;
                            }
                            if (creature.AI == AIType.AI_Animal && AllowPackAnimal(creature, lokaiSkill) && creature.Combatant != m_From)
                            {
                                if (Cur >= Max)
                                {
                                    break;
                                }
                                Cur++;
                                m_Animals.Add(creature);
                            }
                        }
                    }

                    foreach (BaseCreature animal in m_Animals)
                    {
                        if (m_Controlled >= m_CreatureMax)
                        {
                            break;
                        }
                        if (Utility.RandomBool() && !animal.Controlled)
                        {
                            m_Controlled++;
                            animal.Owners.Add(m_From);
                            animal.SetControlMaster(m_From);
                            animal.ControlOrder = OrderType.Guard;
                        }
                    }
                }
                else
                {
                    foreach (BaseCreature animal in m_Animals)
                    {
                        animal.Controlled = false;
                        animal.Owners.Remove(m_From);
                        animal.SetControlMaster(null);
                    }
                    m_From.FollowersMax = m_Slots;
                    m_From.SendMessage("The animals have stopped listening to you.");
                    item.Delete();
                }
                m_From.NextSkillTime = Core.TickCount + (int)TimeSpan.FromSeconds(3.0 * (m_MaxCount - m_Count)).TotalSeconds;
            }