คู่มือ Pulse Phone

อินเวนทอรี

สำหรับ Pulse Phone 1.4.2อ่าน 8 นาทีอัปเดต

4. ไอเทมและอินเวนทอรี

ไอเทมจำเป็นเฉพาะบนเซิร์ฟเวอร์ที่ใช้เฟรมเวิร์ก ไฟล์อยู่ใน config/items/ และรูปภาพอยู่ใน config/items/images/

สิ่งที่โทรศัพท์ทำเอง ตอนเริ่ม มันจะคำนวณว่าฟีเจอร์ที่คุณเปิดไว้ต้องใช้ไอเทมอะไร (ตารางด้านล่าง) แล้ว:

อินเวนทอรีของคุณ สิ่งที่เกิดขึ้น
ESX กับอินเวนทอรีเริ่มต้น ไอเทมที่ขาดจะถูกเพิ่มลงในตาราง items ของ ESX แถวที่มีอยู่แล้วจะไม่ถูกเปลี่ยน คอนโซลจะแสดงหนึ่งบรรทัดระบุสิ่งที่เพิ่ม บน ESX รุ่นเก่าที่โหลดไอเทมใหม่ไม่ได้ ให้รีสตาร์ทเซิร์ฟเวอร์หนึ่งครั้ง config/items/esx.sql มีไว้สำหรับเพิ่มด้วยมือเท่านั้น
QBCore กับ qb-inventory (รวม ps-, lj-inventory) ไอเทมที่ขาดจะถูกเพิ่มลงใน shared items ของ QBCore ขณะเซิร์ฟเวอร์ทำงาน ไอเทมที่ qb-core มีอยู่แล้ว เช่น phone ของมันเอง จะถูกปล่อยไว้ตามเดิม คอนโซลจะแสดงหนึ่งบรรทัดระบุสิ่งที่เพิ่ม
ox_inventory (ESX, Qbox, ox_core) ox_inventory อ่านไอเทมจากไฟล์ของตัวเองเท่านั้น การตรวจสอบตอนเริ่มจะแสดงเฉพาะไอเทมที่ขาด และพิมพ์รายการไว้ใต้กล่อง พร้อมวางลงใน ox_inventory/data/items.lua
อินเวนทอรีอื่นๆ การตรวจสอบตอนเริ่มจะระบุชื่อไอเทมที่ขาด ให้เพิ่มตามวิธีที่อินเวนทอรีนั้นใช้เพิ่มไอเทม (ตารางใต้ "สิ่งที่ต้องทำสำหรับอินเวนทอรีของคุณ")

สำคัญ

รูปภาพไม่เคยถูกคัดลอกให้ การตรวจสอบตอนเริ่มจะระบุรูปที่ขาดแต่ละรูปและโฟลเดอร์ที่ต้องใส่ เช่น copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images

การตรวจสอบตอนเริ่มมีบรรทัด Items หนึ่งบรรทัด: [OK] เมื่อมีไอเทมครบ หรือ [FAIL] พร้อมชื่อที่ขาดและวิธีแก้อยู่ด้านล่าง phone:health จะแสดงอีกครั้งหลังคุณแก้ไข

ไอเทม ต้องใช้เมื่อ
phone เฉพาะเมื่อ Config.Item.required = true (ผู้เล่นต้องพกโทรศัพท์) หรือใช้โทรศัพท์แบบไม่ซ้ำกัน
pulse_phone_box ร้านขายโทรศัพท์ในกล่องปิดผนึก เปิดไว้เป็นค่าเริ่มต้น (Config.Store.box)
pulse_magpack, pulse_magpack_max, pulse_cable อุปกรณ์ชาร์จ เปิดไว้เป็นค่าเริ่มต้น (Config.Charging)
pulse_router Pulse Home Wi-Fi เราเตอร์ที่ผู้เล่นวางที่บ้าน เปิดไว้เป็นค่าเริ่มต้น (config/apps.lua)
pulse_burner Pulse Burner โทรศัพท์เติมเงินที่มีเบอร์ของตัวเอง เปิดไว้เป็นค่าเริ่มต้น (config/apps.lua)
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector อุปกรณ์ป้องกันโทรศัพท์: เคส ซองกันน้ำ และฟิล์มกันรอย เปิดไว้เป็นค่าเริ่มต้น (config/apps.lua)
pulse_buds, pulse_ringlight, pulse_wallet Pulse Buds, Pulse Ring Light และ Pulse Card Wallet เปิดไว้เป็นค่าเริ่มต้น (config/apps.lua)
powerbank ไม่บังคับ ไอเทมพาวเวอร์แบงก์แบบเก่า ทำงานเหมือน Reserve
pulse_phone_box_<finish> เฉพาะเมื่อ Config.Store.boxPerFinish = true
radio (หรือชื่อใดก็ได้) เฉพาะเมื่อคุณตั้ง Config.Radio.item (หัวข้อที่ 5, Radio) ox_inventory และ qb-core มีไอเทม radio อยู่แล้ว

