• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [PLUGIN] Pokebuddy - Gotto kill em all!

    Discussion in 'Uncataloged' started by maybe, Oct 26, 2012.

    1. thekartel

      thekartel New Member

      Joined:
      May 28, 2011
      Messages:
      36
      Likes Received:
      0
      Trophy Points:
      0
      Hi Toliman sorry for the late reply thanks for answering i tried this profile but its not working. Do you think i should just replace this pet for something better ?

       
    2. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      When you say it's not working...
      What did you have in the pet logic?
      Try any troubleshooting?

      You can try a different pet, but see if you can fix the current one first, in case the problem comes back.
       
    3. virus2001

      virus2001 Member

      Joined:
      Jan 1, 2012
      Messages:
      433
      Likes Received:
      10
      Trophy Points:
      18
      This^^
       
    4. HBfanboy1980

      HBfanboy1980 Active Member

      Joined:
      Jan 16, 2012
      Messages:
      1,139
      Likes Received:
      11
      Trophy Points:
      38
      I'd like some more functionality, but neither am I a computer engineer nor any anything having to do with computers.... and I wholeheartedly do not want this dumbed down for everyone to use. HB, Botbases, Combat Routines... have been so dumbed down that everyone is using the damn things now. I rarely do a BG where I don't notice Demonic totem slaying, TuanHA killshots on low HP targets, and the list goes on.... the last thing I want is everyone getting free level 25 pets.

      edit: typo
       
    5. virus2001

      virus2001 Member

      Joined:
      Jan 1, 2012
      Messages:
      433
      Likes Received:
      10
      Trophy Points:
      18
      The plugin start fight but keeps givin up :/
       
    6. HBfanboy1980

      HBfanboy1980 Active Member

      Joined:
      Jan 16, 2012
      Messages:
      1,139
      Likes Received:
      11
      Trophy Points:
      38
      in first tab tell it when to forfeit. you prolly have it set to do this if there isnt an interesting pet or an upgrade...
       
    7. virus2001

      virus2001 Member

      Joined:
      Jan 1, 2012
      Messages:
      433
      Likes Received:
      10
      Trophy Points:
      18
    8. DandyDo

      DandyDo New Member

      Joined:
      Jul 30, 2013
      Messages:
      32
      Likes Received:
      0
      Trophy Points:
      0
      Would i be able to make this plugin just repeatdly battle Lucky Yi?
       
    9. Azile

      Azile New Member

      Joined:
      May 18, 2013
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Should be able to. I think you would whitelist Yi and blacklist any other pets around him. Then make a grinding profile with 2 spots next to Yi, so if you died he would run back ok. Then set up logic for your pets, Zandalari Kneebiters with a Magical Crawdad works well, but meh, many ppl have solutions for best way to farm him.
       
    10. Azile

      Azile New Member

      Joined:
      May 18, 2013
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Powerleveling Characters

      Hi,

      Great Plugin, honestly, very well designed and powerful enough to customize to many situations.

      I am using it to powerlevel characters: Using the No-no Vale spot, on Golden Civets with moths etc. It works well but I have a question about the speed of it acting. It seems to take a period of about 5 seconds to make the choice, send the command to use power. The delay is quite noticeable, I can see the option to do "something" is available but it takes about 5 seconds to often issue a command. When powerleveling a character like this, speed is everything, shaving 30 seconds off a fight is a big factor. Is there a reason for the command delay, any way I can speed it up etc?

      Is this something I am only noticing?

      Secondly, the bot, when it engages a new battle, always wants to run to exactly where the wild pet is currently standing, which leads to "obstructed area" issues quite often, which leads to possible blacklisting of the wild pet. Is there a way to negate this? As in, I never ever want to "blacklist" Golden Civet & Golden Civet Kitten. Does adding their names to Whitelist negate this? Or a way to turn off Blacklisting? Also, related to this, could there be a way to have it not move directly on top of the wild pet before trying to start the battle? I would love a range setting, so if within 10 yards of the wild pet, it tries to engage the battle. These things are really needed to allow this bot plugin to be used for specific power leveling spots for characters.

      Thanks again for a great plugin.
       
    11. Azile

      Azile New Member

      Joined:
      May 18, 2013
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Hi,

      Another question as well...is there a way to default the pet to start the battle to always be #1 or #2 in slot and not change rotation or something? I see a rotation setting but it seems to be locked out for changes. My pet in slot 3 is specifically to be used VS critters, but they are not that common. So I never want to open a battle with the pet I place in slot #3, always start with slot #1 or #2. But because the slot #3 pet ends up having higher HP than the others, it always starts with him, then swaps because of the condition I set up.

      A second thing I am trying to set up:

      Always start battle with Mr. Wiggles. Cast Uncanny Luck. Swap to other pet. - - How can I get this set up...and yes, I will set condition if 1 pet dead, use rez/bandage.

      Any ideas?
       
    12. toha0518

      toha0518 New Member

      Joined:
      Feb 11, 2012
      Messages:
      52
      Likes Received:
      0
      Trophy Points:
      0
      Hi i cant get the plugin to show up when i start honor buddy, i downloaded the svn copyed all the files in the SVN into the plugin folder, what am i doing wrong? thanks guys!
       
    13. Azile

      Azile New Member

      Joined:
      May 18, 2013
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Are you sure the Pokehbuddy folder is in the plugins folder and is not double nested, so /plugins/pokehbuddy and not /plugins/pokehbuddy/pokehbuddy
       
    14. toha0518

      toha0518 New Member

      Joined:
      Feb 11, 2012
      Messages:
      52
      Likes Received:
      0
      Trophy Points:
      0
      am i supposed to copy all the files from the svn folder? or just copy the whole SVN folder and put it into plugins? sorry im fairly new to this


      i got it to work :) thank you VERY much!!
       
    15. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      arguably, it's quite efficient.
      but as you note, 8 seconds vs 11 seconds can add up in a 20-24 round battle. especially if it's a forfeit match or the pet you want to level has died on the 13th round because it swapped the low level pet back in due to the pet ratings.

      as you mention, it can take 2 seconds or 4. it feels longer, but it probably is within the same window as an animation cycle for each pet.

      IDK how the process works entirely, i only know how the code reads.

      on first glance, the code within "InPetCombat()" can be altered to remove the delay, it is not something too hard to change... you just neuter and remove bits of the code you're not using, like pet capture, forfeit checks, pvp timers, redundant health checks, levels, etc* (things that would purely make power-levelling faster or PvP faster).

      but, none of that is honorbuddy responding slowly to the in-game lua state changes when it's your turn to move, which i'd guess is the delay you mention. "more info" / debug usually shows "doing logic" 2-3 seconds after the turn starts, so i'm not sure how to make it more efficient. (it could just be that the in-game LUA takes that long to send back "my turn now" in each Pulse() , i just don't know how HB's side works. i see that it checks C_PetBattles.IsTrapAvailable() to determine if you can take a turn, so that might be the slowdown in the process, finding another way to check if it's "our" turn to move. but, it's a guess.)


      second is also easy to adjust in the .cs file.
      the distance is set to 8, but you can change it to 20 or 30, keep in mind, you're altering the distance, it has a downside.
      if you change the interaction range to 20 or 30, the nav system will still try to walk up to start the fight at the original location of the pet, and can still get stuck near, but not quite in range of the pet, and you face the issue of well, not being anywhere near the pet you're trying to engage.

      experimenting with the setting may help you out, because HB can't do a line of sight raycast (a check if it can see the pet), it just does a re-nav, which puts you squarely on top of it again. which is why it tries to dry hump the battle pets so often ... or mounts up to move 4 feet, then dismounts, just to engage a flying pet...

      because the nav system works off the mesh, and not the 3d location, you can be up to 90 yards off, and PB will still try to engage the target that's downstairs, in a cave, inside a tree, mountain, underwater, or just completely unavailable.

      the blacklisting usually works but it takes time, that people nearby could notice you drop. stand still for 10 seconds, then fly off to a location 20 ft away, and repeat the same action. the nav system will get you into trouble like this, but it's unavoidable.

      see how it goes anyway, you may have more luck in some zones, there may be a benefit in attempting to increase the engage distance if the first engage attempt fails, or to blacklist attempts at a greater distance, but it requires some testing. and it could be tweaked for particular zones/continents depending on a tweaked GB2 profile, so zones with caves could be set for melee distance, open areas with 30 yard distances, etc. though storing a string that has the "terrain" data stored like this, makes it more applicable to the version 3.0 farming bots under development at the moment that keep the nodes in broad, localised clusters, and moves between clusters to offset the whole precision routing LCP problem.

      sigh. potential ideas for another day.
       
    16. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      the pet rating system is probably what you want to use, however, it's not quite so self-explanatory without a guide.
      (one was written 30 pages back, maybe 50 pages ... )

      so, keep in mind, this is relative to the pets you choose,
      if you use battle pet swapper, it will basically rely on a few good pets (ringers) that can swap themselves out, or survive a few hits from a level 25 to work "AFK" well, and not die horribly.

      the problem with ringers is, you need to setup pokehbuddy to use ringers properly or adequately. most people use the defaults, but it's not too hard to make new defaults for the level bracket you need.

      (there's probably some math or pseudocode/LUA that could auto-scale the rating values from battle pet swapper's current Max/Min, to auto-swap these pets, but it's late and advanced calculus to calculate the slope/high points, is a bit beyond me at the moment. it's just more fun to watch people squirm when you show them how obvious things work)

      1/ open pokehbuddy, change to the advanced tab, hit the button for "load profile".

      it will set the default as pictured.
      View attachment 100979

      (well, kind of, this is mine. it might look different to yours. i have more stuff than you do, etc.)

      after you hit that button, the sliders are set this way on the "default Levelling" profile.

      2/ make the advantage slider 10,
      move the level difference slider to negative 20,
      HP to 40

      and then look at the ratings for the pets below.

      3/ set the fictional opponent to a level 23 "critter", and load up your team, so the icons match your pets,and not mine.

      4/ math

      in my example, all 3 pets are at 100% hp, and as the HP is set to "8", 100% health x8 = 800. so at full health, the pet will have this initial score. that's how the ratings work, they use the number from each pet, to create a rank or preference of pets to choose.

      after calculating all 4 values (using the values inside the greyed out code above)

      the score changes so the middle pet, appears to have the "highest" score of -600.
      this is due to the level difference from 1(enemy) to 25(most of the pets listed) being multiplied by a negative number, which is "-50" in the default case.

      5/ if you notice, health, is only going to get smaller, but it can't offset the massive level difference, so the other pets won't get swapped in.
      of course, a level 25 against a level 1, it won't matter.

      but a lvl 1 against a 25 enemy, it will help adjust the choice of the 2nd and 3rd pet in line, which will be the ringer pets, that take all the damage.

      when your level 1 or level 10 takes 20% damage, they should be MUCH LOWER in the rating than the 25 pets, but, also start at a huge or immediate advantage when at 100% health, that drops significantly when it takes damage.

      soo ...

      if you change the fictional opponent to a more reasonable 24 or 22, the ratings will change.

      DIY Ratings advice:

      * make health about equal to the difference in level,
      * make both HP and level, 10x larger than the advantage/disadvantage, and it will only swap in the pet with the most health at the time and mostly ignore advantage/disadvantage "critter types"
      * negative numbers for level, will make PB prefer low-level pets to start first.
      * high HP, also swaps in healthier pets for injured ones (a good thing).

      * logics can swap themselves out when injured, the default is below 30% health.
      * you have to tell a pet, via their logic, to swap itself out when it's against the wrong type, it won't "know" unless it can check.

      the rest is usually practise,
       
    17. HB7032V76

      HB7032V76 New Member

      Joined:
      Apr 20, 2011
      Messages:
      599
      Likes Received:
      1
      Trophy Points:
      0
      my guardian cub uses some spells , and i want him to use other spells but whatever i do h just gets those spells bak , i hope you got what i mean, i dunno how to change the spells he usses :(
       
    18. Azile

      Azile New Member

      Joined:
      May 18, 2013
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Toliman,

      Thanks for the info/reply.

      I have been trying to source the cause of the delay, edited in a lot of logging comments and such to the CS. Still unable to determine what is the cause of it. It clearly pauses after each attack still for about 4 seconds. It is not the logic checks causing it. Somewhere when it gets into:

      public bool CanFight()
      {
      List<string> cnt = Lua.GetReturnValues("return C_PetBattles.IsWaitingOnOpponent()");

      if (cnt != null) {
      if (cnt[0] == "0") return true;
      BBLog("CanFight = True");
      }

      return false;

      }

      ...is where it suddenly pauses before resuming into:

      BBLog("Doing PRE Logic");
      bool didlogic = false;
      LoadPetSettings(ReadActiveSlot(), ReadActiveSlotSpecies());
      string dumdum = DefaultLogicz.Logic + "@" + PetSettings.Logic;
      string[] PetLogics = dumdum.Split('@');
      BBLog("Doing Logic");
      foreach (string alogic in PetLogics)
      {

      As I have log comment for the CanFight() call and then a log comment for immediately following where it jumps back, I can see the 4 second pause consistently.

      The situation is such that what happens is it spams in and out of CanFight() while no pet powers are active (IE: busy, cannot send a command) then as soon as the pet power buttons are usable, it stops and pauses for 4 seconds, then continues into the Logics and attacks.

      It is like it is checking...."Cant attack, cant attack, cant attack...oh wait...now I could attack...but instead, lets pause for 4 seconds and then do the logics and attack".

      In power leveling this way, 4 seconds is like taking an extra attack, since we use fast hard hitting attacks to speed up the xp making. So a battle which consists of an average of 10 attacks to win, is taking the time of 20 attacks...in otherwords, we are pacing at a speed that is 50% of the real potential.

      Any insight?
       
    19. HBfanboy1980

      HBfanboy1980 Active Member

      Joined:
      Jan 16, 2012
      Messages:
      1,139
      Likes Received:
      11
      Trophy Points:
      38
      I KNOW this is not perfect and not what you describe above, but I've found its about 99% effective. Using this as my defaults along with default leveling values (gonna try yours for 100% effectiveness) I lose virtually no battles. Honestly I now just run constantly and favorite pets I want lvl'd even at lvl 1. Using a custom profile for VoTFW and very specific pets with simple but effective petsettings I rarely lose a pet and 9 times out of 10 its when they are below lvl 5 and got a poison.


      SWAPOUT MyPetLevel ISLESSTHAN 25 $ Health(THISPET) ISLESSTHAN 70@
      SWAPOUT MyPetLevel ISLESSTHAN 20 $ Health(THISPET) ISLESSTHAN 80@
      SWAPOUT MyPetLevel ISLESSTHAN 15 $ Health(THISPET) ISLESSTHAN 90@
      SWAPOUT MyPetLevel ISLESSTHAN 12 $ Health(THISPET) ISLESSTHAN 99@
      SWAPOUT MyPetLevel ISLESSTHAN 25 $ HASBUFF(379) EQUALS true@
      PASSTURN HASBUFF(927) EQUALS true@PASSTURN HASBUFF(822) EQUALS true@
      PASSTURN HASBUFF(498) EQUALS true@PASSTURN HASBUFF(174) EQUALS true@
      PASSTURN HASBUFF(734) EQUALS true@CASTSPELL(1) MyPetLevel ISLESSTHAN 25
       
    20. toliman

      toliman Member

      Joined:
      Jun 20, 2012
      Messages:
      625
      Likes Received:
      10
      Trophy Points:
      18
      i thought i'd have a quick look at the API , i had some idea you could use the actual c_PetBattle commands, and some rumour it might be protected ...

      (not in any way familiar enough with WoW programming) so i searched for the API list,

      and opened up the PetBattleUI.lua, utils/xmlbrowser/test/AddOns/Blizzard PetBattleUI/Blizzard PetBattleUI - World of Warcraft Programming: A Guide and Reference for Creating WoW Addons

      which has some interesting parts under the cooldown update code.

      it's also something used in a few UI replacement mods, alongside C_PetBattles.IsWaitingOnOpponent()

      one, is the PetBattleStates, under C_PetBattles.GetBattleState()

      LE_PET_BATTLE_STATE_CREATED = 1
      LE_PET_BATTLE_STATE_WAITING_PRE_BATTLE = 2
      LE_PET_BATTLE_STATE_ROUND_IN_PROGRESS = 3
      LE_PET_BATTLE_STATE_WAITING_FOR_ROUND_PLAYBACK = 4
      LE_PET_BATTLE_STATE_WAITING_FOR_FRONT_PETS = 5
      LE_PET_BATTLE_STATE_CREATED_FAILED = 6
      LE_PET_BATTLE_STATE_FINAL_ROUND = 7
      LE_PET_BATTLE_STATE_FINISHED = 8

      it seems to store a trigger, from the event PET_BATTLE_TURN_STARTED, among others, which checks the event inside the function PetBattleFrameTurnTimer_OnUpdate, to reset cooldowns on different abilities (for the UI) and so on.

      if you can set up a frame ... you can watch for the event, and use that to trigger the logic much faster.

      i do sense i'm missing a few key things, but it's interesting that nobody really uses the battle states to do anything in other addons, most probably due to the interface locking access out. something perhaps to try with LUA or protected LUA access.
       

    Share This Page