الأحداث (Events)
هذا الحدث يتشغّل لما اللاعب يختار شخصية بنجاح ويدخل السيرفر. يعطيك فرصة تشغّل منطق خاص أو تجهّز بيانات اللاعب حسب الشخصية اللي اختارها. الحدث يتشغّل في الكلاينت والسيرفر.
جهة الكلاينت
RegisterNetEvent("jrs:SelectedCharacter", function(charid)
print(charid)
end)جهة السيرفر
AddEventHandler("jrs:SelectedCharacter", function(source, character)
print(character)
end)في الكود الجديد الأفضل تستخدم jrs_core:server:characterReady / jrs_core:client:characterReady، شوف صفحة core.
الـ Exports
Exports تستخدمها في سكربتاتك. كلها موجودة في jrs_core.
جهة السيرفر
GetAppearanceForSource#
ترجع الشكل المحفوظ (البشرة والملابس والألوان) للشخصية اللي يستخدمها اللاعب.
sourcenumberrequiredرقم اللاعب (source).
returntableبيانات الشكل.
local look = exports.jrs_core:GetAppearanceForSource(source)GetAppearance#
نفس اللي فوق بس برقم الشخصية، وتشتغل مع الشخصيات الغير متصلة.
local look = exports.jrs_core:GetAppearance(charId)SaveAppearance#
characterIdnumberrequiredرقم الشخصية.
datatablerequiredبيانات الشكل المراد حفظها.
exports.jrs_core:SaveAppearance(charId, look)RegisterCharacterDeleteHook#
شغّل التنظيف الخاص فيك لما تنحذف شخصية (مثلاً احذف بيتها أو خيلها).
exports.jrs_core:RegisterCharacterDeleteHook('myscript', function(charId, identifier, phase)
MySQL.update('DELETE FROM my_table WHERE charid = ?', { charId })
end)RegisterCharacterStarterHook#
أعطِ شي لكل شخصية جديدة تنسوى.
exports.jrs_core:RegisterCharacterStarterHook('myscript', function(source, characterId)
exports.jrs_inventory:addItem(source, 'bread', 2)
end)GetCharacterCount / GetMaxCharacters / CanCreateCharacter#
local count = exports.jrs_core:GetCharacterCount(source)
local max = exports.jrs_core:GetMaxCharacters(source)
if exports.jrs_core:CanCreateCharacter(source) then endStateBags#
افحص إذا اللاعب داخل جلسة (اختار شخصية):
LocalPlayer.state.IsInSessionاقرأ بيانات الشخصية من الـ state (كلاينت وسيرفر):
LocalPlayer.state.Character.Job
Player(source).state.Character.Money