Академический Документы
Профессиональный Документы
Культура Документы
Professionbuddy is a plugin designed to automate Tradeskill related tasks including but not
limited to automatically leveling Tradeskills, disenchanting items, milling herbs or crafting a list
of items.
Tasks are built by drag and dropping Actions onto the right pane and editing the actions to the
desired settings.The user can then save the tasks to a profile as well as load profiles.
ProfessionBuddy supports loading .zip files as well as saving to .zip. When a profile is saved to
a .zip file any Honorbuddy/GB gathering profiles that the ProfessionBuddy profile uses is
automatically added to the zip. This makes distributing multiple files much easier.
Having basic knowledge of the C# language is recommended to build advanced profiles as well
as some knowledge of Honorbuddy's API
There is a wide variety of Actions to choose from such as actions that will craft recipes,
mill,disenchant,prospect, fly or run to locations, train, sell/buy from vendors and AH and more.
There's also an "If Condition" and "While Condition" that can be used to perform actions under
certain conditions.
Once you have have all the actions that you need in the Task List hit the start button and
Professionbuddy will perform all the actions in the Task List
In order to make advanced profiles like one that levels a profession you need to know basic C#.
If you have some experience with making quest orders then this shouldn't be a problem.
Action Tab
This tab shows a list of actions that can be placed in the Task List via drag and drop or using that
‘add’ button. This list also includes an 'If Condition' which will execute all the actions it contains
if the condition is true.
Tradeskill Tab
This Tab contains all your current tradeskills and all the learned recipes you bot has learned.
There's a search filter text box to the upper left corner and a drop-down list of Categories to the
upper right.
The list has 3 different columns, Name, recipe repeatable count, and color representing the
recipes difficulty. This list supports multiple selection which makes it easy to add allot of recipes
to the Task list. To add the Recipes to the Task List you need to select them and then click the
'Add' button that is below the list. To the left of the 'Add' button is a numeric value that
represents the number of times the recipes will be repeated when added to the Task list.
To the right of the 'Add' button is a drop down list with different modes that will alter the
recipe's repeat behavior. The 1st and default mode, 'Specific' will attempt to repeat the recipe
the specified number of times.
The second mode 'Craftable' will repeat the recipe until it runs out of mats.
The third and final mode 'Banker' is only available if the user has an addon called DataStore
installed. It's available on Curse gaming and comes with that Altaholic Addon. It basically keeps
track of inventory, auctions, mail and bank items for all your characters, and even has multiple
account support. This mode is nice to restock your bankers with crafted goods to sell on AH for
example. It checks to see how many of the crafted items you have on your alts and then it
deducts the 'Repeat' amount from it. For example if you had 12 Flask of Steelskin on your alts
and your 'Repeat' number is 20 it would makes 8 flasks. (20-12 =8).
Task List
The Task List is where all your 'If Condition's and Actions are. To change the properties of an
action you must select it and then change the settings in the Property grid below. There are
several keybind that make editing easier.
Keybinds:
Shift + drag n drop: By default dropping an action on top of an 'If condition' places it inside that
'If Condition' this keybind cancels that effect.
Ctrl + drag n drop: copies an action or an 'If Condition' and all of its actions
Property Grid
This control shows the settings of the currently selected Action in the Task list. The settings are
pretty much self-explanatory but if there's any doubt, check the actions detailed description
below the Action list.
There is one common setting that might need an explanation, Location. The Location setting is
used by many actions and it describes a location in the game. It accepts a HotSpot style Tag or
any combination of 3 numbers and automatically converts them to the correct format. Also the
button with 3 dots '...' will automatically place the location of the player in the text edit box or
the player's current target's location if he/she has one.
API
I have added quite a few small helper API for use with the 'If/While Condition's and Custom
Actions. They are there to serve as shortcuts. You can also use HB's api if needed.
If/While Condition
The 'If/While Condition' will runs the actions that they contain if an expression is true.
Execution starts from the top action and goes down the list of actions that the If/While
Condition contains. If at any time the Condition becomes false then execution stops right away
unless the property 'Ignore Execution Until done' is set to true in which case execution will
ignore the Condition until it finishes executing the last action at the bottom of the list
The While Condition will repeated execute a set of actions as long as its condition remains true.
A While condition can repeatedly execute actions within while the If Condition cannot (unless
it's embedded within a While Condition)
Custom Action
A Custom action will execute a C# statement
Declaration
Declarations are used to define your own fields, properties, methods or other types
SubRoutines
Subroutines can contain a group of actions that you can execute by using 'Call Subroutine'
action. This allows you to have more compact and organized profiles
Alchemy,Blacksmithing,Cooking,Enchanting,Engineering,FirstAid,Fishing,Herbalism,Inscription,J
ewelcrafting,Leatherworking,Mining and Tailoring.
Each of the listed tradeskills wrapers has 2 properties, Level and MaxLevel
[ProfessionName].Level - returns current level for mining. Mining can be used for any
profession, example Mining.Level
[ProfessionName].Bonus – returns the bonus skill amount that is added from items or
buffs
[ProfessionName].MaxLevel - returns the max skill level for a profession. The max skills
are 75,150,225,300,375,450 and 525. Example Mining.MaxLevel
CanRepeatNum (RecipeID) - returns the number of times the recipe can be repeated with
current mats, RecipeID is the wowhead ID
CanCraft (RecipeID) - checks if the player has the recipe, has the tools and mats to make it.
returns a bool
HasMats (RecipeID) - checks if the player has material for the recipe
HasTools (RecipeID) - checks if the player has the tools need to craft the recipe.
HBRelog
HBRelog.IsConnected – Returns true of there is an open IPC connection to HBRelog.
HBRelog.CurrentProfileName – Name of the current HBRelog profile
HBRelog.RestartWow() – Restarts Wow and Honorbuddy
HBRelog.RestartHB() – Restarts Honorbuddy
String[] HBRelog.GetProfileNames() – returns an array of HBRelog profiles names
HBRelog.StartProfile(string profileName) – Starts a profile
HBRelog.StopProfile(string profileName) – Stops a profile
HBRelog.PauseProfile(string profileName) – Pauses a profile
HBRelog.IdleProfile(string profileName,TimeSpan time) – Idles a profile for time duration
HBRelog.SetProfileStatus(string status) – Sets the current HBRelog profiles status text
ProfileStatus HBRelog.GetProfileStatus (string profileName) – returns the status of a profile
ProfileStatus is an enum that is defined as..
public enum ProfileStatus
{
Unknown,
Paused,
Running,
Stopped
}
MailCount - This property returns the number of mail in the inbox, requires mailbox to be open
or recently visited.
InbagCount (ItemID) - Returns the number of items the player has in the bags that match
ItemID
InBankCount (ItemID) - Returns the number of items the player has in personal bank that match
ItemID.
InGBankCount (ItemID) - Returns the number of items the player has in guild bank that match
ItemID. Requires Datastore WoW Addon. No RefreshDataStore() call is required
InGBankCount (CharacterName,ItemID) Same as above except it gives the choice to get item
count on a character that isn’t currently logged in game.
OnAhCount (ItemID) - Returns the number of items the player has on AH that match ItemID.
Requires Datastore WoW Addon. No RefreshDataStore() call is required
OnAhCount (CharacterName,ItemID) Same as above except it gives the choice to get item
count on a character that isn’t currently logged in game.
Log(Color,string,params object[] args) - prints a message to Honorbuddy's Log using the specific
color
var1,var2...var9 - I added 9 static 'object' type variables to store info to use later in code.
For more readable profiles use declarations instead.
Settings["Name"] - This is used in conjuction of the Settings Action from the action list. It
returns the current value assigned to a setting that can be edited by the end user from a gui.You
use a Settings Action to give it a type and default value. Since the type returned is an object
type you must cast to the real type when reading the value from it. Example
(bool)Settings["Level Mining"]
Other Misc Stuff from HB's API - thanks to Inrego for the compilation.
0 = Eastern Kingdoms
1 = Kalimdor
530 = Outlands
571 = Northrend
Me.ZoneId == X
Check
what zone I'm in. ZoneIDs can be found on Wowhead.com
Input to the chat box. Chat strings can be inserted, or stuff like /use Hearthstone
Lua.DoString("UseItemByName(ItemID)"); Use the item with given ItemID. ItemID can be found on
Wowhead.com
This line checks if the given #objectID is within #distance yards of the (x,y,z) coord.
Example:
Wait(
Will wait until the the boat with objectID 190536 is within 3 yards of (-8288.816, 1424.703,
-0.01198259).
This can be used for all boats and zeppelins. You can find the objectIDs and their coords in HB Developer
Tools.
List of Portals
Stormwind