ถ้าขาดไอเทม โทรศัพท์ก็ยังเริ่มทำงาน ร้านจะปิดการขายแบบกล่องหรือเอาไอเทมนั้นออกจากการขาย และคอนโซลจะระบุชื่อไอเทมที่ต้องเพิ่ม

Reserve ซ้อนกันได้ แพ็กที่เต็มไม่มี metadata จึงใช้ช่องเดียวกันได้สูงสุด 20 ชิ้น แพ็กที่ถอดออกระหว่างใช้งานจะกลายเป็นไอเทมแยกที่เก็บประจุไว้ใน metadata (บน ox_inventory, qb-inventory และ qs-inventory) จึงต้องมีช่องว่าง ถ้าไม่มี metadata ของไอเทม (standalone, อินเวนทอรีเริ่มต้นของ ESX) จะติดตามเฉพาะแพ็กที่ใช้อยู่ หนึ่งชิ้นต่อตัวละครต่อขนาด

เมื่อ Config.Item.required = true (หรือโทรศัพท์แบบไม่ซ้ำกัน) เซิร์ฟเวอร์จะตรวจไอเทมโทรศัพท์ผ่านอินเวนทอรีของคุณ และปฏิเสธคำขอจากผู้เล่นที่ไม่มีไอเทม การทำไอเทมหายจะตัดสายของผู้เล่นนั้น รวมถึงสายฉุกเฉิน และปิดโทรศัพท์

การให้กล่องปิดผนึกแก่คนอื่น บน ox_inventory, qb-inventory และ qs-inventory ตัวไอเทมกล่องจะเก็บรุ่นและฟินิชที่ซื้อไว้ ดังนั้นใครที่เปิดกล่องจะได้โทรศัพท์นั้น บนอินเวนทอรีอื่นทั้งหมด กล่องเป็นไอเทมธรรมดา และรุ่นกับฟินิชจะอยู่ในบันทึกการซื้อของผู้ซื้อเอง: กล่องที่ให้คนอื่นไปจะเปิดออกมาเป็นการซื้อครั้งถัดไปของเจ้าของใหม่ หรือเป็นรุ่นและฟินิชเริ่มต้น เมื่อตั้ง Config.Store.boxPerFinish = true ชื่อไอเทมกล่องจะเก็บฟินิชไว้ แต่ไม่เก็บรุ่น

ข้อความที่ต้องวาง สำหรับอินเวนทอรีของคุณ

คุณไม่ต้องคิดรายการไอเทมเองเลย เมื่อมีไอเทมขาด การตรวจสอบตอนเริ่มจะพิมพ์ข้อความที่ตรงกับอินเวนทอรีของคุณไว้ใต้กล่อง และ Settings > Server > Health Check จะแสดงข้อความเดียวกันพร้อมปุ่ม Copy วาง แล้วรีสตาร์ทอินเวนทอรีและโทรศัพท์ จากนั้นรัน phone:health อีกครั้ง

