hi to all fast question, what is wrong in the structure i cant se the pet from other player. Thanks
Код:
writeC(0xFE);
writeH(0x15E);
writeD(_summon.getObjectId());
writeC(_spawnAnimation); // // 0=teleported 1=default 2=summoned
writeH(37); // mask_bits_37
writeB(_masks);
// Block 1
writeC(_initSize);
if (containsMask(NpcInfoType.ATTACKABLE))
{
writeC(_summon.isAutoAttackable(_attacker) ? 0x01 : 0x00);
}
if (containsMask(NpcInfoType.UNKNOWN1))
{
writeD(0x00); // unknown
}
if (containsMask(NpcInfoType.TITLE))
{
writeS(_title);
}
// Block 2
writeH(_blockSize);
if (containsMask(NpcInfoType.ID))
{
writeD(_summon.getTemplate().displayId + 1000000);
}
if (containsMask(NpcInfoType.POSITION))
{
writeD(_summon.getX());
writeD(_summon.getY());
writeD(_summon.getZ());
}
if (containsMask(NpcInfoType.HEADING))
{
writeD(_summon.getHeading());
}
if (containsMask(NpcInfoType.UNKNOWN2))
{
writeD(0x00); // Unknown
}
if (containsMask(NpcInfoType.ATK_CAST_SPEED))
{
writeD(_summon.getPAtkSpd());
writeD(_summon.getMAtkSpd());
}
if (containsMask(NpcInfoType.SPEED_MULTIPLIER))
{
writeF((float) _summon.getMovementSpeedMultiplier());
writeF(_summon.getAttackSpeedMultiplier());
}
if (containsMask(NpcInfoType.EQUIPPED))
{
writeD(0x00);
writeD(0x00); // Armor id?
writeD(0x00);
}
if (containsMask(NpcInfoType.ALIVE))
{
writeC(_summon.isDead() ? 0x00 : 0x01);
}
if (containsMask(NpcInfoType.RUNNING))
{
writeC(_summon.isRunning() ? 0x01 : 0x00);
}
if (containsMask(NpcInfoType.SWIM_OR_FLY))
{
writeC(_summon.isInZone(ZoneType.water) ? 0x01 : _summon.isFlying() ? 0x02 : 0x00);
}
if (containsMask(NpcInfoType.TEAM))
{
writeC(_summon.getTeam().ordinal());
}
if (containsMask(NpcInfoType.ENCHANT))
{
writeD(_summon.getActiveWeaponInstance().getEnchantLevel());
}
if (containsMask(NpcInfoType.FLYING))
{
writeD(_summon.isFlying() ? 0x01 : 00);
}
if (containsMask(NpcInfoType.CLONE))
{
writeD(0x00); // Player ObjectId with Decoy
}
if (containsMask(NpcInfoType.UNKNOWN8))
{
// No visual effect
writeD(0x00); // Unknown
}
if (containsMask(NpcInfoType.DISPLAY_EFFECT))
{
writeD(0x00);
}
if (containsMask(NpcInfoType.TRANSFORMATION))
{
writeD(0x00); // Transformation ID
}
if (containsMask(NpcInfoType.CURRENT_HP))
{
writeD((int) _summon.getCurrentHp());
}
if (containsMask(NpcInfoType.CURRENT_MP))
{
writeD((int) _summon.getCurrentMp());
}
if (containsMask(NpcInfoType.MAX_HP))
{
writeD(_summon.getMaxHp());
}
if (containsMask(NpcInfoType.MAX_MP))
{
writeD(_summon.getMaxMp());
}
if (containsMask(NpcInfoType.UNKNOWN11))
{
writeC(0x00); // 2 - do some animation on spawn
}
if (containsMask(NpcInfoType.UNKNOWN12))
{
writeD(0x00);
writeD(0x00);
}
if (containsMask(NpcInfoType.NAME))
{
writeS(_summon.getName());
}
if (containsMask(NpcInfoType.NAME_NPCSTRINGID))
{
writeD(-1); // NPCStringId for name
}
if (containsMask(NpcInfoType.TITLE_NPCSTRINGID))
{
writeD(-1); // NPCStringId for title
}
if (containsMask(NpcInfoType.PVP_FLAG))
{
writeC(_summon.getPvpFlag()); // PVP flag
}
if (containsMask(NpcInfoType.NAME_COLOR))
{
writeD(0x00); // Name color
}
if (containsMask(NpcInfoType.CLAN))
{
writeD(_clanId);
writeD(_clanCrest);
writeD(_clanLargeCrest);
writeD(_allyId);
writeD(_allyCrest);
}
if (containsMask(NpcInfoType.VISUAL_STATE))
{
writeC(_statusMask);
}
if (_aveList != null)
{
writeH(_aveList.size());
for (int i : _aveList)
{
writeH(i);
}
}
else
{
writeH(0x00);
}
}