میشن سازی

آموزش ساخت میشن Arma 3 به روش TFI.

مقدمه

در این مقاله سعی خواهیم کرد مبانی استفاده از این فریمورک را به شما یاد بدهیم

توجه: پیشنهاد میشود از یک کد ادیتور مانند NotePad++، Atom یا VScode استفاده کنید، برای همه ی اینها پکیچ های SQF هم موجود هست که خیلی کمک میکنند.

توجه: 3den Enhanced و HBQ spawner ماد های خیلی خوبی هستند پیشنهاد میشه از این دو استفاده کنید

1. ایجاد و پیکربندی پوشه میشن

ابتدا، باید پوشه میشن را ایجاد کنید. برای این کار، یک نقشه از ادیتور انتخاب کنید، سپس با فشردن کلیدهای ctrl+s، میشن خود را در مسیر زیر ذخیره کنید: \Users\YOUR_USER\Documents\Arma 3 - Other Profiles\YOUR_PROFILE\mpmissions\.

توجه: برای نامگذاری میشن، توصیه می شود از قرارداد نامگذاری زیر استفاده کنید

[TFI]_MissionMaker_OperationName.terrein

برای مثال

[TFI]_Misfit_CodeRed.altis

پس از ذخیره میشن، آخرین نسخه فریمورک را دانلود کرده و در پوشه میشن استخراج کنید.

https://codeload.github.com/Misfit-Ha/MalFramework-m/zip/refs/heads/master

mission folder

بررسی ساختار پوشه ها

در این بخش، یک نمودار و توضیح مختصری از پوشه هایی که دانلود کردید ارائه می شود:

mission_framework
   ├───config                - حاوی تنظیمات میشن
   │   ├───briefing          - حاوی اطلاعات مربوط به هر جبهه
   │   ├───debriefing        - انواع پایان میشن
   │   ├───gear              - تجهیزات هر طرف
   │   ├───img               - هر تصویری که به میشن اضافه شده است (به طور پیش فرض شامل صفحه بارگذاری است)
   │   ├───intel             - تنظیمات اطلاعات
   │   ├───config.cfg        - فایل تنظیمات فریمورک و ماژول های آن
   │   └───description.hpp   - فایل تنظیمات میشن آرما
   ├───core                  - ماژول ها
   │   └─── ...

تمامی مواردی که باید ویرایش شوند، در پوشه config قرار دارند. اگر نیاز به توضیحات بیشتر در مورد هر یک از ماژول ها داشتید، می توانید فایل README مربوط به آن را در پوشه core مطالعه کنید.

2. تنظیم ماژول های ضروری

حالا که پوشه میشن ایجاد شده است، می توانیم به پیکربندی تنظیمات اولیه میشن بپردازیم.

description.hpp

این فایل شامل تنظیمات کاربردی description.ext می‌باشد که شما با آن آشنایی دارید.

ابتدا، Steam UID خود را جایگزین نمایید. این عمل به فریمورک اجازه می‌دهد تا شما را به عنوان سازنده میشن شناسایی کند و دسترسی به پنل ادمین و ابزارهای دیباگ را برای شما فراهم کند.

مورد بعدی مهم، تنظیم VCOM AI است. اگر تمایل دارید از این ماژول استفاده کنید، باید آن را از حالت کامنت خارج کنید (لطفاً تاثیر این مود بر روی FPS را مد نظر داشته باشید).

توضیحات بیشتر درباره متغیرهای دیگر در اینجا آمده است.

config.cfg

این فایل حاوی تنظیمات فریمورک است و به دو بخش تقسیم شده است: بخش اول شامل تنظیمات ضروری است که باید برای هر میشن تنظیم شود، و بخش دوم شامل ماژول‌های اختیاری است.