อินเวนทอรีของคุณ สิ่งที่แสดง ต้องใส่ที่ไหน
ox_inventory (ESX, Qbox, ox_core, ND Core) รายการแบบ ox_inventory ox_inventory/data/items.lua ภายในตารางของมัน
QBCore (qb-, ps-, lj-inventory) รายการแบบ QBCore (เฉพาะเมื่อโทรศัพท์เพิ่มเองไม่ได้) qb-core/shared/items.lua
qs-inventory รายการรูปแบบ QBCore รายการไอเทมของ qs-inventory
อินเวนทอรีเริ่มต้นของ ESX SQL หนึ่งบรรทัด (เฉพาะเมื่อโทรศัพท์เพิ่มเองไม่ได้) เครื่องมือฐานข้อมูลของคุณ แล้วรีสตาร์ท
TMC รายการแบบ TMC สำหรับทุกไอเทมที่โทรศัพท์ต้องใช้ (ถาม TMC ไม่ได้ว่ามีตัวไหนอยู่แล้ว) รายการไอเทมของ TMC (ไฟล์ที่มี sim_card) โดยเก็บตัวที่คุณมีอยู่แล้วไว้
อินเวนทอรีอื่นๆ รายการรูปแบบ QBCore ซึ่งเป็นรูปแบบที่อินเวนทอรีส่วนใหญ่อ่านได้ รายการไอเทมของอินเวนทอรีนั้น

หน้าตาของแต่ละแบบ สำหรับ Reserve:

Lua
-- ox_inventory/data/items.lua
['pulse_magpack'] = { label = "Pulse Reserve", weight = 110, stack = true, close = true, consume = 0, description = "Magnetic battery pack. Fills 70% of a phone.", client = { export = "phone.usePack", image = "pulse_magpack.png" } },

-- qb-core/shared/items.lua, qs-inventory and similar
['pulse_magpack'] = { name = "pulse_magpack", label = "Pulse Reserve", weight = 110, type = 'item', image = "pulse_magpack.png", unique = false, useable = true, shouldClose = true, description = "Magnetic battery pack. Fills 70% of a phone." },

-- TMC
['pulse_magpack'] = { ['label'] = "Pulse Reserve", ['weight'] = 110, ['type'] = 'item', ['image'] = "pulse_magpack.png", ['unique'] = false, ['stackable'] = true, ['useable'] = true, ['shouldClose'] = true, ['description'] = "Magnetic battery pack. Fills 70% of a phone." },
SQL
-- ESX default inventory
INSERT IGNORE INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
  ('pulse_magpack', 'Pulse Reserve', 1, 0, 1);

ไอเทม phone ของ ox_inventory เอง ox_inventory มาพร้อมรายการ phone ที่ทำมาสำหรับสคริปต์โทรศัพท์อื่น คุณไม่ต้องเปลี่ยน: การใช้ไอเทมนี้จะเปิด Pulse Phone การตรวจสอบตอนเริ่มมีบรรทัด Phone item ที่บอกว่ารายการของคุณเชื่อมไว้อย่างไร จะแสดงรายการแทนที่ก็ต่อเมื่อมันระบุ export ของสคริปต์อื่น ([WARN] หรือ [FAIL] เมื่อบังคับใช้ไอเทมหรือใช้โทรศัพท์แบบไม่ซ้ำกัน) ถ้าสคริปต์โทรศัพท์ที่รายการนั้นทำมาให้ยังทำงานอยู่ ไอเทมจะเปิดตัวนั้นแทน: บรรทัด Phone item จะระบุชื่อ ให้ลบมันออกจาก server.cfg

สิ่งที่ต้องทำสำหรับอินเวนทอรีของคุณ

