Wait a tick, I missed something:
Now I know why eqemu has it sending WearChange packets when an illusion lands: if it's a
player race illusion, you end up naked without it. However, this is only because it's always sending the texture part of the illusion packet as it appears in the spell (i.e. usually 0) instead of the default of 255/-1, which is the "ignore this field" value for illusions.
Can fix that by changing the part in Mob::SpellEffect that currently looks like this
Code:
// Racial Illusions
else {
SendIllusionPacket
(
spell.base[i],
Mob::GetDefaultGender(spell.base[i], GetGender()),
spell.base2[i]
);
to something more like this:
Code:
// Racial Illusions
else {
int race = spell.base[i];
SendIllusionPacket
(
race,
Mob::GetDefaultGender(race, GetGender()),
(race <= 12 || race == 128) ? 255 : spell.base2[i]
);
then I believe it should all be good.