JRS COREالوثائق
مرجع الـ API

core

مرجع الـ API للكور

Warning

هذا التوثيق للمطورين اللي يسوون سكربتات لفريمورك JRS Core

Export#

GetCore هو export مشترك يرجع جدول الكور اللي فيه كل دوال القراءة والتعديل في JRS Core. بعض دوال القراءة والتعديل للكلاينت فقط وبعضها للسيرفر فقط.

Note

مشترك (Shared)

GetCore#
returntable

جدول الكور اللي فيه كل دوال القراءة والتعديل.

lua
local Core = exports.jrs_core:GetCore()

تسجيل وظايف السيرفر

يخليك تعطي اللاعبين الوظايف والرتب الصحيحة بس، ويمنعهم من استخدام وظايف ورتب غلط.

Note

جهة السيرفر

RegisterJobs#

سجّل الوظايف في السيرفر، وتنحفظ في ملف config/jobs.lua في jrs core، وبعدها تقدر تسجلها تلقائياً بدالة RegisterJobs أو يدوياً بإضافتها لملف lua.

jobsDatatablerequired

بيانات الوظيفة جدول فيه المفاتيح هذي:

  • jobname: string اسم الوظيفة هو المفتاح وبيانات الوظيفة هي القيمة.
  • groups: array اختياري، إذا تبي بس هذي المجموعة تقدر تعطي هذي الوظيفة.
  • privateJob: boolean إذا true، الوظيفة تكون خاصة وما أحد يقدر يعطيها.
  • grades: table أضف الرتب بس إذا تستخدم رتب
  • [grade]: table رقم الرتبة هو المفتاح وبيانات الرتبة هي القيمة.
  • label: string اسم الرتبة المعروض
  • privateGrade: boolean إذا true، الرتبة تكون خاصة وما أحد يقدر يعطيها.
resourceNamestringrequired

اسم الريسورس اللي تتسجل له الوظايف (للتصحيح)

lua
local jobsData <const> = {
    jobname = {
        groups = {"admin"} -- optional, if you wish to set this job to only this group can give this job.
        privateJob = true -- if true, the job will be private no one can give this job.
        grades = { -- only add grades if you use grades
            [1] = {
                label = "Grade Label"
                privateGrade = true -- if true, the grade will be private no one can give this grade.
            }
        }
    }
}

if Core.RegisterJobs then
    Core.RegisterJobs(jobsData, GetCurrentResourceName())
else
    print("Core.RegisterJobs is not available update jrs core to the latest version")
end

الإشعارات

الإشعارات تقبل -1 كمدة عشان تبقى على الشاشة دائماً، وعشان تمسحها لازم تستخدم UiFeedClearChannel

Note

مشترك (Shared)

NotifyLeft#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationnumberrequired

المدة بالملي ثانية

colorstringrequired

لون الإشعار

lua
Core.NotifyLeft("title", "subtitle", "dict", "icon", 4000, "color")
NotifyTip#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyTip("title", 4000)
NotifyRightTip#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyRightTip("title", 4000)
NotifyObjective#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyObjective("title", 4000)
NotifyTop#
titlestringrequired

عنوان الإشعار

locationstringrequired

المكان المعروض

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyTop("title", "location", 4000)
NotifySimpleTop#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifySimpleTop("title", "subtitle", 4000)
NotifyAvanced#
titlestringrequired

عنوان الإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

colorstringrequired

لون الإشعار

durationnumberrequired

المدة بالملي ثانية

qualitynumberrequired

يفعّل نجوم الجودة مثل نجوم جلود الحيوانات

showQualitybooleanrequired

يعرض جودة الإشعار

lua
Core.NotifyAvanced("title", "dict", "icon", "color", 4000, quality, showQuality)
NotifyCenter#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyCenter("title", 4000)
NotifyBottomRight#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyBottomRight("title", 4000)
NotifyFail#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyFail("title", "subtitle", 4000)
NotifyDead#
titlestringrequired

