คู่มือนี้ครอบคลุมการพัฒนา resource การตั้งค่าฐานข้อมูล เครื่องมือแอดมิน การจัดการผู้เล่น การจัดการยานพาหนะและอาวุธ และการแก้ไขปัญหาสำหรับเซิร์ฟเวอร์ alt:V ของคุณบน Legion Hosting สำหรับการตั้งค่าเซิร์ฟเวอร์เริ่มต้น การกำหนดค่า server.toml และคำแนะนำการเชื่อมต่อ ดูที่ คู่มือการตั้งค่าเซิร์ฟเวอร์ alt:V
การตั้งค่าแอดมิน
alt:V ไม่มีระบบแอดมินในตัว ฟังก์ชันการทำงานของแอดมินถูกนำมาใช้ผ่าน resource (สคริปต์) ที่คุณสร้างหรือติดตั้ง gamemode ส่วนใหญ่มีระบบแอดมินของตัวเองพร้อมระดับสิทธิ์ บทบาท และคำสั่งแอดมิน
แนวทางการจัดการแอดมินที่พบบ่อย
- บทบาทที่อิงฐานข้อมูล: เฟรมเวิร์ก roleplay และ gamemode ส่วนใหญ่เก็บบทบาทแอดมินในฐานข้อมูล แอดมินจะถูกกำหนดบทบาท (เช่น moderator, admin, superadmin) ที่ให้ระดับสิทธิ์ที่แตกต่างกัน
- แอดมินที่อิงการกำหนดค่า: การตั้งค่าที่ง่ายกว่าอาจใช้ไฟล์การกำหนดค่าที่ระบุ Steam ID หรือ alt:V ID ของแอดมินพร้อมระดับสิทธิ์ของพวกเขา
- คำสั่ง Console: console ของเซิร์ฟเวอร์ใน GPanel มีสิทธิ์เข้าถึงเต็มรูปแบบเสมอ คุณสามารถเขียนสคริปต์ฝั่งเซิร์ฟเวอร์ที่รับ input จาก console สำหรับการดำเนินการของแอดมิน
การตั้งค่า Admin Resource
- เลือกหรือพัฒนา admin resource ที่เหมาะกับ gamemode ของคุณ
- อัปโหลด resource ไปยังไดเรกทอรี
resources/ผ่านแท็บ Files หรือ SFTP - เพิ่มชื่อ resource ลงในอาร์เรย์
resourcesในserver.toml - กำหนดค่า admin resource (ตั้ง Steam/alt:V ID ของแอดมิน ระดับสิทธิ์ ฯลฯ)
- รีสตาร์ทเซิร์ฟเวอร์
ระบบ Resource
Resource เป็นองค์ประกอบหลักของเซิร์ฟเวอร์ alt:V แต่ละ resource เป็นโมดูลที่สมบูรณ์ในตัวเองซึ่งสามารถมีโค้ดฝั่งเซิร์ฟเวอร์ โค้ดฝั่งไคลเอนต์ หรือทั้งสองอย่าง Resource เขียนด้วย JavaScript, TypeScript หรือ C#
โครงสร้างของ Resource
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 (server-side entry point), client-main (client-side entry point, ทำงานใน GTA V ของผู้เล่น), client-files (ไฟล์ที่ส่งไปยังไคลเอนต์ รองรับ glob), deps (resource อื่นที่จะโหลดก่อน)
การติดตั้ง Resource
หากต้องการติดตั้ง resource ที่สร้างไว้แล้วบนเซิร์ฟเวอร์ของคุณ:
- ดาวน์โหลดไฟล์ resource (โดยทั่วไปเป็นโฟลเดอร์ที่มี
resource.tomlและไฟล์สคริปต์) - หยุดเซิร์ฟเวอร์ของคุณใน GPanel
- อัปโหลดโฟลเดอร์ resource ไปยัง
resources/ผ่านแท็บ Files หรือ SFTP - เพิ่มชื่อโฟลเดอร์ resource ลงในอาร์เรย์
resourcesในserver.toml:
resources = ["existing-resource", "new-resource"]
- หาก resource มี dependency ให้ตรวจสอบว่าได้ติดตั้งและระบุไว้ด้วย
- กำหนดค่า resource ตามเอกสารของมัน (ไฟล์การกำหนดค่า การตั้งค่าฐานข้อมูล ฯลฯ)
- เริ่มเซิร์ฟเวอร์ ตรวจสอบ console สำหรับข้อความการโหลด resource และข้อผิดพลาดใดๆ
การลบ Resource
- หยุดเซิร์ฟเวอร์ของคุณ
- ลบชื่อ resource ออกจากอาร์เรย์
resourcesในserver.toml - ลบโฟลเดอร์ resource ออกจาก
resources/ตามต้องการ - เริ่มเซิร์ฟเวอร์
deps ใน resource อื่นก่อนลบ
การตั้งค่าฐานข้อมูล
gamemode ของ alt:V ส่วนใหญ่ต้องการฐานข้อมูลเพื่อจัดเก็บข้อมูลผู้เล่น ยานพาหนะ คลังไอเทม และข้อมูลถาวรอื่นๆ ระบบฐานข้อมูลที่พบบ่อยที่สุดสองตัวสำหรับ alt:V คือ MongoDB และ MySQL/MariaDB
MongoDB
MongoDB เป็นฐานข้อมูลแบบ document NoSQL ที่ใช้กันทั่วไปกับ resource JavaScript/TypeScript ใช้บริการแบบ managed เช่น MongoDB Atlas (มี free tier) หรืออินสแตนซ์แบบ self-hosted รับ connection string ของคุณ (เช่น mongodb+srv://user:[email protected]/mydb) และกำหนดค่าในไฟล์การกำหนดค่าของ resource ของคุณ resource Node.js ใช้แพ็กเกจ npm mongodb
MySQL / MariaDB
MySQL ใช้กันทั่วไปกับ resource C# และเฟรมเวิร์ก JavaScript บางตัว จัดหาฐานข้อมูลจากบริการแบบ managed หรืออินสแตนซ์แบบ self-hosted กำหนดค่า resource ของคุณด้วยรายละเอียดการเชื่อมต่อ (host, port, username, password, ชื่อฐานข้อมูล) และรันสคริปต์ SQL migration ที่จำเป็นใดๆ
การจัดการผู้เล่น
การจัดการผู้เล่นใน alt:V ถูกจัดการผ่าน resource ของคุณ การดำเนินการที่พบบ่อยได้แก่:
การระบุตัวผู้เล่น
alt:V มีตัวระบุหลายแบบสำหรับผู้เล่นที่เชื่อมต่อแต่ละคน:
| ตัวระบุ | คำอธิบาย |
|---|---|
player.id |
ID ตัวเลขชั่วคราวที่กำหนดสำหรับเซสชันปัจจุบัน เปลี่ยนเมื่อเชื่อมต่อใหม่ |
player.socialID |
Rockstar Social Club ID ของผู้เล่น คงอยู่ตลอดทุกเซสชัน |
player.hwidHash |
hash ตัวระบุฮาร์ดแวร์ มีประโยชน์สำหรับการบังคับใช้การแบน |
player.ip |
ที่อยู่ IP ของผู้เล่น |
การ Kick และ Ban
นำฟังก์ชันการ kick และ ban มาใช้ใน resource ของคุณ:
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();
ความคงอยู่ของยานพาหนะ
โดยค่าเริ่มต้น ยานพาหนะมีอยู่เฉพาะในหน่วยความจำของเซิร์ฟเวอร์และจะสูญหายเมื่อรีสตาร์ท หากต้องการให้ยานพาหนะคงอยู่ตลอดการรีสตาร์ท ให้เก็บข้อมูลของมัน (model, ตำแหน่ง, การปรับแต่ง, เจ้าของ) ไว้ในฐานข้อมูลและสร้างใหม่เมื่อเซิร์ฟเวอร์เริ่มทำงาน
การแก้ไขปัญหา
Resource ไม่โหลด
- ตรวจสอบว่าชื่อ resource ใน
server.tomlตรงกับชื่อโฟลเดอร์ในresources/ทุกประการ - ตรวจสอบว่า resource มีไฟล์
resource.tomlที่ถูกต้องพร้อมฟิลด์typeและmainที่ถูกต้อง - ตรวจสอบ console สำหรับข้อความแสดงข้อผิดพลาดระหว่างการโหลด resource ข้อผิดพลาดทางไวยากรณ์ในสคริปต์จะป้องกันไม่ให้ resource เริ่มทำงาน
- ตรวจสอบให้แน่ใจว่า dependency ทั้งหมดที่ระบุไว้ใน
depsได้รับการติดตั้งและโหลดแล้ว - ตรวจสอบว่าโมดูลที่ถูกต้องถูกโหลดใน
server.toml(js-moduleสำหรับ JavaScript,csharp-moduleสำหรับ C#)
ผู้เล่นเชื่อมต่อไม่ได้
- ตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงานและแสดงสถานะออนไลน์ใน GPanel
- ตรวจสอบว่าผู้เล่นใช้ alt:V launcher ไม่ใช่ GTA V launcher ปกติ
- ตรวจสอบให้แน่ใจว่า branch ของเซิร์ฟเวอร์ alt:V ตรงกับที่ผู้เล่นมี (release, rc หรือ dev) branch ที่ไม่ตรงกันจะป้องกันการเชื่อมต่อ
- หากมีการป้องกันด้วยรหัสผ่าน ตรวจสอบว่าผู้เล่นป้อนรหัสผ่านที่ถูกต้อง
- ให้ผู้เล่นลองเชื่อมต่อโดยตรงด้วย IP และ port ดูที่ วิธีค้นหา IP และ Port ของเซิร์ฟเวอร์
เซิร์ฟเวอร์แครช
- ตรวจสอบ console สำหรับข้อความแสดงข้อผิดพลาดก่อนการแครช
- resource ที่บกพร่องเป็นสาเหตุของการแครชที่พบบ่อยที่สุด ปิดใช้งาน resource ที่เพิ่งเพิ่มเข้ามาเพื่อแยกแยะปัญหา
- ตรวจสอบให้แน่ใจว่าไฟล์เซิร์ฟเวอร์ของคุณเป็นเวอร์ชันล่าสุด เริ่มการติดตั้งใหม่จากแท็บ Startup หากจำเป็น
- Memory leak ใน resource อาจทำให้เซิร์ฟเวอร์ใช้ RAM หมดเมื่อเวลาผ่านไป เฝ้าดูกราฟทรัพยากรของ GPanel สำหรับการใช้หน่วยความจำที่เพิ่มขึ้นอย่างต่อเนื่อง
ปัญหาฐานข้อมูลและ Voice
- ตรวจสอบข้อมูลรับรองฐานข้อมูลและ connection string สำหรับ MongoDB Atlas ให้เพิ่ม IP ของเซิร์ฟเวอร์ของคุณลงใน whitelist ในการตั้งค่า network access
- ตรวจสอบ console สำหรับข้อความแสดงข้อผิดพลาดการเชื่อมต่อฐานข้อมูล
- Voice chat ต้องการส่วน
[voice]ในserver.tomlรวมถึง resource ที่นำตรรกะ voice channel มาใช้ การกำหนดค่าเพียงอย่างเดียวเป็นเพียงการตั้งค่าโครงสร้างพื้นฐานเท่านั้น
ปัญหาด้านประสิทธิภาพ
- ทำ profile resource ของคุณเพื่อหาการดำเนินการที่ใช้ทรัพยากรมาก (ลูปหนัก การเรียกฐานข้อมูลแบบ synchronous การสร้าง entity มากเกินไป)
- ใช้
alt.setIntervalและalt.setTimeoutอย่างประหยัด การดำเนินการที่หนักต่อ tick เป็นตัวบ่อนทำลายประสิทธิภาพที่พบบ่อยที่สุด - เฝ้าดูกราฟทรัพยากรของ GPanel สำหรับการใช้ CPU และ RAM
- พิจารณาอัปเกรดแพ็กเกจเซิร์ฟเวอร์ของคุณสำหรับจำนวนผู้เล่นที่สูง เปิด support ticket เพื่อปรึกษาตัวเลือก
บทความที่เกี่ยวข้อง
- คู่มือการตั้งค่าเซิร์ฟเวอร์ alt:V — การตั้งค่าเริ่มต้น การกำหนดค่า server.toml, voice chat และคำแนะนำการเชื่อมต่อ
- วิธีค้นหา IP และ Port ของเซิร์ฟเวอร์
- วิธีอัปโหลดไฟล์ผ่าน SFTP
- คู่มือการเริ่มต้นเซิร์ฟเวอร์ — คู่มือทั่วไปสำหรับการเริ่มต้นเซิร์ฟเวอร์เกมใดก็ได้บน Legion Hosting
ต้องการความช่วยเหลือเพิ่มเติม?
หากคุณประสบปัญหาที่ไม่ครอบคลุมในคู่มือนี้ ทีมสนับสนุนของเราพร้อมช่วยเหลือ เปิด ticket ที่ legionhosting.net/submitticket.php พร้อมรายละเอียดเซิร์ฟเวอร์ของคุณ คำอธิบายปัญหา และข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องใดๆ จาก console ของ GPanel