Jump to content

Droidz

Administrators
  • Posts

    12432
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Droidz got a reaction from PierreDeRosette in Improving tank(Too)Far()   
    Hello,
    To stop to go to tank if it is out of view you can use this code:
    #region Tank too far bool tankfar() { WoWPlayer tank = getTanks().First(); while (tank.IsValid && tank.GetDistance > 15 && !wManager.Wow.Helpers.TraceLine.TraceLineGo(tank.Position)) { MovementManager.MoveTo(tank); System.Threading.Thread.Sleep(50); } MovementManager.StopMove(); return false; } #endregion  
    To generate path and go to tank you can use code like this:
    #region Tank too far bool tankfar() { WoWPlayer tank = getTanks().First(); if (tank.IsValid && tank.GetDistance > 15) { wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWith(new WoWUnit(tank.GetBaseAddress), -1, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && tank.GetDistance > 15); } MovementManager.StopMove(); return false; } #endregion  
  2. Like
    Droidz got a reaction from BetterSister in Elite nearby? C#   
    Hello, I am not sure to understand exactly what you want, but you can use code like this:
    int numberOfEliteNearTank = ObjectManager.GetWoWUnitHostile().Count(u => u.Position.DistanceTo(tank.Position) <= u.InteractDistance && u.IsElite && UnitCanAttack.CanAttack(u.GetBaseAddress, tank.GetBaseAddress)); if (numberOfEliteNearTank >= 3) { // .. }  
  3. Like
    Droidz got a reaction from TheSmokie in Snippets codes for quest profiles   
    Snippets codes for quest profiles
     
    ps: Feel free to share your tips on this post. If your message is poorly presented or contains a question, it will be deleted.
  4. Like
    Droidz reacted to Dreamful in Private bot sub   
    Yes our sub goes to all Wow Private server Versions :)
    You just need to download the specific Bot version.

    Cataclysm


    Mist of Pandaria

     
  5. Like
    Droidz reacted to tomei in Battlegrounder AB   
    Can't blacklist zone for this is arathi basin for random bgs for honor points. Next time I go there will get the position.
  6. Like
    Droidz got a reaction from BetterSister in Battlegrounder Crashes   
    Hello, if "reduce input lag" option don't resolve your problem, can you try to launch wrobot with NoFakeCallStack.bat (download and move this file in wrobot folder, double click on it to launch WRobot) (if wow crash again, if you can send me wow crash files by private message).
  7. Like
    Droidz got a reaction from tomei in Battlegrounder Crashes   
    Hello, if "reduce input lag" option don't resolve your problem, can you try to launch wrobot with NoFakeCallStack.bat (download and move this file in wrobot folder, double click on it to launch WRobot) (if wow crash again, if you can send me wow crash files by private message).
  8. Like
    Droidz got a reaction from eeny in [Suggestion] Start all Bots with 1 Key and Force stop fight   
    Hello,
    Sorry, I'll not add this.
    But I planned to make a program that manages several sessions of WRobot (product change, profile change, restart) and Wow (launch, restart, relog,...)
  9. Like
    Droidz got a reaction from BetterSister in [Suggestion] Start all Bots with 1 Key and Force stop fight   
    Hello,
    Sorry, I'll not add this.
    But I planned to make a program that manages several sessions of WRobot (product change, profile change, restart) and Wow (launch, restart, relog,...)
  10. Like
    Droidz got a reaction from Cadbury in Auction bot bug or not developed yet?   
    If you can read this: http://wrobot.eu/forums/topic/1381-repairinstall-wrobot/#comment-966
    And share your log file (of session where you get this problem): http://wrobot.eu/forums/topic/1779-how-to-post-your-log-file-with-your-topic/
  11. Like
    Droidz reacted to Cadbury in Auction bot bug or not developed yet?   
    Got it to work! Reinstalled Wrobot and all those programs! 
     
    Cheers
  12. Like
    Droidz reacted to Pablofransisco in Warrior Fighclass   
    Seems it started to work after restarting bot :O
  13. Like
    Droidz got a reaction from BetterSister in How to add players unit to a list ?   
    Please send me your code/fightclass if you want best reply.   I have written this for help an member to create an heal fightclass (not tested, it is sample code):   using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Windows.Forms; using robotManager.Helpful; using wManager.Wow.Class; using wManager.Wow.Enums; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : ICustomClass { private HolyPaladin _holyPaladin; public float Range { get { return 29.0f; } } public void Initialize() { _holyPaladin = new HolyPaladin(); _holyPaladin.Pulse(); } public void Dispose() { _holyPaladin.Stop(); } public void ShowConfiguration() { MessageBox.Show("No settings for this FightClass."); } } class HolyPaladin { // Property: private bool _isLaunched; public bool IsLaunched { get { return _isLaunched; } set { _isLaunched = value; } } // Spells: private Spell _judgment; private Spell _flashOfLight; private Spell _lightOfDawn; private Spell _avengingWrath; private Spell _handOfProtection; private Spell _divineShield; private Spell _layOnHands; private Spell _holyShock; private Spell _holyRadiance; public HolyPaladin() { // Init spells: _judgment = new Spell("Judgment"); _flashOfLight = new Spell("Flash of Light"); _lightOfDawn = new Spell("Light of Dawn"); _avengingWrath = new Spell("Avenging Wrath"); _handOfProtection = new Spell("Hand of Protection"); _divineShield = new Spell("Divine Shield"); _layOnHands = new Spell("Lay On Hands"); _holyShock = new Spell("Holy Shock"); _holyRadiance = new Spell("Holy Radiance"); Logging.WriteFight("'Holy Paladin' by AudreyH loaded"); } public void Pulse() { _isLaunched = true; var thread = new Thread(RoutineThread) { Name = "HolyPaladin_FightClass" }; thread.Start(); } public void Stop() { _isLaunched = false; Logging.WriteFight("Stop 'Holy Paladin'"); } void RoutineThread() { Logging.WriteFight("'Holy Paladin' Started"); while (_isLaunched) { Routine(); Thread.Sleep(10); // Temps d'attante pour éviter d'utiliser trop le processeurs } Logging.WriteFight("'Holy Paladin' Stopped"); } void Routine() { if (!Conditions.InGameAndConnectedAndAlive) return; // Ranger par ordre de priorité if (Judgment()) return; if (HolyRadiance()) return; if (FlashOfLight()) return; if (LightOfDawn()) return; if (AvengingWrath()) return; if (HandOfProtection()) return; if (DivineShield()) return; if (LayOnHands()) return; if (HolyShock()) return; } // Usefuls methods List<WoWUnit> GetPartyTargets() { var partyMembers = Party.GetPartyHomeAndInstance(); var ret = new List<WoWUnit>(); foreach (var m in partyMembers) { if (m.IsValid && m.IsAlive && m.InCombat && m.Target.IsNotZero()) { if (ret.All(u => u.Guid != m.Target)) // Evite doublon dans la liste retournée { var targetUnit = new WoWUnit(ObjectManager.GetObjectByGuid(m.Target).GetBaseAddress); if (targetUnit.IsValid && targetUnit.IsAlive) { ret.Add(targetUnit); } } } } return ret; } private List<WoWPlayer> GetPartyMembers(int maxHealthPercent = 100, float maxDistance = float.MaxValue, bool orderByHealth = true) { return GetPartyMembers(ObjectManager.Me.Position, maxHealthPercent, maxDistance, orderByHealth); } private List<WoWPlayer> GetPartyMembers(Vector3 positionCenter, int maxHealthPercent = 100, float maxDistance = float.MaxValue, bool orderByHealth = true) { var partyMembers = Party.GetPartyHomeAndInstance(); var ret = new List<WoWPlayer>(); foreach (var m in partyMembers) { if (m.IsValid && m.IsAlive && m.HealthPercent < maxHealthPercent && m.Position.DistanceTo(positionCenter) <= maxDistance) { ret.Add(m); } } if (orderByHealth) ret = new List<WoWPlayer>(ret.OrderBy(p => p.HealthPercent)); return ret; } string GetTankPlayerName() { var lua = new[] { "partyTank = \"\";", "for groupindex = 1,MAX_PARTY_MEMBERS do", " if (UnitInParty(\"party\" .. groupindex)) then", " local role = UnitGroupRolesAssigned(\"party\" .. groupindex);", " if role == \"TANK\" then", " local name, realm = UnitName(\"party\" .. groupindex);", " partyTank = name;", " return;", " end", " end", "end", }; return Lua.LuaDoString(lua, "partyTank"); } WoWPlayer GetTankPlayer() { var p = new WoWPlayer(0); var playerName = GetTankPlayerName(); if (!string.IsNullOrWhiteSpace(playerName)) { playerName = playerName.ToLower().Trim(); var party = GetPartyMembers(); foreach (var woWPlayer in party) { if (woWPlayer.Name.ToLower() == playerName) { p = new WoWPlayer(woWPlayer.GetBaseAddress); break; } } } return p; } // Spells methods bool Judgment() { if (!_judgment.KnownSpell) return false; if (!_judgment.IsSpellUsable) return false; var partyTargets = GetPartyTargets(); // Recupère les cibles des joueurs du groupe. foreach (var target in partyTargets) // On recherche dans la liste { if (target.IsValid && target.IsAlive) // Verif si target valid et en vie { if (target.GetDistance < _judgment.MaxRange) // Verif si bonne distance { if (!TraceLine.TraceLineGo(target.Position)) // TraceLine permet de vérifier un obstacle entre deux position (true si obstacle) { if (UnitCanAttack.CanAttack(target.GetBaseAddress)) // On peut attaquer la cible { Interact.InteractGameObject(target.GetBaseAddress, true); // sélectionne la cible in game MovementManager.Face(target); // Faire face à la cible _judgment.Launch(); // Lancer le sort return true; } } } } } return false; } bool BaseHealSpell(Spell spell, int maxHealthPercent, float maxDistance) { if (!spell.KnownSpell) return false; if (!spell.IsSpellUsable) return false; var partyMembers = GetPartyMembers(maxHealthPercent, maxDistance); foreach (var partyMember in partyMembers) { if (!TraceLine.TraceLineGo(partyMember.Position)) // TraceLine permet de vérifier un obstacle entre deux position (true si obstacle) { Interact.InteractGameObject(partyMember.GetBaseAddress, true); // sélectionne la cible in game MovementManager.Face(partyMember); // Faire face à la cible spell.Launch(); // Lancer le sort return true; } } return false; } bool FlashOfLight() { return BaseHealSpell(_flashOfLight, 90, 40); } bool LightOfDawn() { if (!_lightOfDawn.KnownSpell) return false; if (!_lightOfDawn.IsSpellUsable) return false; if (ObjectManager.Me.GetPowerByPowerType(PowerType.HolyPower) < 3) return false; var partyMembers = GetPartyMembers(90, 30); if (partyMembers.Count >= 3) // Si minimum 3 alliés dans les 30 mètres avec moins de 90% de vie { _lightOfDawn.Launch(); // Lancer le sort return true; } return false; } bool AvengingWrath() { if (!_avengingWrath.KnownSpell) return false; if (!_avengingWrath.IsSpellUsable) return false; var partyTargets = GetPartyTargets(); // Recupère les cibles des joueurs du groupe. if (partyTargets.Count > 0 || ObjectManager.Me.InCombat) // Si un des joueurs ou moi en combat { _avengingWrath.Launch(); // Lancer le sort return true; } return false; } bool HandOfProtection() { if (!_handOfProtection.KnownSpell) return false; if (!_handOfProtection.IsSpellUsable) return false; if (ObjectManager.Me.InCombat && ObjectManager.Me.HealthPercent <= 20) // Si en combat et moins de 20% de vie { _handOfProtection.Launch(false, true, false, true); // Lancer le sort OnSelf return true; } return false; } bool DivineShield() { if (!_divineShield.KnownSpell) return false; if (!_divineShield.IsSpellUsable) return false; if (ObjectManager.Me.InCombat) // Si en combat { _divineShield.Launch(); // Lancer le sort return true; } return false; } bool LayOnHands() { if (!_layOnHands.KnownSpell) return false; if (!_layOnHands.IsSpellUsable) return false; if (ObjectManager.Me.HealthPercent <= 20)// Si moins de 20% de vie { _layOnHands.Launch(false, true, false, true); // Lancer le sort OnSelf return true; } return false; } bool HolyShock() { if (ObjectManager.Me.InCombat) return BaseHealSpell(_holyShock, 95, 40); return false; } bool HolyRadiance() { if (!_holyRadiance.KnownSpell) return false; if (!_holyRadiance.IsSpellUsable) return false; var partyMembers = GetPartyMembers(90, 40); // On recupere les membres du groupe avec moins de 90% de vie à 40 metres var bestPlayer = new WoWPlayer(0); // Le meilleur joueur pour recevoir le sort int bestHealthMissing = 0; // Score (plus le score est haut mieux c'est, ce score et le nombre de pourcentages de vie qui manque aux joueurs qui ce trouve dans les 10 metres du joueur bestPlayer) foreach (var partyMember in partyMembers) // On va rechercher le meilleur joueur { if (partyMember.IsValid && partyMember.IsAlive && !TraceLine.TraceLineGo(partyMember.Position)) { var partyMembersNearPartyPlayer = GetPartyMembers(partyMember.Position, 95, 10); // La on recherche les joueurs proches de partyMember qui ce trouve à 10 metres (porté du sort) (retourne également partyMember dans le résultat) if (partyMembersNearPartyPlayer.Count > 2) // Si ils sont minimum 2 joueurs dans les 10 metres { int healthMissing = 0; foreach (var p in partyMembersNearPartyPlayer) { if (p.IsValid && p.IsAlive) { healthMissing = healthMissing + (100 - (int)p.HealthPercent); } } if (healthMissing > bestHealthMissing) { // Si il manque plus de vie ici alors on le désigne comme le meilleur choix bestPlayer = new WoWPlayer(partyMember.GetBaseAddress); bestHealthMissing = healthMissing; } } } } // Si bestPlayer trouvé if (bestHealthMissing > 0 && bestPlayer.IsValid) { Interact.InteractGameObject(bestPlayer.GetBaseAddress, true); // sélectionne la cible in game MovementManager.Face(bestPlayer); // Faire face à la cible _holyRadiance.Launch(); // Lancer le sort return true; } return false; } }
  14. Like
    Droidz got a reaction from eeny in Use item on hostile "weakened" mob   
    Hello,
    Add step type "PickUp" (put quest name in parameter) Add step type "RunCode", in parameter put this code: Thread t = new Thread(() => { uint itemId = 62899; int questId = 28000; while (robotManager.Products.Products.IsStarted) { if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause) { if (!Quest.HasQuest(questId)) break; if (ObjectManager.Target.IsValid && ObjectManager.Target.IsAlive && ObjectManager.Target.HealthPercent <= 25) { ItemsManager.UseItem(itemId); } } Thread.Sleep(500); } }); t.Start();  (you need to have quest in your questlog, you can replace "62899" but the item id, "28000" by the quest id and "25" by the max target health)
    Add step type "Pulse" (put quest name in parameter)
    Add step type "TurnIn" (put quest name in parameter)
  15. Like
    Droidz got a reaction from BetterSister in [Suggestion] ForceLeave Strand of the Ancients & Isle of Conquest   
    Hello, use this wrobot plugin: 
     
  16. Like
    Droidz got a reaction from BetterSister in Fight Classes.. Any up to date ones?   
    Hello, what class/spe do you use?
  17. Like
    Droidz got a reaction from Benix in Impossible de laucher wow en 32 bits ?   
    Bonjour, pour lancer wow en 32bit: https://eu.battle.net/support/fr/article/basculer-en-mode-32-bits

    Si cela ne fonctionne pas, vous pouvez aller dans le dossier où est installé Wow et supprimer/renommer le fichier "Wow-64.exe" puis lancer directement le fichier "Wow.exe".


     
  18. Like
    Droidz reacted to Benix in Impossible de laucher wow en 32 bits ?   
    J'ai déja tenté la première solution, je vais tenter la deuxième en rentrant ce soir.
    Je te remercie Droidz pour ta réactivité ;)
     
    Edit: supprimer le fichier "wow-64.exe" marche parfaitement ! merci
  19. Like
    Droidz reacted to kunfuninja12 in Wrobot issue   
    yeah i got it thanks though man i just had to install the runtimes from microsoft / the custom one you made for wrobot since windows 10 does not have it for some odd reason microsoft did not add it i appreciate  the time that you took man i'll be buying another sub next year as well :D 
  20. Like
    Droidz reacted to eeny in Wrobot changes equipped epic items on gray item on char   
    havn't seen it since that update. =)
  21. Like
    Droidz got a reaction from BetterSister in Banwave   
    Hello,
    About HB, sincerely, without the contents created by the HB community (profiles, fight classes, plugin, ...), HB is an very basic bot, the dev team take few days to release update after new wow update (I have never understand why, security is false pretext, you can see result...) (I work alone, it takes me a few hours for normal update, and we can begin to work on the PTR server for beings ready when build is released on live server). After the banwave a few months ago, HB team have reopened the bot without knowing exactly what had caused the banwave, current banwave is a logical continuation... This is not the first fault, I was already here at the time where bossland began to writte bot with GatherBuddy, after few months it had already taken a banwave (because poorly coded). Even the banwave dating from there are 1 or 2 years old could be avoid because they had was warned that bliz had added a detection method.
    About WRobot I have worked hard to make wrobot hard to detect (it is more easy to detect HB that WRobot (If any have knowbase he can test)), I use a special technique that I have not seen on another bots to hide WRobot in memory. I know what I'm doing (if I worked among bliz, the  bots would have disappeared ^^). I cannot say that WRobot is undetectable (all is detectable), but I work to avoid it, and I think WRobot is among the most secure bots.
    ps: Sorry for my English.
  22. Like
    Droidz got a reaction from eeny in Banwave   
    Hello,
    About HB, sincerely, without the contents created by the HB community (profiles, fight classes, plugin, ...), HB is an very basic bot, the dev team take few days to release update after new wow update (I have never understand why, security is false pretext, you can see result...) (I work alone, it takes me a few hours for normal update, and we can begin to work on the PTR server for beings ready when build is released on live server). After the banwave a few months ago, HB team have reopened the bot without knowing exactly what had caused the banwave, current banwave is a logical continuation... This is not the first fault, I was already here at the time where bossland began to writte bot with GatherBuddy, after few months it had already taken a banwave (because poorly coded). Even the banwave dating from there are 1 or 2 years old could be avoid because they had was warned that bliz had added a detection method.
    About WRobot I have worked hard to make wrobot hard to detect (it is more easy to detect HB that WRobot (If any have knowbase he can test)), I use a special technique that I have not seen on another bots to hide WRobot in memory. I know what I'm doing (if I worked among bliz, the  bots would have disappeared ^^). I cannot say that WRobot is undetectable (all is detectable), but I work to avoid it, and I think WRobot is among the most secure bots.
    ps: Sorry for my English.
  23. Like
    Droidz got a reaction from BetterSister in Snippets of LUA codes (for FightClass)   
    Calls function 'callback' after 'duration' seconds
    http://wow.gamepedia.com/API_C_Timer.After
    C_Timer.After(3, function() YOURCODEHERE end)  
    SAMPLE:
    Moving backward during 2 secondes:
    MoveBackwardStart() C_Timer.After(2, function() MoveBackwardStop() end) Sample of use: http://wrobot.eu/forums/topic/2482-shadow-priest-void-tendrils-help/?do=findComment&comment=11415
  24. Like
    Droidz got a reaction from Amazing Snake in Flightmaster/Flightpoint   
    Look this sample: UseFlightPath.xml (guide is written in the first step).
  25. Like
    Droidz got a reaction from eeny in Flightmaster/Flightpoint   
    Look this sample: UseFlightPath.xml (guide is written in the first step).
×
×
  • Create New...