عنوان الإشعار

audiorefstringrequired

مرجع الصوت

audionamestringrequired

اسم الصوت

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyDead("title", "audioref", "audioname", 4000)
NotifyUpdate#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyUpdate("title", "subtitle", 4000)
NotifyWarning#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

audiorefstringrequired

مرجع الصوت

audionamestringrequired

اسم الصوت

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyWarning("title", "subtitle", "audioref", "audioname", 4000)
NotifyLeftRank#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationnumberrequired

المدة بالملي ثانية

colorstringrequired

لون الإشعار

lua
Core.NotifyLeftRank("title", "subtitle", "dict", "icon", 4000, "color")
NotifyOneSimpleTop#
titlestringrequired

عنوان الإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyOneSimpleTop("title", 4000)
NotifyThreeSimpleTop#
titlestringrequired

عنوان الإشعار

descriptionstringrequired

وصف الإشعار

second_descriptionstringrequired

الوصف الثاني للإشعار

durationnumberrequired

المدة بالملي ثانية

lua
Core.NotifyThreeSimpleTop("title","description","second_description", 4000)
NotifyLeftInteractive#
titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationnumberrequired

المدة بالملي ثانية أو -1 لعرض دائم

colorstringrequired

لون الإشعار

lua
Core.NotifyLeftInteractive("title", "subtitle", "dict", "icon", 4000, "color")
NotifyTip#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyTip(source, "title", 4000)
NotifyLeft#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationintegerrequired

المدة بالملي ثانية

colorstringrequired

لون الإشعار

lua
Core.NotifyLeft(source, "title", "subtitle", "dict", "icon", 4000, "color")
NotifyRightTip#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyRightTip(source, "title", 4000)
NotifyObjective#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyObjective(source, "title", 4000)
NotifyTop#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

locationstringrequired

المكان المعروض

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyTop(source, "title", "location", 4000)
NotifySimpleTop#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifySimpleTop(source, "title", "subtitle", 4000)
NotifyAvanced#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

colorstringrequired

لون الإشعار

durationintegerrequired

المدة بالملي ثانية

showQualitybooleanrequired

عرض جودة الإشعار

qualitynumberrequired

جودة الإشعار (الحد الأقصى 3)

lua
Core.NotifyAvanced(source, "title", "dict", "icon", "color",showQuality,quality, 4000)
NotifyCenter#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyCenter(source, "title", 4000)
NotifyBottomRight#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyBottomRight(source, "title", 4000)
NotifyFail#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyFail(source, "title", "subtitle", 4000)
NotifyDead#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

audiorefstringrequired

مرجع الصوت

audionamestringrequired

اسم الصوت

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyDead(source, "title", "audioref", "audioname", 4000)
NotifyUpdate#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyUpdate(source, "title", "subtitle", 4000)
NotifyWarning#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

audiorefstringrequired

مرجع الصوت

audionamestringrequired

اسم الصوت

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyWarning(source, "title", "subtitle", "audioref", "audioname", 4000)
NotifyLeftRank#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationintegerrequired

المدة بالملي ثانية

colorstringrequired

لون الإشعار

lua
Core.NotifyLeftRank(source, "title", "subtitle", "dict", "icon", 4000, "color")
NotifyOneSimpleTop#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyOneSimpleTop(source, "title", 4000)
NotifyThreeSimpleTop#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

descriptionstringrequired

وصف الإشعار

second_descriptionstringrequired

الوصف الثاني للإشعار

durationintegerrequired

المدة بالملي ثانية

lua
Core.NotifyThreeSimpleTop(source, "title","description","second_description", 4000)
NotifyLeftInteractive#
sourceintegerrequired

رقم اللاعب (ID)

titlestringrequired

عنوان الإشعار

subtitlestringrequired

العنوان الفرعي للإشعار

dictstringrequired

قاموس الأيقونة (dictionary)

iconstringrequired

اسم الأيقونة

durationintegerrequired

