Rawr Addon thread

Topics: Rawr.Addon
Developer
Dec 3, 2010 at 7:09 PM
Edited Dec 10, 2010 at 10:46 AM

I want to create a fresh discussion thread as to what should be in a Rawr Character Export addon. So please list your ideas here.

Beta Version at http://wow.curse.com/downloads/wow-addons/details/rawr-official.aspx NB. Rawr4 doesn't have a working import for this data yet. Please be patient.

BUG REPORTS ARE NOT WELCOME IN THIS THREAD. Please use http://wow.curseforge.com/addons/rawr-official/tickets/ instead.

I'll need two types of information, what is needed at the Rawr end and what is needed at the addon end. Is one of the existing developers able to start the ball rolling in Rawr4 and design the import interface please. Ideally I'm looking to be able to have a specific file structure that the Rawr4 code reads from the addon. I'm thinking that this should be XML.

Basic Usage Design Goal

The addon will export the data to the clipboard so Rawr4 should be able to simply import that data. This avoids the problem of trying to get the users to understand that they have to search for a file, or getting them to log out in order to save the saved variables file etc. ie: In the addon the user will see a popup box telling them what to do then they will press a key to copy the data to the clipboard (possibly just via CTRL-C) and then in Rawr4 click something (button/menu item you choose) to kick off the reading of the clipboard data.

So the total process is 1) type /rawr export - 2) press CTRL-C 3) click import in Rawr4.

Rawr4 side

Naturally first step is to verify what is on clipboard is valid addon export data and reject if not.

Then read the file and build a Character from that. I'm guessing a lot of the Character Profiler/Altoholic import code can be reused?

introduce version checking so that Rawr4 will simply complain if the addon is out of date. ie: each version of Rawr4 will have a minimum version of addon it supports. Have the wrong version and Rawr4 wont import so user has to upgrade.

Future:

Add export function to Rawr4 of changes from original,

also export function for upgrade lists

 

Developer
Dec 3, 2010 at 7:09 PM
Edited Dec 5, 2010 at 6:16 PM

Addon side

Export items equipped including enchants/gems/reforgings

Export talents

Export base data - name, server, race, class, model, professions etc

Log data of what equippable items are in bags/bank

Future :

Import changes file from Rawr4 and equip items in bag and list in game further changes that were suggested by Rawr eg: re-gemming/reforging/enchanting/glyphing etc. This would allow users to have in game reference of what Rawr suggested. Could be presented as a Rawr paper doll. so user could compare live paper doll vs optimised paper doll imported from Rawr in game.

Allow display of upgrade lists imported.

Have amount of upgrade for certain items showing on tooltip. (Needs a LOT of data exporting and would be invalid as soon as an item changed but might be useful).

Developer
Dec 3, 2010 at 7:09 PM

reserved for future use

Dec 3, 2010 at 8:32 PM

When I was thinking about how the addon could interact with the application I came up with a different paradigm. While the copy/paste version of import/export could work, it seems klunky to me, and I think we could do it a better way. I would prefer to see the application reading and writing to the Rawr.lua file in the WoW WTF Saved Variables file (the addon data store). Finding this shouldn't be too difficult since in Windows the WoW install path is stored in the following registry key HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft\GamePath. This is updated if the WoW folder is moved every time the launcher is run, and since updates take place through the launcher now this should be up to date for nearly every computer that has a working WoW install. I do not know if there is an equivalent method on a Mac, or Wine under Linux. A file dialog could be used if the application is having trouble finding the file (or if the user wants to use a different data file from a friend) or for other platforms if the install path cannot be determined.

This same methodology could be used to copy the addon to the WoW folder and keep it up to date as well (as a result of a user requesting it to be put there, not automatically). This would ensure that the application and addon are always being updated in parallel, and new features are available as they are released. I can understand why some people may be opposed to doing this, but I think considering it would be worth while.

I have a few more separate ideas that I will put in their own posts to keep this cleaner.

Dec 3, 2010 at 8:41 PM

A feature that I would like to see added is the ability to export (either through copy/paste or through the lua files) the upgrade list generated by Rawr to the game, and have the addon add the amount a new piece of gear will increase the model score displayed when a user mouses over an item. This would be similar functionality to the LootPlan addon, which is current supported in Rawr, but hasn't been updated in a while and has some issues that effect usability.

What I would really like to see is to have every item that Rawr evaluates for an upgrade be tagged with how much it will increase or decrease the model score for each spec that the Build Upgrade List option is run for. The tooltip could be red if it is worse then your current gear and green if it is better. For instance if I run both fire and arcane spec with Build Upgrade list, then in game if I moused over the Helm of Awesome Crit then it would tell me that it is a -100 DPS downgrade for my arcane spec, but a +1000 DPS upgrade for my fire spec. This would be because my current Helm of Awesome Mastery is better for arcane then fire.

Keep up the good work, I am very excited to see where this goes!

Developer
Dec 3, 2010 at 8:53 PM

Before we discuss the ability to work with Upgrade Lists, we need to limit the discussion to just character importing to Rawr and the best method to accomplish that.

I think Levva's method of Copy to Clipboard is far better than hunting down an LUA file because:

1) Users may not know where they installed wow, like kids who had everything done for them by their parents.

2) Burying your way through the folder structure is a pain in the ass, it will deter people from wanting to use it

3) Silverlight doesn't have access to those folders to physically grab the file(s). We'll get Access Denied errors (and tons of people submitting issues on it wondering why we would do such a thing).

4) The Clipboard is a quick and easy way to grab what you need without having to log out.
- Click your assigned macro button that does /rawr export (or we can write a custom button for dragging around the screen)
- Automatically open a really simple window with the text already selected (I've seen add-ons do this so I know it's possible)
- Ctrl+C to Copy
- Swap Active Windows to Rawr
- Click File > Import from Rawr Addon
- Ctrl+V to Paste
- Click OK

Total seven clicks/keystrokes start to finish. Unfortunately I don't think we can reduce that any further.

Developer
Dec 3, 2010 at 8:55 PM
droidicus wrote:

When I was thinking about how the addon could interact with the application I came up with a different paradigm. While the copy/paste version of import/export could work, it seems klunky to me, and I think we could do it a better way. I would prefer to see the application reading and writing to the Rawr.lua file in the WoW WTF Saved Variables file (the addon data store). Finding this shouldn't be too difficult since in Windows the WoW install path is stored in the following registry key HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft\GamePath. This is updated if the WoW folder is moved every time the launcher is run, and since updates take place through the launcher now this should be up to date for nearly every computer that has a working WoW install. I do not know if there is an equivalent method on a Mac, or Wine under Linux. A file dialog could be used if the application is having trouble finding the file (or if the user wants to use a different data file from a friend) or for other platforms if the install path cannot be determined.

This same methodology could be used to copy the addon to the WoW folder and keep it up to date as well (as a result of a user requesting it to be put there, not automatically). This would ensure that the application and addon are always being updated in parallel, and new features are available as they are released. I can understand why some people may be opposed to doing this, but I think considering it would be worth while.

I have a few more separate ideas that I will put in their own posts to keep this cleaner.

YECH!! REALLY don't like that idea. There is no way whatsoever that Rawr4 should be WRITING to the addon directory. Reading is also very very bad, as reading requires the user to have logged out after they have done all the setup of their character that they want to analyse.

What is better?

1) User sets up character equipped the way they want to analyse and does a 3 step copy/paste, then rinse/repeat for as many different equipment setups they want to try.

2) User sets up character equipped the way they want to analyse and then logs out in order to save the rawr.lua in saved variables then runs the import routine that has to have permissions (from a web app remember) to access a file on their computer. Then log in to change setup and log out again, login/logout in/out in/out every time they want to make a change.

Hint: 1 is dramatically easier.

We REALLY very very strongly want to avoid having to deal with where files are on the user's disc. Hence the very simple 3 click method of cut n' paste.

Your second idea about updating the addon is equally flawed. We have very very deliberately NEVER introduced an installer for Rawr. Dealing with problems due to permissions etc has the potential to generate way way too many support issues. No lets leave it to Curse Client and similar things to deal with getting the users to update their addon.

What is a good idea however is to introduce version checking so that Rawr4 will simply complain if the addon is out of date. ie: each version of Rawr4 will have a minimum version of addon it supports. Have the wrong version and Rawr4 wont import so user has to upgrade.

