Decal Development Forums Forum Index Decal Development Forums
www.decaldev.com
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Hooks requests
Goto page 1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Decal Development Forums Forum Index -> Decal Development
View previous topic :: View next topic  
Author Message
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Fri Dec 02, 2005 11:52 pm    Post subject: Hooks requests Reply with quote

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
View user's profile Send private message Send e-mail
GKusnick
Teh Decal L33T!
Teh Decal L33T!


Joined: 28 Apr 2002
Posts: 1348
Location: Seattle

PostPosted: Sat Dec 03, 2005 4:10 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Zegeger



Joined: 25 Apr 2002
Posts: 34

PostPosted: Sat Dec 03, 2005 4:43 pm    Post subject: Reply with quote

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
View user's profile Send private message
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Sat Dec 03, 2005 5:25 pm    Post subject: Reply with quote

Kill message isn't something hooks should do.
_________________
This is chemical burn.
Back to top
View user's profile Send private message Send e-mail
Gouru
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 507

PostPosted: Sun Dec 04, 2005 12:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Wed Dec 07, 2005 1:22 am    Post subject: Reply with quote

Okay, CVS has VendorBuyListAdd. Tricky memloc.
_________________
This is chemical burn.
Back to top
View user's profile Send private message Send e-mail
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Wed Dec 07, 2005 5:13 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
ElgarL



Joined: 11 May 2002
Posts: 509
Location: England

PostPosted: Wed Dec 07, 2005 6:36 am    Post subject: Reply with quote

Very nice.
Back to top
View user's profile Send private message Visit poster's website
Gol



Joined: 27 Mar 2003
Posts: 144

PostPosted: Wed Dec 07, 2005 9:38 am    Post subject: Reply with quote

Do you still have to open the right menu to add something? That is, select "Spell Components" before adding plats?
Back to top
View user's profile Send private message
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Wed Dec 07, 2005 10:15 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Gol



Joined: 27 Mar 2003
Posts: 144

PostPosted: Wed Dec 07, 2005 10:17 am    Post subject: Reply with quote

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
View user's profile Send private message
Hazridi
Teh Decal L33T!
Teh Decal L33T!


Joined: 19 Apr 2002
Posts: 1204

PostPosted: Wed Dec 07, 2005 10:48 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Gol



Joined: 27 Mar 2003
Posts: 144

PostPosted: Wed Dec 07, 2005 11:04 am    Post subject: Reply with quote

I'm not familiar with TemplateIDs Sad

Care to share?
Back to top
View user's profile Send private message
kgober
Teh Decal L33T!
Teh Decal L33T!


Joined: 26 Apr 2002
Posts: 1045

PostPosted: Wed Dec 07, 2005 11:11 am    Post subject: Reply with quote

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
View user's profile Send private message
kgober
Teh Decal L33T!
Teh Decal L33T!


Joined: 26 Apr 2002
Posts: 1045

PostPosted: Wed Dec 07, 2005 11:14 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Decal Development Forums Forum Index -> Decal Development All times are GMT - 5 Hours
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group