コード例 #1
0
        public void OnBeforeFire(WeaponBaseAgent weaponBaseAgent, WeaponSideCmd cmd)
        {
            var runTimeComponent = weaponBaseAgent.RunTimeComponent;

            if (runTimeComponent.LastAttackTimestamp == 0)
            {
            }
            else
            {
                var config = weaponBaseAgent.PistolAccuracyLogicCfg;
                if (config == null)
                {
                    return;
                }
                runTimeComponent.Accuracy = AccuracyFormula.GetPistolAccuracy(cmd.UserCmd.RenderTime - runTimeComponent.LastAttackTimestamp,
                                                                              config.AccuracyFactor, config.MinAccuracy, config.MaxAccuracy);
            }
        }
コード例 #2
0
        public void OnBeforeFire(WeaponAttackProxy attackProxy, WeaponSideCmd cmd)
        {
            var runTimeComponent = attackProxy.RuntimeComponent;

            if (runTimeComponent.LastAttackTimestamp == 0)
            {
            }
            else
            {
                var config = attackProxy.WeaponConfigAssy.S_PistolAccuracyLogicCfg;
                if (config == null)
                {
                    return;
                }
                runTimeComponent.Accuracy = AccuracyFormula.GetPistolAccuracy(cmd.UserCmd.RenderTime - runTimeComponent.LastAttackTimestamp,
                                                                              config.AccuracyFactor, config.MinAccuracy, config.MaxAccuracy);
            }
        }
コード例 #3
0
        private void UpdateAccurcy(WeaponAttackProxy attackProxy)
        {
            var config = attackProxy.WeaponConfigAssy.S_BaseAccuracyLogicCfg;

            if (config == null)
            {
                return;
            }

            int accuracyDivisor = config.AccuracyDivisor; //除数因子

            if (accuracyDivisor != -1)
            {
                attackProxy.RuntimeComponent.Accuracy = AccuracyFormula.GetCommonAccuracy(config.MaxInaccuracy, attackProxy.RuntimeComponent.ContinuesShootCount,
                                                                                          config.AccuracyDivisor, config.AccuracyOffset);
            }
            else
            {
                attackProxy.RuntimeComponent.Accuracy = 0;
            }
        }
コード例 #4
0
        private void UpdateAccurcy(WeaponBaseAgent weaponBaseAgent)
        {
            var config = weaponBaseAgent.BaseAccuracyLogicCfg;

            if (config == null)
            {
                return;
            }
            var runTimeComponent = weaponBaseAgent.RunTimeComponent;

            int accuracyDivisor = config.AccuracyDivisor; //除数因子

            if (accuracyDivisor != -1)
            {
                runTimeComponent.Accuracy = AccuracyFormula.GetCommonAccuracy(config.MaxInaccuracy, runTimeComponent.ContinuesShootCount,
                                                                              config.AccuracyDivisor, config.AccuracyOffset);
            }
            else
            {
                runTimeComponent.Accuracy = 0;
            }
        }