المدة بالملي ثانية أو -1 لعرض دائم

colorstringrequired

لون الإشعار

lua
Core.NotifyLeftInteractive(source, "title", "subtitle", "dict", "icon", 4000, "color")

الشخصيات

جلب بيانات الشخصية للوصول لدوال القراءة والتعديل

Note

السيرفر

getUsedCharacter#
sourceintegerrequired

رقم اللاعب (ID)

lua
    local user = Core.getUser(source) --[[@as User]]  
    if not user then return end -- is player in session?
    local character = user.getUsedCharacter --[[@as Character]]
identifier#
returnstring

المعرّف الفريد للشخصية

lua
local identifier = character.identifier
charIdentifier#
returnstring

معرّف الشخصية الفريد

lua
local charIdentifier = character.charIdentifier
group#
returnstring

المجموعة اللي تنتمي لها الشخصية

lua
local group = character.group
multiJobs#
returntable

الوظايف المتعددة للشخصية

lua
local multijobs = character.multiJobs
for _, job in pairs(multiJobs) do   
    print(job.job, job.grade, job.label)
end
job#
returnstring

وظيفة الشخصية

lua
local job = character.job
jobGrade#
returninteger

رتبة وظيفة الشخصية

lua
local jobGrade = character.jobGrade
jobLabel#
returnstring

اسم وظيفة الشخصية المعروض

lua
local jobLabel = character.jobLabel
money#
returnnumber

كمية الفلوس عند الشخصية

lua
local money = character.money
gold#
returnnumber

كمية الذهب عند الشخصية

lua
local gold = character.gold
rol#
returnnumber

كمية الـ rol عند الشخصية

lua
local rol = character.rol
xp#
returnnumber

نقاط الخبرة عند الشخصية

lua
local xp = character.xp
firstname#
returnstring

الاسم الأول للشخصية

lua
local firstname = character.firstname
lastname#
returnstring

اسم العائلة للشخصية

lua
local lastname = character.lastname
status#
returntable

حالة الشخصية

lua
local status = character.status
coords#
returntable

إحداثيات الشخصية

lua
local coords = character.coords
isdead#
returnboolean

هل الشخصية ميتة أو لا

lua
local isDead = character.isdead
skin#
returntable

تفاصيل شكل الشخصية

lua
local skin = character.skin
comps#
returntable

تفاصيل قطع الشخصية

lua
local comps = character.comps
age#
returnnumber

عمر الشخصية

lua
local age = character.age
gender#
returnstring

جنس الشخصية

lua
local gender = character.gender
charDescription#
returnstring

وصف الشخصية

lua
local charDescription = character.charDescription
nickname#
returnstring

لقب الشخصية

lua
local nickname = character.nickname
invCapacity#
returnnumber

سعة مخزون الشخصية

lua
local invCapacity = character.invCapacity
skills#
returntable

مهارات الشخصية

lua
local skills = character.skills
local skill = skills.Crafting
if not skill then return print("skill not found in core config or it doesn't exist") end
local skillExp = skill.Exp
local skillLevel = skill.Level
setJob#
jobstringrequired

اسم الوظيفة المراد تعيينها

flagboolean

إذا true، حدث تغيير الوظيفة ما يتشغّل

lua
 character.setJob("job", flag)
setMultiJob#
Warning

موجودة للتوافق فقط: ترجع دائماً false. استخدم exports.jrs_core:AddJob. استخدم البديل في JRS من صفحة JRS API.

تقدر تضيف وظايف متعددة للمستخدمين ويتنقلون بينها بأمر switch في jrs core استمع لأحداث تغيير الوظيفة عشان تعرف متى المستخدم غيّر وظيفته

jobstringrequired

اسم الوظيفة المراد تعيينها

gradenumberrequired

رتبة الوظيفة المراد تعيينها

labelstringrequired

اسم الوظيفة المعروض المراد تعيينه

lua
character.setMultiJob("job", 1, "label")
removeMultiJob#
Warning

