예제 #1
0
	static public int DistanceCompare( AS_SC_NPC_APPEAR_2 appear1, AS_SC_NPC_APPEAR_2 appear2)
	{
		AsUserEntity user = AsUserInfo.Instance.GetCurrentUserEntity();
		Debug.Assert( null != user);
		Vector3 pos = user.transform.position;
		
		float dist1 = Mathf.Abs( ( pos - appear1.sCurPosition).magnitude);
		float dist2 = Mathf.Abs( ( pos - appear2.sCurPosition).magnitude);
		
		return dist1.CompareTo( dist2);
	}
예제 #2
0
	public void AddNpcAppear(AS_SC_NPC_APPEAR_2 _npcAppear)
	{
		if (!dicNpcAppear.ContainsKey(_npcAppear.nNpcTableIdx))
			dicNpcAppear.Add(_npcAppear.nNpcTableIdx, _npcAppear);
	}
예제 #3
0
	public NpcAppearData(AS_SC_NPC_APPEAR_2 _data)
	{
		creationType_ = eCreationType.NPC_APPEAR;
		
		//SUPER
		npcIdx_ = _data.nNpcIdx;
		Tbl_Npc_Record record = AsTableManager.Instance.GetTbl_Npc_Record(_data.nNpcTableIdx);
		npcType_ = record.NpcType;
		
		//CUR
		nameHead_ = _data.nNameHead;
		charName_ = record.NpcName;
		tableIdx_ = _data.nNpcTableIdx;
		
		hpMax_ = _data.nHpMax;
		hpCur_ = _data.nHpCur;
		mpMax_ = _data.nMpMax;
		mpCur_ = _data.nMpCur;
		
		atkSpeed_ = _data.nAtkSpeed * 0.001f;

		curPosition_ = _data.sCurPosition;
		curRotate = _data.fCurRotate;
	}
예제 #4
0
	public new void PacketBytesToClass( byte[] data)
	{
		Type infotype = this.GetType();
		FieldInfo headerinfo = null;

		int index = ParsePacketHeader( data);

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

		body = new AS_SC_NPC_APPEAR_2[nNpcCnt];
		for( int i = 0; i < nNpcCnt; i++)
		{
			body[i] = new AS_SC_NPC_APPEAR_2();

			byte[] tmpData = new byte[AS_SC_NPC_APPEAR_2.size];
			Buffer.BlockCopy( data, index, tmpData, 0, tmpData.Length);
			body[i].ByteArrayToClass( tmpData);
			index += AS_SC_NPC_APPEAR_2.size;
		}
	}
예제 #5
0
	public void NpcAppearForEvent(AS_SC_NPC_APPEAR_2 _appear)
	{
		if (true == m_dicNpcEntity_SessionId.ContainsKey(_appear.nNpcIdx))
		{
			Debug.LogError("[AsEntityManager]NpcAppear: already created character. id = " + _appear.nNpcIdx);
			return;
		}

		NpcAppearData creationData = new NpcAppearData(_appear);

		if (creationData.npcType_ == eNPCType.NPC)
			AsEntityManager.Instance.CreateNpcEntity( "Npc", creationData);
	}