แม้ว่าฉันจะแสดงความคิดเห็นครั้งแรกซึ่งตั้งคำถามถึงจุดที่ลดระดับประสบการณ์ของผู้ชมของคุณบางส่วนโดยที่ไม่ได้รับความชัดเจน แต่ฉันก็ยังพบว่ามันเป็นคำถามที่น่าสนใจจากมุมมองทางเทคนิค
ฉันเพิ่งมีความคิดนี้: สิ่งที่คนขี้โกงทำคือค้นหาค่าที่เปลี่ยนแปลงและตรึงพวกเขา การค้นหาจะเกิดขึ้นเฉพาะระหว่างการเสียชีวิตหรือเหตุการณ์ที่เปลี่ยนสุขภาพของผู้เล่น ยิ่งไปกว่านั้นสิบแปดมงกุฎสามารถปรับแต่งการค้นหาโดยการกรองสิ่งที่เปลี่ยนแปลงเมื่อเขา "ไม่ตาย"
เกิดอะไรขึ้นถ้าตัวนับ "สุขภาพ" กำลังเปลี่ยนแปลงตลอดเวลา ทำให้เป็นตัวชี้และจัดสรรใหม่ทุกเฟรมหรือทุกเฟรม N หากประสิทธิภาพการทำงานใหญ่เกินไป หรือ XOR ด้วยค่าสุ่มที่เปลี่ยนทุกเฟรม (XORing อีกครั้งกับค่าเดียวกันสำหรับการถอดรหัสก่อนที่จะเข้ารหัสด้วยค่าสุ่มใหม่)
หากคุณมีข้อมูลในเกมอื่น ๆ ก็เปลี่ยนเวลาทั้งหมด (รวมถึงตำแหน่ง x และ y ของตัวละครของผู้เล่นหรือตัวนับเวลา) ซึ่งอาจทำให้ยากต่อการค้นหาว่าข้อมูลใดที่เปลี่ยนแปลงไปนั้นเป็นเรื่องที่ดี และการแช่แข็งสถานะของเกมทั้งหมดเป็นสิ่งที่ไม่ต้องทำสำหรับผู้ชนะ
สำหรับการเข้าใจผิดเพิ่มเติมคุณสามารถเก็บสุขภาพไว้ในตัวแปรเขียนอย่างเดียวซึ่งแปลว่าหม้อน้ำผึ้ง
แก้ไข :
อย่างไรก็ตามผู้โกงอาจลองค้นหาว่าตัวแปรใดบ้างที่เปลี่ยนแปลงตลอดเวลาคือตัวแปรที่จะหยุดการทดลองและข้อผิดพลาด ทางออกที่เป็นไปได้คือการจับคู่ตัวแปรเข้าด้วยกัน
ตัวอย่าง:
แทนที่จะเก็บสุขภาพ (h) และ position (x) คุณเก็บไว้ในสองตัวแปร a และ b ซึ่งคุณสามารถดึงค่าได้ในภายหลัง:
a = x+h; b = x-h
x = (a+b)/2; h = (a-b)/2
ด้วยวิธีนี้หากสิบแปดมงกุฎค้างเพียงหนึ่งในนั้นแล้วย้ายตัวละครตำแหน่งที่ได้รับผลกระทบและขึ้นอยู่กับว่าใครถูกแช่แข็ง, h ไปทางลบ (ตายทันที) คุณสามารถสลับระหว่างสูตรด้านบนและ:
a = x-h; b = x+h
x = (a+b)/2; h = (b-a)/2
ในเฟรมที่ต่อเนื่องกันและคุณรับประกันได้ว่ามากที่สุด 2 เฟรมหลังจากหนึ่งในตัวแปรที่ถูกตรึงไว้อย่างสมบูรณ์จะเปลี่ยนเป็น 0 ทันทีที่ x เปลี่ยน จำไว้ว่าคุณกำลังเก็บ a และ b เท่านั้น รวมสิ่งนี้เข้ากับ XOR อย่างต่อเนื่องตามที่กล่าวไว้ข้างต้น ผลที่ได้คือชุดของตัวแปรที่เปลี่ยนทุกเฟรมเป็นค่าสุ่มที่ดูเหมือนและการแช่แข็งหนึ่งเดียวหรือส่วนย่อยของพวกเขาเพียงสร้างผลข้างเคียงที่ไม่พึงประสงค์ในเกมตายทันทีเป็นหนึ่งในพวกเขา