موجودة للتوافق فقط: ترجع دائماً false. استخدم exports.jrs_core:RemoveJob. استخدم البديل في JRS من صفحة JRS API.

jobstringrequired

اسم الوظيفة المراد إزالتها

lua
character.removeMultiJob("job")
getMultiJobsCount#
returnnumber

عدد الوظايف المتعددة عند الشخصية

lua
local multiJobCount = character.getMultiJobsCount()
setJobGrade#
gradenumberrequired

رتبة الوظيفة المراد تعيينها

flagboolean

إذا true، حدث تغيير الوظيفة ما يتشغّل

lua
character.setJobGrade(1, flag)
setJobLabel#
labelstringrequired

اسم الوظيفة المعروض المراد تعيينه

lua
character.setJobLabel("Label")
setGroup#
groupstringrequired

المجموعة المراد تعيينها

flagboolean

إذا true، حدث تغيير المجموعة ما يتشغّل

lua
character.setGroup("admin", false)
setXp#
amountnumberrequired

تعيين كمية الـ XP للشخصية

lua
character.setXp(5000)
setFirstname#
firstnamestringrequired

تعيين الاسم الأول للشخصية

lua
character.setFirstname("Sadie")
setLastname#
lastnamestringrequired

تعيين اسم العائلة للشخصية

lua
character.setLastname("Adler")
addCurrency#
typenumberrequired

نوع العملة (0 = فلوس، 1 = ذهب، 2 = rol)

amountnumberrequired

الكمية المراد إضافتها للشخصية

lua
character.addCurrency(0, 1000)
removeCurrency#
typenumberrequired

نوع العملة (0 = فلوس، 1 = ذهب، 2 = rol)

amountnumberrequired

الكمية المراد سحبها من الشخصية

lua
character.removeCurrency(0, 1000)
addXp#
amountnumberrequired

كمية الـ XP المراد إضافتها

lua
character.addXp(100)
removeXp#
amountnumberrequired

كمية الـ XP المراد سحبها

lua
character.removeXp(100)
updateInvCapacity#
Warning

موجودة للتوافق فقط: ما تسوي شي في JRS Core. استخدم البديل في JRS من صفحة JRS API.

changenumberrequired

الكمية اللي تتغير فيها سعة المخزون (موجبة أو سالبة)، وهي تراكمية: 1000 تعني 1000 + اللي عندك أصلاً

lua
character.updateInvCapacity(1) 
setSkills#
skillNamestringrequired

اسم المهارة المراد تعيينها، أسماء المهارات موجودة في إعدادات skills في JRS Core

valuenumberrequired

قيمة الخبرة اللي تنضاف للمهارة اللي مرّرتها، والقيم تراكمية: 1000 خبرة تعني 1000 + اللي عندك أصلاً

lua
character.setSkills("skillName", 10) -- skillname exp

المستخدمين

جلب بيانات المستخدم للوصول لدوال القراءة والتعديل

getUser#
sourcenumberrequired

رقم اللاعب (ID)

lua
local user = Core.getUser(source) --[[@as User]]  
if not user then return end -- is player in session?
getUserByCharId#
charidnumberrequired

رقم الشخصية

lua
local user = Core.getUserByCharId(charid) --[[@as User]]
getGroup#
returnstring

مجموعة المستخدم (مو مجموعة الشخصية)

lua
local userGroup = user.getGroup
source#
returninteger

رقم المستخدم (source / رقم اللاعب)

lua
local userSource = user.source
maxJobsAllowed#
returnnumber

أقصى عدد وظايف مسموح للمستخدم

lua
local maxJobsAllowed = user.maxJobsAllowed
SetGroup#
groupstringrequired

المجموعة المراد تعيينها للمستخدم

lua
user.SetGroup(group)
getIdentifier#
returnnumber

معرّف الستيم للمستخدم

lua
local steam = user.getIdentifier()
getUserCharacters#
returntable

كل شخصيات المستخدم

