يحتوي هذا المستودع على قائمة بالمدخلات التي ستتفوق على Pokemon Platinum. باستخدام مجموعة من التقنيات والمحاكاة، يتم ضمان التقدم خلال اللعبة. لا يوجد أي تلاعب في RNG، ولا يلزم إدخال مدخلات مثالية للإطار، ويكون تسلسل المدخلات ثابتًا وغير متغير بغض النظر عما يحدث داخل اللعبة.
يمكنك العثور على رمز المحاكاة هنا
يمكن العثور على المدخلات في دليل commands
. يتوافق كل ملف مع جزء مختلف من اللعبة، ويتدفق كل ملف إلى الآخر من 1 إلى 9. يوجد أيضًا ملف مساعد لتغيير ذاكرة اللعبة للاختبار، وملف لتسجيل المدخلات أثناء اللعب.
يحتوي كل ملف أوامر على قائمة أوامر بالتنسيق [
، حيث القيمة الأولى هي الأمر الذي يجب تنفيذه، والثانية هي عدد الإطارات التي سيتم الاحتفاظ بهذا الأمر لها. في الحالات التي يكون فيها الأمر عبارة عن مجموعة من الضغطات على الأزرار، يشير
إلى عدد التكرارات التي يجب القيام بها لهذا الأمر.
الأوامر الأساسية هي كما يلي:
يأمر | وصف |
---|---|
أ | أ |
ب | ب |
uf | أعلى |
df | تحت |
LF | غادر |
rf | يمين |
شارع | يبدأ |
س | X |
ذ | ي |
ub | أعلى + ب |
ديسيبل | أسفل + ب |
رطل | اليسار + ب |
ر.ب | اليمين + ب |
ث | انتظر |
الأزرار الأخرى، مثل التحديد وL وR، غير مستخدمة.
في ملفات الأوامر، يتم استخدام أوامر إضافية لتمثيل مجموعة من ضغطات الأزرار الأساسية هذه. على سبيل المثال، للضغط على A 10 مرات، يتم استخدام {'press_a', 10}
كاختصار، بدلاً من 10 أوامر متتالية للضغط على الزر A لمدة 60 إطارًا.
يحدد كل ملف أيضًا ما يصل إلى 12 أمرًا مخصصًا للقيام بإجراءات مختلفة مثل التعامل مع بريد الذاكرة أو القيام بإجراءات المعركة القياسية أو التنقل في أقسام اللعبة التي يجب تكرارها.
لاحظ أن الأوامر l
و r
و u
و d
هي اختصارات لاتخاذ خطوة واحدة في الاتجاه، وأن lf
و rf
و uf
و df
هي الأوامر التي تستخدم للضغط على زر الاتجاه لعدد معين من الإطارات.
بدلاً من كتابة الأوامر يدويًا، إذا كنت تريد تعديل التسلسل أو إنشاء تسلسل جديد، يمكنك استخدام ملف recordInputs
بالتزامن مع محاكي bizhawk لتسجيل المدخلات التي تقوم بها ثم إخراجها بتنسيق يمكن استخدامه في البرامج النصية.
لتسجيل مدخلاتك، يجب عليك أولاً مسح مفاتيح التشغيل السريع لوحدة التحكم، أي منع المحاكي من استخدام مدخلاتك كأوامر مباشرة. يمكنك القيام بذلك من خلال Config -> Controllers -> Misc -> Clear
. يمكنك إعادة تحميل مفاتيح التشغيل السريع لاحقًا باستخدام Misc -> Load Defaults
في نفس القائمة.
ثم يجب عليك فتح وحدة تحكم Lua من خلال Tools -> Lua Console -> Script -> Open Script
، حيث يمكنك بعد ذلك فتح البرنامج النصي recordInputs.lua
. بمجرد بدء تشغيل البرنامج النصي، فإنه سيتم تسجيل المدخلات الخاصة بك.
تم إدراج مفاتيح التشغيل السريع للأزرار في ملف recordInputs.lua
، ولكن أهم اثنين هما lshift
، الذي يقوم بإخراج قائمة الأوامر المنسقة عند الانتهاء من التسجيل، و rshift
، الذي يضيف أمر انتظار مكون من 60 إطارًا. لا يسجل مسجل الإدخال وقت الخمول، مما يعني أنه إذا لم تقم بإضافة أوقات الانتظار باستخدام rshift
، فسوف يقوم فقط بتنفيذ الأوامر بسرعة واحدة تلو الأخرى دون أي فواصل.
يؤدي هذا إلى اختلاف قائمة مخرجات المدخلات وما فعلته بالفعل أثناء اللعب. قد يكون من السهل نسيان إضافة أوقات الانتظار، الأمر الذي سيؤدي إلى حدوث مشكلات عند إعادة التشغيل. ولكن كميزة، ليس هناك ضغط لتسجيل المدخلات على جهاز توقيت.
تتطابق المفاتيح الأخرى مع المفاتيح الافتراضية للمحاكي، ومفاتيح الأسهم للحركة، x
، z
، s
، a
لـ A
، B
، X
، Y
، و enter
للبدء.
قد يكون هناك بعض التقلب في التحكم باللمس، وهو إدخال مطلوب في بداية اللعبة. للتقدم، يجب عليك النقر على منتصف الشاشة، وضرب مركز كرة البوكبول. يعد هذا إدخالًا تناظريًا غير قياسي، ويُشار إليه في الكود باسم touch_middle
. وهذا يحدث مرة واحدة فقط.
هناك أيضًا احتمال ألا تأخذ المدخلات في الاعتبار شيئًا لا أعرفه ببساطة، أو لم أفكر في التحقق منه. هذا الخطأ البشري موجود دائمًا، بغض النظر عن عدد المرات التي قمت فيها بفحص التسلسل وإعادة فحصه بحثًا عن المشاكل والأخطاء.
يستخدم بوكيمون مولد الأرقام العشوائية المتطابقة الخطية (LCRNG) لإنتاج معظم أرقامه العشوائية. يعمل هذا عن طريق إنشاء سلسلة من الأرقام التي تبدو عشوائية بدرجة كافية، ثم الانتقال عبر التسلسل واحدًا تلو الآخر لإنتاج أرقام "عشوائية".
تختلف ألعاب البوكيمون من الجيل الرابع عن سابقاتها من حيث أنها لا تتنقل بين الأرقام العشوائية، بل تستخدم رقمًا عشوائيًا فقط عند الحاجة إليه.
على سبيل المثال، في Ruby/Sapphire/Emerald، ستنتقل اللعبة عبر تسلسل الأرقام العشوائية في كل إطار آخر، حتى لو لم يحدث شيء في اللعبة، وستنتج أي رقم موجود حاليًا عندما تطلب اللعبة واحدًا.
في لعبة Diamond/Pearl/Platinum، يظل مولد الأرقام العشوائية ثابتًا حتى تطلب اللعبة قيمة. بمعنى أنك إذا كنت واقفاً في منطقة فارغة في اللعبة، فإن مولد الأرقام العشوائية لن يفعل أي شيء.
إذا قمت بمحاكاة جميع النتائج المحتملة لمولد الأرقام العشوائية لإجراء معين، على سبيل المثال، رمي عملة معدنية، فإن هذه النتيجة في ألعاب الجيل الرابع تكون حتمية (بافتراض أنك في منطقة فارغة أو "هادئة") بغض النظر عن توقيتك.
في ألعاب الجيل الثالث، هذه النتيجة ليست حتمية، بل تعتمد على توقيتك. بمعنى أنه إذا قمت بقلب العملة الآن، فقد يكون لها نتيجة مختلفة عما لو قمت بقلبها بعد ثانيتين.
ولأغراضنا، فإن جودة ألعاب الجيل الرابع تجعلها حتى لو استخدم اللاعب البشري قائمة المدخلات هذه للعب اللعبة، فإنها ستظل تعمل بشكل صحيح، نظرًا لأن اللاعب البشري لن يقوم بالمدخلات في الأوقات المحددة، و إما أن تضغط على الأزرار مبكرًا أو متأخرًا قليلًا. طالما لم يتم الضغط على الأزرار مبكرًا جدًا، يمكنك تأخيرها لفترة غير محددة من الوقت، دون أي تأثير على نتيجة اللعبة (على افتراض أنك قمت بذلك، في النهاية، اضغط على الأزرار).
باستخدام هذا المبدأ، فإن محاكاة جميع البذور المحتملة الأربعة مليارات، أو مواقع البداية، في تسلسل الأرقام العشوائي لبوكيمون بلاتينيوم يسمح لنا بالتنبؤ بما سيحدث في جميع الألعاب الممكنة. على سبيل المثال، فإن رمي العملة المعدنية 100 مرة له عدد محدد من النتائج. ومن خلال التحقق منها جميعًا، يمكننا اكتشاف السيناريو الأسوأ/الأفضل، وهو في هذه الحالة تقسيم بنسبة 80/20.
بالنسبة لتقليب العملة، تشبه هذه العملية إلى حد كبير استخدام الرياضيات لتحديد القيمة المتوقعة باستخدام إحصائيات بسيطة. بالنسبة للأشياء الأكثر تعقيدًا، مثل معارك البوكيمون، يصبح استخدام الرياضيات لتحديد النتيجة أكثر صعوبة. من الأسهل محاكاة جميع الاحتمالات الأربعة مليارات من حساب الاحتمالية المعطاة لفرصة الحرج أو الخطأ أو الضرر أو الذكاء الاصطناعي أو فرص التأثير الثانوي وما إلى ذلك.
إن القيام بذلك يمنحنا نظرة ثاقبة حول الاستراتيجيات التي تفوز في كل مباراة محتملة، ويتيح لي هزيمة المدربين المختلفين بنسبة 100% من اليقين، حتى لو كانت هناك فرصة للفشل أو الخسارة من الناحية الرياضية.
والنتيجة النهائية هي هذا التسلسل من المدخلات، والذي يجب أن يتفوق على كل لعبة من البلاتين من البداية إلى النهاية دون أي فرص للفشل، باستثناء المدخلات الخاطئة أو الأخطاء.