Exemplo n.º 1
0
        public override void OnEffectStart(GameSpellEffect effect)
        {
            base.OnEffectStart(effect);
            if (Caster.TargetObject as GameLiving == null)
            {
                return;
            }
            GamePlayer player = Caster as GamePlayer;

            if (player == null)
            {
                return;
            }

            INpcTemplate template = NpcTemplateMgr.GetTemplate(Spell.LifeDrainReturn);

            if (template == null)
            {
                String errorMessage = String.Format("NPC template {0} is missing, spell ID = {1}", Spell.LifeDrainReturn, Spell.ID);
                if (log.IsWarnEnabled)
                {
                    log.Warn(errorMessage);
                }
                if (player.Client.Account.PrivLevel > 1)
                {
                    MessageToCaster(errorMessage, eChatType.CT_Skill);
                }
                return;
            }

            Point2D spawnPoint = Caster.GetPointFromHeading(Caster.Heading, 64);
            int     i          = 0;

            for (i = 0; i < 3; i++)
            {
                deamons[i] = new ZoarkatPet(template);
                deamons[i].SetOwnBrain(new ProcPetBrain(player));
                deamons[i].X             = spawnPoint.X + Util.Random(20, 40) - Util.Random(20, 40);
                deamons[i].Y             = spawnPoint.Y + Util.Random(20, 40) - Util.Random(20, 40);
                deamons[i].Z             = Caster.Z;
                deamons[i].CurrentRegion = Caster.CurrentRegion;
                deamons[i].Heading       = (ushort)((Caster.Heading + 2048) % 4096);
                deamons[i].Realm         = Caster.Realm;
                deamons[i].CurrentSpeed  = 0;
                deamons[i].Level         = 36;
                deamons[i].Flags        |= GameNPC.eFlags.FLYING;
                deamons[i].AddToWorld();
                (deamons[i].Brain as IOldAggressiveBrain).AddToAggroList(Caster.TargetObject as GameLiving, 1);
                (deamons[i].Brain as ProcPetBrain).Think();
            }
        }
Exemplo n.º 2
0
        public override void OnEffectStart(GameSpellEffect effect)
        {
            base.OnEffectStart(effect);
            if (Caster.TargetObject as GameLiving == null) return;
            GamePlayer player = Caster as GamePlayer;
            if (player == null) return;

            INpcTemplate template = NpcTemplateMgr.GetTemplate(Spell.LifeDrainReturn);
            if (template == null)
            {
                String errorMessage = String.Format("NPC template {0} is missing, spell ID = {1}", Spell.LifeDrainReturn, Spell.ID);
                if (log.IsWarnEnabled) log.Warn(errorMessage);
                if (player.Client.Account.PrivLevel > 1) MessageToCaster(errorMessage, eChatType.CT_Skill);
                return;
            }

            Point2D spawnPoint = Caster.GetPointFromHeading(Caster.Heading, 64);
            int i = 0;
            for (i = 0; i < 3; i++)
            {
                deamons[i] = new ZoarkatPet(template);
                deamons[i].SetOwnBrain(new ProcPetBrain(player));
                deamons[i].X = spawnPoint.X + Util.Random(20, 40) - Util.Random(20, 40);
                deamons[i].Y = spawnPoint.Y + Util.Random(20, 40) - Util.Random(20, 40);
                deamons[i].Z = Caster.Z;
                deamons[i].CurrentRegion = Caster.CurrentRegion;
                deamons[i].Heading = (ushort)((Caster.Heading + 2048) % 4096);
                deamons[i].Realm = Caster.Realm;
                deamons[i].CurrentSpeed = 0;
                deamons[i].Level = 36;
                deamons[i].Flags |= GameNPC.eFlags.FLYING;
                deamons[i].AddToWorld();
                (deamons[i].Brain as IOldAggressiveBrain).AddToAggroList(Caster.TargetObject as GameLiving, 1);
                (deamons[i].Brain as ProcPetBrain).Think();
            }
        }