lua
local data = user.getUserCharacters()
getPlayerwarnings#
Warning

موجودة للتوافق فقط: ترجع دائماً 0. استخدم البديل في JRS من صفحة JRS API.

returninteger

حالة التحذيرات عند المستخدم

lua
local warnstatus = user.getPlayerwarnings()

القائمة البيضاء (Whitelist)

Note

السيرفر

getEntry#
identifierstringrequired

معرّف السجل في القائمة البيضاء (whitelist)

lua
local data = Core.Whitelist.getEntry(identifier)
print(json.encode(data),{ident = true})
whitelistUser#
identifierstringrequired

معرّف السجل في القائمة البيضاء (whitelist)

lua
Core.Whitelist.whitelistUser(identifier)
unWhitelistUser#
identifierstringrequired

معرّف السجل في القائمة البيضاء (whitelist)

lua
Core.Whitelist.unWhitelistUser(identifier)

الـ Webhooks

Note

مشترك (Shared)

AddWebhook#
Warning

موجودة للتوافق فقط: ما تسوي شي في الكلاينت. استخدم البديل في JRS من صفحة JRS API.

titlestringrequired

عنوان الـ webhook

webhookstringrequired

رابط الـ webhook

descriptionstringrequired

وصف الـ webhook

colornumberrequired

لون الـ webhook

namestringrequired

اسم الـ webhook

logostring

شعار الـ webhook

footerlogostring

شعار أسفل الـ webhook

avatarstring

صورة الـ webhook

lua
Core.AddWebhook("title", "webhook", "description", 12345678, "name", "logo", "footerlogo", "avatar")

النسخ المنفصلة (Instancing)

Note

الكلاينت

عشان تحط لاعبين في نسخ مختلفة استخدم رقمه في السيرفر + رقم النسخة عشان تحط لاعبين في نفس النسخة استخدم instanceNumber بس

lua
local instanceNumber = 54123 -- any number
JRScore.instancePlayers(GetPlayerServerId(PlayerId())+ instanceNumber)

إخراج اللاعبين من النسخة

lua
JRScore.instancePlayers(0)

اللاعب

متاحة عن طريق export الكور

Note

جهة السيرفر
لما تستخدم هذي الدوال تستفيد من مستمعي الأحداث OnPlayerDeath OnPlayerRevive OnPlayerRespawn

Heal#
sourceintegerrequired

رقم اللاعب (ID)

lua
Core.Player.Heal(source)
Revive#
sourceintegerrequired

رقم اللاعب (ID)

lua
Core.Player.Revive(source)
Respawn#
sourceintegerrequired

رقم اللاعب (ID)

lua
Core.Player.Respawn(source)

الـ Callbacks

الـ Callbacks متاحة عن طريق export الكور أو exports منفصلة

إذا تحتاج نظام الـ callback بس

lua
local ServerRPC = exports.jrs_core:ServerRpcCall() --[[@as ServerRPC]] -- for intellisense
TriggerAwait#

تشغيل callback متزامن من الكلاينت للسيرفر

namestringrequired

اسم الـ callback

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
local result =  Core.Callback.TriggerAwait(name,...)
print(result)
TriggerAsync#

تشغيل callback غير متزامن من الكلاينت للسيرفر

namestringrequired

اسم الـ callback

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
Core.Callback.TriggerAsync(name, function(result)
  print(result)
 end, ...)
Register#

تسجيل callback في السيرفر عشان يستقبل callback من الكلاينت

namestringrequired

اسم الـ callback

callbackfunctionrequired

دالة الـ callback

sourceinteger

مصدر الـ callback (source)

callbackfunction

دالة الـ callback

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
Core.Callback.Register(name, function(source,callback,...)
   callback(...)
 end)

إذا تحتاج نظام الـ callback بس

lua
local ClientRPC = exports.jrs_core:ClientRpcCall() --[[@as ClientRPC]] -- for intellisense
TriggerAwait#

تشغيل callback من السيرفر للكلاينت بشكل متزامن

