วิธีแก้ไขข้อผิดพลาดของคาถา Evoker ใน Minecraft ในโลกที่ดัดแปลงแล้ว
หาก Evoker หยุดเรียก Vexes หรือสร้างเขี้ยวในโลกที่ใช้ Mod ต่างๆ ให้ตรวจสอบก่อนว่าปัญหานี้เกิดขึ้นในโลกทดสอบแบบ Vanilla ที่ไม่มี Mod หรือไม่ หากเกิดขึ้นเฉพาะกับ Modpack เท่านั้น ให้ตรวจสอบว่า Minecraft, ตัวโหลด Mod, Mod แต่ละตัว และส่วนประกอบที่เกี่ยวข้องนั้นใช้เวอร์ชันที่เข้ากันได้ จากนั้นตรวจสอบlatest.logและปิดใช้งาน Mod หรือ Datapack ที่สงสัยในโลกจำลองจนกว่าคุณจะสามารถจำลองปัญหาได้
วลี“Coding Evoker Minecraft Error: Spell Struggles”ไม่ใช่ชื่อข้อผิดพลาดของ Minecraft ที่มีการบันทึกไว้อย่างเป็นทางการ และผมไม่สามารถยืนยันได้จากเอกสารของ Mojang หรือเอกสารของโปรแกรมโหลดเกม Evoker เป็น Illager ในเกมเวอร์ชั่นดั้งเดิมที่สามารถเรียก Vexes และโจมตีด้วยเขี้ยวได้ แต่หากเกิดข้อผิดพลาดในโลกที่ใช้ Mod จะต้องวิเคราะห์จากระบบและการบันทึกเฉพาะนั้นๆภาพรวมของ Evoker จาก Mojang อธิบายถึงการโจมตีเหล่านั้นไว้
มีข้อความหนึ่งในคู่มือฉบับเก่าที่ต้องแก้ไข: บันทึกอย่างเป็นทางการของ Minecraft Java Edition 1.21.1 อธิบายถึงการแก้ไขช่องโหว่ด้านความปลอดภัยและการเพิ่มการรองรับภาษา ไม่ใช่การเปลี่ยนแปลงการค้นหาเส้นทางของ Evoker บันทึกการเผยแพร่ดังกล่าวไม่สนับสนุนข้อกล่าวอ้างก่อนหน้านี้ที่ว่า 1.21.1 เป็นสาเหตุของปัญหาเวทมนตร์ โปรดดูบันทึก1.21.1 ของ Mojang
ก่อนที่คุณจะเปลี่ยนแปลงอะไรก็ตาม
คู่มือนี้เน้นที่Minecraft Java Editionเนื่องจากม็อด Fabric, Forge และ NeoForge ทำงานบน Java Edition หากคุณเล่น Bedrock Edition ให้ข้ามขั้นตอนการติดตั้งม็อดสำหรับ Java และตรวจสอบส่วนเสริมหรือแพ็กพฤติกรรมโดยใช้เอกสารประกอบสำหรับแพ็กนั้นๆ
ก่อนเริ่มแก้ไขปัญหา ให้คัดลอกโลกและอินสแตนซ์ที่แก้ไขแล้วทั้งหมด เก็บสำเนาไว้แยกต่างหากจากไฟล์บันทึกหลัก และจดบันทึกเวอร์ชัน Minecraft, ตัวโหลดและเวอร์ชันของตัวโหลด, รายชื่อม็อด และดาต้าแพ็คที่เปิดใช้งาน หลีกเลี่ยงการลบโฟลเดอร์ที่คาดเดาหรือแก้ไขข้อมูลเอนทิตีตามคำสั่งที่ไม่ได้รับการตรวจสอบ การสำรองข้อมูลจะช่วยให้คุณทดสอบการเปลี่ยนแปลงได้โดยไม่ต้องเสี่ยงกับโลกหลักของคุณ
ภาพประกอบทั่วไปของโปรแกรมจัดการไฟล์ที่แสดงวิธีการคัดลอกไฟล์บันทึกเกมก่อนที่จะทำการเปลี่ยนแปลงการตั้งค่าม็อด
วิธีแก้ไขปัญหาเวทมนตร์ Evoker ใน Minecraft ทีละขั้นตอน
1. จับคู่ Minecraft, ตัวโหลด และม็อดทั้งหมด
ตรวจสอบเวอร์ชันที่แสดงโดยโปรไฟล์ตัวเรียกใช้งานและเปรียบเทียบกับเวอร์ชันที่แต่ละม็อดต้องการ ยืนยันว่าม็อดที่ติดตั้งทั้งหมดสร้างขึ้นสำหรับ Minecraft เวอร์ชันเดียวกันและตัวโหลดเดียวกัน อย่ารวมม็อด Fabric กับโปรไฟล์ Forge หรือ NeoForge เว้นแต่ว่าม็อดนั้นจะระบุความเข้ากันได้ไว้อย่างชัดเจน ติดตั้งส่วนประกอบที่จำเป็น เช่น Fabric API เมื่อผู้เขียนม็อดระบุไว้
การอัปเดตทุกอย่างเป็นเวอร์ชันล่าสุดพร้อมกันอาจทำให้การวินิจฉัยปัญหาในระบบทำได้ยากขึ้น ควรเปลี่ยนส่วนประกอบทีละส่วนในอินสแตนซ์ที่คัดลอกมาคู่มือการติดตั้งม็อด ของ Fabric แนะนำให้ตรวจสอบความเข้ากันได้ของเวอร์ชัน Minecraft, โหลดเดอร์ และรุ่นโดยเฉพาะ นอกจากนี้ Forge ยังระบุถึงการกำหนดเวอร์ชันที่เชื่อมโยงกับความเข้ากันได้ของ Minecraft และ API ในคู่มือการกำหนดเวอร์ชัน ของตน ด้วย
รายการตรวจสอบความเข้ากันได้แบบย่อ: เวอร์ชันเกม ตัวโหลด และม็อดแต่ละตัวต้องอยู่ในระบบที่รองรับเดียวกัน
2. เปรียบเทียบโลกทดสอบที่สะอาดกับโลกที่ได้รับผลกระทบ
สร้างโปรไฟล์ Minecraft เวอร์ชันปกติที่ไม่มีม็อด จากนั้นสร้างโลกทดสอบชั่วคราว ตรวจสอบให้แน่ใจว่ามอนสเตอร์ที่เป็นศัตรูสามารถโจมตีได้ และ Evoker มีเป้าหมายที่ถูกต้อง หากเปิดใช้งานคำสั่ง ให้เรียกใช้ด้วยคำสั่ง `evoker` /summon minecraft:evoker ~ ~ ~Mojang ระบุ ว่า `evoker` /summonเป็นคำสั่งสำหรับสร้างเอนทิตี้ แต่ไม่ได้หมายความว่าการโจมตีจะทำงานได้เสมอไป อนุญาตคำสั่งในโลกทดสอบ หรือใช้สิทธิ์เซิร์ฟเวอร์ที่จำเป็น ดูคู่มือคำสั่ง Minecraft อย่างเป็นทางการ
สังเกต Evoker ในการต่อสู้แบบควบคุม และเปรียบเทียบผลลัพธ์กับอินสแตนซ์ที่ใช้ม็อด หากมันทำงานปกติในเวอร์ชันปกติ แต่ไม่ปกติเมื่อใช้ม็อดแพ็ค ให้มุ่งเน้นไปที่ตัวโหลด ม็อดเอนทิตี้หรือ AI การเปลี่ยนแปลงการโจมตี และดาต้าแพ็ค หากปัญหานี้เกิดขึ้นในโลกที่ไม่ได้ดัดแปลงด้วย ให้จดบันทึกเวอร์ชันเกมที่แน่นอนและรายงานผ่านช่องทางการรายงานบั๊กอย่างเป็นทางการของ Minecraft
3. ตรวจสอบบันทึกเหตุการณ์ที่เกิดขึ้นรอบๆ จุดที่การเชื่อมต่อล้มเหลว
ทำซ้ำปัญหาหนึ่งครั้ง ปิดเกม แล้วเปิดไฟล์บันทึกจากเซสชันเดียวกันนั้น โดยปกติแล้ว ไฟล์บันทึกปัจจุบันจะอยู่.minecraft/logs/latest.logในไดเร็กทอรีของ Windows, macOS หรือ Linux ผ่านตัวเปิดเกมอย่างเป็นทางการ ส่วนรายงานข้อผิดพลาดจะถูกจัดเก็บแยกต่างหาก ตัวcrash-reportsเปิดเกมจากผู้พัฒนาภายนอกอาจใช้ไดเร็กทอรีเกมที่แตกต่างกัน เอกสารของ Fabric จะอธิบายว่าควรค้นหาไฟล์บันทึก ได้ที่ใด และวิธีอ่านรายงานข้อผิดพลาด
ค้นหาข้อผิดพลาด รหัสโมด ตัวจัดการมิกซ์อิน หรือชื่อคลาสในสแต็กเทรซในช่วงเวลาใกล้เคียงกับที่ Evoker หยุดทำงาน รายงานข้อผิดพลาดสามารถระบุเส้นทางการทำงานของโค้ดที่เกี่ยวข้องได้ แต่โมดที่กล่าวถึงเป็นอันดับแรกไม่ได้หมายความว่าจะเป็นสาเหตุเดียวเสมอไป โมดสองตัวอาจขัดแย้งกันได้ อย่าพึ่งพาข้อความที่สร้างขึ้นเองEvokerSpellFailedExceptionหรือคิดว่าทุกการติดตั้งจะแสดงข้อความ "การร่ายเวทมนตร์ล้มเหลว" เหมือนกัน ข้อความจริงและสแต็กเทรซมีความสำคัญ
ภาพประกอบโปรแกรมดูบันทึกข้อมูลทั่วไปที่แสดงวิธีการโฟกัสไปที่บล็อกข้อผิดพลาดในช่วงเวลาที่เกิดปัญหาของ Evoker
4. แยกม็อดและดาต้าแพ็คอย่างปลอดภัย
ทดสอบเฉพาะในอินสแตนซ์ที่คัดลอกมาเท่านั้น ย้ายม็อดที่เกี่ยวข้องกับเอนทิตี้ AI การโจมตี หรือความเข้ากันได้ที่ต้องสงสัยออกจากโปรไฟล์ทดสอบนั้นชั่วคราว จากนั้นลองทำซ้ำการเผชิญหน้าแบบเดิม หากปัญหาหายไป ให้เพิ่มม็อดที่ลบออกกลับเข้าไปทีละน้อยจนกว่าปัญหาจะกลับมา วิธีนี้จะช่วยจำกัดขอบเขตความขัดแย้งให้แคบลงเหลือเพียงม็อดหรือชุดม็อดที่เฉพาะเจาะจง ใช้การทดสอบแบบควบคุมเดียวกันนี้กับดาต้าแพ็คที่เปลี่ยนแปลงการโจมตี มอนสเตอร์ หรือพฤติกรรมของเอนทิตี้
จดบันทึกย่อๆ เกี่ยวกับการเปลี่ยนแปลงและผลลัพธ์แต่ละครั้ง อย่าลบม็อดออกจากสำเนาเดียวของโลกที่ใช้งานมานาน: ม็อดอาจเพิ่มบล็อก ไอเท็ม หรือเอนทิตี้ที่ลงทะเบียนไว้ ดังนั้นการโหลดเซฟที่ไม่มีม็อดอาจเปลี่ยนแปลงหรือลบข้อมูลโลกได้ หลังจากระบุสาเหตุที่เป็นไปได้แล้ว ให้ตรวจสอบหน้าของผู้สร้างม็อดหรือตัวติดตามปัญหาเพื่อหาเวอร์ชันที่เข้ากันได้หรือความขัดแย้งที่ทราบแล้ว แชร์เวอร์ชันที่แน่นอนและส่วนของบันทึกที่เกี่ยวข้องเมื่อขอความช่วยเหลือ
ภาพประกอบการตั้งค่าการทดสอบทั่วไป: แยกกลุ่มม็อดและใช้โลกที่ว่างเปล่าเพื่อจำกัดสาเหตุของปัญหาให้แคบลง
สำหรับนักพัฒนา Mod: โปรดทดสอบซ้ำก่อนทำการแก้ไข
หากคุณดูแลรักษา mod นี้ โปรดจำลองพฤติกรรมดังกล่าวด้วย Minecraft เวอร์ชันเดียวกัน, loader และชุด dependency เดียวกัน ก่อนที่จะแก้ไขโค้ด Evoker เปรียบเทียบชุด mod ขั้นต่ำกับ pack ที่ได้รับผลกระทบ และตรวจสอบ stack trace รอบๆ entity หรือพฤติกรรม AI ที่ล้มเหลว ตรวจสอบให้แน่ใจว่าโค้ดกำหนดเป้าหมายไปยัง mapping และ API loader ที่ถูกต้องสำหรับเวอร์ชันเกมนั้น คำแนะนำเก่าที่ให้เขียนทับเมธอดที่มีชื่อนั้นEvoker.castSpellไม่ใช่วิธีแก้ปัญหาแบบครอบคลุม: ชื่อเมธอดและ API จะแตกต่างกันไปตามเวอร์ชันและชุด mapping และการล้างหน่วยความจำที่ไม่เกี่ยวข้องอาจสร้างปัญหาพฤติกรรมใหม่ได้
สร้างกรณีทดสอบขนาดเล็กที่ระบุเวอร์ชัน ขั้นตอน ผลลัพธ์ที่คาดหวัง และผลลัพธ์ที่สังเกตได้อย่างชัดเจน หากมีเพียงม็อดเดียวที่ทำให้เกิดปัญหา ให้รายงานไปยังผู้สร้างม็อดนั้นพร้อมกับบันทึกและตัวอย่างการจำลองปัญหาแบบง่าย ๆ หากเวอร์ชันดั้งเดิมก็ทำให้เกิดปัญหาเช่นกัน ให้ส่งรายงานไปยัง Mojang พร้อมกับเวอร์ชันเกมและขั้นตอน
การแก้ไขที่ควรหลีกเลี่ยง
- อย่าลบ
.minecraft/config/evoker_modsโฟลเดอร์ที่สันนิษฐานว่าเป็นโฟลเดอร์นั้น เว้นแต่เอกสารประกอบของม็อดนั้นจะระบุชื่อโฟลเดอร์และอธิบายถึงผลกระทบที่เกิดขึ้น
- อย่าใช้
/data modifyคำสั่งกว้างๆ กับสมองของ Evoker จากคู่มือที่ไม่ได้รับการตรวจสอบ คำสั่งนั้นอาจใช้ไม่ได้กับเวอร์ชันนั้น หรืออาจทำให้พฤติกรรมของเอนทิตี้เสียหายได้
- อย่าติดตั้ง API เพิ่มเติม เช่น Architectury หรือ Cloth Config เว้นแต่ว่าม็อดนั้นๆ ต้องการใช้ API เหล่านั้นเป็นส่วนประกอบที่จำเป็นสำหรับบางม็อด ไม่ใช่ตัวแก้ไขทั่วไปสำหรับพฤติกรรมของเวทมนตร์
- อย่ารีเซ็ตโลกหรือลบ Evoker ด้วยโปรแกรมแก้ไขเป็นอันดับแรก ให้ทดสอบในสำเนาและระบุสาเหตุก่อนที่จะพยายามซ่อมแซมใดๆ ที่อาจก่อให้เกิดความเสียหาย
สิ่งที่ควรระบุเมื่อขอความช่วยเหลือ
โปรดระบุเวอร์ชันและรุ่นของ Minecraft, ตัวโหลดและเวอร์ชันของตัวโหลด, รายชื่อม็อด, ดาต้าแพ็คที่เปิดใช้งาน, ขั้นตอนที่ทำให้เกิดปัญหา, การทดสอบแบบไม่มีม็อดใช้งานได้หรือไม่ และส่วนที่เกี่ยวข้องlatest.logหรือส่วนรายงานข้อผิดพลาด ลบรายละเอียดส่วนบุคคล เช่น ชื่อผู้ใช้ระบบปฏิบัติการหรือที่อยู่เซิร์ฟเวอร์ส่วนตัวของคุณออกก่อนที่จะแชร์บันทึกต่อสาธารณะ เพื่อให้นักพัฒนาหรือทีมสนับสนุนมีหลักฐานในการตรวจสอบข้อผิดพลาดของคาถา Evoker ใน Minecraft โดย เฉพาะ แทนที่จะคาดเดาว่าเป็นข้อผิดพลาด "การเขียนโค้ด" ทั่วไป