EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Implementing an Innate Proc AA? (https://www.eqemulator.org/forums/showthread.php?t=42455)

Xanathol 05-17-2019 10:23 PM

Implementing an Innate Proc AA?
 
Hey Folks,

I'm trying to implement an innate proc AA (Warrior agro proc) and now that I've updated to the latest & greatest, I'm trying to figure my way out around the new AA tables and such. Needless to say, what I have thus far isn't exactly working.

Here's what I've got so far.

In aa_ability:
Code:

id name category classes races drakkin_heritage deities status type charges grant_only first_rank_id enabled
30200 Spite -1 1 65535 127 131071 0 3 0 0 30200 1

In aa_ranks:
Code:

id upper_hotkey_sid lower_hotkey_sid title_sid desc_sid cost level_req spell spell_type recast_time expansion prev_id next_id
30200 -1 -1 366527 366527 0 1 -1 0 0 0 -1 -1

In aa_rank_effects:
Code:

rank_id slot effect_id base1 base2
30200 1 85 12266 0

I also have a new spell at ID 12266 and of course new DB_STR entries.

The AA shows up and is purchasable (though I wish it was auto-granted) but it never procs. Never a message or anything in the client (and sadly I don't know wth the logs go to in the code - debugview picked up nothing).

Did I miss something? Is it more a procing issue? And how do I turn on logging? Thanks!


Edit: finally found the new logging system info - that is NICE! No closer to implementing this AA though. :(

Xanathol 05-18-2019 02:26 AM

Been digging around more all night and I don't see where effect ID 85 is ever loaded in bonuses.cpp->Mob->ApplyAABonuses. In testing, it looks like Touch of the Cursed doesn't work either, so it seems the funcitonality is missing?

I added the following and modified the AA info in aa_rank_effects to give Touch of the Cursed a 5% chance to proc (base2) and now it works, though I question whether I am missing something somewhere else, making this unnecessary.

Code:

case SE_WeaponProc:
  for( int i = 0; i < MAX_PROCS; i++ )
  {
        if( PermaProcs[i].spellID == base1 )
        {
            // this is a stupid catch all so higher ranks replace this one; needs improvement
            PermaProcs[i].spellID = SPELL_UNKNOWN;
        }
  }
  this->AddProcToWeapon( base1, true, base2, base1 );

  break;



All times are GMT -4. The time now is 04:11 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.