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); } }
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); } }
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; } }
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; } }