The other possible idea is to export setup from Rawr so that the addon could export a "changes" file that could equip the items suggested from the users bags and show in game a list of what gems/reforging/enchanting the user needs to do. This would save a lot of alt-tabbing.

Developer
Dec 3, 2010 at 9:01 PM
droidicus wrote:

A feature that I would like to see added is the ability to export (either through copy/paste or through the lua files) the upgrade list generated by Rawr to the game, and have the addon add the amount a new piece of gear will increase the model score displayed when a user mouses over an item. This would be similar functionality to the LootPlan addon, which is current supported in Rawr, but hasn't been updated in a while and has some issues that effect usability.

What I would really like to see is to have every item that Rawr evaluates for an upgrade be tagged with how much it will increase or decrease the model score for each spec that the Build Upgrade List option is run for. The tooltip could be red if it is worse then your current gear and green if it is better. For instance if I run both fire and arcane spec with Build Upgrade list, then in game if I moused over the Helm of Awesome Crit then it would tell me that it is a -100 DPS downgrade for my arcane spec, but a +1000 DPS upgrade for my fire spec. This would be because my current Helm of Awesome Mastery is better for arcane then fire.

Keep up the good work, I am very excited to see where this goes!

Some good ideas however it means that if ANYTHING changes about the character then the data is out of date and that might get frustrating for the user. Saying mid raid nope sorry you have changed item X you need to run Rawr again to get new optimised data. Could be work arounds but is quite tricky to do in effective "real time". Also quite tricky to explain to users.

Developer
Dec 3, 2010 at 9:06 PM
Jothay wrote:
4) The Clipboard is a quick and easy way to grab what you need without having to log out.

- Click your assigned macro button that does /rawr export (or we can write a custom button for dragging around the screen)
- Automatically open a really simple window with the text already selected (I've seen add-ons do this so I know it's possible)
- Ctrl+C to Copy
- Swap Active Windows to Rawr
- Click File > Import from Rawr Addon
- Ctrl+V to Paste
- Click OK

Total seven clicks/keystrokes start to finish. Unfortunately I don't think we can reduce that any further.

Indeed my own addon ShockAndAwe does exactly this to export from WoW to EnhSim. And I've written Rawr code to deal with copy to clipboard stuff to do Export to EnhSim. So I know its possible too, I've done it.

Last 3 steps there Jothay can be reduced to 1 step. Click "Import from Rawr Addon" - Rawr 4 then checks clipboard for presence of valid Rawr addon data and imports if present, presents warning/error if not.

Developer
Dec 3, 2010 at 9:10 PM

Ah, I didn't think of that. So we're talking 4 clicks/keystrokes instead of 7 (counting the Alt-Tab to switch windows)

Developer
Dec 3, 2010 at 9:21 PM
Edited Dec 3, 2010 at 9:34 PM

Yup which is really quite idiot proof I'd hope.

Right well I've now just committed an initial code that actually now runs. I can start work on the reading of the character sheet however I'm rapidly getting to the stage where I need a bit of import code and preferably someone to work on that side to free up my time to work on the addon side.

Is anyone prepared to offer to write some quick import code please?

 

For the file structure... XML is probably the way to go

 

<RawrAddon version=xx.yy>
    <Character name="xxxxx" server="xxxxx" region="XX" race="xxxxx" class="xxxxx" model="xxxx" >
<Talents>talentstring</talents> -- Really not sure how best to read/write talents ideas?
<Equipment> <Item slot=1 id=1111 enchant=2222 reforge=3333> <Gem slot=1 id=4444 /> ...
</Item> ... </Equipment> <Bags> <Item (as above) /> ...
<Bags> <Bank> <Item (as above) /> ...
</Bank> </Character> </RawrAddon>
How does that look for a first draft? Comments? Suggestions?

 

Dec 3, 2010 at 9:23 PM
Levva wrote:

Some good ideas however it means that if ANYTHING changes about the character then the data is out of date and that might get frustrating for the user. Saying mid raid nope sorry you have changed item X you need to run Rawr again to get new optimised data. Could be work arounds but is quite tricky to do in effective "real time". Also quite tricky to explain to users.


The same problem exists if you are alt-tabbing out of WoW to check Rawr as well. At the very least to get completely updated information you would need to indicate the new items in Rawr, run an optimization, and then check the next time an item drops to see if the next item is an upgrade now. In my guild and in most PUGs that I have run with, gear distribution in done very quickly, I need to have a way to say need/greed/pass to an item quickly without having to alt-tab to see if a piece is an upgrade or not. This is of course very easy if there are only one or two items that are upgrades for you, but it can be overwhelming if you are going through a new raid and there are literally dozens or hundreds of items to remember that are upgrades. I don't think this necessarily needs to be a real-time thing, like with the LootPlan implementation that Rawr currently has, it is a snapshot that you refresh when you have time or the inclination to do so. The only other way of managing this for a large set of items in a new raid is using Pawn scores from the relative values of various stats, and I don't think we even need to discuss about how bad of an idea that is.

~Droid

Developer
Dec 3, 2010 at 9:23 PM

<-- and I can start in about 10 hours when I get home from ABQ

Dec 3, 2010 at 9:26 PM
Levva wrote:

YECH!! REALLY don't like that idea. There is no way whatsoever that Rawr4 should be WRITING to the addon directory. Reading is also very very bad, as reading requires the user to have logged out after they have done all the setup of their character that they want to analyse.

Yea, I didn't think it would go over well, but IMHO but it is better to have the conversation and consider the possibilities then not :-)

~Droid

Developer
Dec 3, 2010 at 9:28 PM
droidicus wrote:

The same problem exists if you are alt-tabbing out of WoW to check Rawr as well. At the very least to get completely updated information you would need to indicate the new items in Rawr, run an optimization, and then check the next time an item drops to see if the next item is an upgrade now. In my guild and in most PUGs that I have run with, gear distribution in done very quickly, I need to have a way to say need/greed/pass to an item quickly without having to alt-tab to see if a piece is an upgrade or not. This is of course very easy if there are only one or two items that are upgrades for you, but it can be overwhelming if you are going through a new raid and there are literally dozens or hundreds of items to remember that are upgrades. I don't think this necessarily needs to be a real-time thing, like with the LootPlan implementation that Rawr currently has, it is a snapshot that you refresh when you have time or the inclination to do so. The only other way of managing this for a large set of items in a new raid is using Pawn scores from the relative values of various stats, and I don't think we even need to discuss about how bad of an idea that is.

Yup happy with the idea of a simple display list to show your Direct Upgrades list or something in game. I'll add that to the list.

NB. My plan would be to actually get the basic character data exported first. So its probably several months down the line before we get to displaying lists in game. Remember I want to play, level my characters and raid too.

Developer
Dec 3, 2010 at 9:37 PM
droidicus wrote:
Yea, I didn't think it would go over well, but IMHO but it is better to have the conversation and consider the possibilities then not :-)

Absolutely. Keep them coming. Some "blue sky" thinking that will end up in the "future" pile is welcome as well as much more nitty gritty stuff of what we'd like to get running before the masses start Cata Raiding. My personal goal would be to have something workable by the year end. By that I mean an addon that could export your character sheet and gems/enchants stuff. Bags/bank stuff will come at a later stage and fancy report back stuff even later.

Dec 3, 2010 at 9:59 PM

WHAT?! You actually want to PLAY Cataclysm??? That is completely unacceptable!

;-) Kidding of course. I will keep brainstorming about this and add to the thread if I have any more ideas. I think your plan what order to do things in is a good way to go about it. Until then I can probably keep LootPlan on life support unless Blizzard decides to completely break it in a patch.

~Droid

Dec 4, 2010 at 12:01 AM

Levva, I LOVE YOU,  Im the character import developer.  LOL.  see a few posts back me asking about a RAWR addon for just this purpose.  I like the idea of a User interface in game,. but command line phase 1 works great for me. 

I know I am new to the whole open source thing.  But perhaps we can shedule a meeting of sorts.  I have a Microsoft Livemeeting account that can accomodate up to 50 people and a conference call line.

This way we can really get together on the ideas with a real dialog instea of a short conversation being 2 days long.  Though i do beleive that we should limit it to just a few people.  I think this thread plus astro would be a good start for a metting if by chance we can actually mesh availability. 

