Jump to content

[Trinity] New problem with goblin race (invalid appearance attributes)

By Athris
in Serverside

Recommended Posts

Hello,

i convert my old 3.3.5a trinity core (2014) to a new 3.3.5a core (2016).

I create goblins as custom race, but now if i want to create or login i get the follow message from trinity core:

Quote

Player::Create: Possible hacking attempt: Account %u tried to create a character named '%s' with invalid appearance attributes - refusing to do so

So i try to debug it. I think something with the CharSelection.dbc is wrong, but i dont know why. See attach for my CharSection.dbc

 

Does anybody has an idea?

CharSections.dbc

Link to comment
Share on other sites

I'd personally do what Rangorn suggested as it would be a lot simpler than trying to debug this...

I've not tested but the problem looks to be that one of the records has the 0x4 (SECTION_FLAG_DEATH_KNIGHT) flag set and is being used when the class is not a death knight. I'd suggest stepping through the ValidateAppearance function in player.cpp and seeing at what point it is returning false.

Link to comment
Share on other sites

Thats the problem:

if (CharSectionsEntry const* entry = GetCharSectionEntry(race, SECTION_TYPE_SKIN, gender, 0, skinColor))

GetCharSectionEntry returns NULL:

    std::pair<CharSectionsMap::const_iterator, CharSectionsMap::const_iterator> eqr = sCharSectionMap.equal_range(uint32(genType) | uint32(gender << 8) | uint32(race << 16));
    for (CharSectionsMap::const_iterator itr = eqr.first; itr != eqr.second; ++itr)
    {
        if (itr->second->Type == type && itr->second->Color == color)
            return itr->second;
    }

    return NULL;

The eqr variable contains the wrong values. So the "for loop" exit on the first "run" and returns null. I dont know why...

Link to comment
Share on other sites

×
×
  • Create New...