ماژول‌های اختیاری و نحوه استفاده از آن‌ها در README توضیح داده شده است، اما ابتدا ما تنظیمات ضروری را انجام می‌دهیم:

  • Debug mode: به صورت پیش‌فرض فعال است. وقتی فعال است، پیام‌هایی با برچسب DEBUG نمایش داده می‌شوند که به فرآیند تست میشن کمک می‌کند. مطمئن شوید که پس از اتمام ساخت، این گزینه را غیرفعال کنید. پیام‌های INFO، WARNING و ERROR حتی اگر حالت دیباگ غیرفعال باشد نیز نمایش داده می‌شوند.
  • TvT: اگر میشن بازیکن در برابر بازیکن است، این گزینه را فعال کنید. برخی از ماژول‌ها با میشن‌های TvT سازگار نیستند. در جلوی هر ماژول با کامنت آمده است که آیا با TvT سازگار است یا خیر.
  • End conditions: پایان‌های مختلف بازی. توضیحات بیشتر در اینجا آمده است.
  • Respawn: شما می‌توانید ریسپان بازیکن‌ها را فعال یا غیرفعال کنید. به صورت پیش‌فرض، بازیکن‌ها به صورت تک‌تک ریسپان می‌شوند، به این معنی که وقتی یک نفر می‌میرد، باید صبر کند تا تایمر به صفر برسد. اما شما می‌توانید با AUTO ریسپان را به صورت Wave فعال کنید، به این صورت که پس از گذشت زمان مشخص، همه بازیکن‌های مرده با هم ریسپان می‌شوند. MANUAL به این معنی است که بازیکن‌های مرده باید صبر کنند تا فرمانده به صورت دستی درخواست تقویت قوا را ارسال کند. همچنین می‌توانید تیکت‌های انفرادی را مشخص کنید که تعداد دفعاتی که می‌توانند بمیرند را محدود می‌کند.
  • View Distance: در اینجا می‌توانید محدودیت دید افقی گلوبال برای بازیکن‌ها و AI‌ها را تعریف کنید. بعداً به شما می‌گوییم که چگونه می‌توانید مسافت دید سفارشی برای بازیکن‌ها را تعیین کنید (معمولاً خلبان‌ها و تک‌تیراندازان نیاز به مسافت دید بیشتری دارند).
  • Time acceleration: سرعت گذر زمان را مشخص می‌کند.
  • ACE spectator: به صورت پیش‌فرض، فریمورک از Ace spectator استفاده می‌کند، اما اگر Vanilla spectator را ترجیح می‌دهید، باید این گزینه و تنظیمات cba_settings.sqf/aceSpectator را غیرفعال کنید.
  • Skills AI: مهارت AI‌ها را مشخص می‌کند (هم آن‌هایی که در ادیتور قرار داده شده‌اند و هم آن‌هایی که بعداً اسپان می‌شوند).

CfgDebriefing.hpp

این فایل در mission_framework\debriefing\ قرار دارد و همه پایان‌های بازی را از اینجا تنظیم می‌کند. به صورت پیش‌فرض به چهار قسمت تقسیم شده است:

| **Section**        | **Description**                                     |
| ------------------ | --------------------------------------------------- |
| Coop endings       | Mission endings in cooperative mission type         |
| TvT endings        | Mission endings in team vs. team mission type       |
| Game master ending | Ending for when the admin ends the mission manually |
| Custom ending(s)   | Custom endings added by the mission maker           |

در قدم بعد، پیشنهاد می‌شود که توضیحات پایان‌هایی که مایلید استفاده کنید را ویرایش کنید

توجه: اسم پایان‌های پیش‌فرض را حذف نکنید، زیرا ممکن است باعث بروز مشکل در عملکرد فریمورک شود.

چند مثال از Endingها:

3. تنظیمات درون ادیتور

بیشتر پیکربندی‌ها از طریق فریمورک انجام می‌شوند، اما برخی از تنظیمات باید حتماً در ادیتور، در قسمت Attributes انجام شوند.

General

ابتدا، Independends Allegiance را بر اساس میشن خود تنظیم کنید.

توجه: اگر بازیکنان GREENFOR هستند، از تنظیمات REDFOR فریمورک استفاده کنید. (Briefing module, Gear script etc.)

توجه: این فریمورک در میشن‌های TvT محدود است و فعلاً فقط میشن‌های BLUFOR در برابر REDFOR را پشتیبانی می‌کند. بنابراین، اگر میشن TvT ایجاد می‌کنید، به بازیکنان GREENFOR ندهید.

مورد بعدی، مطمئن شوید که گزینه Binarize the Scenario File غیرفعال است.

کار ما اینجا به پایان رسید.

Environment

در این قسمت، زمان، تاریخ و آب و هوا تنظیم می‌شوند.

Multiplayer

در این بخش، دو مورد را باید تنظیم کنید:

اول از همه Summary را بنویسید، برای مثال:

    German forces engage Russans in Chernarus. // Assets: 1x Puma ifv (callsign:
    HAMMER) // Respawns: unlimited, Wave // Reinsert: RP // Arsenal mode: Alt
    Loadouts // Time limit: disabled // JIP: enabled

مورد دومی که باید تغییر دهید، Respawn است. آن را از Disabled به Respawn on Custom Position تغییر دهید.

توجه: حتی اگر بازی شما امکان ریسپان هم نداشته باشد، باید این کار را انجام دهید.

توجه: برای تنظیم ریسپان tooltip داخل بازی رو بخونید.

هیچ چیز دیگری را تغییر ندهید.

Performance

توصیه می‌شود از Dynamic simulation استفاده کنید. این کار AI هایی که در دید بازیکن نیستند را از کار میاندازد و باعث بهبود performance می‌شود.

اطلاعات بیشتر اینجا

garbage collector توسط فریمورک تنظیم شده است، نیازی به دستکاری آن نیست.

4. تنظیم اسلات بازیکن ها

