PierreDeRosette
-
Posts
129 -
Joined
-
Last visited
Reputation Activity
-
PierreDeRosette reacted to Droidz in Ban wave - 19 February 2018
Hello,
Ban wave hit WRobot few hours ago (on retail).
I released new WRobot version to try to resolve problem (and I'll continue next hours/days to release new updates to improve protection), but to be sure that new release is safe we need to wait some weeks.
For this reason, use WRobot only if you are not afraid of lost your accounts and if you know what you are doing!
You can discuss about this here: https://wrobot.eu/forums/topic/8666-ban-wave-19-february-2018-discussion/
Kind regards
View full article
-
PierreDeRosette got a reaction from Avvi in wRotation doesn't work in duels OR against players of the same faction in arena
A Topic of the same problem was opened in this link (french)
A workaround was found to solve this.
I use this Mix to be almost sure to fight with another player of my faction.
if (Lua.LuaDoString<bool>("return UnitCanAttack('player', 'target')") || (ObjectManager.Me.InCombatFlagOnly) || ObjectManager.Me.InCombat) Combat = true;
-
PierreDeRosette reacted to Droidz in Tracker
Salut,
Essaye un plugin comme:
using robotManager.Products; public class Main : wManager.Plugin.IPlugin { private IProduct instanceFromOtherAssembly; public void Initialize() { instanceFromOtherAssembly = Products.LoadProductsWithoutInit("Tracker"); if (instanceFromOtherAssembly != null) { instanceFromOtherAssembly.Initialize(); instanceFromOtherAssembly.Start(); } } public void Dispose() { if (instanceFromOtherAssembly != null) { instanceFromOtherAssembly.Dispose(); instanceFromOtherAssembly = null; } } public void Settings() { } }
-
PierreDeRosette got a reaction from fragik in How to create Quest profile
Hi
J'ai bien compris qu'une classe C# définissant une quête doit comporter :
Une QuestId et le NPC correspondant doit être définis dans le XML.
Supposons que je veuille effectuer une tache ne correspondant a aucune quête mais nécessitant l'interaction avec un NPC.
Concrètement, je souhaite apres avoir recolté la mine et la commande de mine, passer aupres du NPC une nouvelle commande.
Dans le Quest editor, il y a bien une option qu on doit passer a true si la quete ne fait pas forcement parti de notre liste de quetes.
Comment définir ca dans un fichier .CS ?.
De plus l'interaction ne se fait pas avec le perso si la QuestId n'est pas definie. Peut t on depasser cela ?
Merciiiii :)
-
PierreDeRosette reacted to Droidz in Ajout d'un point dans la minimap
Salut
// On supprime les anciens points (WRobot ne supprime pas les points automatiquement): wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Remove("Nom de mes points de repère"); WoWUnit unitBoss = new WoWUnit(0); //... // On ajoute un boss wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Add(unitBoss.Position, "Nom de mes points de repère", System.Drawing.Color.OrangeRed, 10);
-
PierreDeRosette got a reaction from Droidz in Focus maintenant pris en charge ?
Génial
Ne change pas !! T'est le meilleur.
-
PierreDeRosette got a reaction from Droidz in Quester avec conditions
Super :)
Merci pour ta promptitude. J'applique de suite.
-
PierreDeRosette reacted to Droidz in Gestion du focus ?
Pour lancer un sort sur les focus:
// lua id: http://wow.gamepedia.com/UnitId var intimidatingShout = new Spell("Intimidating Shout"); if (intimidatingShout.KnownSpell && intimidatingShout.IsSpellUsable)//... { intimidatingShout.Launch(intimidatingShout.CastTime > 0, true, false, "focus"); // Si vous voulez gérer manuellement le lancement utiliser: SpellManager.CastSpellByNameOn(intimidatingShout.NameInGame, "focus"); } Pour obtenir le focus (en objet "WowUnit"), ajouter cette methode dans votre code:
static WoWUnit GetFocus() { uint offsetFocus = 0xEAEF10; // offset wow 6.2.3.20886 var unit = new WoWUnit(0); try { var focusGuid = wManager.Wow.Memory.WowMemory.Memory.ReadInt128(wManager.Wow.Memory.WowMemory.Memory.RebaseAddress(offsetFocus)); if (focusGuid.IsNotZero()) { var obj = ObjectManager.GetObjectByGuid(focusGuid); if (obj.Type == WoWObjectType.Player || obj.Type == WoWObjectType.Unit) unit = new WoWUnit(obj.GetBaseAddress); } } catch (Exception e) { } return unit; } Et vous pouvez utiliser le code comme ca par exemple:
var focus = GetFocus(); if (focus.IsValid) { var intimidatingShout = new Spell("Intimidating Shout"); if (intimidatingShout.KnownSpell && intimidatingShout.IsSpellUsable && focus.GetDistance < intimidatingShout.MaxRange + focus.CombatReach && !focus.HaveBuff("Intimidating Shout")) { intimidatingShout.Launch(intimidatingShout.CastTime > 0, true, false, "focus"); } }
PS: Je vais rajouter le focus directement dans WRobot dans les prochaines maj.
-
PierreDeRosette reacted to Droidz 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
-
PierreDeRosette reacted to Droidz in Probleme de fonctionnement
Oui c'est ce que je viens de voir avec les log.
WRobot créer des fichiers dans appdata, supprime le dossier "C:\Users\{NOMDELASESSION}\AppData\Local\TECHPROG" ca devrait corriger le problème.
-
PierreDeRosette got a reaction from Droidz in Plusieurs points :)
Impeccable.
Je vois cela des que j'ai a nouveau mes conges. Super et merci beaucoup...
-
PierreDeRosette got a reaction from Droidz in Profil interagissant avec le bot. Possible ?
Juste pour looter une creature fraichement tuée lorsqu'on utilise wrotation.
Tue a raison l'option que tu a rajoute fonctionne impeccable.
Je ne l'avait pas vu car recente.
Merci encore ^^
-
PierreDeRosette reacted to Droidz in Druide equilibre && eclipse
Je viens de tester, et il est vrai que Eclipse renvoi un résultat incorrect.
Tu peux utiliser ce code pour remplacer "ObjectManager.Me.Eclipse":
var eclipse = Lua.LuaDoString<int>("return UnitPower('player',8)"); (le résultat est en -100 et 100: http://wow.gamepedia.com/PowerType )
Normalement InTransfort devrait fonctionner, tu as aussi IsOnTaxi pour détecter si le joueur utilise un taxi, sinon il reste lua: http://wow.gamepedia.com/API_UnitUsingVehicle (tu veux dire quoi par transport ?)
EDIT: Je viens de corriger le code, j'ai oublier de mettre le "return" devant "UnitPower"
-
PierreDeRosette reacted to Droidz in WRotation en duel
C'est le code C#:
bool cibleAttaquable = Lua.LuaDoString<bool>("return UnitCanAttack('player', 'target')"); if (cibleAttaquable) { // ta rotation... }
-
PierreDeRosette reacted to Droidz in WROTATION
ps: Je viens de rajouter les conditions:
HealthPoints, HealthPointsLost, TargetHealthPoints, TargetHealthPointsLost, PetHealthPoints, PetHealthPointsLost, (dispo dans la prochaine mise à jour)
-
PierreDeRosette reacted to Droidz in Possibilité de "cueillir" les cadavres d'arbres
Je viens de jeter un coup d'oeil, il suffit d'activer l'option de WRobot "Skin Mobs" (les PNJ depecables/minables/cueillables ont le même flag, le problème et que cette option peut faire perdre un peu de temps vu que le bot va essayer de dépecer un PNJ dépeucable, de miner un PNJ minable et cueillir un npc cueillable même s’il n'a pas les compétences) (je vais renommer cette option).
-
PierreDeRosette reacted to PierreDeRosette in Possibilité de "cueillir" les cadavres d'arbres
Super. Ca je ne le savais pas.
Merci encore :)
-
PierreDeRosette got a reaction from Droidz in Bot is in use
Ok thank you :)
Pas lié au process car si on en a plusieurs, ton bot les liste. Apres il nous suffit d'arreter le process "in use" et garder le bon process. Non deja verifié maintes fois.
Ok je reviens dessus si j'ai du nouveau aussi.
-
PierreDeRosette reacted to Droidz in Aurais tu une astuce rapide pour...
Salut
Pour voir si tu est en groupe dans une FightClass simple tu peux utiliser la condition "Me In Group" ou le code C#:
wManager.Wow.Helpers.Party.IsInGroup()
Essaye ce code (pas testé):
var _killShot = new Spell("Kill Shot"); var _steadyShot = new Spell("Steady Shot"); // ... conditions pour lancer Steady Shot if (_steadyShot.KnownSpell && _steadyShot.IsSpellUsable && _steadyShot.IsDistanceGood) { _steadyShot.Launch(false, false); // stopMove = false, waitIsCast = false Thread.Sleep(700); while (ObjectManager.Me.IsCast) { if (_killShot.KnownSpell && _killShot.IsSpellUsable && _killShot.IsDistanceGood) { _killShot.Launch(false, true, true); // stopMove = false, waitIsCast = true, ignoreIfCast = true break; } Thread.Sleep(30); } }
Tu as le racoursi ALT-X pour mettre en pause le bot (tu peux détecter si le bot est en pause avec ce code:
robotManager.Products.Products.InPause dans ton code tu rajoute if (!Products.InPause)... Sinon tu peux utiliser lua un macro ingame
-
PierreDeRosette got a reaction from Droidz in Existe t il un moyen de gerer l'aggro ?
(Grrr Je l'aurai un jour....je l'aurai :lol: :lol: )
-
PierreDeRosette got a reaction from Droidz in Tres cher Droidz
Genial
Merci encore pour ton immense disponibilité
-
PierreDeRosette got a reaction from Droidz in Des erreurs a l'usage d'anciens profils...
OK. C'est moi :(
Je n'avais pas mis les même using que toi. Maintenant ca semble bien rouler. Apres diner je turbine dessus.
Merci encore...
T'a pas changé :) toujours up pour ce bot. Bravo et chapeau pour tes competences
-
PierreDeRosette got a reaction from da8ball in Arena problems
I'm running on a new account. Not yet lvl 90 characters. So complicate to do some valuable duels with my friend to test.
But i made a test to know why wrotation not start when i enter in duel or in arena
By elimination i found that when condition Fight.Infight is used, the result is "false" even after entering in fight against other players.
All script using it not enter in combat because this condition stay at false in pvp (sometimes, but sometimes it's ok)
in few days i'll do a good topic with scripts and screenshots. I not yet respond just because i haven't yet a lot of time to do it well.
-
PierreDeRosette reacted to Droidz in Tres cher Droidz
Bonjour,
Oui:
uint potionId = 76097;//Potion de soins de maître http://fr.wowhead.com/item=76097 if (Helpers.ItemsManager.HasItemById(potionId)) // if (Helpers.ItemsManager.GetItemCountById(potionId) >= 1) { Helpers.ItemsManager.UseItem(potionId); } -
PierreDeRosette reacted to Droidz in Manage rotation, range ... bugged ?
Hello, Use an Fightclass is not a good way to manage target at attack. It is more recommended to make an "Custom Profile" or the best is to make an "Product" (bot) (you can activate option "Dont Start Fighting" in general settings but I recommand to not use Fightclass for this). I have make sample of custom class with your code (if this works like you want say me it I'll give code to join queue and enter in bg) (you can after use this code with small edit to make product dll): using System; using System.Collections.Generic; using System.Linq; using robotManager.FiniteStateMachine; using robotManager.Helpful; using robotManager.Products; using wManager; using wManager.Wow.Bot.States; using wManager.Wow.Enums; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class CustomProfile : Custom_Profile.ICustomProfile { private static readonly Engine Fsm = new Engine(); // Start custom profile public void Pulse() { try { // Update spell list SpellManager.UpdateSpellBook(); // Load CC: wManager.Wow.Helpers.CustomClass.LoadCustomClass(); // FSM : http://en.wikipedia.org/wiki/Finite-state_machine Fsm.States.Clear(); Fsm.AddState(new wManager.Wow.Bot.States.Relogger { Priority = 200 }); // Relog if disconnected Fsm.AddState(new wManager.Wow.Bot.States.Pause { Priority = 13 }); // Manage bot pause Fsm.AddState(new wManager.Wow.Bot.States.ResurrectBG { Priority = 12 }); // Resurrect player (bg mode) Fsm.AddState(new wManager.Wow.Bot.States.Resurrect { Priority = 12 }); // Resurrect player (b=normal mode) Fsm.AddState(new wManager.Wow.Bot.States.MyMacro { Priority = 11 }); // Manage MyMacro (user settings in general settings) Fsm.AddState(new wManager.Wow.Bot.States.FarmingBG { Priority = 10 }); // Farm in BG (for flag, door, ...) Fsm.AddState(new ManageTargetBG { Priority = 9, DistanceSearch = 150 }); // Search target at attacked (THIS CLASS IS AT TGE END OF THIS PAGE) //Fsm.AddState(new wManager.Wow.Bot.States.GrindingBG { Priority = 9, DistanceSearch = 150 }); // Search target at attacked Fsm.AddState(new wManager.Wow.Bot.States.IsAttacked { Priority = 8 }); // Launch combat if player attacked //Fsm.AddState(new wManager.Wow.Bot.States.Regeneration {Priority = 8}); // Regen health/mana //Fsm.AddState(new wManager.Wow.Bot.States.Looting { Priority = 7 }); // Loot npc dead //Fsm.AddState(new wManager.Wow.Bot.States.Farming { Priority = 6 }); // farm mines/herbs/... Fsm.AddState(new wManager.Wow.Bot.States.AntiAfk { Priority = 5 }); // Anti AFK Fsm.AddState(new wManager.Wow.Bot.States.Idle { Priority = 0 }); // If not states need to run, wait Fsm.States.Sort(); // Order states by Prority Fsm.StartEngine(10, "_customProfile"); // Launch FSN (with all added states) StopBotIf.LaunchNewThread(); // Launch bot security (tab "security" in general settings) // Attach onlevelup for spell book: EventsLua.AttachEventLua(LuaEventsId.PLAYER_LEVEL_UP, m => OnLevelUp()); // Follow lua event for get when player level up // Move during combat: //FightBG.MoveDuringCombat = true; Logging.Write("Custom Profile Started."); } catch (Exception e) { try { Dispose(); } catch { } Logging.WriteError("Bot > Pulse(): " + e); } } // Stop custom profile public void Dispose() { try { wManager.Wow.Helpers.CustomClass.DisposeCustomClass(); Fsm.StopEngine(); Fight.StopFight(); MovementManager.StopMove(); } catch (Exception e) { Logging.WriteError("Bot > Dispose(): " + e); } } // When player levelup void OnLevelUp() { Logging.Write("Level UP! Reload Fight Class."); // Update spell list SpellManager.UpdateSpellBook(); // Load CC: wManager.Wow.Helpers.CustomClass.ResetCustomClass(); } // Fsm state to manage target at attack public class ManageTargetBG : State { public override string DisplayName { get { return "Manage target BG"; } } public override int Priority { get { return _priority; } set { _priority = value; } } private int _priority; public override List<State> NextStates { get { return new List<State>(); } } public override List<State> BeforeStates { get { return new List<State>(); } } public List<int> EntryTarget = new List<int>(); public List<uint> FactionsTarget = new List<uint>(); public float DistanceSearch = 150; private WoWUnit _unit; // If this method return true, wrobot launch method Run(), if return false wrobot go to next state in FSM public override bool NeedToRun { get { if (wManagerSetting.CurrentSetting.DontStartFighting) return false; if (!Battleground.IsInBattleground() || !Battleground.BattlegroundIsStarted()) // Not run is not in bg return false; if (!Usefuls.InGame || Usefuls.IsLoadingOrConnecting || ObjectManager.Me.IsDeadMe || !ObjectManager.Me.IsValid || !Products.IsStarted) return false; // Get unit: _unit = new WoWUnit(0); var enemyPlayerList = new List<WoWUnit>(); if (FactionsTarget.Count > 0) enemyPlayerList.AddRange(ObjectManager.GetWoWUnitByFaction(FactionsTarget)); if (EntryTarget.Count > 0) enemyPlayerList.AddRange(ObjectManager.GetWoWUnitByEntry(EntryTarget)); if (ObjectManager.Me.PlayerFaction == "Alliance") enemyPlayerList.AddRange(ObjectManager.GetWoWUnitHorde()); if (ObjectManager.Me.PlayerFaction == "Horde") enemyPlayerList.AddRange(ObjectManager.GetWoWUnitAlliance()); // Your code WoWUnit[] cibles = new WoWUnit[enemyPlayerList.Count]; long[] ciblePv = new long[enemyPlayerList.Count]; int offset = 0; foreach (WoWUnit adversaire in enemyPlayerList) { cibles[offset] = adversaire; ciblePv[offset] = adversaire.Health; offset++; } Array.Sort(ciblePv, cibles); // You can replace your code to sort players by: // cibles = enemyPlayerList.OrderBy(p => p.Health).ToArray(); // And I think it is more appropriate to use HealthPercent instead Health for (int x = 0; x < enemyPlayerList.Count; x++) { if (cibles[x].IsValid && cibles[x].GetDistance < DistanceSearch && cibles[x].IsAlive && _unit.SummonedBy <= 0 && // Avoid pet _unit.Guid != ObjectManager.Pet.Guid && !wManagerSetting.IsBlackListedAllConditions(_unit)) // Check if blacklisted { bool result; PathFinder.FindPath(_unit.Position, out result); // Test if wrobot can make path to the target to avoid stuck if (result) { _unit = cibles[x]; return true; } } } _unit = new WoWUnit(0); return false; } } // If NeedToRun() == true public override void Run() { if (!_unit.IsValid) return; Logging.Write("Player Attack " + _unit.Name + " (lvl " + _unit.Level + ")"); FightBG.StartFight(_unit.Guid); // Launch Fight if (_unit.IsDead) { Statistics.Kills++; } FightBG.StopFight(); } } } ps: I haven't time to test it now, tell me if this don't works, save this file in "WRobot\Profiles\Custom Profile\" (.cs file) and use product "Custom Product).