Jump to content

iMod

Elite user
  • Posts

    581
  • Joined

  • Last visited

Everything posted by iMod

  1. Thanks I modified my version above and will test it later.
  2. Thanks for your anwer. I'm currently using public static int? GetGroupNumber(this WoWUnit instance) { // Create lua command string luaCommand = $@"for i = 1, GetNumRaidMembers() do name, rank, groupNumber = GetRaidRosterInfo(i); if(name == '{instance.Name}') then return groupNumber; end end "; // Get index number of the unit int result = Framelock.Lock(() => { // Return return Lua.LuaDoString<int>(command: luaCommand); }); // Failed? if (result == 0) { // Return return null; } // Return return result; } But I will compare both methods and check what performs better.
  3. Hi everyone, is there a efficent way to get the raid group number of a raid member or the whole raid?
  4. ALT + X = Pause ALT + C = Stop the product If you already knew them forget my answer ?
  5. Thanks like always... was my fault. You can close this bug request. 1. GetBuff(spellName: "") => Works, I took the ingame name but the english name was requiered. 2. HaveBuff works now for some reasons... no clue may I was testing at a dummy. The ObjectManager.Target works way better, thanks for that hint.
  6. ObjectManager.Me.TargetObject.GetBuff("BuffName"); Always returns a invalid aura ObjectManager.Me.TargetObject.HaveBuff(id) Always returns false. With Ids array it is is working but it takes 200ms more to circle through it which kills my fight class performance. Are the auren updated in each objectmanager update cycle or just by calling one of the buff functions? Greez iMod
  7. UnitExtension: /// <summary> /// Gets the units around our unit in the given range. /// </summary> /// <param name="range">The range we are looking in.</param> /// <param name="objectType">The object type we are looking for.</param> /// <returns>Returns a list of units if we found one, otherwise a empty list.</returns> public static IEnumerable<WoWUnit> GetAttackableUnits(this WoWUnit instance, int range, WoWObjectType objectType = WoWObjectType.Unit) { // Get units IEnumerable<WoWUnit> results = ObjectManager.GetObjectWoWUnit().Where(u => u.Type == objectType && u.IsAlive && u.MaxHealth > 500 && (u.Position.DistanceTo2D(instance.Position) <= range) && u.IsAttackable && !TraceLine.TraceLineGo(u.Position)); // Return return results; } Sample: bool useSwipe = (ObjectManager.Me.GetAttackableUnits(5).Count() >= 3);
  8. WoWUnit Extension "IsAutoAttacking" (WOTLK) /// <summary> /// Gets the flag if the unit is auto attacking. /// </summary> /// <returns>Returns true if the unit is auto attacking, otherwise false.</returns> public static bool IsAutoAttacking(this WoWUnit instance) { // Read bool result = Memory.WowMemory.Memory.ReadBoolean(address: instance.GetBaseAddress + (uint)0xA20); // Return return result; } I'm not sure about the other extension offsets.
  9. My code does the same if i'm not total wrong. It just gets the highes talent and returns a "Number/ID" instead of the name.
  10. Nice to see some progress even on that pc of old code ;) One thing i don't understand is how can it be more accurate if you still loop over the tabs and take the one with the highes points? Is is because you read out the name? If so how about multi language can that cause some issues? I know its just a sample code but you may should check if its not a priest because you don't got any else block. (2cents)
  11. You also had to pay if you want a good rotation thats why they implemented the buddy store. The quest profiles where made by a guy who got paid for it. I would not call it directly "free".
  12. Are you using their client? I'm using the original one.
  13. Ah damn, yeah i remember that issue with the dummies.
  14. #region get tanks List<WoWPlayer> getTanks() { // Focus set? if(ObjectManager.Me.FocusObj != null) { // Return list with the focus object return new List<WoWPlayer>(){ObjectManager.Me.FocusObj}; } // Return empty list return new List<WoWPlayer>(); } This is just a quick and dirty solution.
  15. Change your init method to public void Initialize() // When product started, initialize and launch Fightclass { _isLaunched = true; { EventsLuaWithArgs.OnEventsLuaWithArgs += delegate (LuaEventsId id, List<string> args) { if (id == LuaEventsId.MODIFIER_STATE_CHANGED && args.Count == 2) { // Possible values are LSHIFT, RSHIFT, LCTRL, RCTRL, LALT, and RALT string key = args[0]; // 1 means that the the key has been pressed. 0 means that the key has been released int state = int.Parse(args[1]); // AOE mode if (key == "LALT" && state == 0) { // Set status aoeMode = !aoeMode; Logging.Write($"AOE {this.aoeMode.ToString()}"); } // Burst mode if (key == "LCTRL" && state == 0) { // Set status burstMode = !burstMode; Logging.Write($"BURST {this.burstMode.ToString()}"); } } }; } Logging.Write("[My fightclass] Is initialized."); Rotation(); } Make sure the aoe or burst mode are really enabled by checking the log. Also it helps if you write more logging stuff to make sure the routine enters the if block or not just for debugging.
  16. Only in theorie, you can calculate and make a guess, otherwise no. If i'm not wrong there was a lua library that does it for a healing addon but sadly i don't remember the name y.y
  17. Just hover with your mouse over the red text and tell me the error message wich should pop up ?
  18. Nah i'm lucky i don't had to update any of my projects after updates since yet and DistanceTo is working for me (WOTLK) What kind of error do you get?
  19. The forum is full of posts like yours. If you buy a product without to inform your self about, its your own fault. Those people can be happy that there are some ppl who selling their stuff that cheap. And for real try to create your own and you will see if you want quality you need to pay for it. Welcome in the world.
  20. The Party namespace offers you a whole object list of the player so you just need to select 2 player and use the DistanceTo property of the position property.of the WoWPlayer object you selected. But yeah you also can use the guid.
  21. WoWPlayer one = new WoWPlayer(); WoWPlayer two = new WoWPlayer(); // Get distance between 2 objects float distance = one.Position.DistanceTo(two.Position); If you are looking for party stuff take a look at "wManager.Wow.Helpers.Party" Hope i understood the question right ? Do you want to be able to check if the whole group is near or just one of them?
  22. Donno if that helps and its right out of the mind and just an idea... wManager.Events.FightEvents.OnFightStart += (WoWUnit unit, System.ComponentModel.CancelEventArgs e) => { // Not in LoS if (TraceLine.TraceLineGo(unit.Position)) { // Get waypoints to the target IEnumerable<robotManager.Helpful.Vector3> waypoints = PathFinder.Pather.FindPath(ObjectManager.Me.Position, unit.Position, out bool result, out bool resultPartial); foreach (robotManager.Helpful.Vector3 waypoint in waypoints) { if (!TraceLine.TraceLineGo(waypoint)) { // In LoS MovementManager.MoveTo(waypoint); // While moving.... } } } }; You also need to cancel that event and i'm not sure if its the right one. There is no "not in LoS" event as far i know.
  23. I'm not sure how your complete code looks like or if you just using c# but if you have your own project you need to add a reference to Quester.dll and use the following using using Quester.Profile; You also need using wManager.Wow.Class; using wManager.Wow.Helpers; if you dont already using them.
×
×
  • Create New...