Lovely هو حاقن lua الذي يدمج الكود في لعبة LÖVE 2d في وقت التشغيل. على عكس أدوات التصحيح القابلة للتنفيذ، يمكن تثبيت التعديلات وتحديثها وإزالتها مرارًا وتكرارًا دون الحاجة إلى إعادة تثبيت اللعبة جزئيًا أو كليًا. يتم تحقيق ذلك من خلال تحويل واجهة برمجة تطبيقات lua قيد التشغيل ونظام التصحيح سهل الاستخدام (والتوزيع).
قم بتنزيل الإصدار الأخير لنظام التشغيل Windows. سيكون هذا lovely-x86_64-pc-windows-msvc.zip
.
افتح أرشيف .zip، وانسخ version.dll
إلى دليل اللعبة. يمكنك الانتقال إلى دليل اللعبة عن طريق النقر بزر الماوس الأيمن فوق اللعبة في Steam، ثم تمرير مؤشر الماوس فوق "إدارة"، واختيار "تصفح الملفات المحلية".
ضع تعديلًا واحدًا أو أكثر في دليل التعديل (ليس مثل دليل اللعبة). يجب أن يكون هذا %AppData%/Balatro/Mods
(إذا كنت تقوم بتعديل Balatro).
فقط Steam Deck / Proton / Wine قم بتعيين خيارات تشغيل لعبتك في Steam على WINEDLLOVERRIDES="version=n,b" %command%
.
قم بتشغيل اللعبة عبر Steam.
قم بتنزيل أحدث إصدار لنظام التشغيل Mac. إذا كان لديك وحدة المعالجة المركزية من السلسلة M (M1، M2، وما إلى ذلك) فسيكون هذا lovely-aarch64-apple-darwin.tar.gz
. إذا كان لديك وحدة المعالجة المركزية Intel، فسيكون ذلك lovely-x86_64-apple-darwin.tar.gz
افتح أرشيف .zip، وانسخ liblovely.dylib
و run_lovely.sh
إلى دليل اللعبة. يمكنك الانتقال إلى دليل اللعبة عن طريق النقر بزر الماوس الأيمن فوق اللعبة في Steam، ثم تمرير مؤشر الماوس فوق "إدارة"، واختيار "استعراض الملفات المحلية".
ضع تعديلًا واحدًا أو أكثر في دليل Mac mod (ليس مثل دليل اللعبة). يجب أن يكون هذا /Users/$USER/Library/Application Support/Balatro/Mods
حيث $USER
هو اسم المستخدم الخاص بك (إذا كنت تقوم بتعديل Balatro).
إذا لم تتمكن من العثور على هذا المجلد، فحاول الضغط على Shift-Command-.
(فترة) لإظهار الملفات المخفية في Finder.
قم بتشغيل اللعبة إما عن طريق سحب وإسقاط run_lovely.sh
على Terminal.app
في التطبيقات > الأدوات المساعدة ثم الضغط على زر الإدخال، أو عن طريق تنفيذ sh run_lovely.sh
في الوحدة الطرفية داخل دليل اللعبة.
ملاحظة: لا يمكنك تشغيل لعبتك من خلال Steam على جهاز Mac بسبب وجود خطأ داخل عميل Steam. يجب عليك تشغيله باستخدام البرنامج النصي run_lovely.sh
.
هام : يجب تثبيت التعديلات التي تحتوي على ملفات التصحيح الجميلة ( lovely.toml
أو lovely/*.toml
) في المجلد الخاص بها داخل دليل التعديل. لا استثناءات!
لاحظ أن تنسيق التصحيح غير مستقر وعرضة للتغيير حتى يخرج Lovely من التطوير المبكر.
تحدد ملفات التصحيح مكان وكيفية إدخال التعليمات البرمجية أثناء عملية اللعبة. يمكن العثور على مثال جيد (معقد) لهذا في Steamodded repo هنا.
[البيان] الإصدار = "1.0.0" الأولوية = 0# تحديد قاعدة استبدال var. يبحث هذا عن الأسطر التي تحتوي على {{lovely:var_name}} # (var_name من هذا المثال، يمكن أن يكون أي شيء حقًا) ويستبدل كل تطابق بالقيمة # المقدمة.# سيحول هذا المثال print('{{lovely:var_name} }') to print('Hello World!').# # مفيد: عندما تريد تقليل تعقيد الحقن المتكررة، على سبيل المثال. تضمين # أرقام إصدار الإصدار في مواقع متعددة.[vars]var_name = "Hello World!"# أدخل سطرًا واحدًا أو أكثر من التعليمات البرمجية قبل أو بعد أو عند (استبدال) سطر يطابق # النمط المقدم.## مفيد: لـ عندما تحتاج إلى إضافة/تعديل كمية صغيرة من التعليمات البرمجية لإعداد # إجراءات التهيئة، وما إلى ذلك.[[التصحيحات]] [patches.pattern]target = "game.lua"pattern = "self.SPEEDFACTOR = 1"position = "after"payload = '''initSteamodded()print('{{lovely:var_name}}')'''match_indent = truetimes = 1# أدخل سطرًا واحدًا أو أكثر من التعليمات البرمجية قبل أو بعد أو عند أو متشابكًا في مجموعة أو أكثر من مجموعات التقاط Regex.# - أوصيك باستخدام ملعب Regex مثل https://regexr.com لبناء # أنماطك. # - Regex ليس فعالاً. يرجى استخدام تصحيح النمط ما لم يكن ذلك ضروريًا للغاية. # - يحتوي هذا التصحيح على دعم مجموعة الالتقاط. # - لا يقوم هذا التصحيح بقص المسافة البيضاء من كل سطر. خذ ذلك في الاعتبار عند تصميم النمط الخاص بك.## مفيد: عندما لا يكون تصحيح النمط معبرًا بدرجة كافية لوصف كيفية حقن الحمولة النافعة.[patches.regex]target = "tag.lua"pattern = "(? <indent>[t ]*)if (?<cond>_context.type == 'eval' ثم)"position = 'at'line_prepend = '$indent'payload = '''local obj = SMODS.Tags[self.key]local resif obj وobj.apply واكتب (obj.apply) == 'function' ثم res = obj.apply(self, _context)endif res ثم قم بإرجاع reselseif $cond'' times = 1# إلحاق أو إلحاق محتويات ملف واحد أو أكثر بالهدف.## مفيد: عندما تهتم *فقط* بإدخال التعليمات البرمجية الخاصة بك إلى لعبة، لا شيء آخر. # هذا لا يتم إدخاله كوحدة نمطية جديدة.[[تصحيحات]] [patches.copy]target = "main.lua"position = "append"sources = ["core/core.lua"، "core/deck.lua"، "core/joker.lua"، "core/sprite.lua" ""، "debug/debug.lua"، "loader/loader.lua"، ]# قم بإدخال وحدة نمطية جديدة في اللعبة *قبل* تحميل الملف المستهدف.# مفيد: عندما تريد وضع التعليمات البرمجية الخاصة بك في وحدة منفصلة مطلوبة أو إدخال تبعية "عالمية" قبل أن يبدأ تنفيذ كود اللعبة/التعديل .[[بقع]] [patches.module] المصدر = "nativefs.lua" قبل = "main.lua" الاسم = "nativefs"
استخدم تصحيحات pattern
لتضمين التعليمات البرمجية جراحيًا في مواقع محددة داخل الهدف. يدعم *
(يطابق 0 أو أكثر من تكرارات أي حرف) و ?
(يطابق تمامًا تكرارًا واحدًا لأي حرف) أحرف البدل.
استخدم تصحيحات regex
فقط عندما لا يلبي تصحيح النمط احتياجاتك. هذا هو في الأساس تصحيح النمط ولكن مع محرك استعلام regex الداعم ومجموعات الالتقاط وكل شيء.
استخدم تصحيحات copy
عندما تحتاج إلى نسخ كمية كبيرة من التعليمات البرمجية المستقلة عن الموضع إلى الهدف.
استخدم تصحيحات module
لإدخال وحدة lua في وقت تشغيل اللعبة. لاحظ أن هذا يدعم حاليًا وحدات الملفات الفردية فقط، ولكن من المفترض أن يتغير هذا قريبًا.
يتم تحميل ملفات التصحيح من أدلة التعديل داخل مجلد التعديل ( MOD_DIR
). سوف يقوم Lovely بتحميل أي ملفات تصحيح موجودة داخل MOD_DIR/ModName/lovely/
أو تحميل تصحيح واحد من MOD_DIR/ModName/lovely.toml
. إذا تم تحميل تصحيحات متعددة، فسيتم إدخالها في اللعبة بالترتيب الذي تم العثور عليها به.
يتم تجذير المسارات المحددة داخل التصحيح بواسطة دليل التعديل. على سبيل المثال، يتحول core/deck.lua
إلى MOD_DIR/ModName/core/deck.lua
.
يحتوي كل تعريف تصحيح على هدف تصحيح واحد. هذه الأهداف هي المسارات النسبية للملفات المصدر عند تفريغها من اللعبة باستخدام أداة مثل 7zip. على سبيل المثال، يمكن للمرء استهداف ملف عالي المستوى مثل main.lua
، أو ملف موجود في دليل فرعي مثل engine/event.lua
.
مقالب جميلة تم تصحيح ملفات مصدر lua إلى MOD_DIR/lovely/dump
. تتم كتابة السجلات أيضًا على MOD_DIR/lovely/log
.
manifest.version