コード例 #1
0
//	public bool instantSkill_;

//	public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info)
//	{
//		Msg_OtherCharAttackNpc1( _info, false);
//	}

//	public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info, bool _instantSkill)
	public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info)
	{
		m_MessageType = eMessageType.CHAR_ATTACK_NPC1;

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

		npcIdx_ = _info.nNpcIdx;
		mainCharUniqKey_ = _info.nMainCharUniqKey;
		targeting_ = _info.sTargeting;
		direction_ = _info.sDirection;

		skillTableIdx_ = _info.nSkillTableIdx;
		skillLevel_ = _info.nSkillLevel;
		actionTableIdx_ = _info.nActionTableIdx;
		chargeStep_ = _info.nChargeStep;
		casting_ = _info.bCasting;
		ready_ = _info.bReady;

		hpCur_ = _info.nHpCur;
		hpHeal_ = _info.nHpHeal;

		if( _info.nChargeStep == 0)
			skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _info.nSkillLevel, _info.nSkillTableIdx);
		else
			skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _info.nSkillLevel, _info.nSkillTableIdx, _info.nChargeStep);

		attacker_ = AsEntityManager.Instance.GetUserEntityByUniqueId( charUniqKey_);
		skill_ = AsTableManager.Instance.GetTbl_Skill_Record( skillLv_.Skill_GroupIndex);
		action_ = AsTableManager.Instance.GetTbl_Action_Record( skillLv_.SkillAction_Index);

		npcCnt_ = _info.nNpcCnt;
		charCnt_ = _info.nCharCnt;

		bool IsMine = AsUserInfo.Instance.GetCurrentUserEntity().UniqueId == charUniqKey_ ? true : false;

		foreach( AS_SC_CHAR_ATTACK_NPC_2 attack2 in _info.bodyNpc)
		{
			npcBody_.Add( new Msg_OtherCharAttackNpc2( this, attack2, charUniqKey_));
		}

		foreach( AS_SC_CHAR_ATTACK_NPC_3 attack3 in _info.bodyChar)
		{
			charBody_.Add( new Msg_OtherCharAttackNpc3( this, attack3));
		}

		if( ready_ == false)
		{
			if( IsMine == true)
				QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL, new AchUseSkill( _info.nSkillTableIdx, 1));

			int count = 0;
			foreach ( AS_SC_CHAR_ATTACK_NPC_2 attack2 in _info.bodyNpc)
			{
				AsNpcEntity monEntity = AsEntityManager.Instance.GetNpcEntityBySessionId( attack2.nNpcIdx);

				if( monEntity != null)
				{
					if( IsMine == true)
					{
						int monId = monEntity.GetProperty<int>( eComponentProperty.MONSTER_ID);
						int monKindID = monEntity.GetProperty<int>( eComponentProperty.MONSTER_KIND_ID);
						QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL_TO_MONSTER, new AchUseSkillToMonster( _info.nSkillTableIdx, monId, 1));
						QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL_TO_MONSTER_KIND, new AchUseSkillToMonsterKind( _info.nSkillTableIdx, monKindID, 1));
					}
				}
				else
					Debug.LogWarning( "MonsterEntity is null " + count);

				count++;
			}
		}
	}
コード例 #2
0
ファイル: AsEntityManager.cs プロジェクト: ftcaicai/ArkClient
//	public void PetDisappear()
//	{
//	}
	
	public void OtherCharAttack( AS_SC_CHAR_ATTACK_NPC_1 _attack)
	{
//		Debug.Log( "OtherCharAttack : " + _attack.nCharUniqKey);

		AsUserEntity userEntity = GetUserEntityByUniqueId( _attack.nCharUniqKey);
		if( userEntity != null)// && userEntity.UniqueId != AsUserInfo.Instance.GetCurrentUserEntity().UniqueId)
		{
			userEntity.HandleMessage( new Msg_OtherCharAttackNpc1( _attack));
		}
		else
			Debug.LogWarning( "AsEntityManager::OtherCharAttack: no id character");
	}
