修正三倍射程下拋射物射短打不到目標的問題#6
Closed
nojackno2-ctrl wants to merge 1 commit into
Closed
Conversation
開啟 RangedRange3x 後弓箭等拋射物「根本射不到」站著不動的敵人。 根因為彈道幾何:水平抵達時間為與距離無關的常數 4/ISF(約 2.67 秒), 垂直飛行落地時間為 2×emit/ysub(弓箭約 2.47 秒),因此每箭固定落在 目標距離的約 92.5%,形成「射短≈7.5%×距離」的系統性偏差。原版射程下 7.5% 尚在傷害半徑內,三倍射程時射短距離同步三倍、遠超傷害半徑。 依使用者要求不更動傷害半徑(w*_drad),改以提高拋射初速解決: RangedRange3x 啟用時 EparaPatcher 將 cl_epara.ini [ProjectileInitSpeedFactor] 乘以 InitSpeedReachMultiplier=1.08 (1.5→1.62),使 4/ISF 對齊弓箭飛行時間、射短比例趨近 0,拋射物 即可覆蓋放大後的射程(並縮短飛行時間降低移動目標閃避)。偵測不受影響 (RangedRange3x 由 objdef 射程欄位回讀,不讀 epara)。1.08 屬靜態逆向 推導,正式倍率仍待實機校準。新增 round-trip 測試並更新既有 epara 測試。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Brrn8kwp6d2HX3nZzBhGAc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
問題
使用者回報:開啟
RangedRange3x(三倍射程)後,弓箭等拋射物「根本射不到」連站著不動、原版可以直接命中的敵人。這與先前修過的視野/鎖定問題(AI_HANDOFF 已記錄)是不同的第二個問題。根因(彈道幾何)
依
docs/reverse-engineering/projectile-ballistics.md的靜態逆向模型:4/ISF(原版 ISF 1.5 → 約 2.67 秒)。2×emit/ysub(弓箭約 2.47 秒),同樣與距離無關。T_fall/T_arrival ≈ 92.5%,形成「射短 ≈ 7.5% × 距離」的系統性偏差。原版射程下 7.5% 的射短尚在傷害半徑(弓箭
w_drad= 45)之內,敵人被打中;三倍射程時射短距離同步變三倍、遠超傷害半徑,箭落在敵人前方 → 「根本射不到」。修法(依使用者要求,不更動傷害半徑)
RangedRange3x啟用時,EparaPatcher將cl_epara.ini的[ProjectileInitSpeedFactor]乘以InitSpeedReachMultiplier= 1.08(1.5 → 1.62),使4/ISF下降對齊弓箭飛行時間,射短比例趨近 0,拋射物即可覆蓋放大後的射程(並縮短飛行時間、降低移動目標閃避)。EparaPatcher.GetPatchedBytes新增rangedRange3x參數,重構為可獨立套用 variance / init-speed 兩個區段。PatchEngine傳入options.RangedRange3x。RangedRange3x由 objdef 射程欄位回讀,不讀 epara(與既有 variance 補丁一致)。測試
Epara_range3x_raises_init_speed_so_projectiles_reach_extended_rangeround-trip 測試。Epara_accuracy_patch_...測試簽章(未開三倍射程時 ISF 維持 1.5)。待辦 / 注意
1.08屬靜態逆向推導(與ArcEmitMultiplier同性質),正式倍率仍待實機校準——三倍射程的命中窗口很窄(弓箭約 ISF 1.62 ± 0.05)。此常數集中於EparaPatcher.InitSpeedReachMultiplier,易於調整。🤖 Generated with Claude Code
Generated by Claude Code