MQ2EmuInventory
Overview
MQ2EmuInventory gives you a way to graphically interact with the inventory of your other toons in the NetBots/EQBC link. An inventory window can be displayed for each character with globally or per-character customizable buttons, progress/hp/mana/etc bars, and labels.
Objects
Objects are added by listing a name for them in the Button.Names, Label.Names, Bar.Names, and Icon.Names settings in the ini file. For example a setting of "Label.Names=Top Bottom" would make two labels name top and bottom. Their font size could then be set with a "Top.CaptionFontSize=1".
Pods
This refers to the windows that gets displayed when viewing an inventory. Since there is only 1 pod the "Pod" name is static and there is no list of pod names. Meaning Pod.Names does NOT exist.
Properties:
Pod.OnClick
Pod.Color
Pod.ToolTip
Pod.ToolTipColor
Buttons
These are a sub object of the inventory pod.
Properties:
name.Caption
name.CaptionLeft
name.CaptionTop
name.CaptionFontSize
name.CaptionColor
name.OnClick
name.ToolTip
name.ToolTipColor
name.Top
name.Left
name.Height
name.Width
Bars
These are a sub object of the inventory pod.
Properties:
name.Percent
name.Color
name.OnClick
name.ToolTip
name.ToolTipColor
name.Top
name.Left
name.Height
name.Width
Labels
These are a sub object of the inventory pod.
Properties:
name.Caption
name.CaptionColor
name.Left
name.Top
name.CaptionFontSize
Icons
These are a sub object of the inventory pod.
Properties:
name.Index
name.OnCursor
name.Caption
name.CaptionLeft
name.CaptionTop
name.CaptionFontSize
name.CaptionColor
name.OnClick
name.ToolTip
name.ToolTipColor
name.Top
name.Left
name.Height
name.Width
Object Properties Explained
P - means this property is parsed as a variable. Much like MQ2Hud properties.
Index P
This is only valid for the Icon object. It should be a numeric icon index for what icon graphic you would like displayed. An icon with the Index property of "${NetBots[${Character}].Item[0]}" would display the image of the item in slot 0 (cursor) of ${Character} (whoevers inventory is open).
Format:
name.Index=<int>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Icon0.Index=${NetBots[${Character}].Item[0]}
OnCursor
This is only valid for the Icon object. It should be a 1 or 0. If 1 the item Icon will ignore its Top and Left properties and place itself dynamically on the users cursor.
Format:
name.OnCursor=<1 or 0>
Parameters:
NONE - this property is NOT parsed.
Example:
Icon0.OnCursor=0
Caption P
This is the string of text that will be displayed for buttons/labels/icons. A label with a caption property of "${Character}" would make the label display the name of the character the pod belongs to.
Format:
name.Caption=<string>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Button1.Caption=My name is ${Character}
CaptionColor P
This is the color of the string of text that will be displayed for buttons/labels/icons. A label with a caption property of "255 255 0 0" would make the label display as red.
Format:
name.CaptionColor=<alpha> <red> <green> <blue>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Button1.CaptionColor=${If[${NetBots[${Character}].State.Equal[SIT]},255 255 0 0,255 255 255 255]}
CaptionLeft
This is a pixel value of where the left edge of the caption will appear. For Labels this value will be relative to the inventory window, meaning a 10 will place it 10 pixels to the left of the left edge of the bod. For a Button/Icon this value is relative to the Left property of the button or icon. Meaning a Button with a Left property of 50, and a CaptionLeft of 10 would place the caption 60 pixels into the inventory window, not 10 pixels as with the Label.
Format:
name.CaptionLeft=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.CaptionLeft=3
CaptionTop
This is a pixel value of where the top edge of the caption will appear. For Labels this value will be relative to the pod, meaning a 10 will place it 10 pixels below the top edge of the bod. For a Button/Icon this value is relative to the Top property of the button or icon. Meaning a Button with a Top property of 50, and a CaptionTeft of 10 would place the caption 60 pixels into the inventory window, not 10 pixels as with the Label.
Format:
name.CaptionTop=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.CaptionTop=3
CaptionFontSize
This is what size the font should be for the caption. You probably want to only use font sizes 1-3 but more are available.
Format:
name.CaptionFontSize=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.CaptionFontSize=1
OnClick P
This is a command that will be executed when the object is clicked. It is important to note that it is parsed BEFORE it is executed. This means you can nest commands into variables. For example if we set a button OnClick to, "/bct ${Character} //attack ${If[${NetBots[${Character}].Attacking},off,on]}" it will execute a /attack on, or /attack off depending on if they are attacking.
Format:
name.OnClick=<command string>
Parameters:
${Character} - The name of the character whos inventory is open
${Left} - TRUE/FALSE the mouse was left clicked
${Right} - TRUE/FALSE the mouse was right clicked
${Alt} - TRUE/FALSE the mouse was alt clicked
${Ctrl} - TRUE/FALSE the mouse was ctrl clicked
${Shift} - TRUE/FALSE the mouse was shift clicked
Example:
Button1.OnClick=/bct ${Character} //attack ${If[${NetBots[${Character}].Attacking},off,on]}
ToolTip P
This is the string of text that will be displayed when the mouse hovers over an object. A Bar with a ToolTip property of "${NetBots[${Character}].PctEndurance}%" would make the ToolTip display the percentage of endurance.
Format:
name.ToolTip=<string>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Button1.ToolTip=This makes ${Character} sit
ToolTipColor P
This is the color of the string of text that will be displayed for on objects tooltip. A object with a ToolTipColor of "255 255 0 0" would display as red.
Format:
name.ToolTipColor=<alpha> <red> <green> <blue>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Button1.ToolTipColor=${If[${NetBots[${Character}].State.Equal[SIT]},255 255 0 0,255 255 255 255]}
Top
This is a pixel value of where the top edge of the object will appear in relation to the inventory pod, meaning a 10 will place it 10 pixels from the edge of the characters pod.
Format:
name.Top=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.Top=30
Left
This is a pixel value of where the left edge of the object will appear in relation to the inventory pod, meaning a 10 will place it 10 pixels from the edge of the characters pod.
Format:
name.Left=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.Left=10
Height
This is how tall, in pixels the object will be.
Format:
name.Height=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.Height=15
Width
This is how wide, in pixels the object will be.
Format:
name.Width=<int>
Parameters:
NONE - this property is NOT parsed.
Example:
Button1.Width=19
Percent P
This should be a value of 0-100 representing the percentage width of a bar. For example a bar with a width of 110, and a Percent of of 50 would show up as 55 pixels wide.
Format:
name.Percent=<0-100>
Parameters:
${Character} - The name of the character whos inventory is open
Example:
Bar1.Percent=${NetBots[${Character}].TargetHP}
Color P
This is the color of the pod or bar object. It is similar to the CaptionColor property but it has an additional parameter to detect if the mouse is over it. A bar with the color of "255 0 0 255" would show up as blue.
Format:
name.Color=<alpha> <red> <green> <blue>
Parameters:
${Character} - The name of the character whos inventory is open
${MouseOver} - TRUE/FALSE if the mouse is over this object
Example:
Bar1.Color=${If[${MouseOver},255 180 0 0,155 180 0 0]}
[Maudigan] vs [Default]
You can set custom values for a particular character's inventory. Any object settings that fall under [Default] can be placed under a section named after the character to redefine those settings for that one character. For example:
Macro
This example would make Talra's Bar2 display as a blue mana bar. While everyone else defers to [default] and perhaps gets a stamina bar. You can even add/remove buttons/bars/labels by adding or removing parameters from the Bar.Names, Button.Names, and Label.Names. For example:
Macro
This example would give Talras an additional bar, Bar4 that is 1 pixel tall, green, and displays pet life. Since he lists no properties for bar1, bar2, and bar3 it will automatically defer to [Default] and grab those values from there making bar1-3 identical to everyone elses. To remove a bar, talras could simple set bar names equal to "Bar1 Bar2" and then it wont load Bar3.
[Settings]
These are the static settings that aren't parsed, and can't be changed on a per character basis.
Format:
ini
Example:
Ini
/inventory <name>
This displays the inventory for <name> on any of your other characters.
Example
On Maudigan you execute a /inventory Sorvani - Maudigan will get an interactive display of Sorvani's inventory.
/bag <slot 1 - 8>
This displays the bag 1-8 for the character who's inventory is currently displayed. This command is actually intended for use by the plugin itself. It is preset as an OnClick event when right clicking bags in the inventory window. But it can be manually entered also.
Example
Maudigan has Sorvani's inventory displayed and executes /bag 2 - Maudigan will get an interactive display of Sorvani's 2nd bag.
/clickitem <slot> [<options>...]
This command simply causes a click on an item slot. This command is actually intended for use by the plugin itself. It is preset as an OnClick event when clicking on items and slots in the inventory window. But it can be manually entered also.
Options
-l a LEFT click
-r a RIGHT click
-s a SHIFT click
-c a CTRL click
-a an ALT click
Example
/bct Maudigan //clickitem 9 -r -c
Tells Maudigan to CTRL, Right Click slot 9.
Move Button
In the top left corner (by default) there is a purple bubble. It's a button. To use it mouse down and drag the UI around the screen. It will save it's location on the screen in the ini file. Right now this is a global setting. It will effect the location (on load) of all characters on that PC.
UI Files
You must copy the files from the Macroquest UIFiles folder, to your everquests uifiles/default folder. If you did this BEFORE starting everquest, and you had mq2emucharacters or mq2emuinventory loaded it should just work. If you copied the files after everquest loaded, or didn't have the plugin loaded on startup then you will need to do a "/loadskin default"
Dependencies
EQBCServer.exe
This requires the eqbcserver compiled on or after 26 september 2010
MQ2EQBC
This requires the mq2eqbc.dll compiled on or after 26 september 2010
MQ2NetBots
This requires the mq2netbots.dll compiled on or after 26 september 2010. Netbots send/grab must also be turned on.
MQ2EmuArt
This requires the mq2emuart.dll compiled on or after 26 september 2010
MQ2EmuMapAPI
This requires the mq2emumapapi.dll compiled on or after 6 july 2011
Gold Membership
This does require a gold membership to use. Because of this you'll need to have MQ2VMQNet Loaded, and have type /login <user> <pass>, or have set your user and pass in the VMQNet INI file for autologin. You can sign up for membership here.
Limitations
Not available on SoF
This was added to Titanium on 7 July 2011. It can now be used on Titanium, Seeds of Destruction, and Underfoot.
Troubleshooting
My inventory window wont show up
1. Make sure mq2emuart is loaded
2. Make sure mq2emucharacters is loaded
3. Make sure you are logged in using /login <username> <password>
4. Make sure you and your other characters are connected to EQBCServer
5. Make sure you and your other characters netbots grab/send are on.
5. reload mq2emucharacters using /plugin mq2emucharacters unload, then /plugin mq2emucharacters
6. Make sure your UI files loaded, /loadskin default
I can't destroy items.
By default the destroy button checks to see if CTRL is pressed. This is to stop accidental destroys. It can be altered.
1. Open MQ2EmuInventory.ini up for editing in notepad.
2. Find: Button5.OnClick=${If[${Ctrl},/bct ${Character} //destroy,]}
2. Replace it with: Button5.OnClick=/bct ${Character} //destroy
Full INI example
Macro
Tue Feb 22, 2011 7:26 pm
Project Lead