Help - Search - Members - Calendar
Full Version: How exactly does AC Tool id?
AC Tools Everything Macro > General Discussion > C++/Delphi/VB Development
DaMOB
I know in Decal (well I found out today actually but I had my suspicions) you add it to a queue and then you every so often recheck if the object has a true that the id was made.

Since the plugin/companion is not waiting around (else fps would fall to zip) how is it doing it for all the _id variables and keeping in sync with AC Tool itself?

in C++ you basically
CODE

DecalPlugins::IPluginSite *pSite;
m_pSite = pSite;
m_pWorld = m_pSite->GetNetworkFilter("DecalFilters.World");

m_pSite->Hooks->IDQueueAdd(ITEMGUID);

//Now we wait for a TRUE on this next part (well not wait like a while <> but FSM sort of wait)

m_pWorld->GetObject(ITEMGUID)->GetHasIdData();

What intrigues me is how the companion is doing this and AC Tool does not lose sync since the companion cannot wait around but tool can.
Ipa
4.5.x source code is available for you to find out smile.gif

For initiating an ID, I added ExamineItem in the 4.4.16 beta.
Does the same as your C++, just stuffs a GUID in the queue using ACHook.


Populating _id* variables happens continuously in Companion, everytime a ID packet is received.
Grab the Companion source code, file actp1.pas. Find the 00C9 net echo handler, and you'll see what it does. that code block starts like:

CODE
         $00C9:
         begin
           GlobalData^._idguid := 0;
           GlobalData^._idMaterialType := 0;
           GlobalData^._idWorkmanship := 0;
           GlobalData^._idWorkmanshipDiv := 0;



ACTool does lose sync, hence the disclaimer I added about other ID'ing plugins when I posted the beta.
There's a pending feature request to change ACTool so that it discards 00C9's that are for GUID's that weren't ID'ed by the macro, so that _id* don't get polluted with ID's coming from Tank or BS/2



DaMOB
Dang website decided to die as I was typing.

I look at the 4.5.4 source tons and most times it helps me figure something out but this keeping in sync part always threw me. So, you are doing it without using the world filter and in essence using your own raw filter to grab F7B0/00C9. hmmmm.

So, it would be super cool if the plugin could do a check on the object then populate something. All of this id'ing stuff is crazy to me but at least not near as crazy as trying to FSM buff bot routines which I have yet to get to work fully for all 5 states.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.