Цитата:
Сообщение от smeli
может у кого найдётся дамп пакета нпцинфо рабочего
сравню со своим и пойму почему у меня нпц непоказывают
Добавлено через 2 минуты
какая то логика есть, у меня например есть кривой нпцинфо
там силенос делает постоянно такие нецензурные движения
так просто такое неполучить, а с дополнительным пакетом почему бы и нет
|
Не знаю, что Вы имели ввиду под дампом, но явовский пакет выглядит следующим образом:
Свернуть ↑
Код:
@Override
protected void writeImpl()
{
writeC(0x0C);
writeD(_npcObjId);
writeC(_showSpawnAnimation);
writeH(37);
writeB(_masks);
writeC(_initSize);
if(containsMask(NpcInfoType.ATTACKABLE))
writeC(_isAttackable);
if(containsMask(NpcInfoType.UNKNOWN1))
writeD(0x00);
if(containsMask(NpcInfoType.TITLE))
writeS(_title);
writeH(_blockSize);
if(containsMask(NpcInfoType.ID))
writeD(_npcId + 1000000);
if(containsMask(NpcInfoType.POSITION))
{
writeD(_loc.x);
writeD(_loc.y);
writeD(_loc.z + Config.CLIENT_Z_SHIFT);
}
if(containsMask(NpcInfoType.HEADING))
writeD(_loc.h);
if(containsMask(NpcInfoType.UNKNOWN2))
writeD(0x00);
if(containsMask(NpcInfoType.ATK_CAST_SPEED))
{
writeD(_mAtkSpd);
writeD(_pAtkSpd);
}
if(containsMask(NpcInfoType.SPEED_MULTIPLIER))
{
writeFf((float) _move_mul);
writeFf((float) _patk_mul);
}
if(containsMask(NpcInfoType.EQUIPPED))
{
writeD(_rhand);
writeD(0x00);
writeD(_lhand);
}
if(containsMask(NpcInfoType.ALIVE))
writeC(alive);
if(containsMask(NpcInfoType.RUNNING))
writeC(running);
if(containsMask(NpcInfoType.SWIM_OR_FLY))
writeC(inWater ? 1 : isFlying ? 2 : 0);
if(containsMask(NpcInfoType.TEAM))
writeC(team.ordinal());
if(containsMask(NpcInfoType.ENCHANT))
writeD(_enchantEffect);
if(containsMask(NpcInfoType.FLYING))
writeD(isFlying);
if(containsMask(NpcInfoType.CLONE))
writeD(_cloneOwnerId);
if(containsMask(NpcInfoType.UNKNOWN8))
writeD(0x00);
if(containsMask(NpcInfoType.DISPLAY_EFFECT))
writeD(npc_state);
if(containsMask(NpcInfoType.TRANSFORMATION))
writeD(_transformId);
if(containsMask(NpcInfoType.CURRENT_HP))
writeD((int) curHp);
if(containsMask(NpcInfoType.CURRENT_MP))
writeD((int) curMp);
if(containsMask(NpcInfoType.MAX_HP))
writeD((int) _maxHP);
if(containsMask(NpcInfoType.MAX_MP))
writeD((int) _maxMP);
if(containsMask(NpcInfoType.CLONE_TYPE))
writeC(_isClone);
if(containsMask(NpcInfoType.OCTAVIS_PARAM))
{
writeD(0x00);
writeD(0x00);
}
if(containsMask(NpcInfoType.NAME))
writeS(_name);
if(containsMask(NpcInfoType.NAME_NPCSTRINGID))
writeD(_nameNpcString.getId());
if(containsMask(NpcInfoType.TITLE_NPCSTRINGID))
writeD(_titleNpcString.getId());
if(containsMask(NpcInfoType.PVP_FLAG))
writeC(pvp_flag);
if(containsMask(NpcInfoType.NAME_COLOR))
writeD(karma);
if(containsMask(NpcInfoType.CLAN))
{
writeD(clan_id);
writeD(clan_crest_id);
writeD(clan_crest_large);
writeD(ally_id);
writeD(ally_crest_id);
}
if(containsMask(NpcInfoType.VISUAL_STATE))
writeC(_statusMask);
if(containsMask(NpcInfoType.ABNORMALS))
{
writeH(_abnormalEffect.size());
_abnormalEffect.forEach(this::writeH);
}
}
Свернуть ↑Развернуть ↓