Mishna of the Ranger's
My Project
For my first project I decided to write a plugin that would create an xml file with everything I would need to know about my toons. The major purpose was that I figured such a plugin, besides being useful, would teach me how to access the information stored in AC about toons. Therefore the first thing I needed to do was to get my toons name and GUID. I created a new code file called whatelse but ToonStats.cs. I started by adding a Character Stats pushbutton in the MainView.xml file and then adding a click event in the mainview.cs file to take me to the ToonStats.cs page. The code to get the players name and GUID turned out to be the following:

string playerName = Core.WorldFilter[Core.CharacterFilter.Id].Values(StringValueKey.Name);
long playerGUID = Core.WorldFilter[Core.CharacterFilter.Id].Id;
string strplayguid = playerGUID.ToString();


It was necessary to convert the long playerGUID to a string variable to see it in WriteToChat() in order to test my code.
Finding Character Statistics
Character statistics are in the character filter adapter. It is easy to find which statistics are available. Start typing Core.CharacterFilter. As soon as you type the period, a drop down list appears with all the statistics you can choose.

I chose race, gender, level, xp to next level, and unassigned xp. Thus my code was as follows:

string playerrace = Core.CharacterFilter.Race; string gender = Core.CharacterFilter.Gender;
string level = Core.CharacterFilter.Level.ToString();
string xptospend = Core.CharacterFilter.UnassignedXP.ToString();
string xptolevel = Core.CharacterFilter.XPToNextLevel.ToString();

Attributes
Attributes are also found in the Character Filter.
I used the following code to pull them:


foreach (CharFilterAttributeType attrib in Enum.GetValues(typeof(CharFilterAttributeType)))
{
string attrname = Core.CharacterFilter.Attributes[attrib].Name;
int attrbase = Core.CharacterFilter.Attributes[attrib].Base;
int attrbuff = Core.CharacterFilter.Attributes[attrib].Buffed;
string strattrbase = attrbase.ToString();
string strattrbuff = attrbuff.ToString() }


I will not continue showing the xml file formation.
I suspect anyone doing this is already able to program such files.
And there is a great deal on the web about programming those files.
Skills
And similarly for skills:


foreach (CharFilterSkillType skill in Enum.GetValues(typeof(CharFilterSkillType)))
{
string sklltype = Core.CharacterFilter.Skills[skill].Training.ToString();
if (sklltype == "Specialized")
{
string skllname = Core.CharacterFilter.Skills[skill].Name;
int skllbs = Core.CharacterFilter.Skills[skill].Base;
string strskllbs = skllbs.ToString();
int skllbf = Core.CharacterFilter.Skills[skill].Buffed;
string strskllbf = skllbf.ToString(); }


And of course another if clause for sklltype == "Trained".