Resourceها اجزای اصلی یک سرور MTA هستند. گیممود، پنل مدیریت، سیستم ثبتنام، خودروها، نقشهها، رابطهای گرافیکی و بسیاری از امکانات سر و بسیاری از امکانات سرور بهصورت یک یا چند Resource اجرا میشوند.
نصب Resource معمولاً ساده است؛ اما قراردادن فایلها در مسیر اشتباه، وجود پوشه اضافی، خرابی فایل meta.xml، نبود وابستگیها یا نداشتن دسترسی ACL میتواند مانع اجرای آن شود.
در این راهنما مراحل نصب Resource در MTA، اجرای آن از کنسول، بررسی فایل meta.xml و رفع خطاهای متداول را مرحلهبهمرحله بررسی میکنیم.
Resource در MTA چیست؟
Resource مجموعهای از فایلهای مرتبط است که میتواند شامل کدهای Lua، نقشه، تصویر، فونت، صدا، مدل سهبعدی، تنظیمات و فایلهای XML باشد.
هر Resource معمولاً بهصورت یک پوشه یا فایل ZIP نگهداری میشود و باید در ریشه خود یک فایل با نام دقیق زیر داشته باشد:
meta.xml
این فایل به MTA اعلام میکند که Resource شامل چه اسکریپتها و فایلهایی است و هر بخش باید در سمت سرور، کلاینت یا هر دو اجرا شود.
مسیر نصب Resource در سرور MTA
Resource جدید باید در پوشه resources سرور قرار بگیرد:
<SERVER>/mods/deathmatch/resources/
برای نمونه، اگر نام Resource برابر myscript باشد، ساختار صحیح باید بهشکل زیر باشد:
mods/
└── deathmatch/
└── resources/
└── myscript/
├── meta.xml
├── server.lua
└── client.lua
فایل meta.xml باید مستقیماً داخل پوشه اصلی Resource قرار داشته باشد، نه داخل یک پوشه اضافی دیگر.
خطای رایج پوشه تودرتو
یکی از رایجترین مشکلات زمانی ایجاد میشود که فایل ZIP پس از استخراج، یک پوشه اضافی ایجاد میکند.
ساختار اشتباه:
resources/
└── myscript/
└── myscript-main/
├── meta.xml
├── server.lua
└── client.lua
ساختار صحیح:
resources/
└── myscript/
├── meta.xml
├── server.lua
└── client.lua
پس از استخراج فایل، پوشه را باز کنید و مطمئن شوید meta.xml بدون واسطه در همان سطح اول قرار دارد.
نصب Resource بهصورت پوشه یا ZIP
سرور MTA میتواند Resource را به دو شکل شناسایی کند:
- پوشه معمولی شامل فایلهای Resource
- فایل ZIP استاندارد شامل meta.xml و سایر فایلها
برای ویرایش و عیبیابی، استفاده از پوشه معمولاً سادهتر است. فایل ZIP برای انتقال و نگهداری مناسب است، اما هنگام فشردهسازی باید meta.xml در ریشه آرشیو قرار بگیرد.
ساختار داخل ZIP باید مانند نمونه زیر باشد:
meta.xml
server.lua
client.lua
images/
sounds/
این ساختار اشتباه است:
myscript/
meta.xml
server.lua
client.lua
شناسایی Resource جدید با دستور refresh
پس از انتقال Resource به پوشه resources، در کنسول سرور دستور زیر را اجرا کنید:
refresh
این دستور فهرست Resourceها را دوباره بررسی میکند و Resourceهای جدید را شناسایی میکند.
اگر فایلها را در زمان روشنبودن سرور تغییر دادهاید، معمولاً اجرای refresh و سپس restart برای همان Resource کافی است.
دستور refresh فقط فهرست Resourceها و تغییرات را بررسی میکند. برای اجرای Resource جدید باید بعد از آن دستور start را نیز وارد کنید.
دستورات اصلی مدیریت Resource
| دستور | کاربرد |
|---|---|
| refresh | شناسایی Resourceهای جدید و تغییرات |
| list | نمایش فهرست Resourceها |
| info resource-name | نمایش اطلاعات یک Resource |
| start resource-name | اجرای Resource |
| stop resource-name | متوقفکردن Resource |
| restart resource-name | توقف و اجرای دوباره Resource |
| refreshall | بررسی تغییرات و راهاندازی مجدد Resourceهای تغییرکرده |
برای نمونه، اگر نام پوشه Resource برابر myscript باشد:
refresh
start myscript
برای راهاندازی مجدد پس از ویرایش فایلها:
restart myscript
برای توقف آن:
stop myscript
بهجای resource-name باید نام دقیق پوشه یا ZIP Resource را وارد کنید.
تفاوت refresh و refreshall
دستور refresh برای شناسایی Resourceهای جدید و تغییرات فهرست Resourceها استفاده میشود.
دستور refreshall علاوه بر بررسی تغییرات، Resourceهایی را که تغییر کردهاند دوباره اجرا میکند:
refreshall
روی سرور فعال و دارای بازیکن بهتر است بدون ضرورت از refreshall استفاده نشود؛ زیرا ممکن است چند Resource همزمان ریاستارت شوند و برای مدتی اختلال ایجاد کنند.
در سرور اصلی بهتر است Resource موردنظر را جداگانه مدیریت کنید:
refresh
restart resource-name
ساختار پایه فایل meta.xml
یک فایل ساده meta.xml میتواند بهشکل زیر باشد:
<meta>
<info
author="KimiaGame"
name="Example Resource"
version="1.0.0"
type="script"
description="Example MTA resource"
/>
<script src="server.lua" type="server" />
<script src="client.lua" type="client" />
</meta>
تگ script مشخص میکند کدام فایل Lua باید بارگذاری شود. مقدار type نیز محل اجرای فایل را تعیین میکند.
| نوع اسکریپت | محل اجرا |
|---|---|
| server | روی سرور MTA |
| client | روی سیستم بازیکن |
| shared | هم در سرور و هم در کلاینت |
نمونه فایل مشترک:
<script src="shared.lua" type="shared" />
اضافهکردن تصویر، فونت و فایلهای جانبی
فایلهایی که اسکریپت کلاینت به آنها نیاز دارد باید در meta.xml معرفی شوند.
<meta>
<script src="client.lua" type="client" />
<file src="images/logo.png" />
<file src="fonts/iranyekan.ttf" />
<file src="sounds/click.mp3" />
</meta>
مسیر ثبتشده در meta.xml باید دقیقاً با محل واقعی فایل مطابقت داشته باشد.
برای نمونه، این ساختار:
myscript/
├── meta.xml
├── client.lua
├── images/
│ └── logo.png
├── fonts/
│ └── iranyekan.ttf
└── sounds/
└── click.mp3
باید با مسیرهای زیر در meta.xml معرفی شود:
<file src="images/logo.png" />
<file src="fonts/iranyekan.ttf" />
<file src="sounds/click.mp3" />
دلایل شناسایینشدن Resource
اگر پس از اجرای refresh نام Resource دیده نمیشود، موارد زیر را بررسی کنید:
- Resource داخل مسیر صحیح resources قرار دارد.
- فایل meta.xml در ریشه پوشه یا ZIP قرار دارد.
- نام فایل دقیقاً meta.xml است.
- پسوند فایل بهصورت مخفی meta.xml.txt نشده است.
- فایل ZIP خراب یا ناقص نیست.
- پوشه اضافی میان Resource و meta.xml وجود ندارد.
- سرور اجازه خواندن فایلها را دارد.
- نام Resource شامل کاراکترهای نامناسب نیست.
- Resource دیگری با نام مشابه وجود ندارد.
پس از اصلاح ساختار دوباره دستور زیر را اجرا کنید:
refresh
بررسی Resource با دستورات list و info
برای مشاهده Resourceهای شناساییشده میتوان از دستور زیر استفاده کرد:
list
برای مشاهده اطلاعات یک Resource مشخص:
info resource-name
اگر Resource در فهرست وجود دارد اما اجرا نمیشود، مشکل معمولاً به meta.xml، فایلهای وابسته، خطای Lua یا ACL مربوط است.
خطای فایل meta.xml
meta.xml یک فایل XML است و باید ساختار صحیح داشته باشد. اشتباه در باز و بستهشدن تگها، کوتیشنها یا نام فایلها میتواند مانع بارگذاری Resource شود.
نمونه اشتباه:
<meta>
<script src="server.lua" type="server">
</meta>
در این نمونه تگ script بسته نشده است. نسخه صحیح:
<meta>
<script src="server.lua" type="server" />
</meta>
نمونه اشتباه دیگر:
<script src="Server.lua" type="server" />
درصورتیکه نام واقعی فایل server.lua باشد، تفاوت حروف بزرگ و کوچک روی سرور لینوکس میتواند باعث پیدانشدن فایل شود.
بررسی خطاهای Lua با debugscript
اگر Resource شناسایی میشود اما هنگام اجرا خطا میدهد، کنسول Debug را فعال کنید.
برای مشاهده خطاها و هشدارها:
debugscript 2
برای مشاهده خطاها، هشدارها و پیامهای اطلاعاتی:
debugscript 3
سطوح debugscript:
| سطح | خروجی |
|---|---|
| 0 | بستن کنسول Debug |
| 1 | فقط خطاها |
| 2 | خطاها و هشدارها |
| 3 | خطاها، هشدارها و پیامهای اطلاعاتی |
پس از فعالکردن Debug، Resource را دوباره اجرا کنید:
restart resource-name
اگر Resource هنوز اجرا نشده است:
start resource-name
نام فایل، شماره خط و توضیح خطا در Debug نمایش داده میشود.
خطای پیدانشدن فایل Lua
اگر meta.xml به فایلی اشاره کند که وجود ندارد، Resource بهدرستی اجرا نمیشود.
برای مثال:
<script src="scripts/server.lua" type="server" />
ساختار پوشه نیز باید دقیقاً بهشکل زیر باشد:
resource-name/
├── meta.xml
└── scripts/
└── server.lua
درصورت قرارداشتن server.lua کنار meta.xml، مسیر باید اصلاح شود:
<script src="server.lua" type="server" />
خطاهای Syntax در اسکریپت Lua
اشتباه در کدنویسی Lua میتواند باعث توقف اجرای فایل یا Resource شود. موارد رایج عبارتاند از:
- نبستن end
- نبستن پرانتز
- نبستن کوتیشن رشته
- استفاده از نام متغیر اشتباه
- فراخوانی تابع تعریفنشده
- ارسال آرگومان نامعتبر به تابع
- اشتباه در نام Event
- اشتباه در مسیر فایل
نمونه کد دارای خطا:
addCommandHandler("hello", function(player)
outputChatBox("Hello", player)
نسخه صحیح:
addCommandHandler("hello", function(player)
outputChatBox("Hello", player)
end)
Resource اجرا میشود اما امکانات آن کار نمیکند
گاهی Resource بدون خطای Start اجرا میشود، اما فرمان، پنل یا سیستم موردنظر عمل نمیکند. در این وضعیت موارد زیر را بررسی کنید:
- فایل موردنظر در meta.xml ثبت شده است.
- type اسکریپت بهدرستی server یا client انتخاب شده است.
- Event Handler به Element صحیح متصل شده است.
- نام Command دقیق است.
- بازیکن دسترسی لازم برای اجرای فرمان را دارد.
- Resource وابسته در حال اجرا است.
- فایلهای کلاینت بهدرستی دانلود شدهاند.
- در debugscript خطای پنهانی وجود ندارد.
Resourceهای وابسته
بعضی Resourceها برای اجرا به Resource دیگری نیاز دارند. این وابستگی میتواند در meta.xml با تگ include مشخص شود.
<meta>
<include resource="mysql" />
<include resource="notifications" />
<script src="server.lua" type="server" />
</meta>
در این مثال Resource اصلی به mysql و notifications وابسته است.
قبل از اجرای Resource اصلی، وجود و اجرای وابستگیها را بررسی کنید:
start mysql
start notifications
start resource-name
اگر Resource وابسته وجود نداشته باشد یا دچار خطا باشد، بخشهای مرتبط در Resource اصلی نیز ممکن است کار نکنند.
Export و ارتباط بین Resourceها
بعضی Resourceها تابعی را برای استفاده سایر Resourceها Export میکنند.
<export function="showNotification" type="server" />
Resource دیگری میتواند آن را فراخوانی کند:
exports.notifications:showNotification(player, "پیام آزمایشی")
در این حالت موارد زیر باید درست باشند:
- Resource مقصد در حال اجرا باشد.
- نام Resource در کد صحیح باشد.
- تابع در meta.xml مقصد Export شده باشد.
- نوع server یا client با محل فراخوانی هماهنگ باشد.
- نام تابع دقیقاً با کد اصلی مطابقت داشته باشد.
دسترسی ACL برای Resource
بعضی توابع مدیریتی و حساس بدون دسترسی ACL اجرا نمیشوند. برای نمونه ممکن است یک Resource بخواهد بازیکن را Kick کند، Resource دیگری را Restart کند یا حساب کاربری ایجاد کند.
Resource میتواند دسترسیهای موردنیاز خود را در meta.xml درخواست کند:
<meta>
<aclrequest>
<right name="function.kickPlayer" access="true" />
<right name="function.banPlayer" access="true" />
</aclrequest>
<script src="server.lua" type="server" />
</meta>
برای مشاهده درخواستهای ACL یک Resource:
aclrequest list resource-name
برای تأیید یک دسترسی مشخص:
aclrequest allow resource-name function.kickPlayer
برای تأیید همه درخواستهای ثبتشده Resource:
aclrequest allow resource-name all
فقط دسترسیهایی را تأیید کنید که Resource واقعاً به آنها نیاز دارد. برای Resource ناشناس یا بررسینشده، دادن دسترسی کامل مدیریتی میتواند خطر امنیتی ایجاد کند.
خطای Access Denied
اگر در Debug پیامی درباره نداشتن دسترسی یا Access Denied دیده میشود، ابتدا نام تابع مسدودشده را پیدا کنید.
- دستور debugscript 3 را فعال کنید.
- عملیاتی را که خطا ایجاد میکند دوباره انجام دهید.
- نام Permission یا تابع ثبتشده در خطا را یادداشت کنید.
- بخش aclrequest فایل meta.xml را بررسی کنید.
- فقط همان دسترسی موردنیاز را تأیید کنید.
- Resource را Restart و دوباره آزمایش کنید.
restart resource-name
نباید هر Resource را به گروه Admin اضافه کرد
اضافهکردن یک Resource به گروه Admin ممکن است خطای دسترسی را سریع برطرف کند، اما تمام Permissionهای آن گروه را در اختیار Resource قرار میدهد.
روش امنتر این است که:
- درخواستهای aclrequest را بررسی کنید.
- فقط Permissionهای ضروری را فعال کنید.
- کد Resourceهای ناشناس را قبل از نصب بررسی کنید.
- نسخه آزمایشی را روی سرور اصلی اجرا نکنید.
- قبل از تغییر ACL از acl.xml بکاپ تهیه کنید.
مشکل دسترسی فایلها در سرور لینوکس
در سرور لینوکس، کاربری که فرایند MTA را اجرا میکند باید اجازه خواندن فایلهای Resource و ورود به پوشههای آن را داشته باشد.
درصورت انتقال فایل با کاربر root یا کنترلپنل، ممکن است مالکیت یا Permissionها با کاربر اجرای MTA هماهنگ نباشد.
موارد زیر را بررسی کنید:
- مالک فایلها و پوشهها
- اجازه خواندن فایلهای Lua و XML
- اجازه ورود به پوشه Resource
- عدم محدودیت امنیتی کنترلپنل
- کاملبودن فایلها پس از Upload
دستورهای تغییر مالکیت و Permission باید بر اساس نام کاربر واقعی سرویس MTA تنظیم شوند؛ بنابراین از اجرای دستورهای عمومی و ناشناس روی کل پوشه سرور خودداری کنید.
حساسیت حروف بزرگ و کوچک در لینوکس
در لینوکس این دو نام یکسان نیستند:
Server.lua
server.lua
اگر فایل واقعی server.lua باشد، این مسیر در meta.xml اشتباه است:
<script src="Server.lua" type="server" />
نام پوشهها نیز باید دقیقاً رعایت شود:
Images/logo.png
images/logo.png
Resource روی ویندوز کار میکند اما روی لینوکس نه
در چنین شرایطی این موارد را بررسی کنید:
- تفاوت حروف بزرگ و کوچک در نام فایلها
- مسیرهای اشتباه یا استفاده از بکاسلش
- Permission و مالکیت فایلها
- فایلهای ناقص پس از انتقال
- کتابخانه یا وابستگی خارجی
- نام فایلهایی که شامل فاصله یا کاراکتر خاص هستند
- تنظیمات اتصال دیتابیس
در مسیرهای Resource بهتر است از اسلش معمولی استفاده شود:
images/logo.png
خطای اتصال دیتابیس Resource
بسیاری از Resourceها به MySQL یا دیتابیس دیگری وابستهاند. در این حالت ممکن است Resource اجرا شود اما ثبتنام، ورود یا ذخیره اطلاعات کار نکند.
موارد زیر را بررسی کنید:
- آدرس Host دیتابیس
- نام دیتابیس
- نام کاربری و رمز عبور
- پورت دیتابیس
- اجازه اتصال از IP سرور
- وجود جدولهای موردنیاز
- Import شدن فایل SQL
- درحالاجرا بودن Resource اتصال دیتابیس
- خطاهای ثبتشده در debugscript
اطلاعات دیتابیس را داخل فایلهایی که برای کلاینت ارسال میشوند قرار ندهید. نام کاربری و رمز دیتابیس باید فقط در سمت سرور نگهداری شود.
دانلودنشدن فایلهای Resource برای بازیکن
اگر Resource اجرا میشود اما تصویر، فونت، صدا یا مدل برای بازیکن نمایش داده نمیشود، موارد زیر را بررسی کنید:
- فایل در meta.xml با تگ file ثبت شده است.
- مسیر فایل در meta.xml درست است.
- نام فایل در کد و پوشه یکسان است.
- فایل هنگام Upload خراب نشده است.
- پورت HTTP سرور در دسترس است.
- کش کلاینت نسخه قدیمی فایل را نگه نداشته است.
- فایل توسط کد کلاینت در مسیر صحیح فراخوانی شده است.
نمونه صحیح:
<file src="images/background.png" />
و در اسکریپت کلاینت:
local texture = dxCreateTexture("images/background.png")
Resource پس از ریاستارت سرور خودکار اجرا نمیشود
دستور start فقط Resource را در اجرای فعلی سرور فعال میکند. برای اجرای خودکار باید Resource در تنظیمات Startup سرور یا ابزار مدیریت هاست ثبت شود.
در فایل mtaserver.conf میتوان Resourceهای شروع خودکار را با ساختاری مانند زیر مشخص کرد:
<resource src="resource-name" startup="1" protected="0" />
قبل از ویرایش فایل تنظیمات:
- از mtaserver.conf بکاپ بگیرید.
- نام Resource را دقیق وارد کنید.
- ساختار XML فایل را خراب نکنید.
- پس از ذخیره، سرور را با روش صحیح Restart کنید.
بهروزرسانی یک Resource
برای بهروزرسانی Resource روی سرور فعال، ترتیب زیر مناسب است:
- از نسخه فعلی Resource بکاپ بگیرید.
- درصورت ذخیره اطلاعات، بکاپ دیتابیس تهیه کنید.
- Resource را متوقف کنید.
- فایلهای جدید را جایگزین کنید.
- دستور refresh را اجرا کنید.
- Resource را دوباره Start کنید.
- خطاهای debugscript را بررسی کنید.
- امکانات اصلی را آزمایش کنید.
stop resource-name
refresh
start resource-name
اگر فقط فایل Lua تغییر کرده و ساختار Resource ثابت است، در بسیاری از موارد اجرای دستور زیر کافی است:
restart resource-name
حذف Resource از سرور
برای حذف Resource:
- Resource را Stop کنید.
- پوشه یا ZIP آن را از resources حذف کنید.
- دستور refresh را اجرا کنید.
- وابستگی سایر Resourceها را بررسی کنید.
stop resource-name
refresh
قبل از حذف، بررسی کنید Resource موردنظر اطلاعات، جدول دیتابیس یا فایل تنظیمات مهمی ایجاد نکرده باشد.
نصب Resource ناشناس چه خطراتی دارد؟
Resource دریافتی از منابع ناشناس ممکن است شامل کد مخرب، دسترسی پنهان، ارسال اطلاعات یا توابع مدیریتی ناامن باشد.
قبل از نصب موارد زیر را بررسی کنید:
- فایلهای server-side Lua
- درخواستهای ACL
- استفاده از fetchRemote یا callRemote
- اتصال به آدرسها و APIهای ناشناس
- کدهای مبهم یا رمزگذاریشده
- دستورات ایجاد و حذف فایل
- توابع مدیریت حسابها و ACL
- کوئریهای دیتابیس
- Resourceهای وابسته ناشناس
Resource جدید را ابتدا روی سرور آزمایشی اجرا کنید و قبل از انتقال به سرور اصلی از فایلها و دیتابیس نسخه پشتیبان تهیه کنید.
ترتیب عملی نصب Resource در MTA
- فایل Resource را از منبع معتبر دریافت کنید.
- محتویات و درخواستهای ACL را بررسی کنید.
- از فایلهای فعلی سرور بکاپ بگیرید.
- Resource را در پوشه resources قرار دهید.
- وجود meta.xml در ریشه Resource را بررسی کنید.
- وابستگیها و فایل SQL را آماده کنید.
- در کنسول دستور refresh را اجرا کنید.
- با دستور start Resource را اجرا کنید.
- با debugscript 2 یا 3 خطاها را بررسی کنید.
- فقط دسترسیهای ACL ضروری را تأیید کنید.
- امکانات Resource را روی سرور تست کنید.
- پس از تأیید، اجرای خودکار آن را تنظیم کنید.
جدول سریع عیبیابی Resource
| مشکل | علت احتمالی | اقدام پیشنهادی |
|---|---|---|
| Resource در list نیست | مسیر یا meta.xml اشتباه | ساختار پوشه را اصلاح و refresh اجرا کنید |
| Resource Start نمیشود | خطای XML، Lua یا وابستگی | debugscript 3 و کنسول را بررسی کنید |
| فایل Lua پیدا نمیشود | مسیر یا نام فایل اشتباه | meta.xml و حروف بزرگ و کوچک را تطبیق دهید |
| Access Denied | ACL ناکافی | درخواست ACL لازم را بررسی و تأیید کنید |
| پنل باز نمیشود | خطای کلاینت یا فایل ناقص | debugscript و فایلهای تگ file را بررسی کنید |
| دیتابیس کار نمیکند | تنظیم اتصال یا جدول ناقص | اطلاعات اتصال و فایل SQL را بررسی کنید |
| پس از ریاستارت اجرا نمیشود | Startup تنظیم نشده | Resource را در تنظیمات شروع خودکار ثبت کنید |
| روی ویندوز کار میکند ولی لینوکس نه | حروف بزرگ، مسیر یا Permission | نام فایلها و دسترسیها را بررسی کنید |
چکلیست نهایی نصب Resource
- Resource داخل mods/deathmatch/resources قرار دارد.
- meta.xml در ریشه پوشه یا ZIP است.
- نام فایلها و مسیرها صحیح هستند.
- اسکریپتهای server و client درست تعریف شدهاند.
- فایلهای جانبی در meta.xml ثبت شدهاند.
- Resourceهای وابسته نصب و اجرا شدهاند.
- فایل SQL در دیتابیس Import شده است.
- دستور refresh اجرا شده است.
- Resource با start اجرا شده است.
- خطاهای debugscript بررسی شدهاند.
- ACL فقط بهاندازه نیاز فعال شده است.
- Resource روی نسخه آزمایشی تست شده است.
- از فایلها و دیتابیس بکاپ وجود دارد.
جمعبندی
برای نصب Resource در MTA باید فایل یا پوشه آن را در مسیر resources قرار دهید، ساختار meta.xml را بررسی کنید و سپس با دستور refresh آن را به سرور معرفی کنید.
پس از شناسایی Resource، دستورهای start، stop و restart برای مدیریت آن استفاده میشوند. اگر Resource اجرا نشد، ابتدا ساختار پوشه، فایل meta.xml، وابستگیها، خطاهای Lua و دسترسی ACL را بررسی کنید.
فعالکردن debugscript و مطالعه دقیق پیام خطا معمولاً سریعتر از تغییر تصادفی فایلها یا دادن دسترسی کامل Admin نتیجه میدهد.
برای نصب اولیه سرور، راهنمای آموزش ساخت سرور MTA روی VPS لینوکس را مطالعه کنید.
برای بررسی کندی و مصرف غیرعادی Resourceها نیز مقاله علت لگ سرور MTA و روشهای رفع آن را ببینید.
برای نصب، بررسی و رفع خطای Resourceهای پروژه میتوانید از خدمات پشتیبانی فنی گیمسرور و راهاندازی و کانفیگ سرور MTA استفاده کنید.
پرسشهای متداول
Resource را در کدام پوشه قرار دهیم؟
Resource باید داخل مسیر mods/deathmatch/resources سرور MTA قرار بگیرد.
چرا Resource بعد از آپلود نمایش داده نمیشود؟
معمولاً مسیر اشتباه، پوشه تودرتو، نبودن meta.xml در ریشه Resource یا اجرا نشدن دستور refresh باعث این مشکل میشود.
بعد از تغییر فایل Lua چه دستوری بزنیم؟
در بیشتر موارد دستور restart resource-name کافی است. اگر فایل یا ساختار جدیدی اضافه شده، ابتدا refresh و سپس restart را اجرا کنید.
چرا Resource خطای Access Denied میدهد؟
Resource برای اجرای یک تابع محافظتشده دسترسی ACL ندارد. نام Permission را در Debug پیدا و فقط همان دسترسی ضروری را تأیید کنید.
چرا تصویر یا فونت Resource دانلود نمیشود؟
فایل باید در meta.xml با تگ file معرفی شود و مسیر آن با نام واقعی فایل مطابقت داشته باشد. وضعیت پورت HTTP و کش کلاینت نیز باید بررسی شود.
آیا میتوان Resource را بهصورت ZIP اجرا کرد؟
بله. MTA از Resource بهصورت پوشه یا ZIP پشتیبانی میکند، مشروط بر اینکه meta.xml در ریشه آرشیو قرار داشته باشد.
چطور خطای دقیق Resource را پیدا کنیم؟
دستور debugscript 2 یا debugscript 3 را فعال و سپس Resource را دوباره Start یا Restart کنید. نام فایل، خط و توضیح خطا در کنسول Debug نمایش داده میشود.
