// 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++; } } }
// 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"); }
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); }
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 ); } } } } }