อินเวนทอรี ไอเทมต้องใส่ที่ไหน รูปภาพต้องใส่ที่ไหน
ox_inventory (ESX, Qbox, ox_core) วางรายการที่การตรวจสอบตอนเริ่มแสดง (หรือทั้งไฟล์ ox_inventory.lua) ลงใน ox_inventory/data/items.lua ภายในตารางของมัน เก็บรายการ ['phone'] ของ ox_inventory เองไว้ (มันเปิด Pulse Phone) แทนที่ด้วยตัวที่แสดงเฉพาะเมื่อบรรทัด Phone item บอกว่ามันเปิดสคริปต์อื่น ox_inventory/web/images/
qb-inventory ไม่ต้องทำอะไร: เพิ่มให้ตอนเริ่ม ถ้าอยากเพิ่มด้วยมือแทน ให้วาง qb-core.lua ลงใน qb-core/shared/items.lua qb-inventory/html/images/
ps-inventory, lj-inventory ไม่ต้องทำอะไร: เพิ่มให้ตอนเริ่ม เหมือน qb-inventory โฟลเดอร์รูปภาพของอินเวนทอรีคุณ
qs-inventory วาง qb-core.lua ลงใน qb-core/shared/items.lua หรือลงในรายการไอเทมของ qs-inventory เอง โฟลเดอร์รูปภาพของอินเวนทอรีคุณ
codem-inventory, core_inventory, tgiann-inventory, origen_inventory เพิ่มไอเทมลงในรายการไอเทมแบบเดียวกับที่คุณเพิ่มไอเทมทั่วไป โดยใช้ชื่อ ชื่อแสดง และน้ำหนักจาก qb-core.lua (phone, powerbank, pulse_magpack, pulse_magpack_max, pulse_cable, pulse_router, pulse_burner, pulse_buds, pulse_ringlight, pulse_wallet, pulse_phone_box) ใช้ pulse_magpack.png สำหรับ powerbank และ pulse_magpack_max ด้วย โฟลเดอร์รูปภาพของอินเวนทอรีคุณ
ak47_inventory เพิ่มไอเทม พร้อมบรรทัด onUse ด้านล่าง โฟลเดอร์รูปภาพของอินเวนทอรีคุณ
อินเวนทอรีเริ่มต้นของ ESX ไม่ต้องทำอะไร: เพิ่มให้ตอนเริ่ม esx.sql คือวิธีเพิ่มด้วยมือ ไม่ต้องใช้
vRP 2 ดูหัวข้อ vRP ด้านบน
Standalone ไม่ต้องทำอะไร

สำหรับอินเวนทอรีอื่นในตารางนี้ โทรศัพท์จะทำให้ไอเทมใช้งานได้เอง ox_inventory ใช้บรรทัด client = { export = 'phone....' } ที่มีอยู่แล้วในไฟล์ของมัน

ox_inventory: ถ้าคุณเคยใช้โทรศัพท์ตัวอื่นมาก่อน ให้ลบ hook Item('phone', ...) ของมันออกจาก ox_inventory/modules/items/client.lua ด้วย

ak47_inventory เก็บการใช้งานไอเทมไว้ในรายการของแต่ละไอเทม ให้เพิ่มรายการเหล่านี้:

Lua
-- powerbank
server = { onUse = function(source) exports.phone:UsePowerbank(source) end },
-- pulse_magpack and pulse_magpack_max
server = { onUse = function(source, item) exports.phone:UseMagPack(source, item and item.slot, item and item.name) end },
-- pulse_cable
server = { onUse = function(source) exports.phone:UseChargingCable(source) end },
-- pulse_phone_box
server = { onUse = function(source, item) exports.phone:UseBox(source, item and item.slot) end },
-- pulse_router
server = { onUse = function(source) exports.phone:UseRouter(source) end },
-- pulse_burner
server = { onUse = function(source, item) exports.phone:UseBurner(source, item and item.slot) end },
-- pulse_case, pulse_case_clear, pulse_pouch, pulse_protector
server = { onUse = function(source, item) exports.phone:FitPhoneProtection(source, item and item.name) end },
-- pulse_buds
server = { onUse = function(source) exports.phone:UseBuds(source) end },
-- pulse_ringlight
server = { onUse = function(source) exports.phone:UseRingLight(source) end },
-- pulse_wallet
server = { onUse = function(source) exports.phone:UseCardWallet(source) end },

โทรศัพท์แบบไม่ซ้ำกัน (Config.Item.unique = true) เก็บเบอร์โทรไว้บนไอเทม ดังนั้นการส่งต่อไอเทมคือการส่งต่อโทรศัพท์ ต้องใช้ ox_inventory, qb-inventory, qs-inventory, core_inventory หรือ codem-inventory

แปลจากภาษาอังกฤษ หากเนื้อหาในหน้านี้ไม่ตรงกับหน้าภาษาอังกฤษ ให้ยึดหน้าภาษาอังกฤษเป็นหลัก English