Bah i was typeing and talking and left out the function call.
int8 Mob::MaxSkill(int16 skillid, int16 class_, int16 level)
Or if you haven't noticed it yet common/MaxSkill.cpp
Code:
/* TODO:
Load MaxSkillTable function into ram as a really big matrix:
MaxSkillTable[skillid][race][eqclass][level]
in preperation for that, dont put anything that wont work in
that table into MaxSkillTable (ie, AA checks, skill values that
depend on other skill values, etc), put it into MaxSkill instead
*/
int8 MaxSkill(int16 skillid, int16 race, int16 eqclass, int16 level) {
int8 ret = MaxSkillTable(skillid, race, eqclass, level);
return ret;
}
/* SPECIAL VALUES:
level:
0 = "skill level at character create"
TODO: catch levels > 65 (ie, npcs)
race:
NPCs will always have their skills maxed, and often ignore class
restrictions, accomplished by the special values below.
EMU_RACE_NPC
EMU_RACE_PET
EMU_RACE_UNKNOWN
return value:
TODO: Find out the specal values for the client for "your class/race doesnt have this skill" and
"must put one point in at GM", etc
*/
MaxSkillTable[74][17][16][66]
I don't feel like doing the math but i'm pretty sure I don't want to load that (zones*zones_on_server)+World times on any of my servers. I'll hook up a new share in cvs for non win32 people.
Use
if (MaxSkillTableMMF.Open("EQEMuMaxSkillTable", tmpMemSize)) {
Like in EMuShareMem/NPCtypes.cpp line 72
if (NPCTypesMMF.Open("EQEMuNPCTypes", tmpMemSize)) {
Or you might conflict with one of the others we only check the first letter after EQEMu on the unix side because i really don't think we'll ever have that many =)
with the database.LoadMaxSkillTable() in world/net.cpp
If you want to get ambitious include the class_skill table we use for GM trainer windows.