here are my two cents in the forum world though.

  • I love XML, its so very flexible and structured at the same time. 
  • Maybee a blend between the two solutions.
    • A third system tray helper application that moves the files out of LUA and into XML in the My Documents\RAWR\Character Exports\ or something like that.
    • This is a location accessible to Silverlight when installed in an elevated priviledge mode.
  • As I already stated.  adding a User interface to the addon in the future could be great but definately not neccesary for basic functionality
    • Could even snapshot your profile and make it Linkable in game to others with the addon?
    • Upgrade Wish List
    • Even show the Optimized Casting Order as calculated by Rawr.
    • A Raid leader could download a zone drop profile and pull scores for each race/class/spec and as long as everyone has the addon, show who would actually get the largest increase out of the item.  (Hard-Core Hard-Core raiders would love this)
    • I think the possibilities here are endless.

Let me know what you guys think about scheduling a metting on this.  Cata is right around the corner.  And I am behind on the Altoholic Import since Thaoky (the author of Altoholic) is just now getting the export and buggs fixed.  At this point if your gonna do this, I would like to drop Altoholic as its export is very Inconsistent and buggy as just mentioned.

We would have as attendees, Astro, Nerane(Me), Levva, Droidicus, and Jothay.  I dont explicitly exclude anyone, bet to get phase 1 moving we need to keep the the group small at first, and then in phase two get the ideas rolling in from everywhere.

 

Dec 4, 2010 at 12:14 AM

As far as XML, we should start with an XSD probably, but i would envision the xml something like this.  I used the Item strings since we already have the functions in our librarys to convert them.  No reason to redo the work.

<RAWR>
  <Account id="Unique Acct ID">
    <Character>
      <Name>Tinossip</Name>
      <Realm>Fenris</Realm>
      <Guild>Freundschaft</Guild>
      <Race...
      <Equipped>
        <Head>
          <![CDATA[
            item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
          ]]>
        </Head>
        <Neck.....
      </Equipped>
      <Inventory>
        <Bag>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Bag>
        <Bag>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Bag>
      </Inventory>
      <Bank>
        <Bag>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Bag>
        <Bag>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Bag>
      </Bank>
      <GuildBank>
        <Tab num=1>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Tab>
        <Tab num = 2>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
          <Item>
            <![CDATA[
              item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId
            ]]>
          </Item>
        </Tab>
      </GuildBank>
    </Character>
    <Character .....
    </Character>
  </Account>
<RAWR>
Developer
Dec 4, 2010 at 1:22 AM
Edited Dec 4, 2010 at 1:25 AM
NeRane wrote:

Levva, I LOVE YOU,  Im the character import developer.  LOL.  see a few posts back me asking about a RAWR addon for just this purpose.  I like the idea of a User interface in game,. but command line phase 1 works great for me. 

I know I am new to the whole open source thing.  But perhaps we can shedule a meeting of sorts.  I have a Microsoft Livemeeting account that can accomodate up to 50 people and a conference call line.

This way we can really get together on the ideas with a real dialog instea of a short conversation being 2 days long.  Though i do beleive that we should limit it to just a few people.  I think this thread plus astro would be a good start for a metting if by chance we can actually mesh availability. 

here are my two cents in the forum world though.

  • I love XML, its so very flexible and structured at the same time. 
  • Maybee a blend between the two solutions.
    • A third system tray helper application that moves the files out of LUA and into XML in the My Documents\RAWR\Character Exports\ or something like that.
    • This is a location accessible to Silverlight when installed in an elevated priviledge mode.
  • As I already stated.  adding a User interface to the addon in the future could be great but definately not neccesary for basic functionality
    • Could even snapshot your profile and make it Linkable in game to others with the addon?
    • Upgrade Wish List
    • Even show the Optimized Casting Order as calculated by Rawr.
    • A Raid leader could download a zone drop profile and pull scores for each race/class/spec and as long as everyone has the addon, show who would actually get the largest increase out of the item.  (Hard-Core Hard-Core raiders would love this)
    • I think the possibilities here are endless.

Let me know what you guys think about scheduling a metting on this.  Cata is right around the corner.  And I am behind on the Altoholic Import since Thaoky (the author of Altoholic) is just now getting the export and buggs fixed.  At this point if your gonna do this, I would like to drop Altoholic as its export is very Inconsistent and buggy as just mentioned.

We would have as attendees, Astro, Nerane(Me), Levva, Droidicus, and Jothay.  I dont explicitly exclude anyone, bet to get phase 1 moving we need to keep the the group small at first, and then in phase two get the ideas rolling in from everywhere.

 

Happy to have a meeting - would need to be before Cata launch on Monday at 11pm GMT. (Yup UK gets it 9 hours before US :)) ie: really Sat or Sunday as I'm working Monday and need to get things in order Monday night pre-launch. Key thing is really time zones I'm in GMT, I know Astrylian is US (west coast I think) so that's an 8 hour gap right there.

We absolutely DO NOT want to deal with reading saved variable LUA files. This is bad bad idea. Saved Variable Lua files only get written when the user logs off. This means that its very inflexible for the sorts of uses we want to put it to. Similarly Wow CANNOT read from any file in an addon folder unless you do a /reloadui and that file has to have been present when the game was launched. So using any interface between Rawr4 & Wow that isn't clipboard means a LOT of pain of logouts and reloads for users. That then means LOTS of support tickets saying "the addon doesn't work it didn't take the latest data" and FAQ replies from Jothay - "Don't you guys ever listen you need to reload/relog to get the updates". Therefore can we completely and utterly CRUSH the idea of reading or writing to the saved variables now please.

I fully intend to have an in game interface for the export, yes stage 1 will be /rawr export, later stages will be click button on a paper doll model or some such. However I very very strongly believe that we can achieve absolutely everything via clipboard. Using an extra 3rd interface is I feel clumsy and unnecessary. In game and Rawr4 is quite enough really, and it would be simple enough for later stages to have a similar import export look n feel both in Rawr and in game.

I'd agree if we are going to progress it doesn't make sense supporting altoholic and relying on someone keeping it updated between patches. So dropping it now before the vast majority of users know about it is a great idea. I'd hope to have a working basic import by Monday night pre-launch. Perhaps once its nearly ready we can think about dropping Character Profiler too.

Dec 4, 2010 at 1:28 AM

I am Eastern US (With Daylight Savings[stupidest idea ever]) so im GMT -5 or -4 depending on the time of year.  Not sure which is in effect right now.  Its 20:22 right now as im writing this.  I am great with Copy Paste, im just in love with the idea of Automation, its a weakness of mine. Im good anytime Sat or Sun from about 10:00 to 22:00 my time.

Dec 4, 2010 at 1:29 AM

And I am pretty sure that Character Profiler is dead already, I have not updated it.

Dec 4, 2010 at 5:52 AM
NeRane wrote:

I am Eastern US (With Daylight Savings[stupidest idea ever]) so im GMT -5 or -4 depending on the time of year.  Not sure which is in effect right now.  Its 20:22 right now as im writing this.  I am great with Copy Paste, im just in love with the idea of Automation, its a weakness of mine. Im good anytime Sat or Sun from about 10:00 to 22:00 my time.

I can be avaliable around these times as well if you would like me to participate.

~Droid

Developer
Dec 4, 2010 at 1:02 PM
Edited Dec 4, 2010 at 1:04 PM
NeRane wrote:

I am Eastern US (With Daylight Savings[stupidest idea ever]) so im GMT -5 or -4 depending on the time of year.  Not sure which is in effect right now.  Its 20:22 right now as im writing this.  I am great with Copy Paste, im just in love with the idea of Automation, its a weakness of mine. Im good anytime Sat or Sun from about 10:00 to 22:00 my time.

DST is summer time only stops in October. Its done here in UK too and on the same day at the same time so you are ALWAYS 5 hours behind. It's been legislated to be that way for year to aid business.

For a west coaster to participate 10am EST is 7am PST so a bit early - noon-6pm your time might be best as that is 9am-3pm PST and 5pm-11pm for me. So that's either later today but you may be sleeping at present and not seeing this yet or tomorrow. If the meeting is going to happen then it has to happen in this time frame.

I understand that you want to automate things and boy do I do too I'm 100% efficiency driven that is why we have to have copy paste due to very very specific limitations imposed by Blizzard to prevent automated bots amongst other things. The WoW engine/licence will not permit automation of reading/writing from/to files on disk without restarting the engine. Similarly they don't permit clipboard copy other than via user key press. So the absolute maximum automation we can do has to involve the user copy/pasting the data Blizzard specifically disable anything that doesn't involve the user pressing a key to get data in/out.

