public new void PacketBytesToClass( byte[] data)
	{
		Type infotype = this.GetType();
		FieldInfo headerinfo = null;

		int index = ParsePacketHeader( data);

		// nCharCnt
		byte[] charCnt = new byte[ sizeof( Int32)];
		headerinfo = infotype.GetField( "nCharCnt", BINDING_FLAGS_PIG);
		Buffer.BlockCopy( data, index, charCnt, 0, sizeof( Int32));
		headerinfo.SetValue( this, BitConverter.ToInt32( charCnt, 0));
		index += sizeof( Int32);

		body = new AS_SC_OTHER_CHAR_APPEAR_2[nCharCnt];
		for( int i = 0; i < nCharCnt; i++)
		{
			body[i] = new AS_SC_OTHER_CHAR_APPEAR_2();
	
			byte[] tmpData = new byte[AS_SC_OTHER_CHAR_APPEAR_2.size];
			Buffer.BlockCopy( data, index, tmpData, 0, tmpData.Length);
			body[i].ByteArrayToClass( tmpData);
			index += AS_SC_OTHER_CHAR_APPEAR_2.size;
		}
	}
Beispiel #2
0
	public OtherCharacterAppearData(AS_SC_OTHER_CHAR_APPEAR_2 _data)
	{
		creationType_ = eCreationType.OTHER_CHAR_APPEAR;
		
		sessionKey_ = _data.nSessionIdx;
		uniqKey_ = _data.nCharUniqKey;
		charName_ = Encoding.UTF8.GetString(_data.szCharName);
		guildName_ = Encoding.UTF8.GetString( _data.szGuildName);
		
		race_ = _data.eRace;
		class_ = _data.eClass;
#if !NEW_DELEGATE_IMAGE
		userGender = _data.eUserGender;
#endif
		gender_ = _data.eGender;
		#region -GMMark
		isGM = _data.bIsGM;
		#endregion
		hair_ = _data.nHair;
		hairColor_ = _data.nHairColor;
		
		level_ = _data.nLevel;
//		totExp_ = _data.nTotExp;
		
		hpCur_ = _data.fHpCur;
		hpMax_ = _data.fHpMax;
//		mpCur_ = _data.nMpCur;
//		mpMax_ = _data.nMpMax;
		designationID = _data.nSubTitleTableIdx;
		
		moveSpeed_ = _data.nMoveSpeed * 0.01f;
		atkSpeed_ = _data.nAtkSpeed;
		
		curPosition_ = _data.sCurPosition;
		destPosition_ = _data.sDestPosition;
//		attDistance_ = _data.fAttDistance;
		
		surverData = _data;
		
//		shopOpening_ = _data.bIsPrivateShop;
		if(shopOpening_ == true)
			Debug.Log("OtherCharacterAppearData::ctor: Shop opening(id:" + uniqKey_);
		
		hide_ = _data.bHide;
		//nPvpPoint_ = _data.nPvpPoint;
		nYesterdayPvpRank = _data.nYesterdayPvpRank;
		nYesterdayPvpPoint = _data.nYesterdayPvpPoint;
		nYesterdayPvpRankRate = _data.nYesterdayPvpRankRate;
#if !NEW_DELEGATE_IMAGE
		nRankPoint_ = _data.nRankPoint;
#endif
		bSubTitleHide = _data.bSubTitleHide;
		
		criticalChance = _data.bCriticalChance;
		dodgeChance = _data.bDodgeChance;
		nPetTableIdx_ = _data.nPetTableIdx;
		szPetName_ = _data.szPetName;
		sPetItem_ = _data.sPetItem;
//		nPetLevel = _data.nPetLevel;

#if NEW_DELEGATE_IMAGE
		nDelegateImageTableIndex = _data.nDelegateImageTableIndex;
#endif
	}
