Jump to content

Athyx

Elite user
  • Content Count

    302
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Athyx got a reaction from Sleepwalker in Use certain spell when a certain number of mobs are in range?   
    Here's what I use to check attackers in range:
    public static int GetAttackerCountInRange(float yards) { int EnemyCountInRange = ObjectManager.GetUnitAttackPlayer().Count(t => t.IsAlive && t.IsValid && t.IsAttackable && t.InCombat && t.GetDistance <= yards); if (EnemyCountInRange > 0) { Logging.WriteDebug($"Enemy attacking count = {EnemyCountInRange}"); return EnemyCountInRange; } return 0; }  
  2. Like
    Athyx got a reaction from Zontir in Which server and version?   
    I have played Warmane on and off for a long time now and was never caught.. I cannot speak for other people's experiences though.
  3. Thanks
    Athyx got a reaction from Droidz in Official WRobot API Documentation   
    This has been long awaited for! Thank you everyone for your dedicated work towards the project! 
  4. Thanks
    Athyx reacted to Droidz in Official WRobot API Documentation   
    WRobot API Documentation
    Website: https://wrobot.eu/byme/doc/
    Offline documentation: https://wrobot.eu/byme/doc/WRobot.chm
    (from Wotlk version, Updated the 01 February 2021)
     
     Unofficial documentation is available here   , it is still very useful because it contains examples and descriptions that are not available in the official.
     
     
  5. Like
    Athyx reacted to Droidz in Happy New Year 2021   
    Wishing you a happy new year with the hope that you will have many blessings in the year to come.

    View full article
  6. Like
    Athyx reacted to Droidz in BfA version   
    Hi,
    is done, I released version for BfA (you need to redownload updater)
  7. Like
    Athyx reacted to Matenia in Detect Target Immunities (ie: Immune to Diseases)   
    I hardcode lists and partially rely on user feedback.

    Now you could parse combat log events, store the results per mob entry and maybe even serialize them. That way, you're good to go. Unfortunate though, if mobs are immune for only a few seconds and you never use certain spells anymore because they temporarily immuned thanks to a buff.

    Although I guess you could write some smart detection for a "buff state" in combination with the school/spell. Spell school can be ready from spell info and combatlog iirc.
  8. Thanks
    Athyx reacted to Zer0 in Detect Target Immunities (ie: Immune to Diseases)   
    This is how I do it (TBC).
    Although as Matenia pointed out, some mobs might only be temporary immune to a school. That being said, I'd rather handle those rare exceptions than random immunities that differ from server to server.
     
    EventsLuaWithArgs.OnEventsLuaWithArgs += LuaEventsHandler; private void LuaEventsHandler(LuaEventsId id, List<string> args) { if (args[11] == "IMMUNE")) { Logging.Write($"{ObjectManager.Target.Name} is immune to {args[9]}"); // Your code to handle spell ban // args[9] is the name of the spell } }  
  9. Haha
    Athyx got a reaction from ⎝͠҉̭̫͖̗͇ͅTraWin ̍̍̍̍̍̍̍̍̍ in Bot spiraling up as high as possible   
    Working on it now. Thanks!
  10. Like
    Athyx reacted to Droidz in Bot spiraling up as high as possible   
    If anyone has time to try with this file: robotManager.dll (move and replace file in the "Bin" folder and ignore the update request when the bot starts). This file will log when WRobot presses a key, with several log files I could have been a better idea of what is happening with Wotlk (do not use 'Use lua to move' option)
  11. Like
    Athyx got a reaction from Matenia in Authenticate Your Intellectual Property   
    I stumbled across a website the other day, while looking for an alternative to Rocketr to process payments, and validate plugins, fight classes, etc.
    when I found, cryptlex (Powerful software licensing API).
    Quick Start
    Using LexActivator with C#
    After working with the code a bit, I wanted to share a demo project, along with a demo product online, as well as license keys if anyone would like to test it out for themselves.
    This project may have bugs and may not work 100%. I am hoping if other programmers check out the code they can offer ideas, comments, and even
    constructive criticism using this method.
    There is a "WRobot" directory in the attached zip file that stores the files required to run the LexActivator C# wrapper as well as the plugin and the product.dat file.
    Extract the files into their appropriate directory.
    VirusTotal
    CryptlexAuthenticator.zip
  12. Thanks
    Athyx got a reaction from Xercses in Mage dont stop conjouring Water   
    In Settings -> Advanced Settings -> Other tab, make sure to match your in game latency. This may or may not help. If that doesn't fix it, it sounds like an issue inside the selected Fight Classes.
  13. Like
    Athyx got a reaction from TheSmokie in Authenticate Your Intellectual Property   
    I stumbled across a website the other day, while looking for an alternative to Rocketr to process payments, and validate plugins, fight classes, etc.
    when I found, cryptlex (Powerful software licensing API).
    Quick Start
    Using LexActivator with C#
    After working with the code a bit, I wanted to share a demo project, along with a demo product online, as well as license keys if anyone would like to test it out for themselves.
    This project may have bugs and may not work 100%. I am hoping if other programmers check out the code they can offer ideas, comments, and even
    constructive criticism using this method.
    There is a "WRobot" directory in the attached zip file that stores the files required to run the LexActivator C# wrapper as well as the plugin and the product.dat file.
    Extract the files into their appropriate directory.
    VirusTotal
    CryptlexAuthenticator.zip
  14. Like
    Athyx reacted to maukor in Grind if reputation isnt Friendly   
    Yeah, i saw your post, didnt got how it works, using Smokie ToolBox now, works fine : ) Thanks anyway
  15. Like
    Athyx got a reaction from maukor in Grind if reputation isnt Friendly   
    Perfect! That is all that matters. I lead you into the correct direction. Have a nice day!
  16. Like
    Athyx reacted to TheSmokie in Interact with NPC - PickUp Quest if option is available   
    You could use my toolbox > 
    input into custom script, and call it using 
     
    return faction(“name”, amount);
     
  17. Like
    Athyx got a reaction from Pudge in Check For Hostiles Unit(s) Behind Player   
    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); } } }  
  18. Like
    Athyx reacted to Andoido in Help Requested - Create simple addon to communicate with custom plugin   
    Shoot me a PM, I can give you the custom code used in most of my Profiles if you are interested.
    The link above works too!
  19. Like
    Athyx reacted to Talamin in Help Requested - Create simple addon to communicate with custom plugin   
    Here is all you need, take a look at the Plugin!
     
  20. Thanks
    Athyx reacted to Ordush in Fightclasses & Stuns   
    ofc. 🙂
    If you do a dungeon or a raid, notice that you can't hear any of the other players yelling "Spell is not ready yet". Trust me 90% of wow players mash keys. 😛
  21. Like
    Athyx reacted to Matenia in Fightclasses & Stuns   
    Your client blocks it from sending abilities to the server if you're stunned. So the spamming you see isn't visible to anyone and the server isn't receiving any info about it either.
  22. Thanks
    Athyx got a reaction from sith500 in ObjectManager.Target.HaveBuff Array   
    private static List<string> MagicEffects = new List<string>(); MagicEffects.Add("Amplify Magic"); MagicEffects.Add("Avenging Wrath"); MagicEffects.Add("Barkskin"); MagicEffects.Add("Bloodlust"); MagicEffects.Add("Dampen Magic"); MagicEffects.Add("Divine Favor"); MagicEffects.Add("Earth Shield"); MagicEffects.Add("Fade"); MagicEffects.Add("Fel Domination"); MagicEffects.Add("Hand of Protection"); MagicEffects.Add("Heroism"); MagicEffects.Add("Ice Barrier"); MagicEffects.Add("Innervate"); MagicEffects.Add("Lightning Shield"); MagicEffects.Add("Mana Shield"); MagicEffects.Add("Nether Protection"); MagicEffects.Add("Pain Suppression"); MagicEffects.Add("Power Infusion"); MagicEffects.Add("Power Word: Shield"); MagicEffects.Add("Prayer of Mending"); MagicEffects.Add("Presence of Mind"); MagicEffects.Add("Regrowth"); MagicEffects.Add("Rejuvenation"); MagicEffects.Add("Renew"); MagicEffects.Add("Sacrifice"); MagicEffects.Add("Thorns"); MagicEffects.Add("Water Shield"); foreach(string effect in MagicEffects) { if (ObjectManager.Target.HaveBuff(new Spell(effect).Ids)) { _spellName.Launch(); Logging.WriteDebug("*** Dispelled " + effect + " from " + ObjectManager.Target.Name + " ***"); Thread.Sleep(SpellManager.GlobalCooldownTimeLeft() + Usefuls.Latency); return true; } }  
    Could try that..
  23. Like
    Athyx got a reaction from timamusic in Mend Pet Not Working 3.3.5a   
    Looking into the fight class, these are the following conditions that must be met in order for it to use Mend Pet:
    Pet Health Percent <= 85 Health Points Lost >= 300 (Not sure if this is Player Health Points Lost, or Pet) Target Health Percent == 25 Timer has reached 16 seconds Checking how much health points lost is quite redundant if you are already checking if the pet health percent is below # value.
    Why only use Mend Pet when your target health is exactly 25%?
    hbs27 Current Spell Settings:
    Timer = 16000 (This may or may not be necessary).
    Cast spell on  is set to none. (not sure if spell needs to be cast on Pet?)
     
    Spell Settings (Adjusted):
    Timer  ([optional] Mend Pet Cooldown Time) Cast spell on = Pet? Check if know spell = True Check is spell is good distance = True Check if spell is usable = True  Spell Conditions:
    Pet Health Percent = SmallerOrEqual (Desired value) May want to check Pet Buff as well, to see if your pet already has the buff. May want to check if Pet is Alive and Valid with C Sharp Code C Sharp Code:
    ObjectManager.Pet.IsAlive && ObjectManager.Pet.IsValid
     
     
  24. Like
    Athyx got a reaction from morris79 in Wand Use & IsAutoRepeatAction(slot)   
    For anyone having issues with using the Wand Shoot ability, here is a snippet for you:
    // Test if player has a wand in the proper equipment slot | In Combat if (ObjectManager.Me.GetEquipedItemBySlot(wManager.Wow.Enums.InventorySlot.INVSLOT_RANGED) != 0 && ObjectManager.Me.InCombat && !ObjectManager.Me.GetMove) { // Wand Shoot if(Lua.LuaDoString<int>("isAutoRepeat = \"\"; isAutoRepeat = 0; local name = GetSpellInfo(5019); if IsAutoRepeatSpell(name) then isAutoRepeat = 1 end", "isAutoRepeat") == 0) { // Spammable Shoot Macro Lua.RunMacroText("/castsequence !Shoot, !Shoot"); } }  
  25. Thanks
    Athyx reacted to Droidz in why do you pref wrobot   
    And this plugin already exists: https://wrobot.eu/files/file/359-whisper-reply/
    And about Warmane detection, how I told and some private discutions, for the moment, I found nothing to confirm than Warmane detect WRobot, and I do not think that WRobot is detected, I think more about DB queries (VPN IPs, time in game, number of farms/fishings/mobs killed/accounts/quests/...) or traps (tp, mob spawn, freeze, ... but this automaticly? I read somewhere than Warmane have write few years ago antibot bot?). When I bot 1 or 2 hours per days, with my IP (real IP), my account still alive (I monitoring, sometime players (or GM?) talks to me). But I could be wrong and WRobot is really detected. But I work on it.
    If anyone has more info about Warmane or saw something strange (when he played manually or with the bot) he does not hesitate to tell me.
×
×
  • Create New...