Developer
Dec 4, 2010 at 1:40 PM

On the XSD it would make sense to host it on the website would it not so that Rawr4 can use it to verify the structure of the incoming data is valid as an early processing step. Is that something that Astrylian or Jothay can advise on?

Dec 4, 2010 at 3:27 PM

Im good with that

We can compile it as a resource into the XAP.

Developer
Dec 4, 2010 at 4:16 PM
Edited Dec 4, 2010 at 4:17 PM

Currently committed code can now export a basic XML as follows...

 

<?xml version="1.0" encoding="utf-8"?>
<Rawr xmlns:xsi="http://rawr.codeplex.com/somewhere"
      xsi:noNamespaceSchemaLocation="RawrAddon.xsd">
    <Version>0.01</Version>
    <Build>55902</Build>
    <Character>
    </Character>
</Rawr>

 

Dec 4, 2010 at 10:02 PM

Might leave the XSD reference out, so as to keep people using this export for thier own purposes from taking up our server bandwidth.  Dont know if we care.

Developer
Dec 5, 2010 at 1:06 AM

Does it matter? Its going to be entirely local data to the player. Not really something anyone could use is it?

 

    Now can export Character Basics
Developer
Dec 5, 2010 at 2:11 AM

V0.04 does the basics now...it exports basic character data and the equipped itemstrings.

I'm having an issue getting Curseforge to point to an external repository which is a right royal pain as the auto deploy to Curse and the localization features are really really useful. Does anyone know how to fix this? I'm getting a 100% reproducible bug with a "502 bad gateway" error, when I try editing remote repository.

If I set a remote repository URL I can't then use the packager it seems. I'm confused. If this is the case then I'm going to take the code off codeplex and put it on Curse as the distribution & localisation features are just far too good to pass up on.

For info an example output from the current version of the addon is ...

