عن المشروع
Elden Ring Compass هو رفيق ويب للعبة Elden Ring يقرأ ملف الحفظ الخاص بك ويحوله إلى لوحة تحكم للتقدم. يمكنك رفع ملف الحفظ مرة واحدة، أو توجيه الصفحة إليه للاستطلاع المستمر، ويعرض الموقع المقتنيات والزعماء المهزومين والنعم المفتوحة وعلامات الخريطة وبيانات الإكمال الأخرى. يتم التحليل بالكامل في المتصفح: لا يغادر ملف الحفظ جهازك أبدًا ولا يمتلك الموقع أي قدرة على الكتابة إليه، لذا لا يمكن استخدامه لتعديل شخصية.
الميزات الموضحة في ملف README:
- تحليل ملف الحفظ داخل المتصفح دون رفع محتوياته إلى الخادم.
- استطلاع مستمر لملف الحفظ لتحديث العرض أثناء اللعب دون إعادة الرفع.
- حفظ موضع الخريطة واختيار الصفوف ومرشحات الأعمدة محليًا.
- خريطة تفاعلية مبلطة (Leaflet / react-leaflet) مع علامات للمقتنيات والزعماء والنعم.
- جداول بيانات افتراضية لتصفح قوائم المقتنيات والتقدم الكبيرة.
البنية والأدوات:
المشروع هو مستودع أحادي باستخدام Bun وTurborepo. تم بناء تطبيق الويب على TanStack Start وTanStack Router مع React 19، باستخدام Effect و@effect/atom-react لإدارة حالة التطبيق وطبقة بيانات في الذاكرة بدلاً من TanStack Query أو IndexedDB. مكونات الواجهة من shadcn (نسخة Base UI) مع Tailwind CSS v4. تستخدم الجداول TanStack Table وTanStack Virtual. يتولى Vite وNitro التجميع والخادم الإنتاجي، بينما يغطي oxlint/oxfmt وTypeScript 7 (المصحح بواسطة @effect/tsgo لتشخيصات Effect) فحص الأكواد وتنسيقها والتحقق من الأنواع. تستخدم الاختبارات Vitest وPlaywright.
الحزم:
- apps/web — الموقع الإلكتروني.
- packages/data — مصدر البيانات الوحيد في وقت التشغيل: بيانات اللعبة وأيقونات العناصر المدمجة بواسطة المستخرج.
- packages/save-parser (save-parser-ts) — محلل ملفات حفظ Elden Ring بلغة TypeScript خالصة يعمل في المتصفح أو عامل؛ يلاحظ README أن حزمة محرر الحفظ السابقة بلغة Rust/WASM قد أزيلت.
- packages/extractor (er-extractor) — واجهة سطر أوامر في وقت البناء تقرأ نسخة مثبتة من اللعبة وتدمج الأسماء والإحصائيات والعلامات والأيقونات والنعم وسكربتات الأحداث في حزمة البيانات، باستخدام فك ضغط Oodle عبر bun:ffi وفك حزم dvdbnd وتحليل FMG/PARAM/MSB/EMEVD.
- packages/vendored-data — ثوابت هندسية عكسية في وقت البناء فقط لا يمكن اشتقاقها من التثبيت، مثل جداول أعلام الأحداث ومفاتيح AES/RSA ومخططات البارامترات، مقتبسة من مشاريع سابقة مثل ER-Save-Lib وUXM-Selective-Unpack وsoulsmods/Paramdex وsoulstruct.
- packages/config/* — إعدادات TypeScript وoxlint المشتركة.
التطوير:
يتطلب تطبيق الويب Bun فقط؛ كما يتم توفير Nix flake لسلسلة أدوات قابلة للتكرار. إعادة بناء بيانات اللعبة من الصفر تتطلب بالإضافة إلى ذلك نسخة مثبتة من Elden Ring وسلسلة أدوات Rust، لكن حزمة البيانات المجمعة مسبقًا ملتزمة، لذا لا يلزم أي منهما لتشغيل الموقع أو تطويره. الأوامر النموذجية هي bun install وbun run dev وbun run lint وbun run typecheck وbun run test وbun run build. يلاحظ README أيضًا أن المقتطف الافتراضي لخدمة ملف الحفظ يستخدم Node.js، على الرغم من أن أي خادم ملفات HTTP بسيط يعمل، وأن الرفع اليدوي بديل للاستطلاع المستمر.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.