lirty 0 Posted October 14, 2016 Share Posted October 14, 2016 Salut voila je reprend le bot depuis peu avec wrotation pour faire du donjon et j'aurais besoin d'aide pour créer un fight classe heal pour mon paladin ainsi que quelque petite questions sur le fonctionnement du module wrotation. J'ai créer un fight classe pour la spécialisation tank il marche super bien mais quand a la spé heal impossible de la faire fonctionner il ne ce passe rien a chaque fois que je lance la rotation j'ai essayer plusieurs paramètres et conditions mais toujours rien le plus frustrant dans tout sa c'est que je n'arrive pas a comprendre le fonctionnement de ce type de rotation pour heal. Je ne comprend pas si il faut target un allié pour que le bot heal ou si il gère les targets automatiquement je ne sait pas trop qu'elle condition et paramètre utiliser pour un fight classe heal en donjon avec wrotation. si quelqu'un aurait une une explication a me donner pour me mieux comprendre ou un petit exemple de fight classe basic pour un heal en donjon je prend. Sinon , je voulais savoir aussi si wrotation etais utilisable en arene cotée et raid ? Voila merci d'avance pour vos réponses. Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/ Share on other sites More sharing options...
lirty 0 Posted October 15, 2016 Author Share Posted October 15, 2016 toujours pas de réponses :/ ? j'ai un peux avancer j'ai réussie a faire marcher quelque sort mais pas comme je veux le bot ne heal pas mes compagnon dans le groupe mais lui seul quand je target un ennemi je ne comprend pas j'ai vraiment besoin d'aide ^^ Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19172 Share on other sites More sharing options...
Pasterke 98 Posted October 16, 2016 Share Posted October 16, 2016 using System.Configuration; using System.IO; using System.Linq; using System.Threading; using System.Xml; using robotManager; using robotManager.FiniteStateMachine; using robotManager.Helpful; using wManager.Wow.Class; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; using wManager.Wow.Bot.States; using Timer = robotManager.Helpful.Timer; using wManager.Wow.Enums; using MemoryRobot; public class Main : ICustomClass { public float Range { get { return 40; } } private RestoDruid _RestoDruid; public void Initialize() { _RestoDruid = new RestoDruid(); _RestoDruid.Pulse(); } public void Dispose() { if (_RestoDruid != null) { _RestoDruid.Stop(); } } public void ShowConfiguration() { MessageBox.Show("No Configuration for this Routine"); } } public class RestoDruid { private bool _isLaunched; public bool IsLaunched { get { return _isLaunched; } set { _isLaunched = value; } } public void Pulse() { _isLaunched = true; var thread = new Thread(RoutineThread) { Name = "RestoDruid_FightClass" }; thread.Start(); } public void Stop() { _isLaunched = false; Logging.WriteFight("Stop 'RestoDruid'"); } void RoutineThread() { Logging.WriteFight("'RestoDruid' Started"); while (_isLaunched) { Routine(); Thread.Sleep(10); // Temps d'attante pour éviter d'utiliser trop le processeurs } Logging.WriteFight("'RestoDruid' Stopped"); } public uint Healthstone = 5512; public uint AncientRejuvenationPotion = 127836; public uint AncientManaPotion = 188303; void Routine() { if (ObjectManager.Me.IsMounted) return; if (ObjectManager.Me.IsCast) return; if (ObjectManager.Me.HealthPercent <= 45 && needToUseItem(Healthstone)) return; if (ObjectManager.Me.ManaPercentage <= 30 && needToUseItem(AncientManaPotion)) return; if (needWildGrowth()) return; if (needHealingTouch()) return; return; } private Spell _healingTouch; public RestoDruid() { _healingTouch = new Spell("Healing Touch"); Logging.WriteFight("'RestoDruid' by Pasterke loaded"); } public bool needHealingTouch() { if (!CanUseSpell(_healingTouch)) return false; if (getPartyMembers().Count() > 0) { try { var t = getPartyMembers().Where(p => p.IsAlive && p.GetDistance <= 40 && !TraceLine.TraceLineGo(p.Position) && p.HealthPercent <= RestoSettings.CurrentSetting.HealingTouch) .OrderBy(p => p.HealthPercent).FirstOrDefault(); if (t != null && !ObjectManager.Me.GetMove) { SpellManager.CastSpellByNameOn(_healingTouch.Name, t.Name); Logging.WriteFight(_healingTouch.Name + " on " + t.Name); return true; } } catch (Exception e) { Logging.WriteDebug(e.Message); } } return false; } public bool needWildGrowth() { if (!CanUseSpell(_wildGrowth)) return false; if (getPartyMembers().Count() > 0) { try { WoWUnit unit = new WoWUnit(0); var t = getPartyMembers().Where(p => p.IsAlive && p.GetDistance <= 40 && !TraceLine.TraceLineGo(p.Position) && p.HealthPercent <= RestoSettings.CurrentSetting.WildGrowth).OrderBy(p => p.HealthPercent).ToList(); if (t.Count() > 0) { int count = 0; int tel = 0; Vector3 mainPos = t.FirstOrDefault().Position; unit = new WoWUnit(t.FirstOrDefault().GetBaseAddress); //Logging.WriteFight(unit.Name); count = t.Count(p => p.IsAlive && p.Position.DistanceTo(mainPos) <= 30 && p.HealthPercent <= RestoSettings.CurrentSetting.WildGrowth); //Logging.WriteFight("count players(t): " + count + " aantal leden: " + getPartyMembers().Count()); if (getPartyMembers().Count() > 5) { tel = 5; } else { tel = 3; } //Logging.WriteFight("tel variable: " + tel); if (count >= tel && !ObjectManager.Me.GetMove) { SpellManager.CastSpellByNameOn(_wildGrowth.Name, unit.Name); Logging.WriteFight("Casting: " + _wildGrowth.Name + " on: " + unit.Name); return true; } } } catch (Exception e) { Logging.WriteDebug(e.Message); } } return false; } bool CanUseSpell(Spell spell) { try { if (!spell.KnownSpell) return false; if (SpellManager.GetSpellCooldownTimeLeft(spell.Name) > 0) { return false; } return true; } catch (Exception e) { Logging.WriteDebug(e.Message); } return false; } public bool debuffExists(string debuff) { return (ObjectManager.Me.Guid == ObjectManager.Target.BuffCastedBy(debuff)); } public bool MeIsInParty { get { return getPartyMembers().Count() > 0 ? true : false; } } public bool myBuffExists(string buff, WoWUnit unit) { return unit.BuffCastedByAll(buff).Contains(ObjectManager.Me.Guid); } public bool hasMyHot(WoWUnit unit) { return unit.BuffCastedByAll("Regrowth").Contains(ObjectManager.Me.Guid) || unit.BuffCastedByAll("Rejuvenation").Contains(ObjectManager.Me.Guid) || unit.BuffCastedByAll("Wild Growth").Contains(ObjectManager.Me.Guid); } public IEnumerable<WoWUnit> getPartyMembers() { var units = new List<WoWUnit>(); var partyMembers = Party.GetPartyGUIDHomeAndInstance(); if (partyMembers.Any()) { foreach (Int128 u in partyMembers) { var un = new WoWUnit(ObjectManager.GetObjectByGuid(u).GetBaseAddress); units.Add(un); } units.Add(ObjectManager.Me); } return units; } public string GetTankPlayerName() { if (Usefuls.MapZoneName == "Proving Grounds") return "Oto the Protector"; 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"); } public bool needToUseItem(uint itemEntry) { if (!ItemsManager.HasItemById(itemEntry)) return false; if (Bag.GetContainerItemCooldown((int)itemEntry) > 0) return false; try { Lua.LuaDoString("local name = GetItemInfo(" + itemEntry + "); RunMacroText('/use ' .. name);"); } catch (Exception e) { Logging.WriteDebug("Use Item => " + e.Message); } return true; } public WoWUnit GetPartyTank() { if (getPartyMembers().Count() > 0) { try { var p = new WoWUnit(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) { return p = new WoWUnit(woWPlayer.GetBaseAddress); } } } } catch (Exception e) { Logging.WriteDebug(e.Message); } } return null; } } Example comment coder une routine avec C#. Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19179 Share on other sites More sharing options...
lirty 0 Posted October 16, 2016 Author Share Posted October 16, 2016 Quote Merci a toi pour cette config mais je ne suis pas très familier avec le langage c# et la programmation en général :D je penser plus a un fichier xml ^^ sinon pour etre plus clair dans mes problème et vu que je n'est jamais vu fonctionner une rotation en heal je ne sait pas trop comment sa se passe. Deja mon plus gros probleme c'est quand je lance ma rotation rien ne ce passe le bot ne heal personne. Si je target un ennemie pendant un combat la il va commencer a ce heal mais que lui pas les membres du groupe.Faut-il target un player en donjon pour que le bot heal ou il gere automatiquement les target ? j'ai essayer plusieur condition heal percent, target distance , target , in combat mais rien i fait. Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19217 Share on other sites More sharing options...
Droidz 2738 Posted October 18, 2016 Share Posted October 18, 2016 Bonjour, pouvez vous partager votre fightclass actuelle Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19290 Share on other sites More sharing options...
Pasterke 98 Posted October 19, 2016 Share Posted October 19, 2016 Ainsi joint la fightclass que j'utilise pour le moment en solution vs2015. Sorry, c'est celle la que j'utilise : DruidRestoration.zip Duskydandelions 1 Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19319 Share on other sites More sharing options...
Sophie_ 15 Posted October 19, 2016 Share Posted October 19, 2016 On 16/10/2016 at 5:11 PM, lirty said: Merci a toi pour cette config mais je ne suis pas très familier avec le langage c# et la programmation en général :D je penser plus a un fichier xml ^^ sinon pour etre plus clair dans mes problème et vu que je n'est jamais vu fonctionner une rotation en heal je ne sait pas trop comment sa se passe. Deja mon plus gros probleme c'est quand je lance ma rotation rien ne ce passe le bot ne heal personne. Si je target un ennemie pendant un combat la il va commencer a ce heal mais que lui pas les membres du groupe.Faut-il target un player en donjon pour que le bot heal ou il gere automatiquement les target ? j'ai essayer plusieur condition heal percent, target distance , target , in combat mais rien i fait. Il me semble que les profils heal se programme en C# et ne peuvent pas être crée avec l'outil de creation de fightclass proposé par wrobot Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19343 Share on other sites More sharing options...
Pasterke 98 Posted October 19, 2016 Share Posted October 19, 2016 Oui, il faut C# pour une fightclass heal. Mais vous avez ici un example. Ca marche tres bien pour druid restoration. Une fois que vous avez la mouture, c'est pas tres difficile pour l'adopter a une autre class heal. Duskydandelions 1 Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19344 Share on other sites More sharing options...
lirty 0 Posted October 22, 2016 Author Share Posted October 22, 2016 Quote Salut merci pour vos réponse donc en gros je ne peux pas créer de fight classe pour heal si je ne sais pas coder en c# ? ^^ Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19477 Share on other sites More sharing options...
AudreyH 17 Posted October 22, 2016 Share Posted October 22, 2016 Salut, je vais partager une version simple du palaheal d'ici ce soir en C# Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19480 Share on other sites More sharing options...
AudreyH 17 Posted October 22, 2016 Share Posted October 22, 2016 En attendant tu peux partir de ça, il faut enlever les sorts obsolètes et les changer les paramètres dans le setings du fight class (dans l'interface WRobot) ( vais vérifier que ça fonctionne encore en lfr) Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19481 Share on other sites More sharing options...
lirty 0 Posted October 22, 2016 Author Share Posted October 22, 2016 Salut merci pour le lien je l'avais justement télécharger ce matin pour voir un peux est c'est très très complet merci a sont auteur c'est le genre de fight classe que je pourrais jamais faire sa :p en tout cas c'est propre et riche on en apprend. Enfin bon je me suis pas décourager depuis ce matin je me suis pencher dessus (j'ai pas vue le temps passer bientôt 6h que je suis dessus) et je commence a mieux comprendre j'arrive a décoder la majorité des ligne etc.. j'ai quelque problème de compréhension par contre avec les boucles et conditions pour configurer les sorts j'ai essayer de comparer plusieurs fightclass coder en c# mais j'ai l'impression que tout le monde ne code pas de la même façons sa me perturbe :d. Je te remercie d'avance AudreyH pour le fightclass que tu va poster ce soir il va beaucoup m'aider je pense ^^. ps : le fightclass basic de Droidz pour Hpal : Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19482 Share on other sites More sharing options...
AudreyH 17 Posted October 22, 2016 Share Posted October 22, 2016 Oui c'est le premier sur lequel j'ai bossé avec Droidz :) Mais je trouve que celui de Cinda est bien pensé, pas très optimisé en temps mais il donne la façon de faire et est très suffisant Il y a même un framework qui date de début d'année qui est sympa Je modifie juste celui de Cinda pour qu'il fasse autre chose que du FoL :) Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19484 Share on other sites More sharing options...
AudreyH 17 Posted October 22, 2016 Share Posted October 22, 2016 179k on Ursoc LFR BestofFaith and Beacon doesnt work because of the gettank function, don't have time this WE to find out [Cindarella]-Holy Pala Beta Legion by AudreyH.cs Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19497 Share on other sites More sharing options...
lirty 0 Posted October 24, 2016 Author Share Posted October 24, 2016 Salut AudreyH merci a toi j'ai tester et sa marche nickel je vais essayer de l'améliorer. et par contre personne ma repondu mais est ce que wrotation marche en arène cotée :D ? Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19552 Share on other sites More sharing options...
iMod 99 Posted October 24, 2016 Share Posted October 24, 2016 On 22.10.2016 at 9:49 PM, AudreyH said: 179k on Ursoc LFR BestofFaith and Beacon doesnt work because of the gettank function, don't have time this WE to find out [Cindarella]-Holy Pala Beta Legion by AudreyH.cs Is there a reason why you create a new player object? Line 792: var u = members.First(); WoWPlayer healTarget = new WoWPlayer(u.GetBaseAddress); Why not just: WoWPlayer healTarget = members.First(); Sorry for offtopic Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19554 Share on other sites More sharing options...
AudreyH 17 Posted October 24, 2016 Share Posted October 24, 2016 Pour l'arene oui, cela reste une rotation comme une autre, par contre ca necessite d'optimiser ca aux ptits oignons, pour entre autre prendre en compte les talents d'honneurs IMod: good point, but it was not my intention to correct the code, just show how to add spells and make it run WoWPlayer healTarget = members.First(); Tu peux modifier le code comme écrit ci-dessus Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19561 Share on other sites More sharing options...
iMod 99 Posted October 24, 2016 Share Posted October 24, 2016 5 hours ago, AudreyH said: Pour l'arene oui, cela reste une rotation comme une autre, par contre ca necessite d'optimiser ca aux ptits oignons, pour entre autre prendre en compte les talents d'honneurs IMod: good point, but it was not my intention to correct the code, just show how to add spells and make it run WoWPlayer healTarget = members.First(); Tu peux modifier le code comme écrit ci-dessus Yeah i saw it, the code is kinda messi no offense. What part doesn't work maybe i can help you out. Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19567 Share on other sites More sharing options...
AudreyH 17 Posted October 25, 2016 Share Posted October 25, 2016 No offense :) it's not my code, i took the example form Cinda because it's very simple to understand, and modify it to run on legion I have my own rotation, but i'm not 100% happy with it, even i do high heal with it (I'm on MM) It's the tank part, i should take mine but between raid, expedition and reroll ... i'm a bit busy in game ;) Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19580 Share on other sites More sharing options...
MrBottie 4 Posted October 25, 2016 Share Posted October 25, 2016 How do you guys test/tweak the healing class? Proving grounds or just in dungeon/raids? :) Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19581 Share on other sites More sharing options...
Pasterke 98 Posted October 25, 2016 Share Posted October 25, 2016 proving grounds or LFR. Don't test in dungeons ! Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19586 Share on other sites More sharing options...
iMod 99 Posted October 25, 2016 Share Posted October 25, 2016 I'm testing the stuff with an alt account or dungeons but i'm just at a private server Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-19588 Share on other sites More sharing options...
yvacanozag 0 Posted January 20, 2017 Share Posted January 20, 2017 SVP quand on nous donne une réponse en C#, où faut il le placer/nommer dans Wrobot ? Link to comment https://wrobot.eu/forums/topic/4118-fight-classe-heal-wrotation/#findComment-22114 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now