| View previous topic :: View next topic |
| Author |
Message |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Fri Dec 02, 2005 11:52 pm Post subject: Hooks requests |
|
|
Add them here. Anything you think is useful that is in the scope of ACHooks. _________________ This is chemical burn.
Last edited by Hazridi on Wed Dec 07, 2005 6:50 am; edited 3 times in total |
|
| Back to top |
|
 |
GKusnick Teh Decal L33T!


Joined: 28 Apr 2002 Posts: 1348 Location: Seattle
|
Posted: Sat Dec 03, 2005 4:10 am Post subject: |
|
|
Top of my list would be anything that requires a scrollbar to access. This would include selecting categories from the merchant dropdown, selecting skills on the Skills panel or spells on the Spells panel, setting/clearing character option checkboxes, etc.
Things that are in fixed locations relative to the borders of the 3D region, such as merchant Buy/Sell buttons or the green skill-raising triangle, can be done fairly easily with WM_MOUSEMOVE and WM_LBUTTONDOWN messages, even when the client is Alt+Tabbed. (The ToD client is much friendlier in this regard than the old ACDM client.)
Once a scrollbar gets involved, though, calculating the right place to click becomes very tricky. So those sorts of things ought to have priority on the hook wishlist, to the extent that it's feasible to hook them at all.
Alternatively, a way of hooking into the scrollbar code itself in order to programmatically get/set the scroll position of any scrollable panel or dropdown would go a long way toward making the individual hooks I listed above unnecessary. _________________ -- Greg |
|
| Back to top |
|
 |
Zegeger
Joined: 25 Apr 2002 Posts: 34
|
Posted: Sat Dec 03, 2005 4:43 pm Post subject: |
|
|
Under the idea of removing the need to use Netecho, the 2 things I have to use NetEcho to get:
Kill Message Event. I uses this to get the kill message text so I know what to look for in the chat output.
Chat Windows Options. This is more specilized I think, so not many may need it. I parse the login packet and the corresponding outgoing packet to store which chat types go in which window. I use this in order to change the chat color yet still have it output to the correct windows for the chat type. If you think enough people could find this useful then it could be a simple return a boolean for a given window and chattype, or a AddChatTextFiltered(text, color, type) |
|
| Back to top |
|
 |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Sat Dec 03, 2005 5:25 pm Post subject: |
|
|
Kill message isn't something hooks should do. _________________ This is chemical burn. |
|
| Back to top |
|
 |
Gouru Teh Decal L33T!

Joined: 19 Apr 2002 Posts: 507
|
Posted: Sun Dec 04, 2005 12:54 pm Post subject: |
|
|
Remember, Hooks are 'hooks' into the AC client, they allow us to either simulate a client UI action, or allow us to get data that is stored in the client. In general, the data is not massaged or changed in any way.
Asking for events based on message traffic is a filter request, not a hooks request. Asking for data to be massaged, changed would normally be a filter task, however, it would also probably be denied. Decal is not about massaging data. That is properly done by the plugins. _________________ Gouru
"Let Memory Loss Be Your Strength" |
|
| Back to top |
|
 |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Wed Dec 07, 2005 1:22 am Post subject: |
|
|
Okay, CVS has VendorBuyListAdd. Tricky memloc. _________________ This is chemical burn. |
|
| Back to top |
|
 |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Wed Dec 07, 2005 5:13 am Post subject: |
|
|
I went all out.
| Code: |
[propget, helpstring("Currently open vendor's ID")] HRESULT VendorID([out, retval] long *pVal);
[ helpstring("Add an item to the vendor's buy list")] HRESULT VendorBuyListAdd([in] long lID, long lAmount);
[ helpstring("Clear the vendor's buy list")] HRESULT VendorBuyListClear();
[ helpstring("Click Buy All")] HRESULT VendorBuyAll();
[ helpstring("Add an item to the vendor's sell list")] HRESULT VendorSellListAdd([in] long lID);
[ helpstring("Clear the vendor's sell list")] HRESULT VendorSellListClear();
[ helpstring("Click Sell All")] HRESULT VendorSellAll();
|
_________________ This is chemical burn. |
|
| Back to top |
|
 |
