Exemplo n.º 1
0
	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;
		}
	}
Exemplo n.º 2
0
	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);
				}
			}
		}
	}