<?xml version="1.0" encoding="utf-8"?>
<Rawr xmlns:xsi="http://rawr.codeplex.com/somewhere"
xsi:noNamespaceSchemaLocation="RawrAddon.xsd">
    <Version>0.03</Version>
    <Build>55920</Build>
    <Character>
        <Name>Ainvar</Name>
        <Level>80</Level>
        <Class>Druid</Class>
        <Race>Night Elf</Race>
        <Realm>Khadgar</Realm>
        <Region>EU</Region>
        <Equipped>
            <Slot id=6 name="Waist">
                <![CDATA[
                    item:47140:0:3563:3448:0:0:0:478240128:80:119
                ]]>
            </Slot>
            <Slot id=2 name="Neck">
                <![CDATA[
                    item:50809:0:3559:0:0:0:0:1354310976:80:0
                ]]>
            </Slot>
            <Slot id=10 name="Hands">
                <![CDATA[
                    item:48162:0:3520:0:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=9 name="Wrist">
                <![CDATA[
                    item:51345:1119:0:0:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=15 name="Cloak">
                <![CDATA[
                    item:50469:0:3559:0:0:0:0:0:80:117
                ]]>
            </Slot>
            <Slot id=13 name="Trinket1">
                <![CDATA[
                    item:48724:0:0:0:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=1 name="Head">
                <![CDATA[
                    item:48164:3820:3621:3563:0:0:0:0:80:140
                ]]>
            </Slot>
            <Slot id=18 name="Ranged">
                <![CDATA[
                    item:50457:0:3520:0:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=8 name="Feet">
                <![CDATA[
                    item:49894:0:3559:3559:0:0:0:1573436672:80:116
                ]]>
            </Slot>
            <Slot id=5 name="Chest">
                <![CDATA[
                    item:51145:3832:3520:3559:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=16 name="MainHand">
                <![CDATA[
                    item:49992:3854:3520:3545:0:0:0:-1528729088:80:0
                ]]>
            </Slot>
            <Slot id=14 name="Trinket2">
                <![CDATA[
                    item:50259:0:0:0:0:0:0:1867532160:80:0
                ]]>
            </Slot>
            <Slot id=12 name="Finger2">
                <![CDATA[
                    item:50397:0:0:0:0:0:0:1771178624:80:0
                ]]>
            </Slot>
            <Slot id=11 name="Finger1">
                <![CDATA[
                    item:47732:0:0:0:0:0:0:0:80:0
                ]]>
            </Slot>
            <Slot id=3 name="Shoulder">
                <![CDATA[
                    item:48161:3810:3563:0:0:0:0:0:80:117
                ]]>
            </Slot>
            <Slot id=7 name="Legs">
                <![CDATA[
                    item:48160:3718:3448:3472:0:0:0:0:80:138
                ]]>
            </Slot>
        </Equipped>
    </Character>
</Rawr>

 

 

Developer
Dec 5, 2010 at 6:06 AM
Edited Dec 5, 2010 at 6:23 AM

Are you able to simplify that structuring? I'm thinking more like how the character.xml files look but stripped down of stuff that doesn't get generated yet. In fact, if you can, you could even just make it create a character.xml file.

<Character
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Region>US</Region>
    <Race>Human</Race>
    <Class>Warrior</Class>
    <AvailableItems>50712</AvailableItems>
    <AvailableItems>50647</AvailableItems>
    <!-- We don't care what it is or where its sitting (on your, in bags, in bank) just that you have it -->
    <CurrentModel>DPSWarr</CurrentModel>
    <!-- skip CalculationOptions -->
    <!-- Below are out actually equipped items -->
    <Head>65038.52291.52219.0.4208.102</Head>
    <Neck>65025.0.0.0.0.82</Neck>
    <Shoulders>65142.52237.0.0.4204.88</Shoulders>
    <Back>56304.0.0.0.4100.81</Back>
    <Chest>55060.0.0.0.4102.88</Chest>
    <Wrist>57870.52219.52219.0.4101.0</Wrist>
    <Hands>65119.52219.52219.0.4107.103</Hands>
    <Waist>62384.52219.52219.0.0.0</Waist>
    <Legs>65267.52219.52219.0.4126.0</Legs>
    <Feet>65075.52219.0.0.4104.102</Feet>
    <Finger1>60226.52219.0.0.0.0</Finger1>
    <Finger2>65106.0.0.0.0.95</Finger2>
    <Trinket1>65072.0.0.0.0.105</Trinket1>
    <Trinket2>62469.0.0.0.0.0</Trinket2>
    <MainHand>65007.0.0.0.4099.102</MainHand>
    <Ranged>65058.0.0.0.0.0</Ranged>
    <CustomGemmingTemplates />
    <GemmingTemplateOverrides />
    <!-- Skip Item Filters -->
    <OptimizationRequirements />
    <!-- Skip Boss Options -->
    <!-- Apply only the Talents for the toon, and only the currently active ones no dual specs -->
    <WarriorTalents>3020032312021231221103220000000000000000010200000000000000000.1001100000100000001000010010011000</WarriorTalents>
    <PaladinTalents>000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000</PaladinTalents>
    <HunterTalents>0000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000</HunterTalents>
    <RogueTalents>000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000</RogueTalents>
    <PriestTalents>0000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000</PriestTalents>
    <ShamanTalents>000000000000000000000000000000000000000000000000000000000.00000000000000000000000000000000</ShamanTalents>
    <MageTalents>0000000000000000000000000000000000000000000000000000000000000.00000000000000000000</MageTalents>
    <WarlockTalents>00000000000000000000000000000000000000000000000000000000.00000000000000000</WarlockTalents>
    <DruidTalents>0000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000</DruidTalents>
    <DeathKnightTalents>0000000000000000000000000000000000000000000000000000000000.00000000000000000000000000000</DeathKnightTalents>
    <!-- Don't Set Custom Item Instances, we could make this an option though -->
    <PrimaryProfession>Blacksmithing</PrimaryProfession>
    <SecondaryProfession>Mining</SecondaryProfession>
</Character>
Developer
Dec 5, 2010 at 11:46 AM

Yes I could get it to do it in that format but is that really the best for data exchange. ie: if we are going to have future features is the current Character XML model really the best?

The version and revision info will be vital for sanity checking the user is using an up to date addon for current version of Rawr & vice versa. The Character section could be reworked to be similar to the structure you posted however there are a lot of things that could be tidied up eg: why export talents for every class why not just a <Talents> tag? I've also included the Character Name and Server as that would be required for allowing a refresh from armoury feature to work.

The item strings seem odd and missing info. The Blizzard one is

item:itemId:enchantId:jewelId1:jewelId2:jewelId3:jewelId4:suffixId:uniqueId:linkLevel:reforgeId

Rawr4's Character file is not immediately obvious and I've not looked at the save/load for code for ages. The point is for the addon and the generation of in game item strings its a whole lot easier to have Rawr simply read/write Blizzard strings - which have benefits for other things down the line if we have an import to addon feature of results from Rawr. NeRane also suggested that Rawr can already parse Blizzard item strings. I also felt that a slot tag with an ID was better than a Head tag a Neck tag etc etc, just seems the existing XML is a bit wordy is it designed for human readability vs computer readability? With a slot tag you can simply iterate over the slots and use the slotId or slotName to determine the items which should be simpler coding.

For the <model> tag that is relatively simple for most classes but just a bit long winded to write the code so haven't done it yet. For Cat/Bear is there a definitive way of telling? Perhaps a talent that is Cat only and assume Bear otherwise?

Do we deal with glyphs? We probably should have a consistent mechanism across the models.

For Bags/Bank items I'd like to have them separate and not just a big list of available items as I'm thinking that when we get to exporting data from Rawr knowing where the item was could be useful. eg: Addon could have option to equip available items. I'm also thinking that having an item string for the bag/bank items could be useful if an item is already gemmed/enchanted/reforged. There could be an option for instance on import to mark gemmed/enchanted items as don't re-gem/re-enchant.

Dec 5, 2010 at 2:05 PM

I am also for a more structured XML, also i was pretty sure we already had something on the item that parsed the item string, but now i cant find it, but it would make sense to be able to make a constructor that took an item string.

Dec 5, 2010 at 3:16 PM

I just had another "blue sky" idea for a feature that I would like to add to the conversation, it would be really nice if you could export the results of an optimization to the addon. Currently with Rawr, if the change set is complex with more then a couple changes in it, I would  have to get a piece of paper out and write down all the changes that are needed to my current setup (item swaps, enchant changes, gem changes, reforge changes, talent changes, glyph changes, etc). Then log into WoW, make the changes, double/triple check to make sure I didn't make any errors, etc. This gets very tedious, especially if the user has multiple gear sets or specs. One way to deal with this would be to import an optimization setup into the addon.

The addon could then modify a gear set in the Blizz equipment manager (note: I don't know if it is possible for an addon to do this... blue sky and all, same for a bunch of other stuff that follows), to make or modify a gear set called something like "Best <spec name/role>". Then all the user would have to do is go to their bank, click the equipment button, and they have the right gear on. If the player doesn't have the correct item in a particular slot then that slot could glow on the paper doll UI, until they put the correct piece in there.

The addon could add a note in a bright, easily noticeable color, to the tooltips of items that need to have their gems, enchants, or reforging changed. Perhaps we could even have these items glow a certain color in the paper doll UI. The glowing and tooltips would go away once the correct changes have been made to a particular piece of gear.

The addon could also indicate in the talent and glyph UI that a particular item needs to be changed, either by glowing or displaying some sort of icon.

In order to do all of this the addon would need to be spec/role aware to prevent confusion to the user. I am not sure how we should go about this, but there also needs to be some option to change the current dual-spec slot to the new information just added. It would also be really cool if we could add all the the forgoing to a quest-like UI with the option to "abandon" a particular item if they decide against doing it for now, and/or (blue sky again) add it directly to the Blizzard tracking UI. This would make getting your gear optimized into a mini-game of sorts :-).

One last thing. Does the addon live on Curse or Curseforge yet? If so can you provide links to the project? I saw it in the Rawr4 folder in the code download, that is good.

~Droid

Dec 5, 2010 at 6:05 PM

if i have dualspec, in my case holypaladin and retribution, id like to export an upgradelist for both specs into the game, and if i see an item drop in the raid, i want to see how much dps/heal it brings and that it is an upgrade, an addition to the item.tooltip would be nice.

Developer
Dec 5, 2010 at 6:14 PM
Edited Dec 5, 2010 at 6:25 PM
droidicus wrote: One last thing. Does the addon live on Curse or Curseforge yet? If so can you provide links to the project? I saw it in the Rawr4 folder in the code download, that is good.

Trying to get it to go on Curseforge but having issues with Curseforge external SVN links.

I have however manually uploaded v0.05 for people to try out. It just needs a Rawr4 import so over to NeRane/Jothay for now.

Dec 5, 2010 at 10:28 PM

Under ./Libs/AceAddon-3.0/ the folder is empty other then a .svn sub-folder. Is this correct?

~Droid

Developer
Dec 5, 2010 at 11:12 PM
droidicus wrote:

Under ./Libs/AceAddon-3.0/ the folder is empty other then a .svn sub-folder. Is this correct?

~Droid

Na that's how TFS has done stuff need to update that. There is now a beta on Curse though at http://wow.curse.com/downloads/wow-addons/details/rawr-official.aspx

Developer
Dec 7, 2010 at 5:07 AM

1) Yes it is best for data exchange, then we have to do next to no parsing in Rawr itself

2) Yes, keep the version and revision info in the root under Rawr so long as your subNode of Character looks like an actual character file. We were doing every talent tree because there was no default setting on it. Astrylian just fixed a TON of that stuff for BNet parsing. Now you only need to include <WarriorTalents></WarriorTalents> (or whatever class it is).

3) We only use "itemid.gem1id.gem2id.gem3id.enhcantid.reforgeid" the rest doesn't matter to us (and there are no jewel4's on any items, unless that's something new for Cata, but we'd have to write a bunch of stuff to support that).

4) The strings are designed to be human readable and we have no reason to conform to some other addon's purpose because we will only be supporting using this to drop directly into Rawr.

5) Look at what Rawr does now in the ElitistArmory Import process to see how we are assigning models. It's all really straight forward and it's always based on the Talent build.

6) Yes we deal with Glyphs, that's the part of the Talents string after the "." We don't use the Glyph ID's at all. See the ClassGlyphs.cs file to determine what order to put them in. It's all 0 for not having it, 1 for having it (active, not just stored in the list)

7) AvailableItems needs to stay like that because that's how we'll automatically import them. You can specify in the Addon's UI whether or not you want to export items from various sources (bags vs bank) and whether to import stuff as Blue Diamond instead of Green

Coordinator
Dec 7, 2010 at 5:45 AM

I'd include just the *names* of the glyphs, and then the import process should dynamically set the right glyph IDs, since the IDs are arbitrary, set by the model dev, and have translations between those IDs and the names.

Developer
Dec 7, 2010 at 5:49 AM

That would work too, I just wanted to take the step out of the Rawr and put it into the Addon :p

Developer
Dec 9, 2010 at 10:44 AM
Edited Dec 9, 2010 at 10:48 AM

That's no problem Jothay I'll rework the code to be the <Character> tag setup. Can we have a couple of tweaks of the Character tag code though please. ie: I'm assuming you want to use the tag to support load/save whether its local to user or via addon.

Specifically glyphs, it makes sense to have things like translations of Blizzard names of things into an id for the transfer process however it does not make sense to be creating IDs in two different places, as that means that any change in a developer created ID needs changed in the Rawr code and the Addon code. Use of the names is problematic too as the Blizzard API gives back the localised name, thus you get into the headache of maintaining needlessly large localised files for different languages. I'd therefore suggest we use the Blizzard spell ID for glyphs as used on wowhead and in game eg: http://www.wowhead.com/spell=54813 rather than the itemID http://www.wowhead.com/item=40900 as I cannot see anything in the API that returns the itemID.

Since the Blizzard IDs don't match the format used in the <Character> tag, can we have the Glyphs put in a <AvailableGlyphs> or something tag, rather than as part of talents? I'd suggest implementing this as a (pseudo code)...

 

if glyphs = "0000000000000000000000000000000" then
    call readXMLGlyphs()
end

type thing so that we retain the existing talents tags with the talents.glyphs structure for backwards compatibility but if the import finds no glyphs ie: all zero then it looks for an XML <AvailableGlyphs> block.

 

Actually I'll need to investigate further http://www.wowpedia.org/World_of_Warcraft_API#Glyph_Functions doesn't show any functions that return list of glyphs player has learnt, only the list of glyphs equipped. I'll have a dig in the Blizzard_GlyphUI addon.

Developer
Dec 9, 2010 at 11:31 AM
Edited Dec 9, 2010 at 12:54 PM

we only care about equipped glyphs. as there is no structure for learned (and im not sure of a reason to add one).

i support switching to the actual glyph ids but it is going to be a pain. either way we would have to support the localized names hard coded as a giant file as we dont call glyph names from the server at all.

So basically, you'd only be looking for what the player has active on them, and putting a 1 in that slot, the rest are 0's.

Developer
Dec 9, 2010 at 7:05 PM

Ok looking better

<?xml version="1.0" encoding="utf-8"?>
<Rawr xmlns:xsi="http://rawr.codeplex.com/somewhere"
xsi:noNamespaceSchemaLocation="RawrAddon.xsd">
    <Version>0.07</Version>
    <Build>55986</Build>
    <Character
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <Name>Levva</Name>
        <Realm>Khadgar</Realm>
        <Region>EU</Region>
        <Race>Draenei</Race>
        <Class>SHAMAN</Class>
        <Level>82</Level>
        <CurrentModel>Enhance</CurrentModel>
        <Bags>
        <AvailableItem>57326</AvailableItem>
        <AvailableItem>57307</AvailableItem>
        <AvailableItem>62082</AvailableItem>
        <AvailableItem>62085</AvailableItem>
        <AvailableItem>57298</AvailableItem>
        <AvailableItem>55588</AvailableItem>
        <AvailableItem>57287</AvailableItem>
        <AvailableItem>57351</AvailableItem>
        <AvailableItem>57265</AvailableItem>
        <AvailableItem>57347</AvailableItem>
        <AvailableItem>57343</AvailableItem>
        <AvailableItem>57261</AvailableItem>
        <AvailableItem>55652</AvailableItem>
        <AvailableItem>50787</AvailableItem>
        <AvailableItem>50834</AvailableItem>
        <AvailableItem>59802</AvailableItem>
        <AvailableItem>50035</AvailableItem>
        <AvailableItem>55418</AvailableItem>
        <AvailableItem>55706</AvailableItem>
        <AvailableItem>44050</AvailableItem>
        <AvailableItem>2901</AvailableItem>
        <AvailableItem>27978</AvailableItem>
        </Bags>
        <Bank>
        </Bank>
        <Equipped>
            <Waist>50762.3521.3521.3521.0.0</Waist>
            <Neck>57334.0.0.0.0.0</Neck>
            <Hands>48347.3524.0.0.1603.0</Hands>
            <Wrist>50000.3521.0.0.3845.0</Wrist>
            <Cloak>49998.3531.0.0.0.151</Cloak>
            <Trinket1>50355.0.0.0.0.154</Trinket1>
            <Head>48348.3628.3531.0.3817.0</Head>
            <Ranged>50458.0.0.0.0.0</Ranged>
            <Feet>47933.3521.3292.0.3826.0</Feet>
            <Chest>48346.3524.3542.0.3832.154</Chest>
            <MainHand>52492.0.0.0.0.0</MainHand>
            <OffHand>52492.0.0.0.0.0</OffHand>
            <Trinket2>47734.0.0.0.0.0</Trinket2>
            <Finger2>50401.0.0.0.0.0</Finger2>
            <Finger1>55776.0.0.0.0.0</Finger1>
            <Shoulder>59808.0.0.0.0.0</Shoulder>
            <Legs>48349.3521.3521.0.3823.0</Legs>
        </Equipped>
        <CustomGemmingTemplates />
        <GemmingTemplateOverrides />
        <OptimizationRequirements />
        <WarriorTalents>0000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000</WarriorTalents>
        <PaladinTalents>000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000</PaladinTalents>
        <HunterTalents>0000000000000000000000000000000000000000000000000000000000.000000000000000000000000000000000</HunterTalents>
        <RogueTalents>000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000</RogueTalents>
        <PriestTalents>0000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000</PriestTalents>
        <ShamanTalents>303000000000000000023233200130030123210000000000000000000.00000000000000000000000000000000</ShamanTalents>
        <MageTalents>0000000000000000000000000000000000000000000000000000000000000.00000000000000000000</MageTalents>
        <WarlockTalents>00000000000000000000000000000000000000000000000000000000.00000000000000000</WarlockTalents>
        <DruidTalents>000000000000000000000000000000000000000000000000000000000.00000000000000000000000000000000</DruidTalents>
        <DeathKnightTalents>0000000000000000000000000000000000000000000000000000000000.00000000000000000000000000000</DeathKnightTalents>
        <AvailableGlyphs>
            <Glyph>55448</Glyph>
            <Glyph>58058</Glyph>
            <Glyph>58059</Glyph>
            <Glyph>59289</Glyph>
            <Glyph>58057</Glyph>
            <Glyph>55449</Glyph>
            <Glyph>55446</Glyph>
            <Glyph>63271</Glyph>
            <Glyph>55444</Glyph>
        </AvailableGlyphs>
        <PrimaryProfession>Jewelcrafting</PrimaryProfession>
        <SecondaryProfession>Mining</SecondaryProfession>
    </Character>
</Rawr>

Developer
Dec 12, 2010 at 4:09 AM

Some notes on 0.07 (used it in game):

  • Its putting an extra line break at the beginning of the file, not a big deal but its there
  • I like the Bags and bank separations and I guess we can use those for the options.
  • Equipped doesn't need to be subset (so those items will load in directly to their positions)
  • You no longer need to include talent builds for all classes, just the one we are in right now (Astry set up default constructors on them)
  • Glyphs as listed we can work with
  • Can you add the <WaistBlacksmithingSocketEnabled>true<WaistBlacksmithingSocketEnabled> entry for all players as well as the Wrist and Hands ones for persons with a Blasmithing Profession
  • Would be nice to have the Bags Available Items list be indented one further for visual inspection. not a big deal

I'll look into making the parser for it tomorrow.

Editor
Dec 13, 2010 at 8:05 AM

Why is it necessary, or even worthwhile, to list available glyphs?  I can see CURRENT glyphs, but not a list of those that have been learned.  The only two lists of glyphs that should matter are equipped, and comprehensive.

Coordinator
Dec 13, 2010 at 8:38 AM

All glyphs are available; the file should include the current glyphs only.

Developer
Dec 13, 2010 at 6:20 PM
Jothay wrote:

Some notes on 0.07 (used it in game):

  • Its putting an extra line break at the beginning of the file, not a big deal but its there Done
  • I like the Bags and bank separations and I guess we can use those for the options.
  • Equipped doesn't need to be subset (so those items will load in directly to their positions) Done
  • You no longer need to include talent builds for all classes, just the one we are in right now (Astry set up default constructors on them) Done
  • Glyphs as listed we can work with
  • Can you add the <WaistBlacksmithingSocketEnabled>true<WaistBlacksmithingSocketEnabled> entry for all players as well as the Wrist and Hands ones for persons with a Blasmithing Profession
  • Would be nice to have the Bags Available Items list be indented one further for visual inspection. not a big deal Done

I'll look into making the parser for it tomorrow.

For the WaistBlacksmithingSocketEnabled are you wanting this set based on whether the user has the socket? ie: true or false and is true/false all lowercase?

Similarly for Wrist and Hands is it a case of always write the entries but with false for non-blacksmiths and true for blacksmiths. I've never levelled a blacksmith so I don't know if its tri-state thing. ie: is a Blacksmith but item has no socket on it because it hasn't been given a socket. ie: true/false/missing

How do you want to handle it. Perhaps easiest is if Blacksmith add extra tags with true if socket exists false otherwise. Then I just need to work out how to determine if a socket exists, its probably an enchant id but without a blacksmith its difficult to know what a valid itemString comparison might be. Can anyone assist with this information that has a blacksmith please?

Developer
Dec 13, 2010 at 6:27 PM
Edited Dec 13, 2010 at 6:27 PM

Need it based on if they are a Blacksmith, because that's one of the core reasons to go with that profession. The item may be getting imported without that extra socket (or it filled) but what will happen is Rawr will show the user on the tooltip that they have an empty socket. In the charts it will be immediately compared with versions of the item that properly show the gemming templates, meaning it will be way below it's other versions because they have the socket filled.

  • You only need to mark them when they need to be true as the parsing will auto-handle them as false if not set.
  • You only need to mark them as true when the user has Blacksmithing
  • The wording is in lowercase, but it should parse it CAPS or lower

This will save you the time of having to figure out if the item has the socket or not because the item parsing doesn't tell you the socket type or where it came from.

Coordinator
Dec 13, 2010 at 6:54 PM
Edited Dec 13, 2010 at 8:04 PM

Well, i did a little bit of research (and 1200g to test this...) but the Eternal Belt Buckle and the Ebonsteel Belt Buckle both use the same item enchant number (3729). For importing from the armory, this is done in the data-item meta tag "es=3729". I tried looking at the info in game using the rawr addon, and the only thing it was giving was the enchants in order

Before:

<Waist>56356.0.0.0.0.0</Waist>

After:

<Waist>56356.4025.3986.0.0.0</Waist> (I put two gems in when the original only had one)

Edit:

I did some more searching and it appears that Blacksmiths did not get any "upgrade" to their Socket Bracer and Socket Gloves. If I remember correctly, the mats may have gotten nerfed from several Eternal Earths to just 4 Strong Fluxs. Sorry it's been months since I used either on my Paladin who is my Blacksmith. Even then I don't play that character that much (though I do have Blacksmithing up to 450 at the moment).

Developer
Dec 14, 2010 at 9:55 AM
Edited Dec 14, 2010 at 9:59 AM

Many thanks Hindalover looking at wowhead it seems to be what they have called the effectID. See http://www.wowhead.com/spell=55655 and notice "effect : Add Socket to Item (3729)" whereas socket bracer is 3717 and socket gloves is 3723.

The item string currently exported is the cut down version that Jothay asked for, there are several other fields given by the UI and I can probably interrogate them to generate the extra tags.

Ok so...

if Blacksmith then
    if WristSocket then
        <WristBlacksmithingSocketEnabled>true</WristBlacksmithingSocketEnabled>
    end
    if HandsSocket then
        <HandsBlacksmithingSocketEnabled>true</HandsBlacksmithingSocketEnabled>
    end
end
if WaistSocket then
    <WaistBlacksmithingSocketEnabled>true</WaistBlacksmithingSocketEnabled>
end

ie: add tag if true write nothing if false.

Developer
Dec 14, 2010 at 9:49 PM
Levva wrote:

if Blacksmith then
<WristBlacksmithingSocketEnabled>true</WristBlacksmithingSocketEnabled>
<HandsBlacksmithingSocketEnabled>true</HandsBlacksmithingSocketEnabled>
end
if WaistSocket then
<WaistBlacksmithingSocketEnabled>true</WaistBlacksmithingSocketEnabled>
end

 

Developer
Dec 15, 2010 at 9:57 AM
Edited Dec 15, 2010 at 9:59 AM

I thought of that as an alternative. However isn't the "if WaistSocket" redundant? ie: we are going to tell them they should have one and have it socketed whether they have one or not aren't we? Same as if Blacksmith they should be adding it and socketing it. So we get...

if Blacksmith then
<WristBlacksmithingSocketEnabled>true</WristBlacksmithingSocketEnabled>
<HandsBlacksmithingSocketEnabled>true</HandsBlacksmithingSocketEnabled>
end
<WaistBlacksmithingSocketEnabled>true</WaistBlacksmithingSocketEnabled>

I've commited this as the current build however it is dry coded at present as I have no in game access here at work :)

How is the import side of things progressing?

Developer
Dec 16, 2010 at 9:16 PM
Edited Dec 16, 2010 at 9:23 PM

You are right, I had meant to take that part off.

Can you make sure that 0.08 is pushed to Curse? I'm about to start the import process which shouldn't take long. For now I'm just going to manually drop the files into the addons directory of my wow folder (which I hope that works).

Edit: Apparently not :(

Developer
Dec 17, 2010 at 12:58 AM
Edited Dec 17, 2010 at 1:35 AM

oooook.

  1. I got 0.08 working
  2. I used it to copy out my character xml from WoW to the clipboard.
  3. I pasted that into Notepad so I wouldn't have to keep pulling it from WoW.
  4. I unhid the menu options for Load Character from Rawr AddOn
  5. I created a Dialog to take in your Character XML from wherever by pasting it into a box.
  6. This box will alert you if you are using an older version (it manually checks the pasted XML for "0.08", we will have to update this check for every new addon release, between version fixes we will have to label as "0.08a" and such).
  7. The OK button on this box will be disabled if the import box is empty, or if it doesn't match the version.
  8. The Dialog has instructions on what to do/how to interact with the Rawr addon.
  9. The Dialog has a note on it that you have to open and close your Bank in order to export Bank Items
  10. The Dialog has the options to import:
    • Just what you are wearing
    • What you are wearing and whats in your Bags
    • Wearing, Bags AND Bank data. This is the default option.
  11. The Character XML gets parsed to take out the lists: Bags, Bank and AvailableGlyphs so that we can parse them back in later
  12. The Character XML gets the Class Names fixed, it doesn't like ALLCAPSNAMES. I would prefer it if we could move this to the AddOn.
  13. The Character XML gets deserialized into an actual Character class
  14. The Character gets the glyphs parsed back in (this worked first try, it was awesome)
  15. TODO: Mark items as available to the optimizer per the requested setting
  16. The Character gets pushed to the Main Form (where you see everything)

And that's where I'm at.

Using my Character XML export from WoW, the following issues occurred.

  1. Shoulder Slot did not load at all. Edit: Investigated as it using the wrong name, should have been "Shoulders" instead of "Shoulder. I fixed the LUA then restarted WoW and it worked on next import.
  2. Back Slot did not load at all. Edit: Investigated as it using the wrong name, should have been "Back" instead of "Cloak". I fixed the LUA then restarted WoW and it worked on next import.
  3. Glove Slot loaded with it's enchant and reforging, but the Gem ID's were wrong. What should have been 40117 in both gem sockets came out as 3525 and I don't know what that is
  4. Legs Slot loaded with it's enchant and reforging, but the Gem ID's were wrong. What should have been 40117 in both gem sockets came out as 3525 and I don't know what that is
  5. Waist Blacksmithing socket didn't activate. This was due to using Wrist instead of Waist in that spot as a typo. Fixed it

Everything else appears to have loaded correctly: talents, glyphs, character name, realm, region, professions, model, race and all the other equipped items (though none of them have gems. I suspect if they did they would see the same issue as Glove and Legs above).

Developer
Dec 17, 2010 at 1:51 AM

Updated the version check to 0.09.

Developer
Dec 17, 2010 at 1:42 PM
Edited Dec 17, 2010 at 1:45 PM

Class names are provided by Blizzard API in localised name and English name, the English name is capitalised. I can write a convert in the addon so it exports as StrongTyped. DeathKnight or Deathknight? or everything lowercase?

Gem id of 40117 is (according to http://www.wowhead.com/item=40117) smooth kings amber and no longer in game? Could this be the issue?

3525 sounds like an enchant id or a "Random Enchantment" id. What is the item in question and what gem/enchant was on it?

 

For version checking perhaps we should also have a "RawrBuild" flag. So that we can flag in the addon what minimum Rawr4 build is required to avoid the issue of too NEW an addon being used?

I'll release a v0.09 to curse as a beta.

Dec 19, 2010 at 8:17 AM

Grats on making Version .12 work smoother. Seems much better but Rawr Addon import has a minor issue. Curse.com only has version .7 of Addon so imports failed for me since Rawr requires .9 to work. Where else is the .9 version of the Addon available?

Developer
Dec 19, 2010 at 11:51 PM

Please raise a ticket DO NOT post bugs in a discussion thread.

Developer
Dec 20, 2010 at 3:37 AM

Levva when updating the AddOn's version at Curse, if we aren't simul-releasing a new Rawr version, please update them as 0.09a, 0.09b, etc so that they will continue to recognize as importable but will remain as "newer" versions on Curse.

Developer
Dec 20, 2010 at 11:44 AM
Edited Dec 20, 2010 at 3:35 PM

I wasn't sure if the import would permit that sort of version. There is the potential to be a huge disconnect between builds of the addon and RELEASES of Rawr on the ElitistJerks website. At present we have a problem that Ackis is looking into, although I need to nudge him about it, that the external SVN sync of the repositories on Curse & Codeplex are not syncing. When he gets it fixed it then it should mean any commits on Codeplex produce an alpha build on Curse.

When I get going with actually writing the in game display frames I'll want to release new versions at completely different time intervals to Rawr4 website updates. I don't want to restrict these to sub letter releases as that gives the impression of minor fixes when actually it could be massive changes. Therefore I came up with a solution...

I added a RawrBuild tag to the addon export so that Rawr would know that if the addon import RawrBuild tag was less than or equal to the running Rawr4's build number then it was ok to import.

eg: Addon says it works with build 55000. Rawr is running build 55005 then its ok.

I change something in addon that doesn't affect import eg: in game character display frames and release a new version it will still say 55000 by that time Rawr internal build might be 55100 but the live website is still 55005. All works fine as import realises that addon works with build 55000 onwards. So both developer build at 55100 and live website at 55005 work just fine.

If I needed to change something in the import process either on Rawr or on the addon then I bump the version say to 55156 and put it as an alpha/beta version. Now we have the internal build at 55156 but the website is still at 55005. As developers we can test it all works as the internal build number of Rawr is still >= the addon support number. However for the live version it would say that the addon build "55156" is greater than the live build 55005 therefore "The addon version is too new and not yet supported on this release please try again when a new build is released" or some such statement.

This way we avoid having to tweak version numbers on a sub project every time there is a release of the Rawr4 code to the website. I can see it being a massive headache trying to keep the versions in sync at present. Once the Curse <-> Codeplex sync is working it will be less of a headache as you could just update the version of the addon and tag it as a release without needing my intervention as tagging a release forces the Curse Packager to build a new release and update the Curse website.

However its probably better that we automate the process rather than having to remember to release to Curse a new addon version everytime the Rawr website build is refreshed. Since I can't, and wouldn't want to be able to, force a refresh of the Rawr website I'm stuck with creating versions in isolation and I do not want to be limited to inaccurate sub version releases when I've made major code changes that should be major build version increments.

 

So. we have the existing version check is the version of the addon at least X.XX and is the version of RawrBuild at most build XXXXX (where XXXXX is the current running build).

Developer
Dec 21, 2010 at 3:32 PM

BTW it would make sense if Astrylian/Jothay & others were co-authors on the curseforge site so you could make releases when you saw fit. If you PM me with your curseforge name I'll add you to the project.

Dec 22, 2010 at 4:05 AM

Will the character export xml from Rawr-tool share the same format as Rawr-addon?

Obviously, the addon may have extra data fields such as "AvailableItem".

I want to maintain support for importing your export files (in SimC) and was hoping the format tool/addon formats would be consistent.

 

Coordinator
Dec 22, 2010 at 4:24 AM

An interesting consideration... Not currently, no, they're not the same format, but are similar... I do see the attraction in letting people just use the Rawr addon, and go straight from that to SimCraft, without a layover in Rawr, so to speak. Not sure how we can best handle that though...

Developer
Dec 22, 2010 at 4:33 AM

Nate,

The differences between the Rawr AddOn and a saved 'Character.xml' file right at this moment are:

  • The Addon Data wraps a Character's XML with <Rawr> which has a couple tags that tell us the version of the AddOn.
  • Items from your Bags and Bank will be listed in two sub-nodes of Character named <Bank> and <Bags>. This is so that we could set up some separation on how Gear was being imported and users can ignore Bags and/or Bank items if they wanted to. Normal Character.xml files just save those as <AvailableItems>itemID</AvailableItems>. We'll be adding more options to this, but only on Rawr's side, not the AddOn.
  • The Talents string will have the talents plus 000000000... instead of populating the Glyphs there. Glyphs are listed under <AvailableGlyphs><Glyph>ID</Glyph></AvailableGlyphs>. This is something we have to translate inside Rawr because we can't export it that way from WoW without a bunch of work in the AddOn. We felt it would be easier to just translate it in Rawr.

If you want SimCraft to run it, I guess you could just make it rip the <Character> node out of that wrap along with handling the other differences.

Dec 22, 2010 at 4:50 AM

Similar is good enough.  I should be able to beat the same section of code into supporting both formats.  Thanks for the speedy response!

 

Developer
Dec 28, 2010 at 2:18 PM
Edited Dec 28, 2010 at 2:19 PM

Quick update. V0.21 now allows you to export the current state of your character - say after you'd run the optimiser and load it into the addon in game. It then displays a Rawr paper doll in game so you can compare items. I'd strongly recommend an addon like EquipCompare to show side by side tooltips. I may however add that functionality manually as a feature in a later version but it seems like re-inventing the wheel.

Next step is to actually show the user what items have changed and to highlight the changes. Then I'll look at options to equip items highlighted - although that may not be easy if its in bank etc. Might just go for a small icon or colour coding to indicate yes this is an upgrade and yes you have it in your bags so it could be equipped.

 

NB. To be clear Addon version 0.21+ REQUIRES Rawr 4.0.13 or above to be on the website. That isn't the case at the time of writing.

Dec 28, 2010 at 6:19 PM
NB. To be clear Addon version 0.21+ REQUIRES Rawr 4.0.13 or above to be on the website. That isn't the case at the time of writing.

well that explains why I was less then successfull last night.

Jan 2, 2011 at 6:11 AM

Nice to see that Rawr 4.0.13 and Addon .22 seem to now automatically select the items from my bags/bank into the "Available for Optimizer" item selector! However, the Addon does not seem to be able to detect enchants, reforging, and gems as importing from the Armory does, whereas the Armory can't tell Rawr what's in my bags/bank.

I would suggest a hybrid importing option, where you can import your equipped items from the Armory (so it will have your enchants and gems), but then have importing your unequipped inventory from your bags/bank for the Optimizer as a separate Addon function (such as "/rawr exportbags", to be used in conjunction with separate Rawr Optimizer function). That way, you will have the most accurate overall info from both sources, not just one or the other as it somewhat is now.

I would also like to see an option in the Addon to import what Enchants are available for the Optimizer by accessing the new guild interface's Professions view, either from yourself (if you have the appropriate professions) or from the specified guildie(s).

Keep up the great work!! :)

Editor
Jan 2, 2011 at 8:05 AM

Haven't actually played with the addon at all yet, but from a design standpoint... A) The absolute most up to date info is always what show in-game, it just comes down to rounding out the final bits of functionality, and then it's on to prettifying it, spiffifying it, and otherwise making it more polished; and B) it's best to assume that all relevant enchants are available.  Always.  Period.  There is no reason to ever consider anything less.  That's what /2 is for.  We won't be building-in ways to hamper our users performance, and saying "These are all the enchants our guild is capable of doing in-house" falls under that category.

Coordinator
Jan 2, 2011 at 8:34 AM
BrWarner wrote:
 it's best to assume that all relevant enchants are available.  Always.  Period.  There is no reason to ever consider anything less.  That's what /2 is for.  We won't be building-in ways to hamper our users performance, and saying "These are all the enchants our guild is capable of doing in-house" falls under that category.

That's not really the case. Especially with the current maelstrom-crystal-based enchants, finding someone to do the enchant can be an issue. Just marking everything the guild has as available is also problematic though, because it encourages marking a toooon of stuff as available, which isn't necessary, and drastically impacts optimizer performance and accuracy.

Jan 2, 2011 at 7:44 PM

Actually ackthbbft, what you asked for can be done simply by loading your toon from the addon then refreshing it from armoury. I used this method in both Rawr2/3 and it marked the stuff I had and then I could fine tune the rest for needs/wants. Currently the refresh Character option is not yet implemented into Rawr4 so we will need to be patient till they can get to that part.

Developer
Jan 2, 2011 at 7:50 PM

Nonono, you shouldn't have to do both, if addon import is broken we just need to fix addon importing not design some other process based on something broken.

Developer
Jan 3, 2011 at 1:58 AM
Edited Jan 3, 2011 at 2:01 AM
ackthbbft wrote:

Nice to see that Rawr 4.0.13 and Addon .22 seem to now automatically select the items from my bags/bank into the "Available for Optimizer" item selector! However, the Addon does not seem to be able to detect enchants, reforging, and gems as importing from the Armory does, whereas the Armory can't tell Rawr what's in my bags/bank.

As Jothay said a Hybrid option is awful and not a route we will go down. Instead can I ask you to use v0.23 and export your character then check what it says in Rawr. If it still doesn't show enchants/reforging/gems then please create a ticket and provide your export file as evidence of what was exported by the addon. Also please state which slot(s) had a problem and what the problem with the slot was. eg: head missing enchant xxxxx, shoulder missing a Brilliant Inferno Ruby etc. A link to your armoury showing the correct gear would also be helpful. I can then try to work out from the export the addon did and your information what exactly is missing, and whether it is in the addon export or Rawr import side that is wrong (it could be either).

The more info you provide in the ticket the easier it is to identify ALL of the problems you are seeing so please provide as much info as you can. My own export is working so something is different with yours and I want to fix that.