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(); } }
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(); } }