October 11, 20169 yr Hi, I'm tweaking my c# rogue class and I want to know how I can target the lowest hostile unit in a 10 yard range and Mark For Death on him when MFD is available. When i use Interact.InteractGameObject(unit.GetBaseAddress, true); after getting the unit, the game crashes :( Thx in advance!
October 11, 20169 yr if (ObjectManager.Me.TargetObject.IsDead && ObjectManager.Me.TargetObject.HaveBuff("Mark For Death") && new Spell("MFD ").IsSpellUsable) { // Settings int range = 10; WoWObjectType objectType = WoWObjectType.Unit; // Get target WoWUnit unit = ObjectManager.GetWoWUnitHostile().OrderBy(o => o.HealthPercent).FirstOrDefault(u => u.Type == objectType && u.IsAlive && (u.GetDistance <= range) && u.IsAttackable); if (unit != null) { Interact.InteractGameObject(unit.GetBaseAddress); } } You need to correct the spell names but something like this should work i took it out of my library so maybe something is missing and it is not tested like this. Hope that was something that will answer your question o.O
October 11, 20169 yr Author 38 minutes ago, iMod said: if (ObjectManager.Me.TargetObject.IsDead && ObjectManager.Me.TargetObject.HaveBuff("Mark For Death") && new Spell("MFD ").IsSpellUsable) { // Settings int range = 10; WoWObjectType objectType = WoWObjectType.Unit; // Get target WoWUnit unit = ObjectManager.GetWoWUnitHostile().OrderBy(o => o.HealthPercent).FirstOrDefault(u => u.Type == objectType && u.IsAlive && (u.GetDistance <= range) && u.IsAttackable); if (unit != null) { Interact.InteractGameObject(unit.GetBaseAddress); } } You need to correct the spell names but something like this should work i took it out of my library so maybe something is missing and it is not tested like this. Hope that was something that will answer your question o.O Not entirely sure how to add this in my spellstate list in C#... Last time i used Interact.InteractGameObject(unit.GetBaseAddress, true); and this crashed the game :-(
October 11, 20169 yr 27 minutes ago, MrBottie said: Not entirely sure how to add this in my spellstate list in C#... Last time i used Interact.InteractGameObject(unit.GetBaseAddress, true); and this crashed the game :-( With what kind of error? ;) Well you can create a method that targets what you want and use it in the spellstate engine. For the automate target you could write a small plugin that targets for you.
October 12, 20169 yr Author 14 hours ago, iMod said: With what kind of error? ;) Well you can create a method that targets what you want and use it in the spellstate engine. For the automate target you could write a small plugin that targets for you. private readonly Spell MarkedforDeath = new Spell("Marked for Death"); States = new List<State> { ... new SpellState("Marked for Death", 23, context => testMarkForDeath() == 1, false, true, false, false, false, false, false, false, 0, true, false, false, false, false, false, wManager.Wow.Helpers.FightClassCreator.YesNoAuto.Yes, "Combopoints Instant (Talent)", "none", true, true, false), ... } public int testMarkForDeath() { int mfd = 0; Logging.WriteFight("MFD TEST"); if (ObjectManager.Me.TargetObject.IsDead && MarkedforDeath.IsSpellUsable && ObjectManager.Me.HaveBuff("Blade Flurry")) { // Settings int range = 10; WoWObjectType objectType = WoWObjectType.Unit; // Get target WoWUnit unit = ObjectManager.GetWoWUnitHostile().OrderBy(o => o.HealthPercent).FirstOrDefault(u => u.Type == objectType && u.IsAlive && (u.GetDistance <= range) && u.IsAttackable); if (unit != null) { Logging.WriteFight("AOE UNIT FOUND"); Interact.InteractGameObject(unit.GetBaseAddress); } mfd = 1; } return mfd; } Can you tell me why it's not doing what I want? :) So when I'm doing AOE damage I want it to target the lowest Health mob of the pack and put MFD on his head when it's available...
Create an account or sign in to comment