Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Fix] Gender NPC

Initiate Mage
Joined
Jun 9, 2016
Messages
4
Reaction score
5
Add in VersionCommon.h (Neuz and WorldServer):
Code:
#define __FIX_NPC_GENDER

ObjSerializeOpt.cpp

After:
Code:
        else    // NPC
        {
                         ar << (u_char)m_dwHairMesh << m_dwHairColor << (u_char)m_dwHeadMesh;

Add:
Code:
#ifdef __FIX_NPC_GENDER 
            ar << m_bySex;
#endif
After:
Code:
        else    // NPC
        {
            ar >> (u_char&)m_dwHairMesh >> m_dwHairColor >> (u_char&)m_dwHeadMesh;

Add:
Code:
#ifdef __FIX_NPC_GENDER 
            ar >> m_bySex;
#endif
WorldFile.cpp

Replace:
Code:
            if(pObj->GetType() == OT_MOVER && lstrlen(static_cast(pObj)->GetCharacter()->m_szKey))
            {
                LPCHARACTER lpChar = static_cast(pObj)->GetCharacter();
                lpChar->m_dwWorldId = GetID();
                lpChar->m_vPos = pObj->GetPos();
            }

To:
Code:
#ifdef __FIX_NPC_GENDER
            if(pObj->GetType() == OT_MOVER)
            {
                if(lstrlen(static_cast<CMover*>(pObj)->GetCharacter()->m_szKey))
                {
                    LPCHARACTER lpChar = static_cast<CMover*>(pObj)->GetCharacter();
                    lpChar->m_dwWorldId = GetID();
                    lpChar->m_vPos = pObj->GetPos();
                    if(((CMover*)pObj)->m_dwIndex == MI_MALE || ((CMover*)pObj)->m_dwIndex == MI_FEMALE)
                    {
                        ((CMover*)pObj)->m_bySex = ((CMover*)pObj)->m_dwIndex - MI_MALE;
                        lpChar->m_dwMoverIdx = ((CMover*)pObj)->m_dwIndex;
                    }
                }
                else
                {
                    if(pObj->m_dwIndex == MI_MALE || pObj->m_dwIndex == MI_FEMALE)
                    {
                        if(((CMover*)pObj)->m_dwIndex == MI_MALE || ((CMover*)pObj)->m_dwIndex == MI_FEMALE)
                            ((CMover*)pObj)->m_bySex = ((CMover*)pObj)->m_dwIndex - MI_MALE;
                    }
                }
            }
#else
            if(pObj->GetType() == OT_MOVER && lstrlen(static_cast<CMover*>(pObj)->GetCharacter()->m_szKey))
            {
                LPCHARACTER lpChar = static_cast<CMover*>(pObj)->GetCharacter();
                lpChar->m_dwWorldId = GetID();
                lpChar->m_vPos = pObj->GetPos();
            }
#endif
 
Last edited:
Back
Top