คู่มือ Pulse Phone
การแก้ปัญหา
11. การแก้ปัญหา
เริ่มที่นี่: อ่านผลการตรวจสอบตอนเริ่มในคอนโซลเซิร์ฟเวอร์ ซึ่งขึ้นต้นด้วย PULSE PHONE v1.x.x และ build แล้วแสดงหนึ่งบรรทัดต่อหนึ่งส่วน (Server, Database, Framework, Connected scripts, Items...) ทุกบรรทัด FIX หรือ NOTE จะมีปัญหาและวิธีแก้อยู่ด้านล่าง (-> ...) พิมพ์ phone:health เพื่อดูรายงานเต็มทีละบรรทัด และ phone:diag เพื่อดูรายละเอียด
โทรศัพท์เปิดไม่ขึ้น
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
กด F1 แล้วไม่มีอะไรเกิดขึ้น แต่ /phone ใช้ได้ |
สคริปต์อื่นใช้ปุ่ม F1 | ตั้งปุ่มใหม่ใน Settings > Key Bindings > FiveM หรือเปลี่ยน Config.Keys.open ค่าเริ่มต้นใหม่จะมีผลเฉพาะกับผู้เล่นที่ไม่เคยตั้งปุ่มนั้นเท่านั้น |
| ไม่มีอะไรเปิดเลย | ผู้เล่นไม่มีไอเทมโทรศัพท์ แบตหมด สคริปต์อื่นปิดโทรศัพท์ไว้ หรือผู้เล่นตาย ถูกใส่กุญแจมือ หรืออยู่ในสถานะที่ถูกบล็อกอื่นๆ | ตรวจ Config.Item.required แบตเตอรี่ และสถานะใน Config.Block |
| เปิดทับอินเวนทอรีหรือเมนูไม่ได้ | ตั้งใจให้เป็นแบบนี้ (Config.Open.blockWhenNuiFocused) |
ปิดเมนูอื่นก่อน |
| "No phone item": ไม่มีใครเปิดได้เลย | Config.Item.required = true แต่ไม่มีไอเทม phone ในอินเวนทอรีของคุณ หรือผู้เล่นไม่ได้พกไอเทม |
เพิ่มไอเทม phone (หัวข้อที่ 4) และให้ผู้เล่น หรือตั้ง Config.Item.required = false |
| โทรศัพท์ใหม่จอดำและขึ้น "Hold to turn on" | โทรศัพท์มาแบบปิดเครื่อง: Config.Device.arrivesOn = false ตั้งแต่ 1.4.0 โทรศัพท์ใหม่จะเปิดเครื่องมาเป็นค่าเริ่มต้น ส่วน config.lua ที่เก็บไว้จากเวอร์ชันก่อนจะคงค่าเดิม |
ขณะถือโทรศัพท์อยู่ กด End หรือ O (Config.Keys.power) ค้างประมาณสองวินาที หรือกดปุ่มข้างของตัวเครื่องค้างด้วยเมาส์ ปัดขึ้นที่หน้าจอต้อนรับเพื่อเริ่มตั้งค่า |
กล่องหายไปแต่ไม่มีไอเทม phone ปรากฏ |
Config.Item.required = false และ unique = false ใช้โทรศัพท์ที่ตัวละครเป็นเจ้าของ โดยไม่มีไอเทมในอินเวนทอรี |
เปิดโทรศัพท์ตามปกติ ถ้าเซิร์ฟเวอร์ของคุณควรบังคับให้พกไอเทม ให้เปิด Config.Item.required ก่อนขายโทรศัพท์ แล้วรีสตาร์ท Pulse |
| หน้าจอว่างหรือขาว | ฝั่งเซิร์ฟเวอร์ไม่ได้ทำงาน F8 แสดง the server never answered bootstrap - is the resource running server-side? |
อ่านคอนโซลเซิร์ฟเวอร์เพื่อหาบรรทัด [phone] สีแดงหรือข้อผิดพลาด escrow (ด้านล่าง) |
หน้าจอว่าง คอนโซลแจ้ง ui/index.html missing |
โฟลเดอร์ ui/ ถูกลบหรือไม่ได้อัปโหลด |
อัปโหลดโฟลเดอร์ phone ทั้งหมดใหม่ ห้ามลบ ui/ |
ตัวเครื่องแสดงในมือแต่หน้าจอไม่ขึ้นเลย การตรวจสอบตอนเริ่มแสดง [FAIL] Interface ระบุไฟล์ใน ui/assets/ |
ไฟล์นั้นหายไปจากชุดของคุณ: อัปโหลดไม่ครบ หรือแอนติไวรัสลบไป | ดาวน์โหลดโทรศัพท์ใหม่จาก Keymaster แล้วอัปโหลดทั้งโฟลเดอร์ ถ้าไฟล์หายอีก ให้เพิ่มโฟลเดอร์เซิร์ฟเวอร์ในรายการยกเว้นของแอนติไวรัส |
| เคอร์เซอร์ค้างอยู่กลางจอ | raw input ของ GTA ปิดอยู่ | ผู้เล่นเปิด raw input ในการตั้งค่าของ GTA |
เฟรมเวิร์ก เงิน และอาชีพ
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
FRAMEWORK NOT SELECTED: more than one framework is started |
มี core สองตัวทำงานอยู่ เช่น es_extended และ qb-core | ตั้ง Config.Framework ใน config/config.lua เป็นตัวที่คุณใช้ หรือเพิ่ม setr phone_framework <name> ใน server.cfg (หัวข้อที่ 3) จนกว่าจะแก้ ฟีเจอร์เกี่ยวกับเงินจะปิดอยู่ |
คอนโซลแสดง framework not ready: ... และโทรศัพท์ค้างที่หน้าจอ "not ready" |
เฟรมเวิร์กที่โทรศัพท์ตรวจพบหรือถูกสั่งให้ใช้ยังไม่ทำงาน: ยังกำลังเริ่ม กำลังรีสตาร์ท หยุดอยู่ หรือ (แบบคัสตอม) ไม่เคยลงทะเบียน bridge เงินจะถูกปฏิเสธจนกว่าจะพร้อม | Start โทรศัพท์หลังเฟรมเวิร์ก หลังรีสตาร์ท core ให้รอสักครู่ หรือรีสตาร์ทโทรศัพท์ด้วย เฟรมเวิร์กคัสตอม: ลงทะเบียน bridge และเรียก exports.phone:FrameworkRestarted() หลังรีสตาร์ท core เซิร์ฟเวอร์ที่ไม่มีเฟรมเวิร์กเลย: ตั้ง Config.Framework = 'standalone' ใน config/config.lua หรือเพิ่ม setr phone_framework standalone ใน server.cfg (มีผลเหนือ config) |
| ตรวจจับเฟรมเวิร์กผิด: บรรทัดตอนเริ่มระบุตัวที่คุณไม่ได้ใช้ | ox_core ถูก start คู่กับ ESX, QBCore หรือ Qbox (โทรศัพท์จะใช้อีกตัว) หรือ core ของคุณถูกเปลี่ยนชื่อ resource | หยุด core ที่คุณไม่ได้ใช้ หรือบังคับเลือกตัวของคุณด้วย setr phone_framework <name> ใน server.cfg (หัวข้อที่ 3) core ที่ถูกเปลี่ยนชื่อ: ใช้ชื่อเดิม หรือเชื่อมเป็นเฟรมเวิร์กคัสตอม |
Config.Framework = "esx" but es_extended is not started |
ค่าตั้งระบุเฟรมเวิร์กที่ไม่ได้ทำงานอยู่ | แก้ค่าตั้ง หรือตั้งกลับเป็น 'auto' |
บรรทัดตอนเริ่มแสดง Framework: standalone บนเซิร์ฟเวอร์ที่มีเฟรมเวิร์ก |
core ใช้ชื่อ resource อื่น หรือ start หลังโทรศัพท์ | Start โทรศัพท์หลังเฟรมเวิร์ก core ที่ถูกเปลี่ยนชื่อจะหาไม่เจอ: ใช้ชื่อเดิม หรือเชื่อมเป็นเฟรมเวิร์กคัสตอม (หัวข้อที่ 3) |
| ยอดเงินในธนาคารเป็น 0 หรือไม่ถูกต้อง | โทรศัพท์ทำงานแบบ standalone (ธนาคารของตัวเอง) หรือหาเฟรมเวิร์กไม่เจอ | ตรวจส่วน Framework: และ Banking: ของบรรทัดตอนเริ่ม |
| ไม่มีบัญชีบริษัทใน Services | ไม่มีสคริปต์บัญชีบริษัททำงานอยู่ หรือผู้เล่นไม่ใช่หัวหน้า | รันสคริปต์จากหัวข้อที่ 7 ระดับหัวหน้า: boss (ESX), isboss (QBCore / Qbox) หรือ bossGrade บน ox_core และ vRP ไม่มีการจัดการบริษัท |
| ตำรวจหรือ EMS ไม่ได้รับสาย 911 | ชื่ออาชีพของพวกเขาไม่อยู่ในรายการ หรือพวกเขาออกเวรอยู่ | เพิ่มชื่ออาชีพของคุณใน Config.Services และ Config.Emergency ใน config/apps.lua |
<script> found but not connected |
เวอร์ชันของสคริปต์นั้นมี exports ต่างออกไป | โทรศัพท์จะใช้ตัวเลือกถัดไป อัปเดตสคริปต์ หรือเลือกตัวอื่นด้วย Config.Providers |
เซิร์ฟเวอร์ ND Core แต่บรรทัดตอนเริ่มระบุเฟรมเวิร์กอื่นหรือ standalone |
ND_Core start หลังโทรศัพท์ หรือมี core อื่น start อยู่ด้วย |
Start โทรศัพท์หลัง ND_Core หยุด core ที่คุณไม่ได้ใช้ หรือเพิ่ม setr phone_framework nd ใน server.cfg |
ฐานข้อมูล
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
โทรศัพท์โหลดไม่เสร็จเลย F8 แสดง request "bootstrap" timed out |
ตารางของโทรศัพท์ตัวอื่นขวางอยู่ และย้ายหลบไม่ได้ | อ่านผลการตรวจสอบตอนเริ่ม (phone:health) บรรทัด [FAIL] Database ... belong to another script จะระบุชื่อตาราง ดูหัวข้อที่ 2 "ตารางของโทรศัพท์ตัวอื่น" |
การตรวจสอบตอนเริ่ม: [WARN] Database N table(s) of another script were moved aside: phone_x -> old_phone_x |
ตารางที่สคริปต์อื่นทิ้งไว้ภายใต้ชื่อหนึ่งของโทรศัพท์ถูกเปลี่ยนชื่อตอนเริ่ม เพื่อให้โทรศัพท์สร้างตารางของตัวเองได้ ไม่มีอะไรถูกลบ | ฝั่งโทรศัพท์ไม่ต้องทำอะไร ถ้าสคริปต์ของคุณเป็นเจ้าของตารางนั้น ให้ใช้ชื่อตารางอื่น: มันจะหาข้อมูลภายใต้ชื่อเดิมไม่เจอ phoneimport อ่านข้อมูลของโทรศัพท์เก่าจากตรงนั้น (การนำเข้าข้อมูล, "ตารางที่ชื่อซ้ำกับ Pulse Phone") |
การตรวจสอบตอนเริ่ม: [WARN] Database <table> is missing columns the phone writes (...) |
ตารางใช้ชื่อของโทรศัพท์แต่ขาดคอลัมน์ที่โทรศัพท์เขียน และไม่ชัดเจนว่าเป็นของสคริปต์อื่น จึงถูกปล่อยไว้โดยตั้งใจ: การเปลี่ยนชื่อผิดจะแย่กว่าคำเตือน | ถ้าสคริปต์อื่นสร้างไว้ ให้เปลี่ยนชื่อเป็น old_<table> ในเครื่องมือฐานข้อมูลแล้วรีสตาร์ท ถ้าไม่ใช่ ให้ส่งบรรทัดนั้นถึงซัพพอร์ต (หัวข้อที่ 12) กฎอยู่ในการนำเข้าข้อมูล |
db: could not create table ... check that the database user may CREATE TABLE |
ผู้ใช้ฐานข้อมูลสร้างตารางไม่ได้ | ให้สิทธิ์ CREATE และ ALTER กับผู้ใช้ หรือ import phone.sql ด้วยมือ |
db: could not add column ... |
ผู้ใช้ ALTER ตารางไม่ได้ | เหมือนข้างบน |
is running but the database did not answer |
oxmysql ทำงานแต่เชื่อมต่อฐานข้อมูลไม่ได้ | แก้ mysql_connection_string โทรศัพท์จะลองใหม่เอง |
no SQL resource running - storing data in the resource key/value store |
oxmysql ไม่ได้ start หรือ start หลังโทรศัพท์ | Start oxmysql ก่อนโทรศัพท์ |
auth_gssapi_client ใน log ของ oxmysql |
ผู้ใช้ฐานข้อมูลตั้งให้ล็อกอินด้วย Windows | เปลี่ยนผู้ใช้นั้นให้ใช้รหัสผ่าน: ALTER USER 'fivem'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your-password'); |
phone_db_fallback is "kvp", so the key/value store takes over |
ฐานข้อมูลไม่ตอบ และเปิด fallback ไว้ | ข้อมูลกำลังถูกเขียนลง key/value store และจะไม่เข้าฐานข้อมูล ให้แก้การเชื่อมต่อ |
db: no answer within 10 s, answered as failed: <query> |
query นั้นไม่ได้รับคำตอบ (ฐานข้อมูลช้าหรือถูกล็อก) | แอปที่ขอได้รับแจ้งว่าล้มเหลว ตรวจ log ของ resource SQL |
การโทร รูปภาพ และตัวเครื่อง
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
โทรติดแต่ไม่มีเสียง, no voice resource |
ไม่มีสคริปต์เสียงพูดทำงานอยู่ | Start pma-voice (หรือตัวอื่นจากหัวข้อที่ 5) ก่อนโทรศัพท์ |
ไม่มีเสียง, 2 voice resources running |
สคริปต์เสียงพูดสองตัวแย่งช่องเดียวกัน | รันตัวเดียวเท่านั้น |
| วิดีโอคอลแสดงแค่ภาพของผู้โทร | ผู้เล่นสองคนเชื่อมต่อกันโดยตรงไม่ได้ | ตั้งค่า video relay ตามคู่มือขั้นสูงที่ลิงก์ไว้ในหัวข้อที่ 5 |
| สายที่รวมกันมีเสียงแต่ไม่มีภาพ | วิดีโอคอลกลุ่มถูกปิด หรือที่นั่งวิดีโอที่ตั้งไว้เต็มแล้ว ผู้เข้าร่วมแบบเสียงยังอยู่ในการประชุมได้โดยไม่มีที่นั่งวิดีโอ | ใน config/config.lua ตรวจ Config.Calls.groupVideo และ Config.Calls.groupVideoMax วิดีโอคอลกลุ่มเปิดเป็นค่าเริ่มต้นพร้อมที่นั่งวิดีโอสี่ที่ ทำตามการตั้งค่า video relay ที่ลิงก์ไว้ในหัวข้อที่ 5 สำหรับการเชื่อมต่อในการใช้งานจริง |
| คลิปวิดีโอจากกล้องไม่มีเสียง สำหรับผู้เล่นคนหนึ่ง | ผู้เล่นคนนั้นเคยปฏิเสธคำขอใช้ไมโครโฟนของเกม FiveM จำคำตอบไว้ใน %AppData%\CitizenFX\media_access.json และจะไม่ถามอีก |
ผู้เล่นปิด FiveM ลบ %AppData%\CitizenFX\media_access.json เปิดเกมใหม่ และอนุญาตไมโครโฟนเมื่อถูกถาม |
รูปไม่บันทึก, screenshot-basic not started |
screenshot-basic ไม่ได้ทำงาน | Start ก่อนโทรศัพท์ |
| รูปบันทึกได้แต่แสดงผลเสีย | phone_media_origin เป็น http:// ธรรมดา |
ใช้ที่อยู่แบบ https:// หรือลบค่าตั้งนั้น หรือใช้ Fivemanage (หัวข้อที่ 6) |
refused a media link on "<host>" |
ลิงก์จากโฮสต์ที่ไม่อยู่ในรายการที่อนุญาต | เพิ่มโฮสต์ใน Config.Media.allow (หัวข้อที่ 6) หรือปล่อยให้ถูกปฏิเสธไว้ |
| แอป Radio แจ้งว่าใช้วิทยุไม่ได้ | ไม่มีสคริปต์เสียงพูดทำงานอยู่ หรือเป็น YACA | ดูหัวข้อที่ 5, Radio |
| Radio: "You need a radio to tune in" | ตั้ง Config.Radio.item ไว้ และผู้เล่นไม่ได้พกไอเทมนั้น |
ให้ไอเทมแก่ผู้เล่น หรือตั้ง item = false ใน config/apps.lua |
| ตู้โทรศัพท์สาธารณะปฏิเสธการโทรเพราะเงิน | เงินในบัญชีที่ Config.Payphone.pay ระบุไม่พอ หรือใช้ bridge คัสตอมที่ไม่มีฟังก์ชันเงิน |
บนเซิร์ฟเวอร์ standalone ไม่มีใครมีเงินสด: คง pay = 'either' ไว้ หรือใช้ 'bank' |
| พิมพ์ในช่องข้อความไม่ได้ | สคริปต์อื่นเรียก SetNuiFocus(false, false) ขณะที่โทรศัพท์เปิดอยู่ |
หาสคริปต์นั้น (NUI devtools จะแสดงให้เห็น) |
การตรวจสอบตอนเริ่ม: phone_media_origin not set |
เซิร์ฟเวอร์ไม่มีที่อยู่ Cfx.re สาธารณะ (เซิร์ฟเวอร์ทดสอบแบบ local หรือ LAN) | ผู้เล่นบนเครื่องหรือเครือข่ายเดียวกันใช้ได้ปกติ สำหรับเซิร์ฟเวอร์สาธารณะ ให้ตรวจว่าเซิร์ฟเวอร์อยู่ในรายการ หรือตั้ง setr phone_media_origin "https://..." (หัวข้อที่ 6) |
| มองไม่เห็นตัวเครื่อง เป็นโทรศัพท์ของเกม หรือเป็นกล่องสีเทาในมือ | โมเดลโทรศัพท์ไม่ได้สตรีม F8 แสดง the handset model "pulse_titanium" did not load. (หรือ pulse_ultra, pulse_clear, pulse_flip ตามรุ่นของโทรศัพท์นั้น) |
ตั้ง sv_enforceGameBuild เป็น 2699 ขึ้นไป อัปโหลด stream/ ใหม่โดยไม่แก้ไข และเก็บทุกบรรทัด data_file ใน fxmanifest.lua ไว้ |
ร้านค้าและไอเทม
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
| ไม่มีพนักงานร้าน | พนักงานจะปรากฏเฉพาะในระยะประมาณ 60 m ร้านอาจปิดอยู่ หรือแมพของคุณทับ Legion Square | ตรวจ Config.Store.enabled ย้ายเคาน์เตอร์ได้ใน Config.Store.locations |
store: the item "pulse_phone_box" ... is not registered in your inventory |
ไม่มีไอเทมกล่อง | เพิ่มไอเทม (หัวข้อที่ 4) จนกว่าจะเพิ่ม โทรศัพท์จะถูกส่งมอบโดยไม่มีกล่อง |
ร้านแจ้ง "inventory full" แต่ผู้เล่นมีที่ว่าง คอนโซลแจ้ง store: the inventory would not take <item> |
ไอเทมนั้นไม่อยู่ในรายการไอเทมของอินเวนทอรีคุณ อินเวนทอรีจึงปฏิเสธ | เพิ่มไอเทมที่คอนโซลระบุ (หัวข้อที่ 4 และ config/items/) หรือตั้ง Config.Store.box = false เพื่อส่งมอบโทรศัพท์โดยไม่มีกล่อง การซื้อครั้งนั้นได้รับเงินคืนแล้ว |
ไม่มี Reserve หรือสายชาร์จในร้าน หรือ store: the item "pulse_cable" ... |
ไอเทมชาร์จไม่มีในอินเวนทอรีของคุณ | เพิ่ม pulse_magpack, pulse_magpack_max และ pulse_cable (หัวข้อที่ 4) และรูปภาพของมัน |
ไม่มี Pulse Home Wi-Fi ในร้าน หรือ store: the item "pulse_router" ... |
ไอเทมเราเตอร์ไม่มีในอินเวนทอรีของคุณ หรือ Config.Wifi.enabled เป็น false |
เพิ่ม pulse_router (หัวข้อที่ 4) และรูปภาพของมัน |
Home Wi-Fi: the model "pulse_router" is not streamed ใน F8 |
stream/ อัปโหลดไม่ครบ |
อัปโหลด stream/ ใหม่โดยไม่แก้ไข Wi-Fi ยังใช้ได้ แค่ไม่แสดงเราเตอร์ |
ไม่มี Pulse Burner ในร้าน หรือ store: the item "pulse_burner" ... |
ไอเทม burner ไม่มีในอินเวนทอรีของคุณ หรือ Config.Burner.enabled เป็น false |
เพิ่ม pulse_burner (หัวข้อที่ 4) และรูปภาพของมัน |
Pulse Burner: the model "pulse_burner" is not streamed ใน F8 |
stream/ อัปโหลดไม่ครบ |
อัปโหลด stream/ ใหม่โดยไม่แก้ไข burner ยังใช้ได้ แต่ในมือจะแสดงเป็นเครื่อง Pulse |
| เจ้าหน้าที่ไม่มีแอป Intercept หรือแอปแจ้งว่าออกเวรอยู่ | อาชีพไม่อยู่ใน Config.Taps.jobs ระดับต่ำกว่า minGrade หรือเฟรมเวิร์กแจ้งว่าออกเวรอยู่ |
ตรวจ config/apps.lua และอาชีพของเขา |
| "A router can only go inside a home you own or have a key to" | placement เป็น 'housing' (หรือ 'auto' เมื่อมีสคริปต์บ้าน) |
วางในบ้านของคุณ หรือเปลี่ยน placement ใน config/apps.lua |
| วางเราเตอร์ไม่ได้: วงแหวนยังเป็นสีแดง หรือมีข้อความบอกเหตุผล | ตำแหน่งนั้นผิดกฎ ต้องเป็นพื้นผิวเรียบในระยะประมาณ 3 m จากผู้เล่น (ไม่ใช่ผนังหรือพื้นเอียง) ห่างจากเราเตอร์ตัวอื่นอย่างน้อย minSpacing (8 m) และผู้เล่นต้องวางไว้น้อยกว่า maxPerPlayer (2) ตัว เมื่อ placement = 'interior' ต้องอยู่ในอาคาร ("A router has to go indoors") เมื่อเป็น 'housing' ต้องอยู่ในบ้านที่ผู้เล่นเป็นเจ้าของหรือมีกุญแจ |
ยืนให้ใกล้ขึ้นแล้วเล็งที่พื้นหรือโต๊ะ เก็บเราเตอร์ตัวเก่าก่อน หรือเปลี่ยน placement ใน config/apps.lua (หัวข้อที่ 8, Home Wi-Fi) |
| "Routers go in homes, and this server has no housing script the phone can read" | placement = 'housing' แต่ไม่มีสคริปต์บ้านในหัวข้อที่ 7 ทำงานอยู่เลย |
ตั้ง placement เป็น 'auto' หรือ 'interior' หรือรันสคริปต์บ้านที่รองรับ |
| ไอเทมแสดงโดยไม่มีรูปภาพ | ไม่ได้คัดลอกรูปภาพ | คัดลอก config/items/images/ ไปที่โฟลเดอร์รูปภาพของอินเวนทอรีคุณ บรรทัด Item pictures ในการตรวจสอบตอนเริ่มจะระบุรูปที่ขาดและโฟลเดอร์ |
การตรวจสอบตอนเริ่ม: [FAIL] Items ... missing in ox_inventory |
ox_inventory อ่านเฉพาะไฟล์ไอเทมของตัวเอง | วางรายการที่แสดงใต้กล่องลงใน ox_inventory/data/items.lua แล้วรีสตาร์ท ox_inventory และโทรศัพท์ |
การตรวจสอบตอนเริ่ม: Phone item ... opens <another script> |
รายการ phone ของ ox_inventory ระบุ export ของสคริปต์อื่น |
แทนที่รายการนั้นด้วยรายการที่แสดงใต้กล่อง (มีใน Settings > Server > Health Check พร้อมปุ่ม Copy ด้วย) แล้วรีสตาร์ท ox_inventory รายการเดิมของ ox_inventory ใช้ได้ตามเดิม |
การตรวจสอบตอนเริ่ม: [INFO] Items TMC keeps no item list the phone can read |
TMC ไม่มีวิธีแสดงรายการไอเทม โทรศัพท์จึงบอกไม่ได้ว่ามีตัวไหนอยู่ เป็นข้อมูล ไม่ใช่ข้อผิดพลาด | ตรวจให้แน่ใจว่าทุกไอเทมที่แสดงใต้กล่องอยู่ในรายการไอเทมของ TMC ร้านจะระบุไอเทมที่ TMC ปฏิเสธ |
การตรวจสอบตอนเริ่ม: [WARN] Items ... restart the server once so ESX loads them |
ไอเทมถูกเพิ่มลงในตาราง items ของ ESX แล้ว แต่ ESX รุ่นนี้โหลดใหม่ขณะทำงานไม่ได้ |
รีสตาร์ทเซิร์ฟเวอร์หนึ่งครั้ง |
การตรวจสอบตอนเริ่ม: [WARN] Items ... could not add the items itself |
โทรศัพท์เขียนลงตาราง items ของ ESX หรือไอเทมของ QBCore ไม่ได้ (เหตุผลอยู่ในบรรทัดนั้น) |
ทำด้วยมือ: รัน config/items/esx.sql (ESX) หรือวาง config/items/qb-core.lua ลงใน qb-core/shared/items.lua (QBCore) แล้วรีสตาร์ท |
Unique phones are waiting for their inventory. |
เปิดโทรศัพท์แบบไม่ซ้ำกันอยู่ แต่ไม่มีอินเวนทอรีที่ต้องใช้ทำงานอยู่เลย | Start อินเวนทอรีที่รองรับซึ่งเลือกไว้ก่อนโทรศัพท์ และตรวจ Config.Providers.inventory Pulse จะคงค่าโทรศัพท์แบบไม่ซ้ำกันไว้และทำงานต่อเมื่ออินเวนทอรีนั้นพร้อม อย่าเปลี่ยนโหมดความเป็นเจ้าของเพียงเพื่อเลี่ยงคำเตือนนี้ |
| จ่ายบิลไม่ได้: ไม่มีผู้รับ | บริษัทของบิลไม่มีบัญชีในสคริปต์บัญชีบริษัท หรือหาผู้ส่งไม่เจอ | ตั้ง Config.Bills.payToCity = true เพื่อรับบิลแบบนั้นเป็นค่าปรับของเมือง |
สคริปต์อื่น ภาษา และบริการ
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
สคริปต์ error ด้วย No such export ของโทรศัพท์ตัวอื่น |
มันเรียก exports ของโทรศัพท์ตัวอื่น เช่น exports['<old phone>']:SendMail Pulse Phone ไม่ได้คัดลอก exports ของโทรศัพท์ตัวอื่น |
เปลี่ยนการเรียกนั้นเป็น export ของ Pulse Phone เอง (Exports) หรือขอให้ผู้เขียนสคริปต์เพิ่มตัวเลือกสำหรับ Pulse Phone สคริปต์ที่ใช้ events ไม่ต้องทำอะไร |
No such export สำหรับ phone |
โฟลเดอร์ของโทรศัพท์ถูกเปลี่ยนชื่อ | เปลี่ยนชื่อกลับเป็น phone (ด้านล่าง) |
| ภาษาผิด | Config.Locale ตั้งเป็นภาษาอื่น หรือผู้เล่นเลือกเอง |
ตั้ง Config.Locale ผู้เล่นแต่ละคนเลือกภาษาของตัวเองได้ใน Settings > General > Language |
ข้อความแสดงเป็นคีย์ เช่น key.answer |
โฟลเดอร์ config/locales/ เก่าถูกคัดลอกทับของใหม่ |
ใช้ไฟล์ภาษาใหม่ แล้วใส่ข้อความที่คุณแก้เองกลับด้วยมือ |
| การดาวน์โหลดใน App Hub แจ้ง No Connection | โทรศัพท์ไม่มีสัญญาณเครือข่ายตรงนี้ (จุดอับสัญญาณ หรือไม่มีสัญญาณขณะเปิด Carrier) และไม่ได้ต่อ Wi-Fi การดาวน์โหลดต้องใช้ Wi-Fi หรือดาต้ามือถือ | ย้ายไปที่ที่มีสัญญาณ หรือต่อ Wi-Fi (เราเตอร์ Pulse Home Wi-Fi) |
| การดาวน์โหลดใน App Hub แจ้ง No Cellular Plan, Data Limit Reached หรือ Cellular Data Is Off | เปิด Carrier อยู่และโทรศัพท์ไม่มีแพ็กเกจหรือใช้ดาต้าหมดแล้ว หรือผู้เล่นปิด Cellular Data | ซื้อหรืออัปเกรดแพ็กเกจในแอป Carrier (ติดตั้งอยู่ในทุกโทรศัพท์ขณะเปิด Carrier) เปิด Cellular Data อีกครั้ง หรือต่อ Wi-Fi |
| ทุกคนขึ้น "No Service" | เปิด Carrier อยู่ (Config.Carrier.enabled = true หรือ setr phone_carrier 1) ดังนั้นโทรศัพท์แต่ละเครื่องต้องมีแพ็กเกจ |
ผู้เล่นซื้อแพ็กเกจในแอป Carrier หรือปิดฟีเจอร์: ตั้ง enabled = false และลบบรรทัด setr phone_carrier |
| ไม่มีสัญญาณเฉพาะบางที่ | เปิดจุดอับสัญญาณอยู่ (Config.Coverage.enabled) |
ตรวจโซนของคุณด้วย phone:zone show ในเกม การโทรฉุกเฉินใช้ได้เสมอ |
Settings > Server การแจ้งเตือนฉุกเฉิน และการอัปเดต
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
| ไม่มีแถว Server ใน Settings | ผู้เล่นไม่มี ace phone.admin หรือ Config.OwnerTools.enabled = false |
add_ace group.admin phone.admin allow และเพิ่มผู้เล่นใน group.admin แล้วเปิด Settings ใหม่ |
phone:setup ไม่ทำอะไรเลย |
พิมพ์ในคอนโซลเซิร์ฟเวอร์ หรือผู้เล่นไม่ใช่แอดมิน | พิมพ์ในเกม (F8) ในฐานะแอดมิน ในคอนโซล phone:health จะแสดงการตรวจแบบเดียวกัน |
| การเปลี่ยนในเกมยังไม่มีผล | ถูกทำเครื่องหมาย Restart needed | รีสตาร์ทโทรศัพท์ (ensure phone) หรือเซิร์ฟเวอร์ บรรทัด Restart ในการตรวจสอบตอนเริ่มจะแสดงสิ่งที่รออยู่ |
แก้ไฟล์ใน config/ แล้วไม่มีอะไรเปลี่ยน |
ค่าตั้งนั้นถูกเปลี่ยนในเกม และค่าในเกมมีผลเหนือกว่า | กด Reset to Default ที่ค่านั้นใน Settings > Server หรือใช้ phone:reset <key> ในคอนโซล |
| Settings > Server แสดงทุกอย่างแบบอ่านอย่างเดียว | Config.OwnerTools.enabled = false ใน config/apps.lua |
ตั้งเป็น true แล้วรีสตาร์ทโทรศัพท์ |
Not saved: ... ใต้ค่าตั้ง |
ค่านั้นไม่ใช่ค่าที่ค่าตั้งนั้นรับได้ (เกินช่วง รูปแบบผิด ชื่ออาชีพที่มีช่องว่าง) | ใช้ค่าตามที่ข้อความอธิบาย |
| ไม่มีใครได้รับการแจ้งเตือนฉุกเฉิน | Config.Broadcast.enabled = false หรือผู้เล่นอยู่นอกวงที่คุณวาด |
ตรวจ config/apps.lua ส่งถึงทั้งเมืองเพื่อทดสอบ |
| ผู้เล่นได้รับการแจ้งเตือนระดับรุนแรงหรือระดับแนะนำแบบไม่มีเสียง หรือไม่ได้รับเลย | ผู้เล่นแต่ละคนปิดระดับเหล่านั้นได้ และการแจ้งเตือนระดับรุนแรงจะทำตาม Silent Mode | เป็นการเลือกของผู้เล่น การแจ้งเตือนระดับวิกฤต (Extreme) จะมีเสียงเสมอ |
| เจ้าหน้าที่ไม่มีปุ่ม New Alert | อาชีพไม่อยู่ใน Config.Broadcast.senders ระดับต่ำกว่าที่ระบุ หรือออกเวรอยู่ |
เพิ่ม 'police:3' (อาชีพ:ระดับต่ำสุด) ใน senders หรือตั้ง requireDuty = false |
Wait ... before sending another alert |
คูลดาวน์ของผู้ส่ง (cooldownSeconds) หรือขีดจำกัดต่อชั่วโมง (perHour) |
รอ หรือเพิ่มขีดจำกัดใน config/apps.lua |
ไม่มีบรรทัด Update ในการตรวจสอบตอนเริ่ม |
โทรศัพท์เข้าถึงไฟล์อัปเดตไม่ได้ (ไม่มีอินเทอร์เน็ต ไฟร์วอลล์) หรือ Config.UpdateCheck.enabled = false |
ไม่ต้องแก้: โทรศัพท์ทำงานต่อได้โดยไม่มีมัน เมื่อ Config.Debug = true คอนโซลจะบอกเหตุผล |
ฟีเจอร์ใหม่
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
| ไม่มีแอป Shade | Shade ปิดไว้เป็นค่าเริ่มต้น และต้องมีไอเทม pulse_vpn อาชีพที่อยู่ในรายการ หรือ access.everyone |
ตั้ง Config.DarkMarket.enabled = true ใน config/apps.lua และตรวจบล็อก access ของมัน |
| ไม่มีซิมการ์ดในร้าน หรือไม่มีเครดิตใน Settings | ซิมการ์ดปิดไว้เป็นค่าเริ่มต้น (Config.Sim.enabled) และเครดิตเติมเงินเป็นสวิตช์ที่สอง (prepaid) |
เปิดใน config/apps.lua และเพิ่ม pulse_sim กับ pulse_topup ในอินเวนทอรีของคุณ (หัวข้อที่ 4) |
| ติด Pulse Beacon กับรถไม่ได้ | ผู้เล่นอยู่ไกลจากรถเกินไป (attachRange, 4 m) หรือมีครบ maxPerPlayer (8) แล้ว |
ยืนข้างรถ ตรวจ config/apps.lua |
| "An unknown Pulse Beacon is moving with you" | คำเตือนความปลอดภัย: beacon ของคนอื่นเคลื่อนที่ไปพร้อมผู้เล่นเป็นเวลา alertAfter วินาที |
เป็นเรื่องปกติ ตั้ง alert.enabled = false เฉพาะเมื่อกฎของคุณอนุญาตการติดตามแบบลับ |
| Pulse Buds, Ring Light หรือ Card Wallet ใช้จากอินเวนทอรีไม่ได้ | ไม่มีไอเทม หรือถูกปิดไว้ | เพิ่ม pulse_buds, pulse_ringlight และ pulse_wallet (หัวข้อที่ 4) และตรวจ config/apps.lua |
| Slipstream ไม่ให้ผู้เล่นเปิดหรือเข้าร่วมการแข่ง | ผู้เล่นอยู่ไกลกว่า joinRadius (60 m) จากเส้นสตาร์ท การแข่งเต็มแล้ว (maxRacers) หรือค่าสมัครอยู่นอกช่วง minFee ถึง maxFee |
ขับไปที่เส้นสตาร์ท ตรวจ config/apps.lua |
| Hail: คนขับไม่เคยได้งาน | คลาสหรือรุ่นรถไม่ได้รับอนุญาต อาชีพไม่อยู่ใน driver.jobs ไม่มี driver.licenceItem หรืออยู่นอก serviceArea |
ตรวจบล็อก driver ใน config/apps.lua |
| ออเดอร์ Eats ไม่เคยถูกส่งโดยผู้เล่น | ไม่มีไรเดอร์เข้าเวรที่มีอาชีพใน couriers.jobs เมื่อเปิด cityCourier.enabled เมืองจะส่งแทน |
เพิ่มอาชีพส่งของของคุณใน config/apps.lua (หรือใน Settings > Server > Jobs) |
| Realty ไม่แสดงบ้าน | สคริปต์บ้านของคุณแสดงรายการบ้านที่ขายไม่ได้ และ Config.Homes.listings ว่างเปล่า |
เพิ่มรายการบ้านใน config/apps.lua หรือรันสคริปต์บ้านจากหัวข้อที่ 7 |
| ไม่มีนายหน้าคนไหนได้รับคำขอดูบ้านใน Realty | ไม่มีผู้เล่นที่เข้าเวรอยู่ซึ่งมีอาชีพใน realtor.jobs |
เพิ่มชื่ออาชีพของคุณใน config/apps.lua (หรือใน Settings > Server > Jobs) |
| เกมแบบเรียลไทม์: ไม่มีคำเชิญมาถึง | เกมนั้นถูกปิดใน config/apps.lua หรือคำเชิญรอนานเกิน inviteSeconds |
ตรวจ config/apps.lua แล้วส่งคำเชิญอีกครั้ง |
| สายบริษัทไม่ดังที่ใครเลย หรือผู้โทรต้องรอสาย | ไม่มีใครล็อกอินเป็นเจ้าหน้าที่รับสายของสายนั้น หรือไม่มีสมาชิกเข้าเวรอยู่ | ดู config/apps.lua: เจ้าหน้าที่รับสายล็อกอินผ่านแอป Services |
| Groups: "the group is full" | maxMembers (6 คน รวมหัวหน้ากลุ่ม) |
เพิ่มค่าใน config/apps.lua |
| ข่าวด่วนไม่แจ้งเตือนใครเลย | breaking.enabled ปิดอยู่ หรือยังไม่พ้นคูลดาวน์ (cooldownSeconds, perAuthorSeconds) |
ตรวจ config/apps.lua หรือ Settings > Server > News |
ปัญหาการติดตั้งและเวอร์ชัน
| สิ่งที่คุณเห็น | สาเหตุ | วิธีแก้ |
|---|---|---|
You lack the required entitlement หรือข้อผิดพลาด escrow ตอนเริ่ม |
คีย์ของเซิร์ฟเวอร์เป็นของบัญชี Cfx.re คนละบัญชีกับที่ซื้อ Pulse Phone | ไฟล์ต้องเป็นของบัญชี Cfx.re เดียวกันกับคีย์เซิร์ฟเวอร์ของคุณ (sv_licenseKey) ดาวน์โหลดโทรศัพท์จาก Keymaster (Granted Assets) ในบัญชีนั้น ไฟล์ที่ได้จากคนอื่นจะไม่มีทางรันได้ |
Failed to verify protected resource phone ตอนเริ่ม และคอนโซลหรือ F8 แสดง syntax error near '<\1>' สำหรับไฟล์ในโฟลเดอร์ที่ถูกล็อก |
การอัปโหลดทำให้ไฟล์ที่ถูกล็อกเปลี่ยนไป: โปรแกรม FTP ส่งไฟล์ในโหมดข้อความ (Auto/ASCII) หรือการอัปโหลดถูกตัดกลางคัน ไลเซนส์ไม่มีปัญหา (ถ้าบัญชีผิดจะขึ้น You lack the required entitlement แทน) |
ลบโฟลเดอร์ phone บนเซิร์ฟเวอร์ ดาวน์โหลดใหม่จาก Keymaster และอัปโหลดในโหมด Binary (FileZilla: Transfer > Transfer Type > Binary) หรืออัปโหลดไฟล์ zip แล้วแตกไฟล์บนเซิร์ฟเวอร์ เทียบโฟลเดอร์กับตารางไฟล์ใน INSTALL.md |
การตรวจสอบตอนเริ่ม: [FAIL] Package ... file(s) missing or the wrong size ระบุไฟล์ใน ui/, data/ หรือ stream/ |
ไฟล์เหล่านั้นมาถึงไม่ตรงกับตอนที่ build: อัปโหลดไม่ครบ ส่ง FTP ในโหมดข้อความ หรือแอนติไวรัสลบไปไฟล์หนึ่ง | วิธีแก้เดียวกัน: ดาวน์โหลดใหม่ แล้วอัปโหลดในโหมด Binary หรือแตกไฟล์ zip บนเซิร์ฟเวอร์ ถ้าไฟล์หายอีก ให้ยกเว้นโฟลเดอร์เซิร์ฟเวอร์ในแอนติไวรัส ไฟล์ stream ถูกตรวจแค่ว่ามีอยู่ (escrow เปลี่ยนขนาดของมัน) ส่วนโค้ดที่ถูกล็อกจะถูกตรวจโดยเซิร์ฟเวอร์เอง |
การตรวจสอบตอนเริ่ม: [FAIL] Package the file list is from build ... files from two downloads are mixed |
ui/ และส่วนที่เหลือของโฟลเดอร์มาจากการดาวน์โหลดคนละครั้ง |
ลบโฟลเดอร์แล้วแตกไฟล์จากการดาวน์โหลดครั้งเดียวทั้งหมด ใช้ stream/ และ ui/ จากเวอร์ชันเดียวกันเสมอ |
การตรวจสอบตอนเริ่ม: [WARN] Package data/package.json is missing or unreadable |
รายการไฟล์ที่มากับทุกเวอร์ชันไม่ได้มาถึง | อัปโหลดทั้งโฟลเดอร์ใหม่ (โหมด Binary) รวมถึง data/ |
| สคริปต์อื่นหรือไอเทมใช้ไม่ได้หลังเปลี่ยนชื่อโฟลเดอร์ | สคริปต์อื่นและรายการไอเทมเรียกโทรศัพท์ด้วยชื่อ phone (exports.phone, phone.useItem) |
ใช้ชื่อโฟลเดอร์ phone ไว้ตามเดิม |
ทำงานแปลกๆ หลังอัปเดต, your config has no Config.Charging section |
config.lua เก่าถูกคัดลอกทับ |
ส่วนที่ขาดจะใช้ค่าเริ่มต้น คัดลอกส่วนที่ขาดจาก config/config.lua ตัวใหม่ หรือเริ่มจากไฟล์ใหม่ |
| adapter เก่าทำให้สคริปต์เชื่อมต่อไม่ได้หลังอัปเดต | ไฟล์ bridge/ เก่า (จากเวอร์ชันนี้หรือเวอร์ชันเก่ากว่า) ถูกคัดลอกกลับมา |
ใช้ไฟล์ใหม่ (หัวข้อที่ 10) |
| โทรศัพท์ start สองตัว | โฟลเดอร์ phone เก่ายังอยู่ที่ไหนสักแห่งใน resources |
ย้ายออกจาก resources |