• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [Bot] Prosto_Pets: Battle Pets 4 in 1, and more

    Discussion in 'Botbases' started by Prostak, Jan 7, 2015.

    1. Prostak

      Prostak Member

      Joined:
      Mar 17, 2013
      Messages:
      249
      Likes Received:
      16
      Trophy Points:
      18
      I want to say thank you to everybody who've sent a donation to my Paypal account. It is very pleasant to see appreciation of the efforts.
      The delay in my thanks was caused not because I am ungrateful, but because I've checked this account only now, lol.
       
    2. razer86

      razer86 Member

      Joined:
      Jan 15, 2010
      Messages:
      76
      Likes Received:
      0
      Trophy Points:
      6
      I realize this is constantly under development, just wondering if there are long term goals of doing things like daily tamers, celestial tournament, daily garrison battles etc?

      Edit: Is there anyway to get this to keep the Safari Hat buff?
       
      Last edited: Jan 19, 2015
    3. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      The Safari Hat buff does not have a limited duration. It should just stay active if you use it once before you start the bot. I have seen some of my characters running around with it for days.
       
    4. razer86

      razer86 Member

      Joined:
      Jan 15, 2010
      Messages:
      76
      Likes Received:
      0
      Trophy Points:
      6
      So it does... I was using Presto in Ringer mode yesterday leveling, and again today. Just noticed at the end of my session today, it didnt have the hat buff.

      Might have to check through my logs to see if there is any reason it fell off
       
    5. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      The only reason I could think of is that your character died at some point. Even in low level zones it would be possible to fall down somewhere by accident and die.
       
    6. Mr_Hunter

      Mr_Hunter Member

      Joined:
      Sep 11, 2010
      Messages:
      555
      Likes Received:
      6
      Trophy Points:
      18
      Would it be possible that the bot would attack only one sort of Pets? Like unborn valkyere?
      I catched it manually but would be nice if he flys to the Hotspots and when it spawns he attacks.
       
    7. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      Whitelisting is already on Prostak's roadmap. :)
       
    8. Mr_Hunter

      Mr_Hunter Member

      Joined:
      Sep 11, 2010
      Messages:
      555
      Likes Received:
      6
      Trophy Points:
      18
      Nice :)

      Do u know some must-have pets for this which are not spawning so often?
       
    9. kabishmann

      kabishmann New Member

      Joined:
      Apr 12, 2010
      Messages:
      102
      Likes Received:
      2
      Trophy Points:
      0
      [Suggestion]: Custom

      If this has already been suggested, then just ignore this.

      What I would like, and hope to see in this already great botbase, is an easy way to use standard grind profiles, only containing waypoints.
      For example, I'm after the Unborn Val'kyr, and I found a grind profile here on the HB forum. I would like to be able to choose this profile directly, without it being part of the pet levelling areas. For this it would of course be needed that I manually choose what level pets I would use to use for combat.

      It would of course not be very time effective, but it will make it possible to farm specific pets.

      I really hope this will be possible at some point.
       
    10. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      Oh, I really don't know. There were a few which were a pain to catch, but I got them all pretty quickly when they were implemented, so I have no idea if they are still considered rare. I am working from home so I have the luxury of logging in whenever I need to. I guess you could fly through Storm Peaks with the Arctic Fox Kit whitelisted to only catch that one as soon as it starts to snow, but that would mean hours upon hours of idle time. Minfernal might be another one, because there are other pets around his spawn location. Maybe the Scourged Whelpling. I don't know if it is still rare.
       
    11. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      I think in regards to the status changes "Bleeding", "'Chilled", "Blinded" etc. it would often be better to offer a globally available condition instead of asking for specific buffs/debuffs. This way we would open the door for multi-pet tactics where a pet might use a skill based on buffs/debuffs placed by other pets in the team.

      This is how a typical condition looks now:

      Code:
      new AandC("Deep Burn", () => debuff("Burning") || weather("Scorched Earth"))
      
      In this case "Deep Burn" does not account for "Burning" debuffs caused by other abilities like Fel Immolate, Flame Breath and others. If we wanted to do that, it had to look like this:

      Code:
      new AandC("Deep Burn", () => weather("Scorched Earth") || debuff("Fel Immolate") || debuff("Flame Breath") || debuff("Flame Jet") || debuff("Flamethrower") || debuff("Immolate")))
      
      It would be more practical to do it like this:

      Code:
      new AandC("Deep Burn", () => enemyIsBurning )
      
      That is why I would like to propose a minor code addition which adds this functionality.

      MyPets.cs:
      Code:
              public static bool enemyIsAsleep()
              {
                  if (debuff("Asleep"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsBleeding()
              {
                  if (debuff("Bleeding"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsBlinded()
              {
                  if (_weather == "Darkness" || debuff("Blinding Poison") || 
                      debuff("Blinded") || debuff("Partially Blinded"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsBurning()
              {
                  if (_weather == "Scorched Earth" || debuff("Fel Immolate") || 
                      debuff("Flame Breath") || debuff("Flame Jet") || 
                      debuff("Flamethrower") || debuff("Immolate"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsChilled()
              {
                  if (_weather == "Blizzard" || debuff("Frostbite") ||
                      debuff("Frost Nova") || debuff("Frost Shock") ||
                      debuff("Slippery Ice"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsPoisoned()
              {
                  // Glowing Toxin is a debuff but does not poison apparently
                  if (debuff("Poisoned") || debuff("Acidic Goo") ||
                      debuff("Blinding Poison") || debuff("Confusing Sting") ||
                      debuff("Corpse Explosion") || debuff("Creeping Ooze") ||
                      debuff("Sting"))
                  {
                      return true;
                  }
                  return false;
              }
      
              // immune to stun, polymorph, sleep
              public static bool enemyIsResilient()
              {
                  if (debuff("Resilient"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool enemyIsStunned()
              {
                  if (debuff("Stunned") || debuff("Crystal Prison"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsAsleep()
              {
                  if (buff("Asleep"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsBleeding()
              {
                  if (buff("Bleeding"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsBlinded()
              {
                  if (_weather == "Darkness" || buff("Blinding Poison") || 
                      buff("Blinded") || buff("Partially Blinded"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsBurning()
              {
                  if (_weather == "Scorched Earth" || buff("Fel Immolate") ||
                      buff("Flame Breath") || buff("Flame Jet") || 
                      buff("Flamethrower") || buff("Immolate"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsChilled()
              {
                  if (_weather == "Blizzard" || buff("Frostbite") ||
                      buff("Frost Nova") || buff("Frost Shock") ||
                      buff("Slippery Ice"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsPoisoned()
              {
                  // Glowing Toxin is a debuff but does not poison apparently
                  if (buff("Poisoned") || buff("Acidic Goo") ||
                      buff("Blinding Poison") || buff("Confusing Sting") ||
                      buff("Corpse Explosion") || buff("Creeping Ooze") ||
                      buff("Sting"))
                  {
                      return true;
                  }
                  return false;
              }
      
              // immune to stun, polymorph, sleep
              public static bool myPetIsResilient()
              {
                  if (buff("Resilient"))
                  {
                      return true;
                  }
                  return false;
              }
      
              public static bool myPetIsStunned()
              {
                  if (buff("Stunned") || buff("Crystal Prison"))
                  {
                      return true;
                  }
                  return false;
              }
      
      PetTacticsBase.cs:
      Code:
              // checking for general conditions caused by multiple effects
              public static bool enemyIsAsleep() { return MyPets.enemyIsAsleep(); }
              public static bool enemyIsBleeding() { return MyPets.enemyIsBleeding(); }
              public static bool enemyIsBlinded() { return MyPets.enemyIsBlinded(); }
              public static bool enemyIsBurning() { return MyPets.enemyIsBurning(); }
              public static bool enemyIsChilled() { return MyPets.enemyIsChilled(); }
              public static bool enemyIsPoisoned() { return MyPets.enemyIsPoisoned(); }
              public static bool enemyIsResilient() { return MyPets.enemyIsResilient(); }
              public static bool enemyIsStunned() { return MyPets.enemyIsStunned(); }
      
              public static bool myPetIsAsleep() { return MyPets.myPetIsAsleep(); }
              public static bool myPetIsBurning() { return MyPets.myPetIsBurning(); }
              public static bool myPetIsBlinded() { return MyPets.myPetIsBlinded(); }
              public static bool myPetIsBleeding() { return MyPets.myPetIsBleeding(); }
              public static bool myPetIsChilled() { return MyPets.myPetIsChilled(); }
              public static bool myPetIsPoisoned() { return MyPets.myPetIsPoisoned(); }
              public static bool myPetIsResilient() { return MyPets.myPetIsResilient(); }
              public static bool myPetIsStunned() { return MyPets.myPetIsStunned(); }
      
      I would love for these changes to be added to an upcoming build. It would really help me improve my tactics. :)

      Edit Complete. I forgot a few status changes I had saved locally.
       
      Last edited: Jan 19, 2015
    12. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      Grind profiles only really suit a handful of pets:
      giraffe cub, flayer youngling, arctic fox kit, baby ape, fluxfire feline (?), etc.
      just google rare battle pets for ~3 years of blog discussions on what's rare.

      Minfernal is the exception, it only spawns for about an hour each day, so it's limited. IME, minfernal critters will actually despawn in front of you around 5.30am server time, or they used to, at the least. Restless Shadelings in karazhan also phase in/out too, and then there's the whole issue of CRZ and swapping zones, qiraji guardling will also despawn, but i have no concept if it's related to CRZ, it could be one of those answers.

      In general, the premise of battle pet collector was to take long flights around the continent to gather pets in short bursts and move on.
       
    13. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      I seem to remember there's only a handful of status effects, but it needs a concise list of the auras (also the numbers for later) which are not common.

      if i wanted to suggest better terms in petTacticsBase.cs, i'd add in:

      RawHP, RawHPEnemy as integers for the actual pet health values;
      TeamAlive, EnemyTeamAlive as integer for pets still alive on the enemy team.

      In terms of a list of buffs, it's not that long. and the possible beneficial advantages is short. But, it also requires testing because not all abilities are singular. Some have or "cause" secondary effects, or only work when auras are missing or applied, i.e. Food Coma, causes Asleep if there's no damage in the next round... in this case, that can be worked into the logic as is, as long as you know the buff is called "Asleep" and to heal when either buff is active instead of choosing to attack.

      i.e. the possible states are bleed, blind, burn, chilled, poisoned, injured/lower health value, sleep, stun, webbed.
      Pet Abilities - World of Warcraft
      weather is arcane winds, blizzard, moonlight, darkness, raining, sunny
      Pet Abilities - World of Warcraft

      The abilities are also named/numbered on Pet Abilities - World of Warcraft so you can check your spelling against other languages on wowhead (or use the numbers... which is arguably, more work) If you want the specific ability list, there's only 541 abilities, some that have a buff/debuff effect (only 541, and some are listed 3x) However, there's not a general list for meta-abilities, those require a short list compiled by hand, (or using some wowhead search i couldn't really work out how to filter for). Not all of the stuns use the same aura/debuff or team debuff effect, they often have different names and icons, and numbers. I don't have a shortlist to the "passive" or disconnected abilities on wowhead unfortunately, but warcraftpets, petsear.ch, wowhead, and a few others have compiled a few "brackets" for the states, weather and auras.

      i.e. here's the old stun list on pokehbuddy i compiled a long, long, long time ago from ingame experience.

      822 "Polymorphed" Polymorphed - Battle Pet Ability - World of Warcraft
      498 "Asleep" Asleep - Battle Pet Ability - World of Warcraft also 926, 1348
      174 "Stunned" http://www.wowhead.com/petability=174/stunned also uses 927 and 1030
      734 "Crystal Prison" http://www.wowhead.com/petability=734/crystal-prison

      there's no common meta-status for these abilities, but they all do roughly the same thing, prevent you from hitting an ability when the buff is active. And, some let you swap out, some do not. The reason i bring these 4 up, is that they aren't universal for a definition like "IsStunned", because a meta-ability list would be better off with a safety feature like testing for "cannotSwap" with LUA, rather than having a predefined value for IsStunned to check for those 7 values/4 strings.

      It is more work, but if 10 people each upload 5 unique pets a week, the job's done in ~3 months.

      This is a whitelist feature. it's currently not set up. Just wait longer :)

      I also had a start with undead, because it seemed smaller (and only just saw Studio60's list), which there's a few alterations, i've just changed a few over and added the other ~9 undead pets, as there's only 33 undead pets.

      Once i've manually run each pet to ensure the labels are all correct and levelled them > 20 to test all 6 abilities are set up correctly with the aura numbers as well, will upload it here. At the moment, i'm trying to replace Dark Simulacrum with Rot (Spirit Crab, and a few others), is this a valid way to group these checks ? or should they be separate function calls ?

      PHP:
      new AandC"Rot", () => famEnemy ("critter" || "aquatic") && ! debuff("Undead") ),    // Slot 3, Rot = 476  Debuff Undead = ???
      it's based on rot's "undead" effect, which improves damage for elemental (kirin tor familiar) is critter/aquatic , magic (willy) is mechanical/dragonkin
       
    14. Studio60

      Studio60 Well-Known Member Buddy Store Developer

      Joined:
      Sep 3, 2014
      Messages:
      3,411
      Likes Received:
      48
      Trophy Points:
      48
      I usually try to abide by the DRY principle. And a lot of spells do have mechanics that require e.g. a poisoned status, which is provided by a lot of debuffs. If there was a way to check them through a single condition, we would only have to change it inside that condition if another poisonous ability were to be added to the game. Your cannotSwap argument for isStunned does not seem to have much merit either, unless there is a way to force a swap inside a tactic. But we don't seem to have a functionality like that, or am I wrong? I can't think of another situation where I would need different definitions of a status change, but that certainly doesn't mean there is any. You are the experienced one here, when it comes to pet battles.

      your famEnemy() check needs to rather look like this:

      Code:
      new AandC( "Rot", () => (famEnemy ("critter") || famEnemy("aquatic")) && ! debuff("Undead") ),    // Slot 3, Rot = 476  Debuff Undead = ???  
      
      But is there really a debuff "Undead", wouldn't you have to check for the debuff("Rot")?
       
      Last edited: Jan 19, 2015
    15. Valpsjuk

      Valpsjuk Member

      Joined:
      Nov 10, 2014
      Messages:
      397
      Likes Received:
      4
      Trophy Points:
      18
      Was using the Borean Tundra profile today, and when it is in Coldarra, it finds some "crabs" that is actually inside the Murloc caves, but the bot spazzes out trying to get to them. Are usually four of them around there.

      Is it possible to get it to detect that they are underground and get it to ignore them?
       
    16. kirewade

      kirewade New Member

      Joined:
      Jan 15, 2010
      Messages:
      149
      Likes Received:
      2
      Trophy Points:
      0
      Where did the zone profiles go?
       
    17. Valpsjuk

      Valpsjuk Member

      Joined:
      Nov 10, 2014
      Messages:
      397
      Likes Received:
      4
      Trophy Points:
      18
      For some reason the SVN update was set to delete them... Maybe Prostak is working on the or making some changes of some kind...
       
    18. kirewade

      kirewade New Member

      Joined:
      Jan 15, 2010
      Messages:
      149
      Likes Received:
      2
      Trophy Points:
      0
      Yeah i cant get it to work i will wait until he fixes it thanks
       
    19. Prostak

      Prostak Member

      Joined:
      Mar 17, 2013
      Messages:
      249
      Likes Received:
      16
      Trophy Points:
      18
      Version 0.9.11:
      - profiles for EK and Kalimdor replaced with ground ones
      - zone selection based on the current continent implemented:
      -- Default zone profile is now empty (--- not set ----).
      -- If the zone is to be autoselected, but not set on "Pet Zone" tab (or set for another continent) - the bot will load a zone for the continent you are in. Stop if failed.
      -- Button to load the zones for the continent added to "Pet Zones" tab. Set to (--- not found ---) if not found.
      -- CATA zones prefix changed to EK and KALI as appropriate.

      While new zone selection system became very near "configurationless", it has one drawback compared with the previous version. Automatically selected zones can be far from each other. I'll see what can be done here. Seems not that hard to select the profile with the nearest hotspot, if the choice is present.

      Next in plans: removing "English Only" limitation. I'll read all comments re this issue and start on it. ETA: a couple of weeks.
       
    20. Prostak

      Prostak Member

      Joined:
      Mar 17, 2013
      Messages:
      249
      Likes Received:
      16
      Trophy Points:
      18
      Oh, I see. Old are gone, but new ones not added. Hm. Previously VS asked to add new files, but not now. Let me check.
       

    Share This Page