コード例 #3
0
ファイル: AsCommonProcess.cs プロジェクト: ftcaicai/ArkClient
	void CharAttackNpc(byte[] _packet)
	{
		AS_SC_CHAR_ATTACK_NPC_1 attack = new AS_SC_CHAR_ATTACK_NPC_1();
	    attack.PacketBytesToClass(_packet);
		
		if( AsUserInfo.Instance.SavedCharStat.uniqKey_ == attack.nCharUniqKey )
		{
			CoolTimeGroupMgr.Instance.SetSkillUseResult( attack );
		}

		AsEntityManager.Instance.OtherCharAttack(attack);
	}
コード例 #4
0
	public void SetSkillUseResult( AS_SC_CHAR_ATTACK_NPC_1 _charAttackNpc )
	{
		Tbl_Skill_Record skillRecord = AsTableManager.Instance.GetTbl_Skill_Record( _charAttackNpc.nSkillTableIdx );	
		if( null == skillRecord )
		{
			Debug.LogError("CooltimeGroupMgr::SetSkillUseResult()[ null != skillRecord ] id : " + _charAttackNpc.nSkillTableIdx );
			return;
		}
		
		//$yde
		if( false == _charAttackNpc.bReady &&
			(skillRecord.Skill_Type != eSKILL_TYPE.Base && skillRecord.Skill_Type != eSKILL_TYPE.SlotBase))
		{
//			Debug.LogWarning("CooltimeGroupMgr::SetSkillUseResult: [used, received] = [" + AsCommonSender.usedSkillIdx + ", " + skillRecord.Index + "]");
		}
		
		if( false == _charAttackNpc.bCasting &&
			false == _charAttackNpc.bReady &&
			-1 != _charAttackNpc.nChargeStep &&
			(skillRecord.Skill_Type != eSKILL_TYPE.Base && skillRecord.Skill_Type != eSKILL_TYPE.SlotBase))
		{
//			AsCommonSender.usedSkillIdx = -1;
			AsCommonSender.EndSkillUseProcess();
			
			if( RuntimePlatform.OSXEditor == Application.platform || RuntimePlatform.WindowsEditor == Application.platform)
			{
				AsPlayerFsm playerFsm = AsEntityManager.Instance.GetPlayerCharFsm();
				if( null != playerFsm )
				{
					if( false == playerFsm.bUseCoolTime )
					{
						_charAttackNpc.nCoolTime = 1;
					}					
				}		
			}		
			
			if( skillRecord.Skill_Type == eSKILL_TYPE.SlotBase )
			{
				return;
			}
				
			CoolTimeGroup cooltimeGrout = CoolTimeGroupMgr.Instance.GetCoolTimeGroup( _charAttackNpc.nSkillTableIdx, _charAttackNpc.nSkillLevel );
			if( null != cooltimeGrout )
			{
				if(  0  == _charAttackNpc.nChargeStep )
				{
					cooltimeGrout.RemainCooltime( (float)_charAttackNpc.nCoolTime );
					SkillDelegatorCooltime(skillRecord);
				}
				else
				{
					Tbl_SkillLevel_Record skillData = AsTableManager.Instance.GetTbl_SkillLevel_Record
						( _charAttackNpc.nSkillLevel, _charAttackNpc.nSkillTableIdx, _charAttackNpc.nChargeStep );					
										
					if( null != skillData )
					{	
						float fMaxTime = skillData.CoolTime;
						cooltimeGrout.RemainCooltime( (float)_charAttackNpc.nCoolTime, fMaxTime );	
						SkillDelegatorCooltime(skillRecord);
					}
					else
					{
						Debug.LogError("CoolTimeGroupMgr::SetSkillUseResult()[ null == Tbl_SkillLevel_Record ] id " + _charAttackNpc.nSkillTableIdx +
							" level : " + _charAttackNpc.nSkillLevel + " chargeStep : " +  _charAttackNpc.nChargeStep );
					}				
				}
			}
		}
	}