Cheat Engine مرحله 9 – قلاب کردن کد مشترک
### **مرحله ۹: کد مشترک (Shared code)**
این مرحله توضیح میدهد که چطور باید با کدهایی برخورد کنید که برای اشیاء مختلف از یک نوع استفاده میشوند.
اغلب وقتی مقدار سلامتی (health) یک واحد یا بازیکن خودتان را پیدا میکنید، متوجه میشوید اگر آن کد را حذف یا تغییر دهید، این تغییر روی دشمنان هم اثر میگذارد.
در چنین مواقعی باید راهی پیدا کنید که بتوانید بین آبجکت خودتان و دشمنها تفاوت قائل شوید.
گاهی اوقات این کار بهسادگی بررسی چهار بایت اول (جدول اشارهگر توابع) است که معمولاً به یک موقعیت خاص برای خودِ بازیکن اشاره دارد،
و گاهی هم ممکن است با عدد تیم، یا یک پوینتر به چند پوینتر دیگر تا در نهایت به یک نام بازیکن برسید.
همه این موارد بستگی به پیچیدگی بازی و تا حدی شانس شما دارد!
**سادهترین روش این است که ببینید دستور مورد نظر به چه آدرسهایی مینویسد، بعد با استفاده از قابلیت Dissect Data دو ساختار حافظه (یکی برای واحد/بازیکن خودتان و یکی برای دشمن) را با هم مقایسه کنید.**
اگر بتوانید وجه تمایزی بین این دو پیدا کنید، از آن برای شرط گذاشتن در کد استفاده میکنید.
وقتی فرق خودتان و کامپیوتر را پیدا کردید، میتوانید یک اسکریپت اسمبلی تزریق کنید که آن شرط را بررسی کند و مثلاً اگر شرط برقرار نبود، کد اجرا نشود یا کار دیگری انجام دهد (مثلاً قدرت ضربه یکضربهای!).
یا حتی میتوانید برای ساختن رشتهای از بایتها (Array of Byte) از همین روش استفاده کنید تا همه بازیکنان یا فقط دشمنها را در لیست جستجو پیدا کنید.
در این آموزش، من بهترین بازی جهان را برایتان ساختهام!
در این بازی ۴ بازیکن وجود دارد ــ ۲ بازیکن عضو تیم شما هستند و ۲ بازیکن عضو تیم کامپیوتر.
**وظیفه شما:**
باید کدی که مقدار سلامت را مینویسد پیدا کنید و طوری دستکاری کنید که همیشه شما برنده شوید (بدون اینکه سلامت خود را «فریز» کنید).
برای ادامه، روی “Restart game and autoplay” کلیک کنید تا تست شود که کدتان درست عمل میکند یا نه.
—
**نکته:** Health (سلامت) از نوع Float است.
**نکته ۲:** چند راهحل مختلف ممکن است.