ElgarL

Joined: 11 May 2002 Posts: 509 Location: England
|
Posted: Wed Dec 07, 2005 6:36 am Post subject: |
|
|
| Very nice. |
|
| Back to top |
|
 |
Gol
Joined: 27 Mar 2003 Posts: 144
|
Posted: Wed Dec 07, 2005 9:38 am Post subject: |
|
|
| Do you still have to open the right menu to add something? That is, select "Spell Components" before adding plats? |
|
| Back to top |
|
 |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Wed Dec 07, 2005 10:15 am Post subject: |
|
|
I'm not sure, I didn't test that. You can do anything you need when the wrong panel has focus, so I imagine it'll work just fine. (IE, you can buy when the Items or Sell tabs are open, or sell when the Buy or Items tabs are open...) _________________ This is chemical burn. |
|
| Back to top |
|
 |
Gol
Joined: 27 Mar 2003 Posts: 144
|
Posted: Wed Dec 07, 2005 10:17 am Post subject: |
|
|
| Hazridi wrote: | | I'm not sure, I didn't test that. You can do anything you need when the wrong panel has focus, so I imagine it'll work just fine. (IE, you can buy when the Items or Sell tabs are open, or sell when the Buy or Items tabs are open...) | Yeah, but that's all loaded already. You don't get the CreateObject events for spell components until you open the spell components tab. |
|
| Back to top |
|
 |
Hazridi Teh Decal L33T!


Joined: 19 Apr 2002 Posts: 1204
|
Posted: Wed Dec 07, 2005 10:48 am Post subject: |
|
|
If that's the case, how would you get the GUIDs at that point?
If you have a valid template ID, it should work. _________________ This is chemical burn. |
|
| Back to top |
|
 |
Gol
Joined: 27 Mar 2003 Posts: 144
|
Posted: Wed Dec 07, 2005 11:04 am Post subject: |
|
|
I'm not familiar with TemplateIDs
Care to share? |
|
| Back to top |
|
 |
kgober Teh Decal L33T!

Joined: 26 Apr 2002 Posts: 1045
|
Posted: Wed Dec 07, 2005 11:11 am Post subject: |
|
|
unless turbine made big merchant changes in the last month or two, you never get CO messages for anything in a merchant's inventory, unless you actually buy the item.
when you open the merchant, the server sends you the entire inventory. the server has to do this so that the client will know which categories to include in the dropdown list (ever notice that certain categories are missing from certain merchants, but those categories magically appear if you sell them an item from that category?). the server also resends the inventory vector at certain times (I think when you buy or sell, in case you sold something in a new category, or somebody else using the same merchant did).
it was true in the past (and may still be true today; I haven't checked) that the correct category must be selected from the dropdown in order for the add to list and/or buy button to work (i don't recall which button, or if it was both), but this was when using the mouse. I don't know what the situation would be when using memlocs.
-ken |
|
| Back to top |
|
 |
kgober Teh Decal L33T!

Joined: 26 Apr 2002 Posts: 1045
|
Posted: Wed Dec 07, 2005 11:14 am Post subject: |
|
|
templateIDs, btw, are the IDs of objects in the merchant's inventory that you can't actually buy (things with a count of -1, usually). these are things that the merchant has an infinite supply of. when you buy the item, you're not buying an infinite supply, you're buying one (or one stack). so the server creates a new object on-the-fly to sell you, with a different ID.
whenever this happens (the ID of what you get is different than the ID of what you purchased), the 'purchase' ID is called a 'template' ID.
this also applies to things you never actually receive in your inventory (i.e. services, like buffs/dispels).
-ken |
|
| Back to top |
|
 |
|