Find: (Gameserver/npc.cpp)
void CNpc::GetNpcInfo(Packet & pkt)
{
pkt << GetProtoID()
<< uint8(isMonster() ? 1 : 2) // Monster = 1, NPC = 2 (need to use a better flag)
<< m_sPid
<< GetType()
<< m_iSellingGroup
<< m_sSize
<< m_iWeapon_1 << m_iWeapon_2
// Monsters require 0 regardless, otherwise they'll act as NPCs.
<< uint8(isMonster() ? 0 : GetNation())
<< GetLevel()
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< uint32(isGateOpen())
<< m_byObjectType
<< uint16(0) << uint16(0) // unknown
<< int16(m_byDirection);
Replace:
void CNpc::GetNpcInfo(Packet & pkt)
{
pkt << GetProtoID()
<< uint16(isMonster() ? 1 : 2) // Monster = 1, NPC = 2 (need to use a better flag)
<< m_sPid
<< GetType()
<< m_iSellingGroup
<< m_sSize
<< m_iWeapon_1 << m_iWeapon_2
// Monsters require 0 regardless, otherwise they'll act as NPCs.
<< uint32(isMonster() ? 0 : GetNation())
<< GetLevel()
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< uint32(isGateOpen())
<< m_byObjectType
<< uint16(0) << uint16(0) // unknown
<< int16(m_byDirection);
Picture:
void CNpc::GetNpcInfo(Packet & pkt)
{
pkt << GetProtoID()
<< uint8(isMonster() ? 1 : 2) // Monster = 1, NPC = 2 (need to use a better flag)
<< m_sPid
<< GetType()
<< m_iSellingGroup
<< m_sSize
<< m_iWeapon_1 << m_iWeapon_2
// Monsters require 0 regardless, otherwise they'll act as NPCs.
<< uint8(isMonster() ? 0 : GetNation())
<< GetLevel()
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< uint32(isGateOpen())
<< m_byObjectType
<< uint16(0) << uint16(0) // unknown
<< int16(m_byDirection);
Replace:
void CNpc::GetNpcInfo(Packet & pkt)
{
pkt << GetProtoID()
<< uint16(isMonster() ? 1 : 2) // Monster = 1, NPC = 2 (need to use a better flag)
<< m_sPid
<< GetType()
<< m_iSellingGroup
<< m_sSize
<< m_iWeapon_1 << m_iWeapon_2
// Monsters require 0 regardless, otherwise they'll act as NPCs.
<< uint32(isMonster() ? 0 : GetNation())
<< GetLevel()
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< uint32(isGateOpen())
<< m_byObjectType
<< uint16(0) << uint16(0) // unknown
<< int16(m_byDirection);
Picture: