المخزون
توثيق نظام المخزون في jrs
هذا التوثيق للمطورين اللي يسوون سكربتات لفريمورك JRS Core
الـ Exports
هذي الـ exports للكلاينت فقط!
دوال القراءة (Getters)
closeInventory#
إغلاق المخزون
exports.jrs_inventory:closeInventory()
هذي الـ exports للسيرفر فقط!
دوال القراءة (Getters)
getUserAmmo#
جلب كل ذخيرة المستخدم
sourceintrequiredرقم اللاعب (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntablereturns جدول فيه كل الذخيرة
exports.jrs_inventory:getUserAmmo(source, callback)canCarryWeapons#
فحص إذا اللاعب يقدر يشيل الأسلحة
sourceintrequiredرقم اللاعب (id)
amountintrequiredعدد الأسلحة
callbackfunctionدالة callback متزامنة أو غير متزامنة
weaponNamestring | numberاسم السلاح أو الـ hash، مطلوب لفحص الوزن من إصدار 3.6
returnbooleanreturns true إذا اللاعب يقدر يشيل الأسلحة
exports.jrs_inventory:canCarryWeapons(source, amount,callback, weaponName)getUserWeapon#
جلب سلاح من مخزون المستخدم
sourceintrequiredرقم اللاعب (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
weaponIdnumberرقم السلاح (id)
returntable{id:number,name:string,propietary:string,used:boolean,desc:string,group:number,source:number,label:string,serial_number:string,custom_label:string,custom_desc:string}
exports.jrs_inventory:getUserWeapon(source, callback,weaponId)getUserInventoryWeapons#
جلب أسلحة مخزون المستخدم
sourceintrequiredرقم اللاعب (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntable{id:number,name:string,propietary:string,used:boolean,desc:string,group:number,source:number,label:string,serial_number:string,custom_label:string,custom_desc:string}
exports.jrs_inventory:getUserInventoryWeapons(source, callback)getWeaponBullets#
جلب رصاص السلاح
sourceintrequiredرقم اللاعب (id)
weaponIDnumberrequiredرقم السلاح (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnnumberذخيرة السلاح
exports.jrs_inventory:getWeaponBullets(source,weaponID, callback)getWeaponComponents#
جلب قطع السلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntablereturns جدول فيه قطع السلاح
exports.jrs_inventory:getWeaponComponents(source, weaponId, callback)دوال التعديل (Setters)
setWeaponCustomDesc#
تعيين وصف مخصص للسلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
descstringrequiredوصف السلاح
cbfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضبط الوصف بنجاح
exports.jrs_inventory:setWeaponCustomDesc(weaponId, desc, cb)setWeaponCustomLabel#
تعيين اسم مخصص للسلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
labelstringrequiredاسم السلاح المعروض
cbfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturnstrue إذا انضبط الاسم بنجاح
exports.jrs_inventory:setWeaponCustomLabel(weaponId, label, cb)setWeaponSerialNumber#
تعيين الرقم التسلسلي للسلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
serialstringrequiredالرقم التسلسلي للسلاح
cbfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضبط الرقم التسلسلي بنجاح
exports.jrs_inventory:setWeaponSerialNumber(weaponId, serial, cb)subWeapon#
إزالة سلاح من مخزون المستخدم
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انحذف السلاح بنجاح
exports.jrs_inventory:subWeapon(source, weaponId, callback)giveWeapon#
إعطاء سلاح للمستخدم
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
targetintrequiredرقم الهدف
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انعطى السلاح بنجاح
exports.jrs_inventory:giveWeapon(source, weaponId, target,callback)createWeapon#
إنشاء سلاح
sourceintrequiredرقم اللاعب (id)
weaponNamestringrequiredاسم السلاح
ammostringrequiredكمية الذخيرة
componentstablerequiredقطع الأسلحة (components)
compstablerequiredقطع الأسلحة (components)
callbackfunctionدالة callback متزامنة أو غير متزامنة
wepidintخلّه nil، هذا للاستخدام الداخلي فقط
serialstringرقم تسلسلي مخصص للسلاح
labelstringاسم مخصص للسلاح
descstringوصف مخصص للأسلحة
returnbooleanإذا كان غير متزامن
exports.jrs_inventory:createWeapon(source, weaponName, ammo, components, comps, callback,serial,label,desc)deleteWeapon#
حذف سلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanإذا كان غير متزامن
exports.jrs_inventory:deleteWeapon(source, weaponId, callback)addBullets#
إضافة رصاص
sourceintrequiredرقم اللاعب (id)
bulletTypestringrequiredنوع الرصاص
amountnumberrequiredعدد الرصاص
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضاف الرصاص بنجاح
exports.jrs_inventory:addBullets(source, bulletType, amount,callback)subBullets#
سحب رصاص من السلاح
weaponIdnumberrequiredرقم السلاح (id)
bulletTypestringrequiredنوع الرصاص
amountnumberrequiredعدد الرصاص
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انسحب الرصاص بنجاح
exports.jrs_inventory:subBullets(weaponId, bulletType, amount,callback)removeAllUserAmmo#
إزالة كل ذخيرة المستخدم
sourceintrequiredرقم اللاعب (id)
exports.jrs_inventory:removeAllUserAmmo(source)addWeaponComponent#
إضافة قطعة للسلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
componentstring | numberrequiredاسم القطعة أو الـ hash
categorystring | numberrequiredتصنيف الخانة
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضافت القطعة بنجاح
exports.jrs_inventory:addWeaponComponent(source, weaponId, component, category, callback)subWeaponComponent#
إزالة قطعة من السلاح
sourceintrequiredرقم اللاعب (id)
weaponIdnumberrequiredرقم السلاح (id)
componentstring | numberrequiredاسم القطعة أو الـ hash
categorystring | numberrequiredتصنيف الخانة
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انشالت القطعة بنجاح
exports.jrs_inventory:subWeaponComponent(source, weaponId, component, category, callback)دوال القراءة (Getters)
canCarryItem#
فحص إذا اللاعب يقدر يشيل الايتم قبل إضافته للمخزون
sourceintrequiredرقم اللاعب (id)
itemstringrequiredاسم الايتم
amountintrequiredعدد الايتمات
callbackfunctionدالة الـ callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا اللاعب يقدر يشيل الايتم
exports.jrs_inventory:canCarryItem(source, item, amount, callback)getUserInventoryItems#
يجيب كل الايتمات في مخزون اللاعب
sourceintrequiredرقم اللاعب (id)
callbackfunctionدالة الـ callback متزامنة أو غير متزامنة
returntablereturns جدول فيه كل الايتمات في المخزون
exports.jrs_inventory:getUserInventoryItems(source, callback)getItemCount#
جلب كمية ايتم من مخزون اللاعب
sourceintrequiredرقم اللاعب (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
itemstringrequiredاسم الايتم
metadatatableبيانات الايتم الإضافية (metadata)
percentageintيتحكم بالايتمات اللي تنجاب: إذا 0 يجيب كل الايتمات بدون metadata (إذا ما انمرر meta)، وإذا 0 يجيب الايتمات المنتهية، وأي قيمة 0 أو أكثر ترجع عدد هذي الايتمات
returnintreturns عدد الايتمات في المخزون
exports.jrs_inventory:getItemCount(source, callback, item, metadata, percentage)getItemDB#
جلب ايتم من قاعدة البيانات
itemstringrequiredاسم الايتم
callbackfunctionدالة callback غير متزامنة أو متزامنة
returntablereturns جدول فيه معلومات الايتم
exports.jrs_inventory:getItemDB(item, callback)getItemById#
جلب ايتم بالرقم الرئيسي (main id)
sourceintrequiredرقم اللاعب (id)
idintrequiredرقم الايتم (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntable{id:number, label:string, name:string, metadata:table, group:number, type:string, count:number, limit:number,canUse:boolean,percenage:integer,description:string,weight:number}
exports.jrs_inventory:getItemById(source, id, callback)getItem#
جلب بيانات الايتم
sourceintrequiredرقم اللاعب (id)
itemstringrequiredاسم الايتم
callbackfunctionدالة callback متزامنة أو غير متزامنة
metadatatableبيانات الايتم الإضافية (metadata)
percentageintجلب ايتم بنسبة معينة فقط: إذا 0 يجيب الايتمات المنتهية، وإذا nil يجيب أي ايتم، وإذا أكثر من 0 يجيب أي ايتم يساوي النسبة أو أعلى
returntable{id:number, label:string, name:string, metadata:table, group:number, type:string, count:number, limit:number,canUse:boolean,weight:number,desc:string,percentage:integer}
exports.jrs_inventory:getItem(source, item,callback, metadata,percentage)دوال التعديل (Setters)
addItem#
إضافة ايتم للمستخدم
sourceintrequiredرقم اللاعب (id)
itemstringrequiredاسم الايتم
amountintrequiredكمية الايتم
metadatatableبيانات الايتم الإضافية (metadata)
callbackfunctionدالة callback متزامنة أو غير متزامنة
eventbooleanإذا true ما يتشغّل حدث OnItemCreated
returnbooleanreturns true إذا انضاف الايتم بنجاح
exports.jrs_inventory:addItem(source, item, amount, metadata, callback,event)subItem#
إزالة ايتم من مخزون المستخدم
sourceintrequiredرقم اللاعب (id)
itemstringrequiredاسم الايتم
amountintrequiredكمية الايتم
metadatatableبيانات الايتم الإضافية (metadata)
callbackfunctionدالة callback متزامنة أو غير متزامنة
eventbooleanتشغيل حدث OnItemRemoved: إذا true ما ينرسل، وإذا false أو nil يتشغّل الحدث
percentageintيتحكم بنسبة الايتمات اللي تنشال: إذا nil يشيل أي ايتم، وإذا 0 يشيل المنتهية بس، وإذا أكثر من 0 يشيل أي شي يساويها أو أعلى
returnbooleanreturns true إذا انحذف الايتم بنجاح
exports.jrs_inventory:subItem(source, item, amount, metadata, callback,event,percentage)subItemById#
إزالة ايتم من مخزون المستخدم برقمه، الـ export متاح من إصدار 3.9 وفوق، والإصدارات الأقدم تستخدم subItemID
sourceintrequiredرقم اللاعب (id)
itemIdintrequiredرقم الايتم (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
eventbooleanتشغيل حدث OnItemRemoved: إذا true ما ينرسل، وإذا false أو nil يتشغّل الحدث
amountintالكمية المراد إزالتها
returnbooleanreturns true إذا انحذف الايتم بنجاح
exports.jrs_inventory:subItemById(source, itemId,callback,event,amount)setItemMetadata#
- قسّم مجموعة وعدّل بعض الايتمات بس (الكمية لازم تكون أقل من المجموعة الحالية)
- ادمج مع مجموعة موجودة لها نفس الـ metadata (الكمية لازم تكون أكثر أو تساوي المجموعة الحالية)
- عدّل metadata المجموعة كاملة (الكمية لازم تكون أكثر أو تساوي المجموعة الحالية)، وهذا بس إذا الـ metadata نفس المجموعة الحالية
sourceintrequiredرقم اللاعب (id)
itemIdintrequiredرقم الايتم (id)
metadatatableالمفاتيح المحجوزة هي:
descriptionوصف الايتم البديلimageصورة الايتم البديلة، لازم تكون موجودة في مجلد الايتمات.labelاسم الايتم البديلweightوزن الايتم البديلtolltipإضافة نص إضافي للتلميح (tooltip)useExpiredإذا true يسمح باستخدام الايتمات المنتهية ويتجاوز إعداد useExpired في قاعدة بيانات الايتمات
amountintrequiredكمية الايتم اللي تنشال من المجموعة الحالية إذا أقل؛ وإذا أكثر تنشال من هنا وتنضاف لمجموعة ثانية إذا الـ metadata متطابقة، وإذا لا تتحدث المجموعة كاملة بالـ meta الجديد
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضبطت الـ metadata بنجاح
local metadata = { description = 'Custom description', label = 'Custom label' }
exports.jrs_inventory:setItemMetadata(source, itemId, metadata, 1) -- SET ITEM METADATA
exports.jrs_inventory:setItemMetadata(source, itemId, metadata, amount, callback)registerUsableItem#
تسجيل ايتم يستخدم
ما ينفع تسجّل الايتم مرتين، لازم يكون فريد
itemstringrequiredاسم الايتم
callbackfunctionrequiredالـ callback {source:int, id:number, label:string, name:string, metadata:table, group:number, type:string, count:number, limit:number,canUse:boolean, mainid: integer, percentage:integer}
resourceNamestringاسم الريسورس للتصحيح، عشان المستخدمين يشوفون في أي ريسورس انسجل هذا الايتم
exports.jrs_inventory:registerUsableItem(item, callback,resourceName)unRegisterUsableItem#
إلغاء تسجيل ايتم يستخدم، مثلاً لما توقف سكربت
ما ينفع تسجّل الايتم مرتين، لازم يكون فريد
itemstringrequiredاسم الايتم
exports.jrs_inventory:unRegisterUsableItem(item)دوال القراءة (Getters)
getCustomInventoryItemCount#
جلب عدد ايتم في مخزون مخصص
invidstringrequiredرقم المخزون (id)
itemNamestringrequiredاسم الايتم
callbackfunctionدالة callback متزامنة أو غير متزامنة
metadatatableإذا انعطت metadata يرجع عدد الايتمات اللي لها نفس الـ metadata
returnnumberreturns عدد الايتمات في المخزون
exports.jrs_inventory:getCustomInventoryItemCount(invid,itemName,callback,metadata)getCustomInventoryItems#
جلب ايتمات المخزون المخصص
invidstringrequiredرقم المخزون (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntablereturns جدول فيه كل الايتمات في المخزون
exports.jrs_inventory:getCustomInventoryItems(invid, callback)دوال التعديل (Setters)
removeItemFromCustomInventory#
إزالة ايتم من مخزون مخصص
invidstringrequiredرقم المخزون (id)
itemNamestringrequiredاسم الايتم
amountnumberrequiredكمية الايتم
itemCraftedIdnumberrequiredرقم الايتم المصنوع
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انحذف الايتم بنجاح
exports.jrs_inventory:removeItemFromCustomInventory(invid,itemName,callback)updateCustomInventoryItem#
تحديث ايتم في مخزون مخصص
invIdstringrequiredرقم المخزون (id)
item_idnumberrequiredرقم الايتم (id)
metadatatablerequiredالـ metadata المراد تحديثها
amountnumberكمية الايتم
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا تحدّث الايتم بنجاح
exports.jrs_inventory:updateCustomInventoryItem(invId, item_id, metadata, amount, callback)addItemsToCustomInventory#
إضافة ايتمات لمخزون مخصص
invidstringrequiredرقم المخزون (id)
itemstablerequiredالايتمات المراد إضافتها
charidnumbercharidentifier لصاحب التخزين إذا المخزون المخصص مو مشترك، وإذا مشترك يقدر يكون أي characteridentifier
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضافت الايتمات بنجاح
exports.jrs_inventory:addItemsToCustomInventory(invid, items, charid,callback)setCustomInventoryItemLimit#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
إذا حطيت whitelistItems على true في registerCustomInventory استخدم هذا الـ export عشان تحدد الايتمات المسموحة وكمياتها
invIdstringrequiredرقم المخزون (id)
itemstringrequiredاسم الايتم
limitnumberrequiredحد الايتم
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضبط الحد بنجاح
exports.jrs_inventory:setCustomInventoryItemLimit(invId, item, limit, callback)المخازن المخصصة في JRS Core تخزن ايتمات فقط. هذي الدوال موجودة للتوافق: القراءة ترجع فاضي / 0، والكتابة ترجع false.
دوال القراءة (Getters)
getCustomInventoryWeapons#
جلب أسلحة المخزون المخصص
invidstringrequiredرقم المخزون (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returntablereturns جدول فيه كل الأسلحة في المخزون
exports.jrs_inventory:getCustomInventoryWeapons(invid, callback)getCustomInventoryWeaponCount#
جلب عدد الأسلحة في المخزون المخصص
invidstringrequiredرقم المخزون (id)
weaponNamestringrequiredاسم السلاح
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnnumberreturns عدد الأسلحة في المخزون
exports.jrs_inventory:getCustomInventoryWeaponCount(invid,weaponName,callback)دالة تعديل (Setter)
removeCustomInventoryWeaponById#
إزالة سلاح من المخزون المخصص برقم السلاح
invIdstringrequiredرقم المخزون (id)
weapon_idnumberrequiredرقم السلاح (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انحذف السلاح بنجاح
exports.jrs_inventory:removeCustomInventoryWeaponById(invId, weapon_id, callback)removeWeaponFromCustomInventory#
إزالة سلاح من المخزون المخصص
invidstringrequiredرقم المخزون (id)
weaponNamestringrequiredاسم السلاح
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انحذف السلاح بنجاح
exports.jrs_inventory:removeWeaponFromCustomInventory(invid,weaponName,callback)addWeaponsToCustomInventory#
إضافة أسلحة للمخزون المخصص
invidstringrequiredرقم المخزون (id)
weaponstablerequired{name: string, serial_number: string?, custom_label: string?, custom_desc: string?, components: table?}
charidnumbercharidentifier لصاحب التخزين إذا المخزون المخصص مو مشترك، وإذا مشترك يقدر يكون أي characteridentifier
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضافت الأسلحة بنجاح
exports.jrs_inventory:addWeaponsToCustomInventory(invid, weapons, charid,callback)setCustomInventoryWeaponLimit#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
تحديد الأسلحة المسموحة في المخزون المخصص: إذا حطيت whitelistWeapons على true في registerCustomInventory استخدم هذا الـ export عشان تحدد الأسلحة المسموحة وكمياتها
invIdstringrequiredرقم المخزون (id)
weaponstringrequiredاسم السلاح
limitnumberrequiredحد الأسلحة
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا انضبط الحد بنجاح
exports.jrs_inventory:setCustomInventoryWeaponLimit(invId, weapon, limit, callback)دوال القراءة (Getters)
isCustomInventoryRegistered#
فحص إذا المخزون مسجّل
idstringrequiredرقم المخزون (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
returnbooleanreturns true إذا المخزون مسجّل
exports.jrs_inventory:isCustomInventoryRegistered(id, callback)AddCharIdPermissionTakeFromCustom#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
إضافة صلاحيات باستخدام charids
idstringrequiredرقم المخزون (id)
charidnumberrequiredcharid
statebooleanالحالة
exports.jrs_inventory:AddCharIdPermissionTakeFromCustom(id,charid,state)AddCharIdPermissionMoveToCustom#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
إضافة صلاحيات باستخدام charids
idstringrequiredرقم المخزون (id)
charidnumberrequiredcharid
statebooleanالحالة
exports.jrs_inventory:AddCharIdPermissionMoveToCustom(id,charid,state)getCustomInventorySlots#
جلب خانات المخزون المخزّنة مؤقتاً
invIdstringrequiredرقم المخزون (id)
callbackfunctionدالة callback متزامنة أو غير متزامنة
exports.jrs_inventory:getCustomInventorySlots(invId,callback)دوال التعديل (Setters)
deleteCustomInventory#
حذف المخزون المخصص من قاعدة البيانات والذاكرة المؤقتة
invIdstringrequiredرقم المخزون (id)
exports.jrs_inventory:deleteCustomInventory(invId)registerInventory#
تسجيل مخزون مخصص
datatablerequired{ id:string, name:string, limit:number, acceptWeapons:boolean, shared:boolean, ignoreItemStackLimit:boolean, whitelistItems:boolean, UsePermissions:boolean, UseBlackList:boolean, whitelistWeapons:boolean,webhook:string }
exports.jrs_inventory:registerInventory(data)AddPermissionMoveToCustom#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
إضافة صلاحيات نقل ايتم للمخزون حسب الوظيفة والرتبة
invIdstringrequiredرقم المخزون (id)
jobNamestringrequiredاسم الوظيفة
jobgradenumberrequiredرتبة الوظيفة
exports.jrs_inventory:AddPermissionMoveToCustom(invId, jobName, jobgrade)AddPermissionTakeFromCustom#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
إضافة صلاحيات أخذ ايتم من المخزون حسب الوظيفة والرتبة
invIdstringrequiredرقم المخزون (id)
jobNamestringrequiredاسم الوظيفة
jobgradenumberrequiredرتبة الوظيفة
exports.jrs_inventory:AddPermissionTakeFromCustom(invId, jobName, jobgrade)BlackListCustomAny#
مقبول عشان السكربتات القديمة ما تخرب، لكن ما له أي تأثير في JRS Core: المخزون المخصص يفتحه فقط السكربت اللي يملكه.
حظر ايتمات أو أسلحة
invIdstringrequiredرقم المخزون (id)
itemstringrequiredاسم الايتم | اسم السلاح
exports.jrs_inventory:BlackListCustomAny(invId, item)removeInventory#
إزالة المخزون من الجلسة
invIdstringrequiredرقم المخزون (id)
exports.jrs_inventory:removeInventory(invId)updateCustomInventorySlots#
تحديث خانات المخزون
invIdstringrequiredرقم المخزون (id)
slotsnumberrequiredخانات المخزون
exports.jrs_inventory:updateCustomInventorySlots(invId, slots)openInventory#
فتح المخزون الرئيسي أو الثانوي
sourceintrequiredرقم اللاعب (id)
invIdstringرقم المخزون (id)
exports.jrs_inventory:openInventory(source, invId)closeInventory#
إغلاق المخزون الرئيسي أو الثانوي
sourceintrequiredرقم اللاعب (id)
invIdstringرقم المخزون (id)
exports.jrs_inventory:closeInventory(source, invId)openPlayerInventory#
فتح مخزون لاعب
datatablerequired{ source:int, target:int, title:string, blacklist:table, itemsLimit:table, timeout:number }
local data = {
source = source,
target = target,
title = "Search inventory",
blacklist = { -- OPTIONAL
water = true, -- item name or weapon name
},
itemsLimit = { -- OPTIONAL
weapons = { itemType = "item_weapon", limit = 1 }, -- how many weapons user is allowed to take
items = { itemType = "item_standard", limit = 2 }, -- how many items user is allowed to take
},
timeout = 60, -- OPTIONAL in seconds , if enabled when user reaches limits then a timeout is applied so player cant steal for that amount of time if removed then once limit reached only after restart they can steal again
}
exports.jrs_inventory:openPlayerInventory(data)الأحداث (Events)
جهة السيرفر فقط
استمع لما ينستخدم ايتم
AddEventHandler("jrs_inventory:Server:OnItemUse",function(data)
local source = data.source
local itemName = data.item.name
local itemMetadata = data.item.metadata
end)استمع لما ينسوى ايتم في مخزون اللاعب
AddEventHandler("jrs_inventory:Server:OnItemCreated",function(data,source)
-- data.count, data.name, data.metadata
end)استمع لما ينشال ايتم من مخزون اللاعب
AddEventHandler("jrs_inventory:Server:OnItemRemoved",function(data,source)
-- data.count , data.name , data.metadata
end)استمع لما ينأخذ ايتم من مخزون مخصص
AddEventHandler("jrs_inventory:Server:OnItemTakenFromCustomInventory", function(item, invId, source)
-- item.amount , item.name, item.id, item.metadata
end)استمع لما ينتقل ايتم لمخزون مخصص
AddEventHandler("jrs_inventory:Server:OnItemMovedToCustomInventory", function(item, invId, source)
-- item.amount , item.name, item.id, item.metadata
end)استمع لتغيّر حالة المخزون (opens or closes) بما فيها المخازن المخصصة
AddEventHandler("jrs_inventory:Client:OnInvStateChange",function(boolean)
print(boolean)
end)منع فتح مخزون اللاعب من جهة السيرفر أو الكلاينت
TriggerClientEvent("jrs_inventory:blockInventory", player_id, true or false) TriggerEvent("jrs_inventory:blockInventory", true or false)جهة الكلاينت فقط
استمع لما يتجهّز سلاح
AddEventHandler("jrs_inventory:onWeaponEquipped", function(components, weaponId, name, isDual, defaultAttachments)
-- components: table of the equipped components, weaponId: weapon id, name: weapon name, isDual: boolean, defaultAttachments: table
end)استمع لما تنضاف قطعة للسلاح
AddEventHandler("jrs_inventory:componentAdded", function(weaponId, component, category)
-- weaponId: weapon id, component: component name, category: slot category
end)استمع لما تنشال قطعة من السلاح
AddEventHandler("jrs_inventory:componentRemoved", function(weaponId, component, category)
-- weaponId: weapon id, component: component name, category: slot category
end)الـ Statebags
فيه بيانات السلاح المستخدم حالياً في المخزون أو آخر سلاح انستخدم.
جهة الكلاينت
local key = string.format("GetEquippedWeaponData_%d",weaponHash)
local data = LocalPlayer.state[key]
local serial = data.serialNumber
local id = data.weaponIdجهة السيرفر
local key = string.format("GetEquippedWeaponData_%d",weaponHash)
local data = Player(source).state[key]
local serial = data.serialNumber
local id = data.weaponIdفحص إذا المخزون نشط (مفتوح أو مسكّر) بما فيها المخازن المخصصة
جهة الكلاينت
LocalPlayer.state.IsInvActiveجهة السيرفر
Player(source).state.IsInvActiveالـ Statebags العامة
يرجع الوقت (timestamp) من السيرفر عشان ينستخدم في الكلاينت
local timestamp = GlobalState.TimeNow
-- Get hours, minutes and seconds from timestamp
local seconds = GlobalState.TimeNow % 60
local minutes = math.floor(GlobalState.TimeNow / 60) % 60
local hours = math.floor(GlobalState.TimeNow / 3600) % 24