Beispiel #3
0
	public CharacterSelectEntityData(AS_SC_OTHER_CHAR_APPEAR_2 _data)
	{
		creationType_ = eCreationType.OTHER_CHAR_APPEAR;
		
		sessionKey_ = _data.nSessionIdx;
		uniqKey_ = _data.nCharUniqKey;
		charName_ = Encoding.UTF8.GetString(_data.szCharName);
		
		race_ = _data.eRace;
		class_ = _data.eClass;
//		level_ = _data.nLevel;
//		totExp_ = _data.nTotExp;
		
//		hpCur_ = _data.nHpCur;
//		hpMax_ = _data.nHpMax;
//		mpCur_ = _data.nMpCur;
//		mpMax_ = _data.nMpMax;
		
//		moveSpeed_ = _data.fMoveSpeed;
		
//		curPosition_ = _data.sCurPosition;
//		destPosition_ = _data.sDestPosition;
//		attDistance_ = _data.fAttDistance;
	}
	protected void CreateRenderTarget(eCLASS _eClass, eGENDER _gender, params int[] _partsIDs)
	{
		if (null == objCategoryListItem)
			return;

		if (null != AsHudDlgMgr.Instance.cashShopEntity)
		{
			AsEntityManager.Instance.RemoveEntity(AsHudDlgMgr.Instance.cashShopEntity);
			AsHudDlgMgr.Instance.cashShopEntity = null;
		}

		m_isShowInit = true;
		m_PartsRot = 300f;

		AS_SC_OTHER_CHAR_APPEAR_2 appear = new AS_SC_OTHER_CHAR_APPEAR_2();
		appear.nCharUniqKey = uint.MaxValue;
		appear.eClass = (int)_eClass;
		appear.eGender = _gender;
		appear.eRace = (int)AsEntityManager.Instance.UserEntity.GetProperty<eRACE>(eComponentProperty.RACE);
		Tbl_Class_Record record = AsTableManager.Instance.GetTbl_Class_Record((eRACE)appear.eRace, (eCLASS)appear.eClass);
		if (null != record)
			appear.nMoveSpeed = (int)record.MoveSpeed;

		appear.bCostumeOnOff = PartsRoot.GetCosOnDef();
		appear.sNormalItemVeiw_1 = new sITEMVIEW();
		appear.sNormalItemVeiw_2 = new sITEMVIEW();
		appear.sNormalItemVeiw_3 = new sITEMVIEW();
		appear.sNormalItemVeiw_4 = new sITEMVIEW();
		appear.sNormalItemVeiw_5 = new sITEMVIEW();

		appear.sCosItemView_1 = new sITEMVIEW();
		appear.sCosItemView_2 = new sITEMVIEW();
		appear.sCosItemView_3 = new sITEMVIEW();
		appear.sCosItemView_4 = new sITEMVIEW();
		appear.sCosItemView_5 = new sITEMVIEW();
		appear.sCosItemView_6 = new sITEMVIEW();
		appear.sCosItemView_7 = new sITEMVIEW();
		appear.fHpMax = 100f;
		appear.fHpCur = 100f;

		int count = 0;
		foreach (int id in _partsIDs)
		{
			Item _item = ItemMgr.ItemManagement.GetItem(id);
			if (null == _item)
				continue;

			if (_item.ItemData.GetItemType() == Item.eITEM_TYPE.UseItem &&
				_item.ItemData.GetSubType() == (int)Item.eUSE_ITEM.ConsumeHair &&
				_item.ItemData.needClass == _eClass &&
				count == 0)
			{
				Item hairItem = ItemMgr.ItemManagement.GetItem(_item.ItemData.m_iItem_Rand_ID);

				if (hairItem != null)
				{
					if (hairItem.ItemData.GetItemType() == Item.eITEM_TYPE.EquipItem && hairItem.ItemData.GetSubType() == (int)Item.eEQUIP.Hair)
						appear.nHair = hairItem.ItemID;
				}

				continue;
			}

			count++;

			if (Item.eITEM_TYPE.CosEquipItem != _item.ItemData.GetItemType() && Item.eITEM_TYPE.EquipItem != _item.ItemData.GetItemType())
				continue;

			switch ((Item.eEQUIP)_item.ItemData.GetSubType())
			{
				case Item.eEQUIP.Weapon:
					appear.sNormalItemVeiw_1.nItemTableIdx = PartsRoot.GetDefWeaponItemID(_eClass);
					appear.sCosItemView_1.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Head:
					appear.sCosItemView_2.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Armor:
					appear.sCosItemView_3.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Gloves:
					appear.sCosItemView_4.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Point:
					appear.sCosItemView_5.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Fairy:
					appear.sCosItemView_7.nItemTableIdx = id;
					break;

				case Item.eEQUIP.Wing:
					appear.sCosItemView_6.nItemTableIdx = id;
					break;
			}
		}


		OtherCharacterAppearData creationData = new OtherCharacterAppearData(appear);
		creationData.notRegisterMgr = true;

		AsHudDlgMgr.Instance.cashShopEntity = AsEntityManager.Instance.CreateUserEntity("OtherUser", creationData, true, true, 3f);


		if (null != leftRot)
			leftRot.AddInputDelegate(leftRotDelegate);

		if (null != rightRot)
			rightRot.AddInputDelegate(rightRotDelegate);

		m_isLeftRot = false;
		m_isRightRot = false;
		m_fEffectDlayTime = 0f;
	}