توثيق Pulse Phone

أنظمة الـ Inventory

لـ Pulse Phone 1.4.2قراءة 8 دقائقآخر تحديث

4. العناصر وأنظمة الـ inventory

العناصر مطلوبة فقط على سيرفرات الـ framework. الملفات موجودة في config/items/ والصور في config/items/images/.

ما يفعله الهاتف بنفسه. عند بدء التشغيل يحدد العناصر التي تحتاجها الميزات التي فعّلتها (الجدول أدناه)، ثم:

الـ inventory الخاص بك ما يحدث
ESX مع الـ inventory الافتراضي تُضاف العناصر الناقصة إلى جدول items في ESX. الصفوف الموجودة لا تتغير أبدًا. يطبع الكونسول سطرًا واحدًا يذكر ما أضافه. على ESX أقدم لا يستطيع إعادة تحميل عناصره، أعِد تشغيل السيرفر مرة واحدة. الملف config/items/esx.sql مخصص فقط لإضافتها يدويًا.
QBCore مع qb-inventory (وps-، lj-inventory أيضًا) تُضاف العناصر الناقصة إلى العناصر المشتركة في QBCore أثناء عمل السيرفر. العنصر الموجود مسبقًا في qb-core، مثل phone الخاص به، يُترك كما هو. يطبع الكونسول سطرًا واحدًا يذكر ما أضافه.
ox_inventory (ESX، Qbox، ox_core) ox_inventory يقرأ العناصر من ملفه الخاص فقط. يسرد فحص بدء التشغيل العناصر الناقصة فقط ويطبع إدخالاتها أسفل الصندوق، جاهزة للصق في ox_inventory/data/items.lua.
أي inventory آخر يذكر فحص بدء التشغيل العناصر الناقصة. أضفها بالطريقة التي يضيف بها ذلك الـ inventory العناصر (الجدول تحت "ما يجب فعله للـ inventory الخاص بك").

مهم

الصور لا تُنسخ لك أبدًا. يذكر فحص بدء التشغيل كل صورة ناقصة والمجلد الذي تذهب إليه، مثلًا 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 بالفعل.

إذا كان عنصر ناقصًا، يبدأ الهاتف رغم ذلك. يعطّل المتجر العلب أو يوقف بيع ذلك العنصر، ويذكر الكونسول العنصر المطلوب إضافته.

الـ Reserves تتكدس. الحزم الممتلئة لا تحمل metadata، لذا يمكن أن تشترك حتى 20 منها في خانة واحدة. الحزمة التي تُنزع وهي مستخدمة جزئيًا تصبح عنصرًا مستقلًا بشحنتها في الـ metadata الخاصة بها (على ox_inventory وqb-inventory وqs-inventory)، لذا تحتاج إلى خانة فارغة. وبدون metadata للعناصر (standalone، والـ inventory الافتراضي لـ ESX) تُتتبَّع فقط الحزمة المستخدمة، واحدة لكل شخصية لكل حجم.

مع Config.Item.required = true (أو الهواتف الفريدة) يتحقق السيرفر من عنصر الهاتف عبر الـ inventory لديك ويرفض طلبات الهاتف من اللاعب الذي لا يملكه. فقدان العنصر يُنهي مكالمات ذلك اللاعب، بما فيها مكالمات الطوارئ، ويغلق الهاتف.

إعطاء علبة مختومة لشخص آخر. على ox_inventory وqb-inventory وqs-inventory يحمل عنصر العلبة نفسه الموديل والتشطيب اللذين تم شراؤهما، لذا من يفتحها يحصل على ذلك الهاتف. وعلى كل inventory آخر تكون العلبة عنصرًا عاديًا، والموديل والتشطيب محفوظان في سجل شراء المشتري نفسه: العلبة المُعطاة تنفتح كعملية الشراء التالية للمالك الجديد، أو بالموديل والتشطيب الافتراضيين. مع Config.Store.boxPerFinish = true يحتفظ اسم عنصر العلبة بالتشطيب، لكن ليس بالموديل.

النص الدقيق للصق، للـ inventory الخاص بك

لن تحتاج أبدًا إلى كتابة إدخال عنصر بنفسك. عندما يكون عنصر ناقصًا، يطبع فحص بدء التشغيل النص الدقيق للـ inventory الخاص بك أسفل الصندوق، ويعرض Settings > Server > Health Check نفس النص مع زر Copy. الصقه، وأعِد تشغيل الـ inventory والهاتف، وشغّل phone:health مرة أخرى.

الـ inventory الخاص بك ما يُطبع أين يذهب
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
الـ inventory الافتراضي لـ ESX سطر SQL واحد (فقط إذا لم يتمكن الهاتف من إضافتها بنفسه) أداة قاعدة البيانات لديك، ثم أعِد التشغيل
TMC إدخالات TMC لكل عنصر يحتاجه الهاتف (لا يمكن سؤال TMC عن العناصر الموجودة لديه) قائمة عناصر TMC (الملف الذي فيه sim_card)، مع الاحتفاظ بالعناصر الموجودة لديك
أي inventory آخر إدخالات بشكل QBCore، وهو الشكل الذي تقرؤه معظم أنظمة الـ inventory قائمة عناصر ذلك الـ inventory

كيف يبدو كل منها، للـ 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] مع الهواتف المطلوبة أو الفريدة) يطبع الإدخال البديل. إذا كان سكربت الهاتف الذي صُنع له ذلك الإدخال ما زال يعمل، يفتح العنصر ذلك السكربت بدلًا من Pulse: سطر Phone item يذكر اسمه؛ احذفه من server.cfg.

ما يجب فعله للـ inventory الخاص بك

الـ Inventory أين تذهب العناصر أين تذهب الصور
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 مجلد الصور في الـ inventory الخاص بك
qs-inventory الصق qb-core.lua في qb-core/shared/items.lua، أو في قائمة عناصر qs-inventory الخاصة مجلد الصور في الـ 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 أيضًا مجلد الصور في الـ inventory الخاص بك
ak47_inventory أضف العناصر، بالإضافة إلى أسطر onUse أدناه مجلد الصور في الـ inventory الخاص بك
الـ inventory الافتراضي لـ ESX لا شيء: تُضاف عند بدء التشغيل. وesx.sql هو الطريقة اليدوية غير مطلوب
vRP 2 راجع قسم vRP أعلاه
Standalone لا شيء

لأنظمة الـ inventory الأخرى في هذا الجدول، يجعل الهاتف العناصر قابلة للاستخدام بنفسه. 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