Показать сообщение отдельно
Непрочитано 31.05.2016, 00:38   #332
Пользователь

По умолчанию Re: Работа над Goddess of Destruction (part 7)

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);
		}
	}
Amadeo вне форума Ответить с цитированием