Using the default UI, I sometimes have problems with my cursor not landing exactly where it's supposed to on certain bags, buttons, etc. When using a custom UI, it's almost a certainty that the inventory slots and buttons won't line up anymore. Here's an idea to correct it.
Right now, MQ uses a file called LOCATIONS.TXT which spells out all the different ui elements mq will click on, and which xml files contain the location information. An example of the current locations.txt format is this:
[destroy]
UILabel=InventoryWindow
XMLFile=EQUI_Inventory.xml
ScreenID=IW_Destroy
This is the entry for the DESTROY button in the inventory window. In my UI, I cannot do a /click destroy, because the destroy button is modified and smaller than normal. Currently, what I do is /mouseto destroy, and then /mouseto x y rel in order to "fine tune" the cursor's position, and then just issue my /click left.
I've thought of a way to finetune the mouse outside of scripts, which would enable /mouseto and /click for almost any custom UI if it were put into MQ. The idea is to add 2 new lines to each entry in locations.txt. Make them OffsetX and OffsetY, and have them all default to 0 initially. When the code runs and reads locations.txt, have it read the x/y offset values, and "adjust" the cursor position after reading where it's at according to the xml definitions. Thus, the new entry from above would be:
[destroy]
UILabel=InventoryWindow
XMLFile=EQUI_Inventory.xml
ScreenID=IW_Destroy
OffsetX=0
OffsetY=-15
This example puts the cursor 15 pixels higher than would normally occur just using the straight xml definitions.
I'm not a C++ programmer, but this doesn't look like it would be too involved to add in. And it would open up MQ to almost any custom UI for the users, requiring only one-time modifications to this static text file by the user.
- Aaryn


