در این مبحث نحوه تهیه و کامپایل RCBot2 برای لینوکس و ویندوز را توضیح خواهم داد.

برای انجام این کار ، به Python 3 ، Git و همچنین کامپایلرها (GCC 5+ و Clang for Linux) و کیت کامپایلر MSVC از Visual Studio 2015 یا جدیدتر نیاز دارید. و همچنین باید هدرهای HL2SDK ، SourceMod و Metamod را که از مخزن Github من ارائه شده است داشته باشید.

آماده سازی:-

قبل از شروع ، باید این اسناد را از صفحه ویکی AlliedMods بخوانید تا به درستی کامپایل شود. الزامات و ابزار مورد نیاز برای نصب را پیدا خواهید کرد. (پایتون 2 در حال حاضر EOLed و استهلاک شده است ، بنابراین شاید بهتر است پایتون 3 را نصب کنید.)

https://wiki.alliedmods.net/Building_SourceMod

نصب لینوکس AMBuild:-

اکنون برای استفاده و نصب AMBuild ، باید پوسته ترمینال لینوکس را بارگذاری کرده و این را تایپ کرده و AMBuild را بدست آورید:-

(برای Debian ، Ubuntu و Linux Mint Distros)

Code:
$ sudo apt install python python-clang python-pip git gcc g++ clang clang++
برای به دست آوردن AMBuild:-

Code:
$ sudo git clone https://github.com/alliedmodders/ambuild
$ sudo pip install ./ambuild
نکته: برای مبتدیان لینوکس که اگر بخواهید ترمینال شما یک نوع پوشه را برگرداند ، گیر می کنند `cd ..`به توصیه می شود به عنوان کاربر اصلی از سیستم خود استفاده نکنید یا وارد آن نشوید.

اکنون برای استفاده از RCBot2 می توانید از هر دو استفاده کنید `$ sudo git clone https: // github.com/APGRoboCop/rcbot2` یا کد منبع را مستقیماً از آنجا بارگیری کنید.

پس از بارگیری کد src RCBot2 ، یک پوشه با نام "build" در پوشه اصلی /rcbot با تایپ کردن ایجاد کنید. `mkdir build` یا اگر از Linux Mint با Cinnamon Desktop استفاده می کنید ، کافی است در پنجره پوشه /rcbot راست کلیک کرده و [ایجاد پوشه جدید] را کلیک کرده و نام آن را "build" بگذارید.

Click image for larger version. 

Name:	rcbot1.jpg 
Views:	329 
Size:	59.0 KB 
ID:	197

این روش آسان تر است و نیاز به کلیک های کمتری نسبت به تایپ کردن فهرست برای like دارد `cd /rcbot2 /build` یا فهرست کامل و غیره:-

Click image for larger version. 

Name:	rcbot2.jpg 
Views:	345 
Size:	50.9 KB 
ID:	198

کامپایل در لینوکس:-

حالا برای مثال بگویید که می خواهید RCBot2 را برای ساخت اشکال زدایی TF2 کامپایل کنید ، کاری که باید انجام دهید این است که این را در ترمینال واقع در /rcbot2 /build به این شکل تایپ کنید:-

Code:
$ python3 ../configure.py -s tf2 --mms_path ./alliedmodders/metamod-source --hl2sdk-root ./alliedmodders --sm-path ./alliedmodders/sourcemod --enable-debug
$ ambuild
و امیدوارم ، بسته RCBot2 کامپایل شده و آماده باشد!

عیب یابی: اگر نمی توانید از AMBuild بخواهید تا SDK ها را کامپایل یا مکان بندی کند ، آدرس دایرکتوری کامل را تایپ کنید ، برای مثال:

Code:
$ python3 ../configure.py -s tf2 --mms_path /home/desktop/Dropbox/src/rcbot2/alliedmodders/metamod-source --hl2sdk-root /home/desktop/Dropbox/src/rcbot2/alliedmodders --sm-path /home/desktop/Dropbox/src/rcbot2/alliedmodders/sourcemod --enable-debug
نصب ویندوز AMBuild:-

https://wiki.alliedmods.net/Ambuild

اکنون برای استفاده از install AMBuild باید Visual Studio 2015 یا بالاتر را نصب کنید. روش به دست آوردن AMBuild از git مشابه است `git clone https: // github.com/alliedmodders/ambuild` و `pip install./ambuild` اما همانطور که متوجه شده اید از "sudo" استفاده نمی شود زیرا عمدتا برای لینوکس است.

