

صوّب مسارك
حول هذا التعديل
صوّب مسارك — كيف تصطاد السمك
v0.1.0 — مبكر. يُحمَّل ويُرقَّع بنظافة؛ مساعدة شعور لم يتم ضبطه بعد ضد اللعب المباشر.
مساعدة تصويب خفيفة للاعبي الفأرة ولوحة المفاتيح، مع عقوبة ضرر تتناسب مع مقدار المساعدة التي تلقيتها فعليًا — بالإضافة إلى محوّل حساسية من ألعاب التصويب الأخرى.
الهدف هو أداة دعم حقيقية لسهولة الوصول يمكن للردهة قبولها، وليس ميزة خفية.
مضيف أم عميل؟
كل شيء يعمل على جهاز العميل بالكامل. لا حاجة لتعاون المضيف، ولا يحتاج أي شخص آخر إلى تثبيت أي شيء.
- الدعم يدور فقط خاصّتك كاميرا. لا شيء فيها متصل بالشبكة.
- عقوبة الضرر حقيقية، وليست شكلية. الضرر في هذه اللعبة عميل-موثوق:عميلك يحسب الضرر ويخبر الخادم بتطبيقه (
PlayerVitals.LocalHit→Server.HitPlayer، ومدير المقذوفاتتختم الضرر على كل قذيفة في آلة الرامي). لذا عندما يخفض هذا التعديل ضررك محليًا، فإنه يكون منخفضة — لا توجد قيمة من جانب الخادم تلغيها.
هذا يقطع في الاتجاهين، ويجدر قوله بوضوح: لأن اللعبة تثق بالعملاء في الضرر، فإن نزاهة هذا التعديل هي خاصية من خصائص التعديل نفسه، وليست شيئًا يفرضه الخادم. العقوبة حقيقية لأي شخص يشغّل هذا الإصدار.
لماذا هذا ليس برنامج تصويب تلقائي
اللعبة تتضمن بالفعل نظام تصويب مساعد خاصًا بها (مساعدة تصويب اللاعب) — لوحدات التحكم، أثناء التصويب. يحافظ هذا التعديل على هذا التصميم ويرفع قيد وحدات التحكم. تحديدًا:
- يخطف نقطة التوسعة الخاصة باللعبة نفسها.
PlayerCamera.ApplyAimAssist()يسأل بالفعلPlayerAimAssist.GetRotationDelta(..)لكل إطار دوران دقيق. هذه الطريقة هي هدف التصحيح، لذا يعمل المساعد حيث تقصد اللعبة ويرث إحساسها. - لا يستهدف اللاعبين أبدًا. فحص الفانيليا يسير
ItemManager.Itemsويأخذ كل عنصرٍمخلوق، لذا فهو يتتبع الأسماك والحيوانات فقط. هذا التعديل يفعل الشيء نفسه، ولا يوجد خيار لاستهداف اللاعبين — عن قصد. هذه الخاصية الوحيدة هي ما يجعل "عدم الغش" أمرًا قابلاً للدفاع عنه، ولهذا السبب يبقى القتال ضد اللاعبين الآخرين غير متأثر. - لا يمكنها الالتقاط. السحب هو اقتراب أُسّي نحو الهدف، مع تثبيت صارم عند الحد الأقصى
MaxRotationSpeed(default 90°/ث). لا يوجد أي تصحيح فوري في أي مكان في الكود. - أنت تفوز دائمًا. السحب يتقلص حسب سرعة دورانك؛ بعد ذلك
ManualOverrideDegPerSec(افتراضي 140°/ث) يتوقف تمامًا. الخطفة السريعة تتفوق دائمًا على المساعدة. - اكتساب ضيّق. افتراضي بزاوية نصف قطرها 12°، يتطلب خط رؤية مباشر، محدود بـ 60 م — أرقام اللعبة نفسها.
- يرفض العمل دون فرض عقوبات. إذا فشل تطبيق تصحيح عقوبة الضرر، يقوم المساعد بتعطيل نفسه بدلًا من أن يصبح ميزة مباشرة.
عقوبة الضرر نسبية، وليست ثابتة. تحتفظ التعديلات بسجل متلاشٍ لعدد درجات التصويب ذلك فعل مقابل كم عدد أنت نعم. تلك النسبة تقود عملية التخفيض:
damage x= 1 - (MaxDamagePenalty * assistShare)
صوّب يدويًا وأصِب الهدف: لا عقوبة. دع المساعدة تتعقب هدفًا لك ثم أطلق النار: العقوبة كاملة. تُطبق عند [مرفقات.الضرر], الخاصية الوحيدة التي تمر عبر كل ضرر طلقة، لذا فإن المقذوفات المباشرة والمتحركة مغطاة. لوحة الإحصائيات في المتجر تقرأ المصفوفة الأساسية بدلاً من الخاصية، لذا تبقى إحصائيات الأسلحة المعروضة صادقة.
محول الحساسية
هذا الجزء دقيق وليس تقديريًا بالعين. من PlayerCamera.MouseInput:
LookInput = new Vector2(-raw.y, raw.x) * _sensitivity * SensMulti * 0.025f; _rot += LookInput;
_rot بالدرجات و خام هل دلتا الفأرة في نظام الإدخال تُقاس بالعدّادات، وبالتالي:
درجة لكل عدد نقرات للفأرة =
الحساسية × 0.025(في إطلاق النار من الورك، حيثSensMulti == 1)
وبالتالي، وباستخدام سم/360 كعملة مشتركة لأنها مستقلة عن مجال الرؤية والدقة:
$$\text{حساسية اللعبة} = \frac{360 \times 2.54}{\text{سم/360} \times \text{DPI} \times 0.025} = \frac{36576}{\text{سم/360} \times \text{DPI}}$$
مثال محلول: CS2 في 1.0 / 800 دPI هو 51.95 سم/360 → هذه اللعبة تتطلب 0.880إعداد اللعبة الافتراضي وهو 0.5 تقريبًا 91 سم/360 عند 800 نقطة في البوصة، وهو بطيء بمعايير الحواسيب.
اضغط F10 للوحة. اختر لعبة، وأدخل حساسيتك وDPI، وستعرض القيمة المطلوب استخدامها بالإضافة إلى سم/360 قبل وبعد. تطبيق يكتبها عبر PlayerCamera.SetSensitivity.
لاحظ أن اللعبة تضبط الحساسية تلقائيًا حسب التقريب — SensMulti = _curFov / _origFov — لذا تبقى حساسية التصويب متناسبة دون أي مساعدة. هذا هو تقريب التكيّف بمسافة 360 درجة، الخيار التنافسي المعتاد.
مجال الرؤية
تُقاس داخل اللعبة، لا تُخمَّن
| نطاق شريط التمرير | 40–140 عمودي = 66–157 أفقي بنسبة 16:9 |
| افتراضي | 74 عمودي = 106.5 أفقي في 16:9 |
تلك هي حدود اللعبة الذاتية، اقرأ من شريط الخيارات الخاص به وقت التشغيل. هذه الإضافة لا توسّعها، وصندوق مجال الرؤية في اللوحة يقيّد ما تكتبه إلى نفس النطاق.
هناك أمران جديران بالمعرفة.
يونيتي مجال الرؤية عمودي، لكن كل ألعاب التصويب تستشهد بالزاوية الأفقية، لذلك لا يمكن مقارنتهما مباشرة أبدًا. تعرض اللوحة كلاهما، باستخدام نسبة أبعاد دقتك الفعلية. وبشكل أنيق، الزاوية الرأسية الافتراضية 74 تعادل 106.5° أفقيًا — ضمن ربع درجة من 106.26° في CS2، لذا مجال الرؤية الافتراضي مكافئ لـ CS بالفعل.
تغيير مجال الرؤية الأساسي يحسّن حساسية التصويب. لأن SensMulti = curFov / baseFov, يضاعف التصويب الحساسية بمقدار AdsFov / baseFovارفع مجال الرؤية الأساسي لديك وسيصبح تصويبك بالمنظار أبطأ تعرض اللوحة المضاعف الدقيق لأي شيء تحمله.
خلل استمرار زاوية الرؤية
قائمة الخيارات تحفظ مجال رؤيتك مع PlayerPrefs.SetInt("FOV"، …) لكنّها تُحمّله بها
PlayerPrefs.GetInt("Fov", 74). مفاتيح PlayerPrefs حساسة لحالة الأحرف، لذا لا يلتقي الاثنان أبدًا وتعود زاوية الرؤية إلى 74 عند كل إطلاق — مما يغيّر حساسية التصويب بصمت بما يصل إلى 1.9× عند أقصى درجات المنزلق.
إصلاح استمرارية مجال الرؤية (مفعل افتراضيًا) يعكس القيمة المحفوظة إلى المفتاح الذي يقرأه اللعبة فعليًا، ويفرضها للجلسة الحالية إذا كانت القائمة قد حمّلت القيمة الخاطئة مسبقًا. تم التحقق في السجل: كلاهما FOV_h193442778 و Fov_h193443802 الآن يحمل نفس القيمة.
ملاحظة: يبدو أن شريط التمرير يستدعي رد الاتصال الخاص بالتغيير عند التمكين، لذا قد يُثبّت أول إصلاح القيمة الافتراضية المسلسلة لشريط التمرير بدلاً من القيمة التي اخترتها. اضبط زاوية الرؤية مرة واحدة من خلال لوحة تطبيق مجال الرؤية زر لتدبيسه عمدًا — وهذا يكتب المفتاحين معًا.
طريقتان للتحويل
اللوحة تمنحك خيارًا واضحًا:
- حافظ على نفس سرعة الدوران (افتراضي) — يقطع المؤشر نفس المسافة للدوران الكامل كما في لعبتك الأخرى. يتجاهل مجال الرؤية، لذا فهو دقيق تمامًا.
- اضبط لاختلاف مجال الرؤية — إذا أظهرت اللعبتان مقدارًا مختلفًا من العالم، فهذا يؤثر على التصويب شعور نفس الشيء على الشاشة بدلاً من الدوران بنفس المعدل. يحتاج إلى مجال رؤية تلك اللعبة.
معظم الناس يريدون الخيار الأول. أما الثاني فهو موجود لأنك إذا انتقلت من لعبة بزاوية 103 درجة إلى لعبة بزاوية 116 درجة، فإن مطابقة سرعة الدوران الخام قد تبدو سريعة جدًا حتى لو كانت الأرقام متطابقة.
يوجد قوة تعديل مجال الرؤية في إعدادات الوضع الثاني، إذا كنت تعلم مسبقًا أنك تريد توجيه التعديل نحو حافة الشاشة بدلًا من المنتصف. إذا كانت هذه الجملة لا تعني لك شيئًا، فلست بحاجة إليها.
الإعدادات المسبقة
كاونتر-سترايك 2 / سي إس: جي أو · فالورانت · إيبيكس ليجندز · أوفرواتش 2 · تيم فورترس 2 · كويك
الألعاب التي تعتمد حساسيتها على شريط مجال الرؤية الخاص بها (Rainbow Six Siege) أو تستخدم مقياس نسبة مئوية غير خطي (Fortnite) تكون مقصودة غائب بدلاً من التقريب. استخدم سم/360 الحقل لأولئك — اقرأ الرقم من أي آلة حاسبة عبر الإنترنت وهو دقيق لكل لعبة صُنعت على الإطلاق.
تحذير
يفترض التحويل أن وحدة دلتا نظام الإدخال الواحدة تساوي نبضة ماوس واحدة — وهذا صحيح عندما تكون سرعة مؤشر ويندوز عند الإعداد الافتراضي 6/11 ويكون "تحسين دقة المؤشر" معطلاً. إذا كنت تستخدم تسارع المؤشر، فلا يمكن لأي محول أن يعطيك إجابة ثابتة.
الإعدادات
BepInEx/config/howtofish.aimurway.cfg. اختصارات لوحة المفاتيح: F9 مساعدة: تشغيل/إيقاف F10 لوحة التحويل.
مساعدة
| الإعدادات | افتراضي | |
|---|---|---|
قوة |
0.55 |
جزء من السحب المطلوب تطبيقه. الرقم 1 يطابق مساعدة وحدة التحكم في اللعبة |
الحدة |
8 |
كم هو شغوف في سد الفجوة. الأعلى يعني ألصق |
MaxRotationSpeed |
٩٠ |
السقف الصلب بالدرجات/الثانية. هذا ما يمنع الالتفاف السريع |
ManualOverrideDegPerSec |
١٤٠ |
أدر هذا بسرعة وتنحَّ المساعدة جانبًا تمامًا |
AcquireAngle |
١٢ |
الزاوية النصفية لالتقاط الهدف. أبقِها صغيرة |
زاوية الانكسار |
٣٥ |
الزاوية التي يُسقَط عندها الهدف المقفَل |
أقصى مسافة |
٦٠ |
أمتار. الإعداد الافتراضي للعبة نفسها |
مساعدة من الورك |
خطأ |
الفانيليا تعتمد فقط على الإعلانات؛ ترك هذا الخيار معطلاً يبقى أقرب إلى القصد الأصلي |
AlsoAssistController |
خطأ |
وبالتالي لا يتكدس أبدًا مع مساعدة وحدة التحكم المدمجة |
الإنصاف
| الإعدادات | افتراضي | |
|---|---|---|
عقوبة الضرر |
صحيح |
تخلَّ عن الضرر مقابل مساعدة التصويب |
عقوبة الحد الأقصى للضرر |
٠٫٣ |
أكبر تخفيض، عند الحصة الكاملة للمساعدة. ٠٫٣ = −30% |
PenaltyWindowSeconds |
1.5 |
مدة استمرار احتساب استخدام المساعدة ضدك |
ضبط ShowDebugText = true تحت [التشخيصات] لمراقبة قفل الهدف، والمشاركة المباشرة للمساعدة، ومضاعف الضرر الحالي — أسرع طريقة للضبط. قوة وشاهد العقوبة وهي تعمل.
الحالة وما تبقّى
تم التحقق: المكوّن الإضافي يُحمَّل، ويرتبط باللعبة، وكلا التصحيحين الخاصين بـ Harmony يُطبَّقان (PlayerAimAssist.GetRotationDelta, ملحقات.الحصول_على_الضرر) دون أخطاء.
لم يُنجز بعد:
- الإحساس غير مضبوط. الافتراضات الافتراضية مبنية على تفكير منطقي، لا على اختبارات لعب فعلية.
قوةوالحدّةهل الاثنان اللذان يجب ضبطهما أولاً، مععرض نص التصحيحقيد التشغيل. - تم اكتشاف القتال المباشر.
اشتباك مباشرله مسار ضرر خاص به، لذا لا تنطبق عليه العقوبة. ليست مشكلة اليوم لأن المساعدة تساعد فقط في التصويب بعيد المدى. - لا إفصاح من جانب اللوبي. لا يوجد إعلان دردشة أو بوابة من جهة المضيف. إذا كنت تلعب مع أشخاص يهتمون، أخبرهم بذلك.
ملاحظات التصميم
على عكس تعديل التصويب، هذا التعديل التغييرات السلوك، لذا فإن ترقيعات Harmony لا مفر منها. تُبقى على اثنين فقط، كلاهما عند نقاط تمديد مستقرة، وما زال لا يوجد مرجع في وقت الترجمة إلى
Assembly-CSharp —يتم حل كل شيء بالاسم وقت التشغيل، لذا فإن تحديث اللعبة يتحول إلى تحذير مسجل وميزة معطلة بدلاً من تعطل.
أفضل التعديلات لـ How to Fish
افتح الإمكانات الكاملة لـ How to Fish مع XMODhub — استكشف أفضل هذه التعديلات اليوم!
هل تحتاج مساعدة في التحميل أو التثبيت؟ انضم إلى مجتمع ديسكورد للحصول على الدعم.