Bugreporter 92 Posted October 24, 2013 Share Posted October 24, 2013 ... the level of the Pets in the Logfile before (or after) the fight. like: Player (23/25/25) Attack Wolf. ... Autopause if 25/25/25 (or another Comination (Settings)) is reached. ...Change of the first Pet after the first spell (Key 1, see posts before) ...Anonymising of the logfile. With the information of date/time and coordinations I think its simple to compare it with the Blizzard-DB ...Actions with the Pets without running to near to it. The Pet battle could be startet with a range from ca. 10-20 m. Its not nessessary to run to the pets. ...Detection of "no space for a fight". If a pet battle wont start after the second try , it could be a good idea to do a few steps backward (at the moment) or forward (if "far-battle" (see above) is realisied). ...Autochange the first pet. This take only sense, if point 3 of this list is realised, because the blacklist of spells are not realy needed any more. The autochange should be realised with a few parameters, like level-between-range and Pet-Type (its not a good idea to level beasts against mech-types :-) ) . Pets should be changed after the level is reached, or the pet is dead and no revive is possible (i.e. 7 min to next revive) ...pause, if first pet is dead and no rive/change is possible. ...pause, if all pets are dead and no revive is possible. Dont start to run/flight to he next position. ...pause for a minute or so, if at all positions no pet fights possible. ...hmmm....(to be continued) Link to comment Share on other sites More sharing options...
Droidz 2708 Posted October 24, 2013 Share Posted October 24, 2013 Thanks for your suggestions, I'll look it, I come back to you after. Link to comment Share on other sites More sharing options...
Droidz 2708 Posted May 14, 2015 Share Posted May 14, 2015 Hello, In the next WRobot update I have added pet battle fightclass system (in C# or VB.net), with this you can customize how to WRobot manage pet. Sample of fightclass (default code):using System.Threading; using robotManager.Helpful; using wManager.Wow.Helpers; using Timer = robotManager.Helpful.Timer; public class Main : FightBattlePet.IFightClassPet { // Called every 1000 ms in combat public void PulseInCombat() { if (!PetBattles.ActionSelected() && !PetBattles.IsWaitingOnOpponent()) { if (!string.IsNullOrWhiteSpace(FightBattlePet.LuaCode)) { Lua.LuaDoString(FightBattlePet.LuaCode); Thread.Sleep(Usefuls.Latency + 300); if (PetBattles.ActionSelected() || PetBattles.IsWaitingOnOpponent()) return; } if (PetBattles.IsDeadPet(PetBattles.PetFaction.Ally, PetBattles.GetActivePet(PetBattles.PetFaction.Ally))) { PetBattles.ChangeToBestPet(); return; } if (TargetTypeIsWeaknesses()) PetBattles.ChangeToBestPet(); else if (PetBattles.GetNumberUsableAbility() <= 0) PetBattles.SkipTurn(); else if (PetBattles.GetNumberUsableAbility() <= 0 && !PetBattles.ActionSelected() && !PetBattles.IsWaitingOnOpponent()) PetBattles.ChangeToBestPet(); else if (TrapUsable()) PetBattles.UseTrap(); else if (!FightBattlePet.PetBattlesDontFight) PetBattles.UseBestAbility(); } } private Timer _timerAutoOrderPet = new Timer(-1); private Timer _timerSpellRevive = new Timer(-1); // Called every 200 ms out of combat public void PulseOutOfCombat() { if (PetBattles.ConditionResurrectBattlePets) { if (!PetBattles.ReviveBattlePets()) { if (PetBattles.AllPetDead()) { ItemsManager.UseItem(86143); // Battle Pet Bandage Usefuls.WaitIsCasting(); if (PetBattles.AllPetDead() && _timerSpellRevive.IsReady) { Logging.Write("[PetBattle] Revive Battle Pets spell not ready, wait"); _timerSpellRevive = new Timer(1000 * 20); // Wait revive: /*while (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore) { if (_timerSpellRevive.IsReady) { PetBattles.ReviveBattlePets(); if (!PetBattles.AllPetDead()) break; AntiAfk.Pulse(); _timerSpellRevive.Reset(); } Thread.Sleep(50); }*/ } } } } if (FightBattlePet.AutoOrderPetByLevel && _timerAutoOrderPet.IsReady) { PetBattles.AutoOrderPetInJournalByLevel(); _timerAutoOrderPet = new Timer(1000 * 60); } } private bool TargetTypeIsWeaknesses() { if (FightBattlePet.AutoChooseBestPet) { var typeEffects = PetBattles.TypeEffects.Find(effects => effects.Type == PetBattles.GetPetType(PetBattles.PetFaction.Ally, PetBattles.GetActivePet(PetBattles.PetFaction.Ally))); if (typeEffects != null) { if (typeEffects.Weak == PetBattles.GetPetType(PetBattles.PetFaction.Enemy, PetBattles.GetActivePet(PetBattles.PetFaction.Enemy))) { return true; } } } return false; } private bool TrapUsable() { bool conditionsTrap = false; if (PetBattles.IsTrapAvailable()) { if (FightBattlePet.CaptureAllPets) { conditionsTrap = true; } else if (FightBattlePet.CaptureRarePets) { var quality = PetBattles.GetBreedQuality(PetBattles.PetFaction.Enemy, PetBattles.GetActivePet(PetBattles.PetFaction.Enemy)); if (quality == PetBattles.PetQuality.Rare || quality == PetBattles.PetQuality.Legendary || quality == PetBattles.PetQuality.Epic) conditionsTrap = true; } if (FightBattlePet.CaptureIDontHavePets && conditionsTrap && PetBattles.PetJournalHavePet(PetBattles.GetPetSpeciesID(PetBattles.PetFaction.Enemy, PetBattles.GetActivePet(PetBattles.PetFaction.Enemy)))) { conditionsTrap = false; } } return conditionsTrap; } } Link to comment Share on other sites More sharing options...
compartelo 0 Posted November 3, 2016 Share Posted November 3, 2016 On 14/5/2015 at 8:02 PM, Droidz said: where i write this code to work on wrobot?. thanks Link to comment 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