public void SaveCurCharStatChange( body_SC_ATTR_CHANGE _result) { if( AsUserInfo.Instance.SavedCharStat.uniqKey_ == _result.nCharUniqKey) { switch( _result.eChangeType) { case eCHANGE_INFO_TYPE.eCHANGE_INFO_HP_MAX: savedCharStat.sFinalStatus.fHPMax = _result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MP_MAX: savedCharStat.sFinalStatus.fMPMax = _result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_PHYSIC_DMGMIN: savedCharStat.sFinalStatus.nPhysicDmg_Min = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_PHYSIC_DMGMAX: savedCharStat.sFinalStatus.nPhysicDmg_Max = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MAGIC_DMGMIN: savedCharStat.sFinalStatus.nMagicDmg_Min = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MAGIC_DMGMAX: savedCharStat.sFinalStatus.nMagicDmg_Max = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_PHYSIC_DEF: savedCharStat.sFinalStatus.nPhysic_Def = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MAGIC_DEF: savedCharStat.sFinalStatus.nMagic_Def = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_CRITICAL_PROB: savedCharStat.sFinalStatus.nCriticalProb = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_ACCURACY_PROB: savedCharStat.sFinalStatus.nAccuracyProb = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_IFNO_DODGE_PROB: savedCharStat.sFinalStatus.nDodgeProb = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MOVE_SPEED: savedCharStat.sFinalStatus.nMoveSpeed = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_ATTACK_SPEED: savedCharStat.sFinalStatus.nAtkSpeed = (int)_result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_PHYSIC_DMG_DEC: savedCharStat.sFinalStatus.fPhysic_Dmg_Dec = _result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MAGIC_DMG_DEC: savedCharStat.sFinalStatus.fMagic_Dmg_Dec = _result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_HP_REGEN: savedCharStat.sFinalStatus.nHPRegen = _result.nChangeValue; break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_MP_REGEN: savedCharStat.sFinalStatus.nMPRegen = _result.nChangeValue; break; } if( null != AsHudDlgMgr.Instance) { if( true == AsHudDlgMgr.Instance.IsOpenPlayerStatus && false == AsHudDlgMgr.Instance.playerStatusDlg.isOtherUser) AsHudDlgMgr.Instance.playerStatusDlg.ResetPageText(); } } AsUserEntity userEntity = null; switch( _result.eChangeType) { case eCHANGE_INFO_TYPE.eCHANGE_INFO_MOVE_SPEED: userEntity = AsEntityManager.Instance.GetUserEntityByUniqueId( _result.nCharUniqKey); if( null != userEntity) userEntity.HandleMessage( new Msg_MoveSpeedRefresh( _result.nChangeValue / 100)); break; case eCHANGE_INFO_TYPE.eCHANGE_INFO_ATTACK_SPEED: userEntity = AsEntityManager.Instance.GetUserEntityByUniqueId( _result.nCharUniqKey); if( null != userEntity) userEntity.HandleMessage( new Msg_AttackSpeedRefresh( _result.nChangeValue * AsProperty.s_BaseAttackSpeedRatio)); break; } }
private void ReciveAttrChange(byte[] _packet) { Debug.Log("ReciveAttrChange"); body_SC_ATTR_CHANGE data = new body_SC_ATTR_CHANGE(); data.PacketBytesToClass(_packet); // AsUserEntity userEntity = AsEntityManager.Instance.GetUserEntityByUniqueId( data.nCharUniqKey ); // Debug.Log("ReciveAttrChange [ type : " + data.eChangeType + "[ value : " + data.nChangeValue ); AsUserInfo.Instance.SaveCurCharStatChange( data ); if( eCHANGE_INFO_TYPE.eCHANGE_INFO_HP_MAX == data.eChangeType) { AsBaseEntity baseEntity = AsEntityManager.Instance.GetUserEntityByUniqueId( data.nCharUniqKey) as AsBaseEntity; if( null != baseEntity) { baseEntity.SetProperty( eComponentProperty.HP_MAX, data.nChangeValue); } else { baseEntity = AsEntityManager.Instance.GetNpcEntityBySessionId( data.nSessionIdx) as AsBaseEntity; if( null != baseEntity) { baseEntity.SetProperty( eComponentProperty.HP_MAX, data.nChangeValue); } } } }