this line in spell_parser.c sets the level to LVL_IMMORT and the name to !UNUSED! for all spells. Subsequent definitions adjust this for actual set skills and spells.
github.com/tbamud/tbamud/blob/2f12752373.../spell_parser.c#L723
But, somewhere there must be a check missing when listing them back out.
In lists_skills in spec_procs.c (practice is part of the guild_master special procedure), adjust this loop:
github.com/tbamud/tbamud/blob/2f12752373...rc/spec_procs.c#L112
Code:
for (sortpos = 1; sortpos <= MAX_SKILLS; sortpos++) {
i = spell_sort_info[sortpos];
- if (GET_LEVEL(ch) >= spell_info[i].min_level[(int) GET_CLASS(ch)]) {
+ if (GET_LEVEL(ch) >= spell_info[i].min_level[(int) GET_CLASS(ch)] && spell_info[i].name != unused_spellname) {
ret = snprintf(buf2 + len, sizeof(buf2) - len, "%-20s %s\r\n", spell_info[i].name, how_good(GET_SKILL(ch, i)));
if (ret < 0 || len + ret >= sizeof(buf2))
break;
len += ret;
}
}
You may need to add this line below the #imports at the top of the file:
Code:
extern const char *unused_spellname;
The usual disclaimers apply - forum code, etc.