namestringrequired

اسم الـ callback

sourceinteger

مصدر الـ callback (source)

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
local result = Core.Callback.TriggerAwait(name,source,...)
print(result)
TriggerAsync#

تشغيل callback غير متزامن من الكلاينت للسيرفر

namestringrequired

اسم الـ callback

sourceinteger

مصدر الـ callback (source)

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
Core.Callback.TriggerAsync(name, source, function(result)
  print(result)
 end, ...)
Register#

تسجيل callback في الكلاينت عشان يستقبل callback من السيرفر

namestringrequired

اسم الـ callback

callbackfunctionrequired

دالة الـ callback

...any

المعاملات اللي تنرسل للـ callback

returnany

نتيجة الـ callback

lua
Core.Callback.Register(name, function(callback,...)
 callback(...)
end)        

الأحداث (Events)

مستمعي أحداث لاكتشاف التغييرات في حالة اللاعب

هذي الأحداث تتشغّل لما تتغير وظيفة أو مجموعة اللاعب

Note

جهة السيرفر

onGroupChange#

lua
AddEventHandler("jrs:playerGroupChange",function(source, newgroup,oldgroup) end)

onJobChange#

lua
AddEventHandler("jrs:playerJobChange", function(source, newjob,oldjob) end)

onJobGradeChange#

lua
AddEventHandler("jrs:playerJobGradeChange",function(source, newjobgrade,oldjobgrade) end)

onPlayerDeath#

هذا الحدث يتشغّل لما يموت اللاعب

lua
--CLIENT
AddEventHandler("jrs_core:Client:OnPlayerDeath",function(killerserverid,causeofdeath) end)

--SERVER
RegisterNetEvent("jrs_core:Server:OnPlayerDeath",function(killerserverid,causeofdeath) end)

onPlayerRevive#

هذا الحدث يتشغّل لما ينعش اللاعب عن طريق export في JRS Core

lua
--SERVER
AddEventHandler("jrs_core:Server:OnPlayerRevive",function(source)end)

--CLIENT
RegisterNetEvent("jrs_core:Client:OnPlayerRevive")

onPlayerRespawn#

هذا الحدث يتشغّل لما يعيد اللاعب الظهور عن طريق export في JRS Core

lua
--SERVER
AddEventHandler("jrs_core:Server:OnPlayerRespawn"function(source)end)

--CLIENT
RegisterNetEvent("jrs_core:Client:OnPlayerRespawn")

onPlayerHeal#

هذا الحدث يتشغّل لما يتعالج اللاعب عن طريق export في JRS Core

lua
--SERVER
AddEventHandler("jrs_core:Server:OnPlayerHeal",function(source) end)
--CLIENT
RegisterNetEvent("jrs_core:Client:OnPlayerHeal")

onSkillLevelChanged#

يتشغّل لما مهارة (مهارات الشخصية، مستويات الوظايف) ترتفع أو تنزل

lua
--SERVER
AddEventHandler("jrs_core:server:skillLevelChanged", function(source, skillName, newLevel, oldLevel) end)
--CLIENT
RegisterNetEvent("jrs_core:client:skillLevelChanged", function(skillName, newLevel, oldLevel) end)

onCharacterReady#

يتشغّل لما اللاعب يختار شخصية وتكون محمّلة بالكامل. هذا الحدث اللي تستخدمه بدل ما تنتظر الظهور

lua
--SERVER
AddEventHandler("jrs_core:server:characterReady", function(source, character) end)
--CLIENT
RegisterNetEvent("jrs_core:client:characterReady", function(charId) end)

onCharacterUnloaded#

يتشغّل لما تنفك الشخصية (خروج، تغيير شخصية، انقطاع)

lua
--SERVER
AddEventHandler("jrs_core:server:characterUnloaded", function(source, previousCharacter, reason) end)
--CLIENT
RegisterNetEvent("jrs_core:client:characterUnloaded", function(reason) end)

Dataview#

استدعِ dataview في fxmanifest حق سكربتك