حالا که تنظیمات اولیه درست شده است، باید اسلات بازیکن‌ها را تنظیم کنیم. توصیه می‌شود از یونیت‌های پیش‌فرض NATO و CSAT استفاده کنید زیرا ممکن است مدل برخی از یونیت‌ها با فریمورک سازگار نباشد.

به یاد داشته باشید که ترتیبی که یونیت‌ها را قرار می‌دهید، با همین ترتیب در صفحه Slotting نشان داده می‌شود، اما اگر از مد 3den Enhanced استفاده می‌کنید، می‌توانید این ترتیب را تغییر دهید.

Group

حالا که ترتیب تیم‌ها درست شده است، روی آیکن گروه یا مربع بالای سر رهبر کلیک کنید و نام تیم را بنویسید. راه بهتر هم کپی کردن این کد در init گروه است: this setGroupId ['ALPHA']

group settings

Unit

مرحله بعدی این است که باید اسلات هر بازیکن را به این صورت تنظیم کنید:

unit settings

  1. Init: در اینجا باید اسکریپت فریمورک را بنویسید. از اینجا می‌توانید بیشتر در این باره بخوانید.

    توجه: پارامترهایی که با "Optional" مارک شده‌اند اختیاری هستند و می‌توانید آن‌ها را خالی بگذارید، اما به ترتیب پارامترها دقت کنید (برای مثال، دومین پارامتر همیشه نام Gear است).

توجه: پارامتر دوم ID منحصر به فرد مشخص شده در فایل gear است. 2. Playable: اگر یونیت بازیکن است، تیک خورده باشد. 3. Role description: نام یونیت در صفحه انتخاب اسلات. اگر یونیت رهبر گروه بود، از فرمت زیر استفاده کنید: ROLE_NAME@GROUP_NAME برای مثال Squad Leader@ALPHA به این صورت 4. Rank: اگر دوست داشتید، می‌توانید درجه را هم مشخص کنید.

.حالا که اسلات بازیکن ها تنظیم شدند وارد مرحله ی بعد میشویم

Gear

گام بعدی، تنظیم تجهیزات بازیکن‌ها است. تجهیزات توسط اسکریپت gear تنظیم می‌شوند، بنابراین وسایلی که در ادیتور قرار می‌دهید، اضافی هستند.

بازی خود را ذخیره کنید، به صفحه اصلی بازی برگردید و ACE Arsenal را باز کنید.

تجهیزات مناسب برای نقش‌هایی که در بخش بازیکن‌ها ایجاد کرده‌اید را انتخاب کنید و روی Export کلیک کنید.

لوداوتی که اکسپورت شده است را در فایل اسکریپت تجهیزات (mission_framework\config\gear\) کپی کنید. (فایلی که شما کپی می‌کنید، ممکن است مانند نمونه، فرمت زیبایی نداشته باشد و ممکن است کمی مشکل ساز باشد، برای حل این مشکل میتوانید از این ابزار استفاده کنید)

[
  // Primary weapon
  ["arifle_SPAR_01_blk_ERCO_Pointer_F","","acc_pointer_IR","optic_ERCO_blk_F",["30Rnd_556x45_Stanag_red",30],[],""],

  // Launcher
  [],

  // Secondary weapon
  ["hgun_P07_khk_Snds_F","muzzle_snds_L","","",["16Rnd_9x21_Mag",17],[],""],

  // Uniform
  ["U_B_CTRG_Soldier_F",[["FirstAidKit",1],["30Rnd_556x45_Stanag_Tracer_Red",2,30],["30Rnd_556x45_Stanag_red",1,30],["SmokeShell",1,1]]],

  // Vest
  ["V_TacVest_oli",[["30Rnd_556x45_Stanag_red",2,30],["16Rnd_9x21_Mag",2,17],["MiniGrenade",2,1],["SmokeShellGreen",1,1],["SmokeShellBlue",1,1],["SmokeShellOrange",1,1],["Chemlight_green",2,1]]],

  // Backpack
  ["B_RadioBag_01_tropic_F"],

  // Helmet
  "H_HelmetB_TI_tna_F",

  // Facewear
  "G_Balaclava_TI_G_tna_F",

  // Binoculars
  ["Rangefinder","","","",[],[],""],

  // Linked items
  ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGogglesB_grn_F"]
]

شما می‌توانید لوداوت مانند مثالی از در فایل Gear قرار داده شده از آیتم‌های تصادفی هم استفاده کنید، اما این کار اجباری نیست.


در اینجا، شما تمام کارهای اولیه را انجام داده‌اید و می‌توانید شروع به ساخت ماموریت خود کنید. اگر نیاز به توضیحات بیشتر داشتید، README ماژول‌ها را از از اینجا بخوانید.

5. نکات

CBA settings: در فریمورک، یک فایل تنظیمات CBA وجود دارد. شما می‌توانید تنظیمات مورد نظر خود را در فایل cba_settings.sqf قرار دهید.

6. آموزش های بیشتر

kMaN's tutorial videos Lightning's example starter template