ChatGPT Image Aug 5, 2026, 06_36_44 PM

آموزش نصب Resource در MTA و رفع خطاهای اجرا

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 دیده می‌شود، ابتدا نام تابع مسدودشده را پیدا کنید.

  1. دستور debugscript 3 را فعال کنید.
  2. عملیاتی را که خطا ایجاد می‌کند دوباره انجام دهید.
  3. نام Permission یا تابع ثبت‌شده در خطا را یادداشت کنید.
  4. بخش aclrequest فایل meta.xml را بررسی کنید.
  5. فقط همان دسترسی موردنیاز را تأیید کنید.
  6. 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 روی سرور فعال، ترتیب زیر مناسب است:

  1. از نسخه فعلی Resource بکاپ بگیرید.
  2. درصورت ذخیره اطلاعات، بکاپ دیتابیس تهیه کنید.
  3. Resource را متوقف کنید.
  4. فایل‌های جدید را جایگزین کنید.
  5. دستور refresh را اجرا کنید.
  6. Resource را دوباره Start کنید.
  7. خطاهای debugscript را بررسی کنید.
  8. امکانات اصلی را آزمایش کنید.
stop resource-name
refresh
start resource-name

اگر فقط فایل Lua تغییر کرده و ساختار Resource ثابت است، در بسیاری از موارد اجرای دستور زیر کافی است:

restart resource-name

حذف Resource از سرور

برای حذف Resource:

  1. Resource را Stop کنید.
  2. پوشه یا ZIP آن را از resources حذف کنید.
  3. دستور refresh را اجرا کنید.
  4. وابستگی سایر Resourceها را بررسی کنید.
stop resource-name
refresh

قبل از حذف، بررسی کنید Resource موردنظر اطلاعات، جدول دیتابیس یا فایل تنظیمات مهمی ایجاد نکرده باشد.

نصب Resource ناشناس چه خطراتی دارد؟

Resource دریافتی از منابع ناشناس ممکن است شامل کد مخرب، دسترسی پنهان، ارسال اطلاعات یا توابع مدیریتی ناامن باشد.

قبل از نصب موارد زیر را بررسی کنید:

  • فایل‌های server-side Lua
  • درخواست‌های ACL
  • استفاده از fetchRemote یا callRemote
  • اتصال به آدرس‌ها و APIهای ناشناس
  • کدهای مبهم یا رمزگذاری‌شده
  • دستورات ایجاد و حذف فایل
  • توابع مدیریت حساب‌ها و ACL
  • کوئری‌های دیتابیس
  • Resourceهای وابسته ناشناس

Resource جدید را ابتدا روی سرور آزمایشی اجرا کنید و قبل از انتقال به سرور اصلی از فایل‌ها و دیتابیس نسخه پشتیبان تهیه کنید.

ترتیب عملی نصب Resource در MTA

  1. فایل Resource را از منبع معتبر دریافت کنید.
  2. محتویات و درخواست‌های ACL را بررسی کنید.
  3. از فایل‌های فعلی سرور بکاپ بگیرید.
  4. Resource را در پوشه resources قرار دهید.
  5. وجود meta.xml در ریشه Resource را بررسی کنید.
  6. وابستگی‌ها و فایل SQL را آماده کنید.
  7. در کنسول دستور refresh را اجرا کنید.
  8. با دستور start Resource را اجرا کنید.
  9. با debugscript 2 یا 3 خطاها را بررسی کنید.
  10. فقط دسترسی‌های ACL ضروری را تأیید کنید.
  11. امکانات Resource را روی سرور تست کنید.
  12. پس از تأیید، اجرای خودکار آن را تنظیم کنید.

جدول سریع عیب‌یابی 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 نمایش داده می‌شود.

منابع رسمی مرتبط

Comments are closed.