예제 #1
0
        public void InternalUpdate(PlayerEntity player)
        {
            if (!HeldWeaponAgent.IsValid())
            {
                if (HeldSlotType != EWeaponSlotType.None)
                {
                    SetHeldSlotType(EWeaponSlotType.None);
                }
            }

            switch (RelatedServerUpdate.EUpdateCmdType)
            {
            case EWeaponUpdateCmdType.UpdateHoldAppearance:
                logger.Info("WeaponUpdate.UpdateHeldAppearance Come in ");
                RelatedServerUpdate.UpdateCmdType = 0;
                //率先刷新手雷物品
                TryHoldGrenade(true, false);
                RefreshWeaponAppearance(EWeaponSlotType.ThrowingWeapon);
                EWeaponSlotType newSlot = PollGetLastSlotType();
                if (newSlot == HeldSlotType)
                {
                    RefreshWeaponAppearance();
                }
                else
                {
                    if (player.playerInfo.JobAttribute == (int)EJobAttribute.EJob_EveryMan)
                    {
                        TryArmWeaponImmediately(newSlot);
                    }
                }
                break;

            case EWeaponUpdateCmdType.ExchangePrimaryAppearance:
                RelatedServerUpdate.UpdateCmdType = 0;
                RefreshWeaponAppearance(EWeaponSlotType.PrimeWeapon);
                RefreshWeaponAppearance(EWeaponSlotType.SecondaryWeapon);
                break;

            default:
                break;
            }
        }
        public void InternalUpdate()
        {
            GrenadeHandler.Rewind();
            if (!HeldWeaponAgent.IsValid())
            {
                if (HeldSlotType != EWeaponSlotType.None)
                {
                    SetHeldSlotType(EWeaponSlotType.None);
                    logger.InfoFormat("Do internal {0}", HeldSlotType);
                }
            }

            switch ((EWeaponUpdateCmdType)RelatedServerUpdate.UpdateCmdType)
            {
            case EWeaponUpdateCmdType.UpdateHoldAppearance:
                logger.Info("WeaponUpdate.UpdateHeldAppearance Come in ");
                RelatedServerUpdate.UpdateCmdType = 0;
                TryHoldGrenade(true, false);     //率先刷新手雷物品
                RefreshWeaponAppearance(EWeaponSlotType.ThrowingWeapon);
                EWeaponSlotType newSlot = PollGetLastSlotType();
                if (newSlot == HeldSlotType)
                {
                    RefreshWeaponAppearance();
                }
                else
                {
                    if (RelatedGamePlay.JobAttribute == (int)EJobAttribute.EJob_EveryMan)
                    {
                        TryArmWeaponImmediately(newSlot);
                    }
                }

                break;

            case EWeaponUpdateCmdType.ExchangePrimaryAppearance:
                RelatedServerUpdate.UpdateCmdType = 0;
                RefreshWeaponAppearance(EWeaponSlotType.PrimeWeapon);
                RefreshWeaponAppearance(EWeaponSlotType.SecondaryWeapon);
                break;
            }
        }
예제 #3
0
 public void LateUpdate()
 {
     if (!HeldWeaponAgent.IsValid() && HeldSlotType != EWeaponSlotType.None)
     {
         SetHeldSlotTypeProcess(EWeaponSlotType.None);
     }
     if (playerWeaponAgent.WeaponUpdateCache.UpdateHeldAppearance)
     {
         playerWeaponAgent.WeaponUpdateCache.UpdateHeldAppearance = false;
         //率先刷新手雷物品
         TryHoldGrenade(true, false);
         RefreshWeaponAppearance(EWeaponSlotType.ThrowingWeapon);
         EWeaponSlotType newSlot = PollGetLastSlotType();
         if (newSlot == HeldSlotType)
         {
             RefreshWeaponAppearance();
         }
         else
         {
             TryArmWeapon(newSlot);
         }
     }
 }