พื้นที่เก็บข้อมูลนี้มีรายการอินพุตที่จะเอาชนะ 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) เพื่อสร้างตัวเลขสุ่มส่วนใหญ่ วิธีนี้ทำงานโดยการสร้างลำดับตัวเลขที่ปรากฏแบบสุ่มเพียงพอ จากนั้นจึงค่อยๆ ไล่ตามลำดับทีละตัวเลขเพื่อสร้างตัวเลข "สุ่ม"
เกมโปเกมอนรุ่นที่ 4 แตกต่างจากเกมรุ่นก่อนตรงที่ไม่มีการสุ่มตัวเลข แต่จะสุ่มตัวเลขเมื่อจำเป็นเท่านั้น
ตัวอย่างเช่น ใน Ruby/Sapphire/Emerald เกมจะเรียงลำดับตัวเลขสุ่มในทุก ๆ เฟรม แม้ว่าจะไม่มีอะไรเกิดขึ้นในเกมก็ตาม และจะสร้างตัวเลขใดก็ตามที่เป็นอยู่ในปัจจุบันเมื่อเกมถามหา
ในไดมอนด์/เพิร์ล/แพลตตินัม ตัวสร้างตัวเลขสุ่มจะคงที่จนกว่าเกมจะถามค่า หมายความว่าหากคุณยืนอยู่ในพื้นที่ว่างในเกม ระบบสร้างตัวเลขสุ่มจะไม่ทำอะไรเลย
หากคุณจำลองผลลัพธ์ที่เป็นไปได้ทั้งหมดของตัวสร้างตัวเลขสุ่มสำหรับการกระทำที่กำหนด เช่น พลิกเหรียญ ในเกม Gen 4 ผลลัพธ์นี้จะถูกกำหนดไว้ (สมมติว่าคุณอยู่ในพื้นที่ว่างเปล่าหรือ "เงียบ") โดยไม่คำนึงถึงจังหวะเวลาของคุณ
ในเกม Gen 3 ผลลัพธ์นี้ไม่ได้กำหนดไว้ ขึ้นอยู่กับจังหวะเวลาของคุณ หมายความว่าหากคุณพลิกเหรียญตอนนี้ มันอาจมีผลลัพธ์ที่แตกต่างจากการพลิกเหรียญในอีก 2 วินาทีต่อมา
สำหรับวัตถุประสงค์ของเรา คุณภาพของเกม Gen 4 นี้ทำให้แม้ว่าผู้เล่นที่เป็นมนุษย์จะใช้รายการอินพุตนี้เพื่อเล่นเกม มันจะยังคงทำงานได้อย่างถูกต้อง เนื่องจากผู้เล่นที่เป็นมนุษย์จะไม่ป้อนข้อมูลตามเวลาที่แน่นอน และ กดปุ่มเร็วไปหน่อยหรือช้าไปหน่อย ตราบใดที่ไม่กดปุ่มเร็วเกินไป คุณสามารถหน่วงเวลาได้โดยไม่มีกำหนด โดยไม่มีผลกระทบต่อผลลัพธ์ของเกม (สมมติว่าคุณกดปุ่มในที่สุด)
การใช้หลักการนี้ การจำลองเมล็ดพันธุ์ที่เป็นไปได้ทั้งหมด 4 พันล้านเมล็ดหรือตำแหน่งเริ่มต้นบนลำดับหมายเลขสุ่มของ Pokemon Platinum ช่วยให้เราสามารถคาดเดาสิ่งที่จะเกิดขึ้นในเกมที่เป็นไปได้ทั้งหมด ตัวอย่างเช่น การโยนเหรียญ 100 ครั้งจะมีผลลัพธ์เป็นจำนวนที่กำหนด ด้วยการตรวจสอบทั้งหมด เราจะสามารถค้นพบสถานการณ์กรณีที่เลวร้ายที่สุด/ดีที่สุด ซึ่งในกรณีนี้คือการแบ่ง 80/20
สำหรับการพลิกเหรียญ กระบวนการนี้คล้ายกับการใช้คณิตศาสตร์อย่างใกล้ชิดมากเพื่อกำหนดค่าคาดหวังของเราโดยใช้สถิติง่ายๆ สำหรับสิ่งที่ซับซ้อนมากขึ้น เช่น การต่อสู้ของโปเกมอน การใช้คณิตศาสตร์เพื่อตัดสินผลลัพธ์จะยากขึ้นมาก การจำลองความเป็นไปได้ทั้งหมด 4 พันล้านรายการนั้นง่ายกว่าการคำนวณความน่าจะเป็นที่เกิดจากโอกาสคริติคอล พลาด ทอยความเสียหาย AI rng โอกาสเอฟเฟกต์รอง ฯลฯ
การทำเช่นนี้ช่วยให้เราเข้าใจว่ากลยุทธ์ใดที่จะชนะในทุกเกมที่เป็นไปได้ และช่วยให้ฉันเอาชนะผู้ฝึกสอนที่แตกต่างกันได้อย่างแน่นอน 100% แม้ว่าในทางคณิตศาสตร์จะมีโอกาสที่จะล้มเหลวหรือแพ้ก็ตาม
ผลลัพธ์ที่ได้คือลำดับอินพุต ซึ่งควรจะเอาชนะทุกเกมของแพลตตินัมตั้งแต่ต้นจนจบโดยไม่มีโอกาสเกิดข้อผิดพลาด ยกเว้นอินพุตผิดหรือข้อบกพร่อง