Jump to content

Apexx

Elite user
  • Posts

    332
  • Joined

Everything posted by Apexx

  1. I am using as Frost. I did not change the threshold.
  2. There were comments earlier about Death & Decay not working, and I too must pause the bot using alt+x then manually use D&D then un-pause the bot quickly in order for it to work. I don't think I have ever seen it work once in over 2 weeks of using this AIO. Another issue running Frost is that it is always trying to use Icy Touch when just out of range! I would suggest lowing the Fight range just 1yd or so and that should solve the issue. Great stuff though, seriously! Keep up the great work.
  3. The only information I can give you, is I started a new character, I am level 9 no access to potions. When it happens.. every millisecond of running your AIO.
  4. Excellent work with this one! However, I am experiencing an issue with a low level rogue currently. See the image for details.
  5. Hey @Droidz thank you again!
  6. I may have something here if anyone is interested. It still needs more testing though. Code: private void FightEventsOnFightStart(WoWUnit wowUnit, CancelEventArgs cancelable) { try { if (Settings.Backpedal) Var.SetVar("CanBack", true); } catch (Exception ex) { MyFunctions.LogWrite("FightEventsOnFightStart() Exception:" + Environment.NewLine + ex.ToString(), true); } } private async void FightEventsOnFightLoop(WoWUnit wowUnit, CancelEventArgs cancelable) { Random _rand = new Random(); bool _playerAggro = false; bool _playerStuck = false; #region Backpedal if (Settings.Backpedal && // Make sure Include Backpedal is TRUE in Settings (!Player.IsPartyMember || ObjectManager.Me.IsInGroup) && // Let's not backpedal in groups! Var.Exist("CanBack") && // Make sure our Variable exists Var.GetVar<bool>("CanBack") && // Make sure the Variable is TRUE Player.InCombat && // Make sure Player is in combat !Player.IsIndoors && // Skip if Player is indoor !Player.IsCast && // Make sure the Player is NOT casting Target.IsAlive && // Make sure the Target is valid Target.IsTargetingMe && // Make sure the Unit is Targeting the player !wowUnit.IsCast && // We don't want to backpedal from a casting target! MyFunctions.TargetInCooldownLevelRange()) // Target level is > Settings CD lvl { try { // Player.IsFacing(Vector3 targetPosition, [float arcRadians = 0.2]) // Player.IsFacing(u.Position, 1.5f) // 1.5 radians = 85.9 degrees || Arc Length = 37.5yd || Sector Area = 468.75 yd^2 var EnemiesInFrontPlayerNearTarget = ObjectManager.GetWoWUnitHostile().Where(u => u.IsValid && u.IsAlive && !u.InCombat && Player.IsFacing(u.Position, 1.5f) && Player.Target != u.GetBaseAddress && u.Position.DistanceTo(Target.Position) <= Settings.BackpedalScanRadius && (u.Reaction == Reaction.Hated || u.Reaction == Reaction.Hostile || u.Reaction == Reaction.Unfriendly)).OrderBy(o => Player.Position.DistanceTo(o.Position)).ToList(); var EnemiesBehindPlayer = ObjectManager.GetWoWUnitHostile().Where(u => u.IsValid && u.IsAlive && !u.InCombat && !Player.IsFacing(u.Position, 1.5f) && Player.Target != u.GetBaseAddress && u.Position.DistanceTo(Player.Position) <= (Settings.BackpedalScanRadius + (Settings.BackpedalScanRadius / 2)) && (u.Reaction == Reaction.Hated || u.Reaction == Reaction.Hostile || u.Reaction == Reaction.Unfriendly)).OrderBy(o => Player.Position.DistanceTo(o.Position)).ToList(); if (EnemiesInFrontPlayerNearTarget != null && EnemiesInFrontPlayerNearTarget.Count > 0) { foreach (WoWUnit unit in EnemiesInFrontPlayerNearTarget.Take(3)) { MyFunctions.LogDebug("Backpedal -> Enemy (Front): " + unit.Level + "-" + unit.Name + " (Distance: " + System.Math.Round(Player.Position.DistanceTo(unit.Position), 3) + "yd"); } WoWUnit NearestFrontUnit = EnemiesInFrontPlayerNearTarget.FirstOrDefault(); if (EnemiesBehindPlayer != null && EnemiesBehindPlayer.Count < 1) { var timer = new robotManager.Helpful.Timer(_rand.Next(3000, 4000)); var timerCheckDistance = new robotManager.Helpful.Timer(_rand.Next(1500, 2250)); Vector3 PlayerStartPos = Player.Position; int EnemyCountBegin = MyFunctions.HostileUnitsInRange(100.0f); MyFunctions.LogDebug("Backpedal -> Found no enemies behind you. Begin Backpedal"); if (wowUnit != NearestFrontUnit && !_playerAggro) { Move.Backward(Move.MoveAction.DownKey); while (!_playerStuck && (!timer.IsReady || wowUnit.Position.DistanceTo(NearestFrontUnit.Position) <= Settings.BackpedalScanRadius)) { if (Player.GetMove && wowUnit.IsCast) { MyFunctions.LogDebug("Backpedal -> Your target is casting; Stopping movement"); Var.SetVar("CanBack", false); break; } if (MyFunctions.HostileUnitsInRange(100.0f) != EnemyCountBegin) { MyFunctions.LogDebug("Backpedal -> Enemy count changed, you may have aggro'd something; Stopping movement"); Var.SetVar("CanBack", false); break; } if (timerCheckDistance.IsReady && Player.Position.DistanceTo(PlayerStartPos) < 1) just over a 1.5 sec. { MyFunctions.LogDebug("Backpedal -> Player might be stuck; Stopping movement"); _playerStuck = true; Var.SetVar("CanBack", false); break; } if (Player.Position.DistanceTo(NearestFrontUnit.Position) > Settings.BackpedalScanRadius) { MyFunctions.LogDebug("Backpedal -> Distance is greater than " + Settings.BackpedalScanRadius + " yards; Stopping movement"); Var.SetVar("CanBack", false); break; } if (Settings.BackpedalScanRadius > 0 && Player.Position.DistanceTo(PlayerStartPos) > Settings.BackpedalScanRadius) { MyFunctions.LogFight("Backpedal -> Player has moved more than " + Settings.BackpedalScanRadius + " yards; Stopping movement"); Var.SetVar("CanBack", false); break; } if (TraceLine.TraceLineGo(wowUnit.Position)) { MyFunctions.LogFight("Backpedal -> Your target is out of line of sight; Stopping movement"); Var.SetVar("CanBack", false); break; } Thread.Sleep(100); return; } } } else if (EnemiesBehindPlayer != null && EnemiesBehindPlayer.Count > 0) { foreach (WoWUnit unit in EnemiesBehindPlayer) { MyFunctions.LogDebug("Backpedal -> Enemy (Back): " + unit.Level + "-" + unit.Name + " (Distance: " + System.Math.Round(Player.Position.DistanceTo(unit.Position), 3) + "yd"); } MyFunctions.LogDebug("Backpedal -> Skipping movement"); Var.SetVar("CanBack", false); return; } } } catch (Exception ex) { MyFunctions.LogWrite("FightEventsOnFightLoop -> Backpedal Exception:" + Environment.NewLine + ex.ToString(), true); } } }
  7. There is no changing it. Your best bet is to contact the creator of the script and talk to him/her about it.
  8. Is the fight class a DLL file, .cs file, or is it XML?
  9. I would definitely get in touch with the developer and request they remove the Auto Face segment of code. The bot will force it the entire combat and there will be nothing you can do about it as long as it's coded in.
  10. Hi, I am having problems understanding IsBehind. I would like to check if there are any mobs behind me. I am trying to add a backpedal feature to my fight class, but I don't think I am getting it correct. Here's what I tried: var EnemiesBehind = new List<WoWUnit>(); EnemiesBehind.AddRange(ObjectManager.GetWoWUnitHostile().Where( u => u.IsValid && !u.InCombat && u.IsAlive && u.IsBehind(Player.Position, 180.0f) && u.GetDistance <= Settings.BackpedalScanRange).OrderBy( o => ObjectManager.Me.Position.DistanceTo(o.Position))); if (EnemiesBehind != null && EnemiesBehind.Count > 0) { MyFunctions.LogDebug("Enemy, (" + EnemiesBehind.FirstOrDefault().Level + ")" + EnemiesBehind.FirstOrDefault().Name + " found behind you, skipping backpedal!"); Var.SetVar("CanBack", false); return; } Any help is much appreciated! Thank you! Image Reference:
  11. You can Subscribe to the events inside the Initialize() Method like the following (be sure to Unsubscribe from the event on Dispose): ** Code is not tested ** public void Initialize() { wManager.Events.FightEvents.OnFightEnd += FightEventsOnFightEnd; // Subscribe to the Event _isLaunched = true; // ... } public void Dispose() { wManager.Events.FightEvents.OnFightEnd -= FightEventsOnFightEnd; // Unsubscribe from the Event _isLaunched = false; // ... } private void FightEventsOnFightEnd (ulong guid) { Random _rand = new Random(); Logging.WriteDebug("FightEventsOnFightEnd()"); // Wait some random time Thread.Sleep(_rand.Next(2000, 5000)); }
  12. Hi, recently I have been getting an error (I believe when I start and stop Automaton) that keeps popping up from time to time. I will submit a log file if I am able to reproduce the error again. Thanks!
  13. I don't know what the issue is with Warmane. I have been scripting multiple Fight Classes, Plugins, etc for the passed month on Warmane, and have not seen one infraction. Who knows?
  14. Updated to 0.2.3.
  15. Added
  16. What Fight Class are you using?
  17. I don't think I am ready to jeopardize my account just yet, but thanks.
  18. Just checked my account on Lordaeron and it's still active. I wrote an entire PvP Arms Warrior fight class with some Grinding included as well as Fishing.
  19. Try this, put it inside your Plugins folder. LuaDuringRegen.cs
  20. What version of WoW are you interested in this for?
  21. Nice job @cedced30! I am glad you were able to fix your problem! Glad to help! Great added feature as well.
  22. It's easy to write an opposite player faction check and a generic wowunit NPC detection. I actually commented out my own code to detect players of opposite faction because it seems to work just fine with the WRobot built in feature "Enter advanced settings..." --> "Stop game / bot / Security" --> "Pause bot if Nearby Player" enabled which then activates PauseSafely. I might continue expanding the features.
  23. Of course it was that easy. I should have known. Thanks a lot @Droidz! Much appreciated!
  24. Is it possible to pause a plugin while the player is in combat? In my plugin, if I put a Thread.Sleep, it appears that it sleeps the entire bot thread.
×
×
  • Create New...