• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • WingIt - All In One

    Discussion in 'Archives' started by Neo93, May 7, 2012.

    1. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Xanathos,

      Thank you for the contribution! I've folded it in as WingIt changeset #697. We'll see if I get yelled at by those that know CC things, as I really don't but just trust people. :)

      I made one small mod on top of your changes--I put back the "Slice Droid" usage at the pull and during normal rotation. This was a recent addition that you probably had yet to pick up. I can tell you its saved my life a couple of times while soloing.

      I'm mulling over your comments about using Crouch only. I happen to agree about it rolling into other mobs, and that being a bad thing. On the other side of the argument, some claim that Cover offers better protection that Crouch (but I don't know this for fact), and the undeniable 'cool' factor of Cover.
      I'm open to opinions, but will leave it 'as is' in the mainline for now. We'll see what others have to say after it gets a little more usage time on it. If we had a GUI, it'd be trivial to make this an option, but I've yet to explore making GUIs for plugins/CCs yet.

      cheers and thank you again,
      chinajade
       
    2. bobsyuruncle

      bobsyuruncle New Member

      Joined:
      Jul 21, 2012
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      Yup, that's why I update here with info.
      Speaking of which I moved my wingit profile and download a fresh current one to test. My current experience on my sage is that he runs up to melee distance for each and every encounter. Mind you I have removed the compiled dll's and allowed BW to recompile wingit. Here's the log if there's anything usefull in it for you on this one. View attachment 2012-08-18 05.25.txt I haven't had time to really dig through it yet for clues.
       
    3. DavidB

      DavidB New Member

      Joined:
      Aug 21, 2012
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      Choosing Arsenal spec when I'm Pyrotech?

      I've been playing Mercenary Arsenal spec for most of the time but was tring out Pyrotech recently and when I load up BW and WingIt it says that it's loading an Arenal spec routine, I had a look through the code and also noticed that the Pyrotech specs resource values are based on a Commando which is different as they lose ammo while we gain heat. I know there's all the mirror routines so I wasn't sure if they took that into account but I got a bit lost so it may be completely my inability to read it properly!

      However the main thing I noticed was it seems to load an Arsenal routine when it should be Pyro and in combat as it will only try and use a basic rotation not taking into account any of the talent specific abilities.

      I'm using the latest version of everything and had no problems with the Arsenal routine, works great!

      Thank you in advance for the guidance!
       

      Attached Files:

    4. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Hi, DavidB!

      Indeedy, the Mirror routines take this into account. We 'normalize' the resources used by each class to a scale on the closed interval [0..100] where zero represents 'no resources', and 100 represents 'full resources'. It makes no difference if 'ammo goes down', or 'heat goes up'--the normalization equations place the resource on the same interval representing a percentage of full resources currently available.

      The Normalization equation is declared by ClassTunables.NormalizedResource (Tunables.cs,about line 441). The equation definitions for each class can be found in the TunablesByClass table in the same file (lines 28 through 112). The normalized resource equation is made available through the ResourcePercent() extension method found on line 408.

      If you look through the Pyrotech rotation, you will notices that we're checking resources to have 'peculiar' values (e.g., 17, 84, etc), instead of the more obvious 15, 85. This has to do with the Commando makes discrete jumps in resource usage (multiples of 100/12 = 8.333%). Whereas the Mercenaries' heat usage appears to be continuous (but actually makes the same discrete jumps). The Resource normalization also takes into account that the Commando's resource 'goes down' as it gets depleted, whereas the Mercenaries resource 'goes up' as it gets depleted. Rest assured the two classes are truly mirrors of each other despite what the UI makes it appear to the user.


      From your log, on line 64-65...
      [17:34:54.863 N] [WingIt] Advanced Class: Mercenary ( Arsenal )
      [17:34:54.938 N] [WingIt] Talent build: 5 Arsenal | 2 Bodyguard | 0 Firebug

      This is your problem. BuddyWing/SWtOR is reporting to WingIt that you've zero points spent in the Firebug tree. According to what WingIt is being told, your most prevalent skill is 5 points in Arsenal, so WingIt selects the Arsenal spec for your rotation.

      This is a known bug in BW/SWtOR--it lies about talent point deployment on occasion. We haven't been able to figure out what causes it, nor have we figured out a work-around. WingIt is doing the correct thing based on the information that is reported by BW/SWtOR.

      Your best bet is to post your log into the BW support forum reporting the bug. It has been reported in the past (for other classes--the Guardian comes to mind). Perhaps, Aevitas can give this another look if its still happening.

      cheers,
      chinajade



      P.S. - One last thing...
      I've still got an active SWtOR account, but have had much personal stuff to take care of lately. ("When it rains, it pours.") I believe Neo93 is in the same boat.

      I still read the newsgroups, but haven't had much time to advance WingIt. From the newsgroup silence, I'm assuming that
      • WingIt is largely working smoothly for most, or
      • the DefaultCC is now preferred by most, or
      • Nobody is left playing SWtOR
      I'll continue to read the newsgroups, and if I'm not the only one left upon return will get back to it when personal responsibilities settle down a bit.
       
      Last edited: Sep 1, 2012
    5. DavidB

      DavidB New Member

      Joined:
      Aug 21, 2012
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      Thank you so much for helping me understand those bits.

      I've got another question to help me along now. Sometimes I like to use lazyraider mode in PVP and it works for Bounty Hunter fine but it seems to have a bit of a problem when I've been playing my Consular Sage, the default combat routine will run around and attack stuff but WingIT seems to get itself confused over party roles and crash.

      All I'd like to know is if I can edit something to get rid of it looking for party roles while this function isn't working so I can still use lazy raider in PvP for my Sage. I've attached a log from the last crash as it might be something else I've done.

      Thank you!
       

      Attached Files:

    6. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Hi again, DavidB,

      I just checked in WingIt changeset #698 to address your problem. It appears that the current BW API has heartburn if we ask about the SkillTreeId of any toon other than 'self'. As such, we've worked around the problem by assigning all toons other than 'self' as RangedDPS or MeleeDPS. This significantly defeats the whole purpose of figuring out the PartyRole, as only you and your pet are now considered.

      There is nothing further WingIt can do in this regard until the underlying BuddyWing API is repaired.

      But...
      I'm concerned there may be a secondary bug here also. Did you truncate that log, or was it the result of a Buddywing crash? If the latter, we've another bug to find and fix. On the assumption of a crash, I looked over the WingIt code for possible causes, but came up empty handed.

      Please let me know how changeset #698 works for you, and if we've still a crash would like to keep hunting for the cause.

      cheers,
      chinajade
       
    7. DavidB

      DavidB New Member

      Joined:
      Aug 21, 2012
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      Thank you I'll do some testing this evening and let you know what I get back, very much appreciated.
       
    8. DavidB

      DavidB New Member

      Joined:
      Aug 21, 2012
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      P.S. that was the whole log from me loading until crash.
       
    9. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      I gave the logic another look, and found and repaired a bug in SpecHandler's TorPlayer.PrimarySpec(). Also as a preventative measure, I reworked PartyRole to try to minimizing triggering BWAPI/SWtOR bugs. This resulted in the following changesets:
      • Changeset #699: Repair of PrimarySpec() and rework of PrimaryRole()
      • Changeset #700: Sharpened use of Slice Droid in Sniper/Gunslinger (I'd been holding this change out for a while.)
      • Changeset #701: Minor enhancement to DriveByLove (I'd been holding this change out for a while.)
      Looking forward to your findings.


      cheers,
      chinajade
       
    10. DavidB

      DavidB New Member

      Joined:
      Aug 21, 2012
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      Sorry for the delay didn't get chance to run anything before the patch hit. Still had the same problem, I did play around with a few things and as long as I quoted out the healing functions on my Sage it seemed to run ok, don't know if that helps with anything.

      Log from my crash attached.

      Thank you!
       

      Attached Files:

    11. bobsyuruncle

      bobsyuruncle New Member

      Joined:
      Jul 21, 2012
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      Any of you happen to know if there's a boolean or some way of any kind to check if the player is currently targeting a cast on ground ability?
      This is not covered by !BuddyTor.Me.IsCasting, so I'm at a loss of any way to do this check.

      Bob
       
    12. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      IsCasting is pretty much all that is provided by the BW API. You can't even get the name of the spell that is being cast. Having the name of the spell available would let us do smarter things like determine if it is a 'ground effect' spell, or whether the enemy spell is worth blowing an interrupt on.


      cheers,
      chinajade
       
    13. bobsyuruncle

      bobsyuruncle New Member

      Joined:
      Jul 21, 2012
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0

      such a shame... so much potential if only...
      So where do I go for buddywing api refference? I would like to dig deeper into buddywing's available api's in order to further customize my personal prefference profile.

      bob
       
    14. HB8291M76

      HB8291M76 New Member

      Joined:
      Jul 15, 2011
      Messages:
      17
      Likes Received:
      0
      Trophy Points:
      0
      Simply said the bot will not attack,selects the target and does nothing,I tried everything, reinstall,update,change script,everything :p.Please do look at it
      Class: Jedi Consular
      Advanced Class: Jedi Sage
      Revision: 701
      Log: Download 2012-09-15 11.34.txt
      Virus scan of the file: https://www.virustotal.com/file/9d8...263e7a4432e8a1d1191712c3/analysis/1347709598/

      Edit: Btw it also makes tons of errors when running it,many times it won't compile and so on,much trouble with this,the only I get it to work again is to start from scratch each time.
       
      Last edited: Sep 15, 2012
    15. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Hi HB8291M76,

      Thanks so much for the log! The reason the bot is not engaging targets is because of this:

      [11:36:38.400 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:38:10.106 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:38:24.070 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:39:39.274 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:40:17.959 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:40:40.869 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!
      ...<snip>...
      [11:41:10.542 V] [Poi.Clear] Reason: Targeted unit is dead, clearing Poi and carrying on!

      You are getting these even when the target is very much alive. As you implied, this is a consequence of all the exceptions being thrown. When such exceptions are thrown, the upper level logic is effectively told that "target is dead", so it makes further decisions based on the bad information. As a consequence, the WingIt routines are not being called--no reason to, if there's nothing to engage because the target is (supposedly) dead.

      You might try rebooting, then restarting the game and Buddywing, and see if that helps make some of the exceptions go away. The underlying cause of the problem is interactions between the SWtOR client and Buddywing. Until the exceptions go away, there's not much WingIt can do to eliminate the problem.

      cheers,
      chinajade
       
      Last edited: Sep 16, 2012
    16. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Hiya again UncleBob!

      There is no external documentation for the BW API--just what is available through Intellisense in Visual Studio. The procedure for getting the Buddywing API hooked into Intellisense is the same as it was for Honorbuddy. Many moons ago, CodenameG wrote this excellent post describing how to get you set up for such. Just substitute buddywing.exe anytime he identifies honorbuddy.exe to be used.

      If you don't have Visual Studio installed, Microsoft makes Visual Studio 2010 Express available for gratis (vs. libre). I believe registration is required after 30 days, but you don't have to pay any money (ever) to use it. You probably don't want to be mucking about with VS2012--that opens a whole 'nother can of worms.

      To get started exploring the Buddywing API after you've hooked it into VS2010 (per CodenameG's post):
      • In VS2010, View -> Object Browser
      • Expand the Buddywing namespace on the left pane
      • Click on whatever functions you find interesting
      The number of methods and properties available in the Object Browser view can be intimidating for first-timers. The easier way to use the documentation is to open up a .cs file (from say the WingIt codebase), then start hovering your mouse over function or property names. If there is any documentation for that function, VS2010 will present a tooltip containing whatever information is available for that method or property.

      I suggest you open up some of the WingIt code and try hovering over a WingIt function (where is it used--not where it is defined). For example, at the top of many Wingit functions, you will find a Logger.ContractRequires() invocation. Hover your mouse over the word ContractRequires, and you should see its documentation in the form of a tooltip. WingIt has robust documentation that should let you see what kind of visual cues you'll be looking for in the rest of the codebase.


      cheers,
      chinajade
       
      Last edited: Sep 17, 2012
    17. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Thanks for the log, DavidB!

      I've made another minor change to Wingit in Changeset #702. I know this problem is frustrating, and trying to work around the bug is frustrating for us, also. :)

      BW apparently does not return correct values for a player's spec when we ask about any player other than 'self'. As such, we've changed the code to only ask about the party role for 'self'. Any other players will either be tagged as RangedDPS or MeleeDPS. Obviously, such a change defeats many of the intelligent decisions that can made when a party member's role is actually known. We've left a TODO in place, such that WingIt can be quickly updated when the BW API is repaired.


      cheers,
      chinajade
       
    18. shaggsdope

      shaggsdope New Member

      Joined:
      Jul 13, 2012
      Messages:
      73
      Likes Received:
      0
      Trophy Points:
      0
      I'm having the same problem that my guy isn't attacking baddies, just kinda stands there UNTIL they attack him or i initiate the attack. Did anyone figure out the cause/fix/solution for this?

      and this didn't start until the last patch. although my characters do some kind of duck, inch forward, duck, inch forward thing that looks like a bot which i can't stand. any fix for that either? i think that's a buddywing problem though


      EDIT: Seems to be working now, just had to start a couple fights on my own, seems to be working great. REALLY nice work on these combats guys. Where can I donate?
       
      Last edited: Oct 4, 2012
    19. wn2142

      wn2142 Member

      Joined:
      Jan 15, 2010
      Messages:
      142
      Likes Received:
      1
      Trophy Points:
      18
      If I am partied or in a 4-man flashpoint and using say, the Combat Bot profile, will WingIt (or even default) routine perform any healing at all or is this still just DPS? If so, what do I do to make this happen? Thanks in advance :rolleyes:
       
    20. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      WingIt provides healing capability for all healing classes. Healing is supposed to handle party members as well as 'self' and companion. Not all WingIt classes/specs have been tested heavily--the Mercenary/Commando is probably the most-tested thanks to Protopally. At one point, Xsol was taking toons into flashpoints and healing and tanking with them using WingIt. His results were not perfect and required some baby sitting, but WingIt was apparently serviceable in this capacity. (I personally thought he was nuts for even trying it. :) )

      How you "make this happen" in WingIt, is merely to 'spec heals' for your class.


      A quick look through the DefaultCombat code...
      • Healing is spottily supported (e.g., there is no support at all for Commando or Scoundrel healing)
      • Healing is conducted almost exclusively for 'self'/companion and not for party members

      cheers,
      chinajade
       
      Last edited: Oct 23, 2012

    Share This Page