public Msg_NpcAttackChar1( AS_SC_NPC_ATTACK_CHAR_1 _info)
	{
		m_MessageType = eMessageType.NPC_ATTACK_CHAR1;

		npcId_ = _info.nNpcIdx;

		sessionId_ = _info.nSessionIdx;
		charUniqKey_ = _info.nCharUniqKey;

		hpCur_ = _info.nHpCur;

		attacker_ = AsEntityManager.Instance.GetNpcEntityBySessionId( npcId_);
		skillLv_ = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record( _info.nMonsterSkillLevelTableIdx);
		skill_ = AsTableManager.Instance.GetTbl_MonsterSkill_Record( skillLv_.Skill_GroupIndex);
		action_ = AsTableManager.Instance.GetTbl_MonsterAction_Record( skillLv_.SkillAction_Index);

		casting_ = _info.bCasting;
		castingMilliSec_ = _info.nCastingMilliSec;
		ready_ = _info.bReady;

		if( true == casting_)
			Debug.Log( "true == casting_");

		foreach( AS_SC_NPC_ATTACK_CHAR_2 attack2 in _info.bodyChar)
		{
			bodyChar_.Add( new Msg_NpcAttackChar2( this, attack2));
		}

		foreach( AS_SC_NPC_ATTACK_CHAR_3 attack3 in _info.bodyNpc)
		{
			bodyNpc_.Add( new Msg_NpcAttackChar3( this, attack3));
		}
	}
	void NpcAttackChar(byte[] _packet)
	{
//		Debug.Log("NpcAttackChar");

//		try{
		AS_SC_NPC_ATTACK_CHAR_1 attack = new AS_SC_NPC_ATTACK_CHAR_1();
		attack.PacketBytesToClass(_packet);
		Msg_NpcAttackChar1 msg = new Msg_NpcAttackChar1(attack);
		AsEntityManager.Instance.DispatchMessageByNpcSessionId(msg.npcId_, msg);
//		}
//		catch
//		{
//			Debug.Log("Error while npc_attack_char packet process.");
//
//			AS_SC_NPC_ATTACK_CHAR_1 attack = new AS_SC_NPC_ATTACK_CHAR_1();
//			attack.PacketBytesToClass(_packet);
//			Msg_NpcAttackChar1 msg = new Msg_NpcAttackChar1(attack);
//			AsEntityManager.Instance.DispatchMessageByNpcSessionId(msg.npcId_, msg);
//		}

//		foreach(AS_SC_NPC_ATTACK_CHAR_2 attack2 in attack.body)
//		{
//			NpcAttackCharMessage msg = new NpcAttackCharMessage(attack2);
//			AsEntityManager.Instance.DispatchMessageByUniqueKey(msg.charUniqKey_, msg);
//		}
	}