lua
 client_scripts {
    '@jrs_core/client/dataview.lua'
 }

الـ Statebags

دوال قراءة statebag تخليك تجيب بيانات الشخصية

Note

مشترك (Shared)

IsInSession#

هل اللاعب داخل الجلسة؟ ترجع true لما اللاعب يختار شخصيته

returnboolean

قيمة IsInSession للشخصية

lua
LocalPlayer.state.IsInSession
FirstName#

جلب الاسم الأول للشخصية

returnstring

الاسم الأول للشخصية

lua
LocalPlayer.state.Character.FirstName
LastName#

جلب اسم العائلة للشخصية

returnstring

اسم العائلة للشخصية

lua
LocalPlayer.state.Character.LastName
Job#

جلب وظيفة الشخصية

returnstring

وظيفة الشخصية

lua
LocalPlayer.state.Character.Job
JobLabel#

جلب اسم وظيفة الشخصية المعروض

returnstring

اسم وظيفة الشخصية المعروض

lua
LocalPlayer.state.Character.JobLabel
Grade#

جلب رتبة الشخصية

returninteger

رتبة الشخصية

lua
LocalPlayer.state.Character.Grade
Group#

جلب مجموعة الشخصية

returnstring

مجموعة الشخصية

lua
LocalPlayer.state.Character.Group
Gender#

جلب جنس الشخصية

returnstring

جنس الشخصية

lua
LocalPlayer.state.Character.Gender
NickName#

جلب لقب الشخصية

returnstring

لقب الشخصية

lua
LocalPlayer.state.Character.NickName
Money#

جلب فلوس الشخصية

returninteger

فلوس الشخصية

lua
LocalPlayer.state.Character.Money
Gold#

جلب ذهب الشخصية

returninteger

ذهب الشخصية

lua
LocalPlayer.state.Character.Gold
Rol#

جلب rol الشخصية

returninteger

rol الشخصية

lua
LocalPlayer.state.Character.Rol
CharId#

جلب charid الشخصية

returninteger

charid الشخصية

lua
LocalPlayer.state.Character.CharId
IsInSession#

هل اللاعب داخل الجلسة؟ ترجع true لما اللاعب يختار شخصيته

returnboolean

قيمة IsInSession للشخصية

lua
Player(source).state.IsInSession
FirstName#

جلب الاسم الأول للشخصية

returnstring

الاسم الأول للشخصية

lua
Player(source).state.Character.FirstName
LastName#

جلب اسم العائلة للشخصية

returnstring

اسم العائلة للشخصية

lua
Player(source).state.Character.LastName
Job#

جلب وظيفة الشخصية

returnstring

وظيفة الشخصية

lua
Player(source).state.Character.Job
JobLabel#

جلب اسم وظيفة الشخصية المعروض

returnstring

اسم وظيفة الشخصية المعروض

lua
Player(source).state.Character.JobLabel
Grade#

جلب رتبة الشخصية

returninteger

رتبة الشخصية

lua
Player(source).state.Character.Grade
Group#

جلب مجموعة الشخصية

returnstring

مجموعة الشخصية

lua
Player(source).state.Character.Group
Gender#

جلب جنس الشخصية

returnstring

جنس الشخصية

lua
Player(source).state.Character.Gender
NickName#

جلب لقب الشخصية

returnstring

لقب الشخصية

lua
Player(source).state.Character.NickName
Money#

جلب فلوس الشخصية

returninteger

فلوس الشخصية

lua
Player(source).state.Character.Money
Gold#

جلب ذهب الشخصية

returninteger

ذهب الشخصية

lua
Player(source).state.Character.Gold
Rol#

جلب rol الشخصية

returninteger

rol الشخصية

lua
Player(source).state.Character.Rol
CharId#

جلب charid الشخصية

returninteger

charid الشخصية

lua
Player(source).state.Character.CharId
JRS Core · فريمورك RedM مجاني ومفتوح المصدر · من فريق JRS