این راهنما شامل توسعه ریسورس، تنظیم پایگاه داده، ابزارهای مدیریت، مدیریت بازیکنان، مدیریت وسایل نقلیه و سلاحها، و عیبیابی سرور alt:V شما در Legion Hosting میباشد. برای تنظیمات اولیه سرور، پیکربندی server.toml و دستورالعملهای اتصال، به راهنمای راهاندازی سرور alt:V مراجعه کنید.
تنظیمات ادمین
alt:V سیستم ادمین داخلی ندارد. قابلیتهای ادمین از طریق ریسورسها (اسکریپتها) که ایجاد یا نصب میکنید پیادهسازی میشوند. اکثر گیممودها سیستم ادمین خود را با سطوح دسترسی، نقشها و دستورات ادمین پیادهسازی میکنند.
روشهای رایج ادمین
- نقشهای مبتنی بر پایگاه داده: اکثر فریمورکهای رولپلی و گیممود، نقشهای ادمین را در پایگاه داده ذخیره میکنند. به ادمینها نقشهایی (مانند مدیر، ادمین، سوپرادمین) اختصاص داده میشود که سطوح دسترسی متفاوتی دارند.
- ادمینهای مبتنی بر فایل پیکربندی: تنظیمات سادهتر ممکن است از یک فایل پیکربندی استفاده کنند که شامل لیست Steam ID یا alt:V ID ادمینها با سطوح دسترسی آنهاست.
- دستورات کنسول: کنسول سرور در GPanel همیشه دسترسی کامل دارد. میتوانید اسکریپتهای سمت سرور بنویسید که ورودی کنسول را برای عملیات ادمین بپذیرند.
راهاندازی ریسورس ادمین
- یک ریسورس ادمین متناسب با گیممود خود انتخاب یا توسعه دهید.
- ریسورس را در پوشه
resources/از طریق تب Files یا SFTP آپلود کنید. - نام ریسورس را به آرایه
resourcesدرserver.tomlاضافه کنید. - ریسورس ادمین را پیکربندی کنید (Steam/alt:V ID ادمینها، سطوح دسترسی و غیره را تنظیم کنید).
- سرور را ریاستارت کنید.
سیستم ریسورس
ریسورسها بلوکهای اصلی سازنده سرورهای alt:V هستند. هر ریسورس یک ماژول مستقل است که میتواند شامل کد سمت سرور، کد سمت کلاینت یا هر دو باشد. ریسورسها به زبان JavaScript، TypeScript یا C# نوشته میشوند.
ساختار ریسورس
resources/
my-resource/
resource.toml <-- Resource configuration (required)
server/
index.js <-- Server-side entry point
utils.js <-- Additional server-side files
client/
index.js <-- Client-side entry point (runs in player's GTA V)
shared/
config.js <-- Shared code accessible by both server and client
پیکربندی resource.toml
type = "js"
main = "server/index.js"
client-main = "client/index.js"
client-files = ["client/*"]
deps = ["chat"]
فیلدها: type (js یا csharp)، main (نقطه ورود سمت سرور)، client-main (نقطه ورود سمت کلاینت، در GTA V بازیکن اجرا میشود)، client-files (فایلهایی که به کلاینت ارسال میشوند، از glob پشتیبانی میکند)، deps (ریسورسهای دیگری که باید ابتدا بارگذاری شوند).
نصب ریسورسها
برای نصب یک ریسورس از پیش ساخته شده روی سرور:
- فایلهای ریسورس را دانلود کنید (معمولاً یک پوشه شامل
resource.tomlو فایلهای اسکریپت). - سرور خود را در GPanel متوقف کنید.
- پوشه ریسورس را در
resources/از طریق تب Files یا SFTP آپلود کنید. - نام پوشه ریسورس را به آرایه
resourcesدرserver.tomlاضافه کنید:
resources = ["existing-resource", "new-resource"]
- اگر ریسورس وابستگیهایی دارد، مطمئن شوید آنها نیز نصب و لیست شدهاند.
- ریسورس را طبق مستندات آن پیکربندی کنید (فایلهای پیکربندی، تنظیم پایگاه داده و غیره).
- سرور را استارت کنید. کنسول را برای پیامهای بارگذاری ریسورس و هرگونه خطا بررسی کنید.
حذف یک ریسورس
- سرور خود را متوقف کنید.
- نام ریسورس را از آرایه
resourcesدرserver.tomlحذف کنید. - در صورت تمایل، پوشه ریسورس را از
resources/حذف کنید. - سرور را استارت کنید.
deps در ریسورسهای دیگر را بررسی کنید.
تنظیم پایگاه داده
اکثر گیممودهای alt:V به پایگاه داده برای ذخیره اطلاعات بازیکنان، وسایل نقلیه، موجودی و سایر اطلاعات ماندگار نیاز دارند. دو سیستم پایگاه داده رایج برای alt:V عبارتند از MongoDB و MySQL/MariaDB.
MongoDB
MongoDB یک پایگاه داده سندی NoSQL است که معمولاً با ریسورسهای JavaScript/TypeScript استفاده میشود. از یک سرویس مدیریتشده مانند MongoDB Atlas (سطح رایگان موجود) یا یک نمونه خودمیزبان استفاده کنید. رشته اتصال خود را دریافت کنید (مثلاً mongodb+srv://user:[email protected]/mydb) و آن را در فایل پیکربندی ریسورس تنظیم کنید. ریسورسهای Node.js از پکیج mongodb npm استفاده میکنند.
MySQL / MariaDB
MySQL معمولاً با ریسورسهای C# و برخی فریمورکهای JavaScript استفاده میشود. یک پایگاه داده از یک سرویس مدیریتشده یا نمونه خودمیزبان تهیه کنید، ریسورسهای خود را با جزئیات اتصال (هاست، پورت، نام کاربری، رمز عبور، نام پایگاه داده) پیکربندی کنید و هرگونه اسکریپت مایگریشن SQL مورد نیاز را اجرا کنید.
مدیریت بازیکنان
مدیریت بازیکنان در alt:V از طریق ریسورسهای شما انجام میشود. عملیات رایج شامل:
شناسایی بازیکنان
alt:V چندین شناسه برای هر بازیکن متصل فراهم میکند:
| شناسه | توضیحات |
|---|---|
player.id |
یک شناسه عددی موقت که برای نشست فعلی اختصاص داده میشود. با اتصال مجدد تغییر میکند. |
player.socialID |
شناسه Rockstar Social Club بازیکن. در نشستهای مختلف ثابت میماند. |
player.hwidHash |
هش شناسه سختافزاری. برای اعمال بن مفید است. |
player.ip |
آدرس IP بازیکن. |
اخراج و بن کردن
قابلیت اخراج (kick) و بن (ban) را در ریسورسهای خود پیادهسازی کنید:
import alt from "alt-server";
// Kick a player
player.kick("Reason for kick");
// Ban check on connect (store bans in database)
alt.on("playerConnect", (player) => {
if (isPlayerBanned(player.socialID)) {
player.kick("You are banned from this server.");
}
});
socialID و hwidHash استفاده کنید.
مدیریت وسایل نقلیه و سلاحها
وسایل نقلیه و سلاحها از طریق اسکریپتهای سمت سرور مدیریت میشوند. alt:V کنترل کامل بر ایجاد، تغییر و حذف وسایل نقلیه و سلاحها را در اختیار شما قرار میدهد.
ایجاد وسایل نقلیه
import alt from "alt-server";
// Spawn a vehicle at a position
const vehicle = new alt.Vehicle(
"sultan", // Vehicle model name
0, 0, 72, // Position (x, y, z)
0, 0, 0 // Rotation (rx, ry, rz)
);
vehicle.numberPlateText = "LEGION";
دادن سلاح
// Give a weapon to a player
player.giveWeapon(alt.hash("weapon_pistol"), 100, true);
// Remove all weapons
player.removeAllWeapons();
ماندگاری وسایل نقلیه
به صورت پیشفرض، وسایل نقلیه فقط در حافظه سرور وجود دارند و با ریاستارت از بین میروند. برای ماندگاری وسایل نقلیه پس از ریاستارت، اطلاعات آنها (مدل، موقعیت، تغییرات، مالک) را در پایگاه داده ذخیره کرده و هنگام شروع سرور دوباره ایجاد کنید.
عیبیابی
ریسورسها بارگذاری نمیشوند
- بررسی کنید که نام ریسورس در
server.tomlدقیقاً با نام پوشه درresources/مطابقت داشته باشد. - مطمئن شوید ریسورس دارای فایل
resource.tomlمعتبر با فیلدهای صحیحtypeوmainباشد. - کنسول را برای پیامهای خطا هنگام بارگذاری ریسورس بررسی کنید. خطاهای نحوی در اسکریپتها مانع از شروع ریسورس میشوند.
- مطمئن شوید تمام وابستگیهای لیست شده در
depsنصب و بارگذاری شدهاند. - مطمئن شوید ماژول صحیح در
server.tomlبارگذاری شده است (js-moduleبرای JavaScript،csharp-moduleبرای C#).
بازیکنان نمیتوانند متصل شوند
- بررسی کنید سرور در حال اجرا باشد و در GPanel به صورت آنلاین نشان داده شود.
- مطمئن شوید بازیکنان از لانچر alt:V استفاده میکنند، نه لانچر معمولی GTA V.
- اطمینان حاصل کنید شاخه سرور alt:V با نسخه بازیکنان مطابقت دارد (release، rc یا dev). عدم تطابق شاخهها مانع اتصال میشود.
- اگر با رمز عبور محافظت شده است، مطمئن شوید بازیکنان رمز عبور صحیح را وارد میکنند.
- از بازیکنان بخواهید اتصال مستقیم با IP و پورت را امتحان کنند. به نحوه یافتن IP و پورت سرور مراجعه کنید.
کرش سرور
- کنسول را برای پیامهای خطا قبل از کرش بررسی کنید.
- ریسورسهای معیوب رایجترین دلیل کرش هستند. ریسورسهای اخیراً اضافه شده را غیرفعال کنید تا مشکل مشخص شود.
- مطمئن شوید فایلهای سرور بهروز هستند. در صورت نیاز از تب Startup یک نصب مجدد انجام دهید.
- نشت حافظه در ریسورسها میتواند باعث کمبود RAM سرور در طول زمان شود. نمودارهای منابع GPanel را برای افزایش مداوم مصرف حافظه بررسی کنید.
مشکلات پایگاه داده و صدا
- اعتبارنامهها و رشتههای اتصال پایگاه داده را بررسی کنید. برای MongoDB Atlas، آدرس IP سرور خود را در تنظیمات دسترسی شبکه وایتلیست کنید.
- کنسول را برای پیامهای خطای اتصال پایگاه داده بررسی کنید.
- چت صوتی نیاز به بخش
[voice]درserver.tomlبه اضافه ریسورسهایی دارد که منطق کانال صوتی را پیادهسازی کنند. تنظیمات به تنهایی فقط زیرساخت را راهاندازی میکنند.
مشکلات عملکرد
- ریسورسهای خود را برای عملیات سنگین پروفایل کنید (حلقههای سنگین، فراخوانیهای همزمان پایگاه داده، ایجاد بیش از حد موجودیتها).
- از
alt.setIntervalوalt.setTimeoutبا احتیاط استفاده کنید. عملیات سنگین در هر تیک رایجترین عامل کاهش عملکرد است. - نمودارهای منابع GPanel را برای مصرف CPU و RAM بررسی کنید.
- برای تعداد بالای بازیکنان، ارتقای پلن سرور را در نظر بگیرید. برای بحث درباره گزینهها یک تیکت پشتیبانی باز کنید.
مقالات مرتبط
- راهنمای راهاندازی سرور alt:V — تنظیمات اولیه، پیکربندی server.toml، چت صوتی و دستورالعملهای اتصال
- نحوه یافتن IP و پورت سرور
- نحوه آپلود فایل از طریق SFTP
- راهنمای راهاندازی سرور — راهنمای عمومی برای شروع هر سرور بازی در Legion Hosting
به کمک بیشتری نیاز دارید؟
اگر مشکلاتی دارید که در این راهنما پوشش داده نشده است، تیم پشتیبانی ما آماده کمک است. یک تیکت در legionhosting.net/submitticket.php با جزئیات سرور، شرح مشکل و هرگونه پیام خطای مربوطه از کنسول GPanel باز کنید.