Thread: [Project Moth]
View Single Post
  #13  
Old 04-20-2025, 02:48 PM
m0th
Fire Beetle
 
Join Date: Apr 2025
Posts: 18
Default

PROGRESS LOG 4/20/2025

Issue hit after resetting the arrays yesterday - we're unable to memorize spells as RuneKnight. It's reading it's level as CastingAnim, not classes17.
This could be because we're not checking for Row 237, which is where classes17 is now.

//spdat.h
LINE 1651 calculates PLAYER_CLASS_COUNT -- we want to reroute how we get the spell levels so it doesn't look at CastingAnim when the class_id hits 17.
Added in an entry at the end of this list to just cover the RUNE KNIGHT specifically. (classes17)

//spdat.cpp
LINE 977 - GetSpellMinimumLevel
Quote:
for (int i = 0; i < Class::PLAYER_CLASS_COUNT; i++) {
if (spell.classes[i] < minimum_level) {
if (i == 17)
{
minimum_level = spell.classes17;
}
else
{
minimum_level = spell.classes[i];
}

}
}
If iterator hits 17, go off classes17.
Else, look at classes1 through classes16

LINE 1007 - GetSpellLevel
Quote:
if (class_id == 17)
{
return spells[spell_id].classes17;
}

else
{
return spells[spell_id].classes[class_id];
}
These two hand in hand should at least point to the classes17 now if the logic hits 17.
We are still hitting CastingAnim for classes17's "required level" for spells - so we inevitably will need to write a hook in for it, probably through EQ_CORE_DLL
Reply With Quote