# การติดตั้ง

คู่มือนี้ใช้แพ็กเกจเผยแพร่ที่คอมไพล์อินเทอร์เฟซไว้แล้ว คุณไม่จำเป็นต้องใช้ Node.js หรือคอมไพล์ UI ใหม่เพื่อติดตั้ง

## ข้อกำหนด

| ส่วนประกอบ | จำเป็นเมื่อใด |
| --- | --- |
| `oxmysql` และการเชื่อมต่อฐานข้อมูลที่ใช้งานได้ | จำเป็นสำหรับบันทึกข้อมูลของรีซอร์ส |
| Qbox, QBCore หรือ ESX | เมื่อใช้ระบบเศรษฐกิจและสิทธิ์ของเฟรมเวิร์กเหล่านี้ คุณเชื่อมต่อระบบเศรษฐกิจอื่นได้ด้วย callbacks แบบ standalone |
| แพ็กสัก | เป็นตัวเลือก ติดตั้งได้ทั้งหมด บางแพ็ก หรือไม่ติดตั้งเลย |
| `ox_lib` | เป็นตัวเลือกสำหรับการแจ้งเตือน TextUI โดยมีทางเลือกแบบ native ให้ใช้ |
| ระบบรูปลักษณ์ | หากเซิร์ฟเวอร์ของคุณใช้ระบบนี้ ให้อ่าน [bridge สำหรับรูปลักษณ์](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/05-integraciones.md#รูปลักษณ์และการโหลดตัวละคร) |

พิมพ์เขียวแชร์กันผ่านรหัส คุณไม่จำเป็นต้องเพิ่มไอเท็มในอินเวนทอรีเพื่อใช้การตั้งค่าที่ให้มา

## วางรีซอร์ส

1. แตกแพ็กเกจไปยังโฟลเดอร์รีซอร์สของเซิร์ฟเวอร์
2. ในคู่มือนี้ใช้ `cxg-tattoos` เป็นชื่อโฟลเดอร์ หากโฟลเดอร์ของคุณใช้ชื่ออื่น ให้ใช้ชื่อจริงในคำสั่ง `ensure` และ `restart`
3. คงโครงสร้างที่ให้มาไว้ ตรวจสอบว่ามี `config.lua`, `shared/tattoos.json`, `bridge/` และ `ui/dist/index.html` พร้อมกับไฟล์อื่นในแพ็กเกจ
4. ตั้งค่าการเชื่อมต่อฐานข้อมูลและตรวจสอบว่า `oxmysql` เริ่มทำงานได้ถูกต้อง

## ลำดับการเริ่มทำงาน

ตัวอย่างสำหรับ Qbox ที่ไม่มีแพ็กภายนอก:

```cfg
ensure oxmysql
ensure qbx_core
ensure cxg-tattoos
```

สำหรับ QBCore หรือ ESX ให้แทนที่ `qbx_core` ด้วย `qb-core` หรือ `es_extended` หากใช้ระบบรูปลักษณ์ ให้เริ่มระบบนั้นก่อนรีซอร์สนี้ สำหรับ standalone ให้ตั้งค่า [callbacks สำหรับการชำระเงินและสิทธิ์](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/05-integraciones.md) ก่อน

หากมีแพ็ก ให้เริ่มเฉพาะแพ็กที่ติดตั้งไว้ก่อนรีซอร์ส ตัวอย่างเช่น:

```cfg
ensure oxmysql
ensure qbx_core
ensure xgc_TattooClasic
ensure xgc_TattooGangs
ensure cxg-tattoos
```

อย่าเพิ่มบรรทัด `ensure` สำหรับแพ็กที่คุณไม่มี แหล่งข้อมูลเริ่มต้นสามารถคงไว้ใน `Config.TattooCatalog.sources` ได้ ระบบจะข้ามแพ็กที่ไม่ได้เริ่มทำงาน

## การเริ่มทำงานครั้งแรก

รีซอร์สจะเตรียมพื้นที่จัดเก็บให้อัตโนมัติ การติดตั้งใหม่ไม่จำเป็นต้องนำเข้าสคีมาด้วยตนเอง

ก่อนทดสอบ ให้ตรวจสอบรายการต่อไปนี้ใน `config.lua`:

- `Config.Locale`: ภาษาหลัก
- `Config.Purchases`: ระบบเศรษฐกิจและบัญชีที่ใช้เรียกเก็บเงิน
- `Config.Permissions`: สิทธิ์การเข้าถึงสำหรับผู้ดูแล
- `Config.Identity`: ระบบอัตลักษณ์ของเซิร์ฟเวอร์และตัวระบุที่ใช้บันทึกและเรียกคืนข้อมูลผู้เล่น ดูที่ [ระบบอัตลักษณ์](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/03-configuracion.md#ระบบอัตลักษณ์)
- `Config.Shops`: ตำแหน่งเริ่มต้นของร้านค้า

เดินไปยังร้านที่ตั้งค่าไว้แล้วใช้ปฏิสัมพันธ์ ตรวจสอบแคตตาล็อก การแสดงตัวอย่าง และการซื้อด้วยตัวละครทดสอบ จากนั้นโหลดตัวละครอีกครั้งเพื่อดูว่ารอยสักยังอยู่หรือไม่

คำสั่งผู้ดูแลที่มีมาให้ตั้งค่าใน `Config.AdminCommand`; ชื่อเริ่มต้นคือ `/tattooadmin` อ่าน [สิทธิ์และการชำระเงิน](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/05-integraciones.md) ก่อนใช้งาน

## ใช้การเปลี่ยนแปลง

หลังแก้ไข `config.lua` หรือ bridge ให้บันทึกไฟล์แล้วรีสตาร์ตรีซอร์ส:

```cfg
restart cxg-tattoos
```

ระบบจะอ่านแหล่งข้อมูลแคตตาล็อกอีกครั้งเมื่อเริ่มทำงาน และซิงก์ข้อมูลจากแผงควบคุมได้ การตั้งค่าที่บันทึกผ่านแผงควบคุมจะยังคงอยู่ อ่าน [การตั้งค่า](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/03-configuracion.md) และ [แคตตาล็อก](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/04-catalogo.md) ก่อนคาดหวังว่าค่าจากไฟล์จะเขียนทับค่าเหล่านั้น

## ปัญหาที่พบบ่อย

| อาการ | สิ่งที่ควรตรวจสอบ |
| --- | --- |
| รีซอร์สเริ่มทำงานไม่ได้ | `oxmysql` เริ่มทำงานแล้ว การเชื่อมต่อใช้งานได้ และแพ็กเกจมีไฟล์ครบ |
| แพ็กไม่ปรากฏในร้าน | รีซอร์สนั้นเริ่มทำงานแล้ว `enabled` ไม่ได้เป็น `false` และเส้นทาง JSON ตรงกับของแพ็ก |
| อินเทอร์เฟซว่างเปล่า | คัดลอก `ui/dist/index.html` พร้อมไฟล์ที่อ้างถึงใน `ui/dist/assets/` มาด้วยกัน |
| แผงควบคุมปฏิเสธการเข้าถึง | ตรวจ `Config.AdminCommand.permission`, bindings ของสิทธิ์ และ roles หรือ ACE ที่ตั้งค่าไว้ |
| การชำระเงินถูกปฏิเสธ | ตรวจเฟรมเวิร์กที่เลือก ชื่อรีซอร์ส ยอดเงิน และ callbacks แบบ standalone หากเกี่ยวข้อง |
| มีปฏิสัมพันธ์ร้านสักสองรายการในตำแหน่งเดียวกัน | ตรวจว่ามีรีซอร์สระบบรูปลักษณ์หรือร้านค้าอื่นเปิดใช้งานตำแหน่งนั้นด้วยหรือไม่ ให้เหลือทางเข้าร้านที่ต้องการใช้เพียงรายการเดียว |
| การเปลี่ยนร้านค้าหรือระดับไม่มีผล | ตรวจว่ามีการบันทึกการตั้งค่าจากแผงควบคุมไว้แล้วหรือไม่ ให้แก้ค่าที่มีผลจริงจากแผงควบคุม |

คุณเปิด `Config.Debug` และ `Config.Permissions.debug` ชั่วคราวเพื่อวินิจฉัยปัญหาได้ ปิดใช้งานเมื่อเสร็จแล้ว

[ไปยังการตั้งค่า](https://docs.cxgstudios.com/docs/th/01-cxg-tattoos/03-configuracion.md)