اما قبل از آن برای نصب Python 3 و بارگیری مستقیم آن از ویژوال استودیو PowerShell Developer ، می توانید Chocolatey یا Scoop را نصب کنید. شخصاً ، از طرف من ، بسته پایتون 3 از فروشگاه MS دارای برخی از اشکالات ویژه است که باعث می شود پایتون 3 بارگیری و اجرای فایل های .py را دشوار کند.

https://scoop.sh/
https://chocolatey.org/

اما برای این آموزش ، من نحوه استفاده از Scoop را به شما نشان خواهم داد. کافی است به منوی استارت رفته و [Developer PowerShell for VS] را پیدا کرده و انتخاب کنید. پس از باز کردن PowerShell ، این موارد را در کنسول تایپ کنید:

Code:
PS C:\> iwr -useb get.scoop.sh | iex
PS C:\> Set-ExecutionPolicy RemoteSigned -scope CurrentUser
(بعد از آن [Y] را برای Yes تایپ کنید)
Code:
PS C:\> scoop install git python
امیدوارم هر دو Git و Python به درستی نصب شوند. به این ترتیب می توانید AMBuild را مانند این نصب کنید:-

Code:
PS C:\> git clone https://github.com/alliedmodders/ambuild
PS C:\> pip install ./ambuild
کامپایل در ویندوز:-

و اکنون باید کامپایل کد RCBot2 src آماده شود ، اما مانند قبل از مرحله کامپایل لینوکس ممکن است با برخی از مشکلات عیب یابی روبرو شوید. بنابراین برای به حداقل رساندن این موارد مراحل زیر را دنبال کنید. تایپ کنید `cd` و آدرس پوشه مانند این ، به عنوان مثال اگر کد RCBot2 src را از HDD یا USB Flash Drive دوم بارگیری کرده اید - در غیر این صورت و از درایو C: \ ، در این صورت خط دوم را نادیده بگیرید: -

Code:
PS C:\> cd E:\rcbot2-master\build
PS C:\> e:
ایجاد /ساخت پوشه در /rcbot2 را فراموش نکنید. حالا برای مثال بگویید که می خواهید RCBot2 را برای ساخت اشکال زدایی TF2 کامپایل کنید ، کاری که باید انجام دهید این است که این را در ترمینال واقع در /rcbot2 /build به این شکل تایپ کنید:-

Code:
PS E:\rcbot2-master\build python3 ../configure.py -s tf2 --mms_path ./alliedmodders/metamod-source --hl2sdk-root ./alliedmodders --sm-path ./alliedmodders/sourcemod --enable-debug
PS E:\rcbot2-master\build ambuild
و امیدوارم که بسته RCBot2 برای ویندوز کامپایل و آماده باشد!

عیب یابی: اگر نمی توانید AMBuild را مجبور به کامپایل با استفاده از Developer PowerShell کنید یا SDK ها را به درستی پیدا کنید ، آدرس دایرکتوری کامل را تایپ کنید ، برای مثال:

Code:
PS E:\rcbot2-master\build python3 ../configure.py -s tf2 --mms_path E:/rcbot2-master/alliedmodders/metamod-source --hl2sdk-root E:/rcbot2-master/alliedmodders --sm-path E:/rcbot2-master/alliedmodders/sourcemod --enable-debug
همچنین اگر به نظر می رسد که Developer PowerShell از طرف شما کار نمی کند ، می توانید از [Developer Command Prompt for VS] استفاده کنید تا ببینید آیا با این برنامه کامپایل بهتر می شود یا خیر. نکته منفی این برنامه این است که شما قطعاً باید از برنامه استفاده کنید `cd E:` همانطور که PowerShell کمابیش به طور خودکار شما را به آن پوشه مقصد منتقل می کند و از دستورات تایپ شده پس از اتمام کار با فرمان توسعهدهنده ، ذخیره نمی کند.

و قبل از اینکه فراموش کنم حتماً AMBuild و Python 3 را به روز نگه دارید. برای به روز نگه داشتن پایتون 3 به سادگی تایپ کنید `scoop update *` برای به روز نگه داشتن بسته ها البته ، برای لینوکس کامپیوترهایی مانند Debian یا Ubuntu نیاز به تایپ دارند `sudo apt update` به دنبال `sudo apt upgrade`.