عرض اسم الشخصية/الصحة

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

تستخدم مثيل Humanoid لإنشاء نماذج الشخصيات، لكل من الأفاتار الخاصة بالمستخدمين و NPCs. عندما يكون Humanoid موجودًا داخل Model يتضمن جزءًا يسمى Head، تعرض Roblox اسم وشريط صحة فوق هذا الجزء.

معلومات عرض الشخصية فوق أفاتار في اللعبة

من خلال ميزات مختلفة من Humanoid، يمكنك تعديل ما يلي:

  • المسافة التي يمكن للمستخدمين رؤية اسم/صحة شخصيات أخرى بالنسبة للإنساني الخاص بهم.
  • اسم العرض الذي يظهر فوق إنساني.
  • ما إذا كان شريط الصحة لإنساني يظهر دائمًا، أو لا يظهر أبدًا، أو يظهر فقط عندما يتعرض إنساني للضرر.
  • ما إذا كانت الأسماء وأشرطة الصحة محجوبة (مخفية) عندما يكون خط الرؤية بين الكاميرا وإنساني آخر محجوبًا.

خصائص العرض

نوع مسافة العرض

تحدد خاصية Humanoid.DisplayDistanceType كيفية رؤية المستخدمين لأسماء وصحة شخصيات أخرى بالنسبة لشخصيتهم.

المتفرج

عندما يتم تعيين DisplayDistanceType لإنساني إلى HumanoidDisplayDistanceType.Viewer، يرى اسم/صحة الإنسانيين الآخرين ضمن نطاق NameDisplayDistance و HealthDisplayDistance الخاص به. يمكنك اعتبار هذا أقل أولوية لأنه لا يؤخذ في الاعتبار بالنسبة للإنسانيين الآخرين الذين تم تكوينهم كـ موضوع أو لا شيء.

في السيناريو التالي، تمتلك شخصية المستخدم (المتفرج) مسافة NameDisplayDistance أكبر من HealthDisplayDistance، كما هو موضح بالدوائر. نتيجة لذلك، يرى المستخدم أسماء الشخصيات لكل من Watchman و Octavia، ولكنه يرى شريط صحة Watchman فقط.

الموضوع

عندما يتم تعيين DisplayDistanceType لإنساني إلى HumanoidDisplayDistanceType.Subject، فإنه يأخذ التحكم الكامل على عرض الاسم والصحة الخاصة به من خلال قيم NameDisplayDistance و HealthDisplayDistance. بشكل فعال، سوف يرى الإنسانيون الآخرون اسم/صحة الموضوع فقط ضمن تلك المسافات من الإنساني الموضوع.

في السيناريو التالي، تم تعيين كل من Watchman و Octavia إلى الموضوع ونطاقات NameDisplayDistance الخاصة بهم موضحة بالدوائر. يُرى اسم Octavia فقط من قبل المستخدم الذي تقف شخصيته داخل نطاقها ولكن خارج نطاق الإنساني Watchman.

لا شيء

عندما يتم تعيين DisplayDistanceType لإنساني إلى HumanoidDisplayDistanceType.None، لا يظهر اسمه ولا شريط الصحة تحت أي ظرف من الظروف. في السيناريو التالي، تم تعيين كل من Watchman و Octavia إلى لا شيء، لذلك لا ترى الشخصية الأخرى اسمها أو صحتها حتى عندما تكون ضمن النطاق.

نوع عرض الصحة

توفر خاصية Humanoid.HealthDisplayType مزيدًا من التحكم في ظهور شريط الصحة الخاص بالشخصية. يعكس الشريط الصحة الخاصة بالإنساني Health كعامل من MaxHealth ويتغير لونه من الأخضر إلى الأصفر إلى الأحمر مع انخفاض صحة الإنساني.

دائمًا ظاهرة

عندما يتم تعيين HealthDisplayType لإنساني إلى HumanoidHealthDisplayType.AlwaysOn، يظهر شريط صحته دائمًا.

يظهر عند تأذيه

يظهر إنساني الذي تم تعيين HealthDisplayType إلى HumanoidHealthDisplayType.DisplayWhenDamaged شريط صحة فقط عندما تكون Health أقل من MaxHealth. في السيناريو التالي، يمتلك Watchman صحة كاملة ولا يعرض شريط صحة، لكن Octavia تأذت بنسبة 50% وتظهر شريط صحة أصفر.

دائمًا مخفية

عندما يتم تعيين HealthDisplayType لإنساني إلى HumanoidHealthDisplayType.AlwaysOff، فلا يظهر شريط صحته تحت أي ظرف من الظروف.

الحجب

يتم التحكم في حجب أسماء الإنسانيين خلف الجدران أو كائنات أخرى من خلال خاصية Humanoid.NameOcclusion للشخصية.

لا حجب

عندما يكون إنساني مخفيًا خلف كائن مرئي ويتم تعيين NameOcclusion إلى NameOcclusion.NoOcclusion، فإن اسمه وصحته لا تُحجب أبدًا عن الإنسانيين الرائين.

في السيناريو التالي، تم تعيين كل من Watchman و Octavia إلى لا حجب. على الرغم من أن كلاهما مخفي بشكل كافٍ خلف أعمدة حجرية، إلا أن الإنساني الرائي لا يزال يرى عرض اسمه/صحيتهما.

حجب الكل

عندما يكون إنساني مخفيًا خلف كائن مرئي ويتم تعيين NameOcclusion إلى NameOcclusion.OccludeAll، فإن اسمه وصحته محجوبة دائمًا عن الإنسانيين الرائين.

في السيناريو التالي، يتم إخفاء كل من Watchman و Octavia بشكل كافٍ خلف أعمدة حجرية. تم تعيين Watchman إلى حجب الكل، لذا فإن اسمه وصحته مخفية عن الإنساني الرائي. ومع ذلك، تم تعيين Octavia إلى لا حجب وتبقى اسمها/صحتها مرئية للإنساني الرائي.

حجب العدو

عندما يكون إنساني مخفيًا خلف كائن مرئي ويتم تعيين NameOcclusion إلى NameOcclusion.EnemyOcclusion، فإن اسمه وصحته محجوبة فقط عن الإنسانيين الأعداء (اللاعبين في Team مختلفة).

في السيناريو التالي، يتم إخفاء كل من Watchman و Octavia بشكل كافٍ خلف أعمدة حجرية، وكلاهما تم تعيينه إلى حجب العدو. الإنساني الرائي و Watchman على نفس Team، لذا لا يحدث حجب الاسم/الصحة. ومع ذلك، يتم حجب اسم وصحة Octavia، في الفريق المعاكس.

تعديل عرض الشخصيات

أفاتار المستخدمين

لتعديل عرض الاسم أو الصحة لكل أفاتار قادم في اللعبة، قم بتوصيل الأحداث Players.PlayerAdded و Player.CharacterAdded في Script واضبط خصائص العرض على Humanoid للشخصية.

Script - تخصيص عالمي

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- أعط كل إنساني التحكم الكامل على مسافة عرض اسمه/صحيته
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- ضبط مسافة عرض الاسم إلى 20 وحدة
humanoid.NameDisplayDistance = 20
-- ضبط مسافة عرض شريط الصحة إلى 15 وحدة
humanoid.HealthDisplayDistance = 15
-- عرض شريط الصحة فقط عندما يتعرض الإنساني للضرر
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

يمكنك أيضًا تخصيص الخصائص بناءً على Team للاعب، مثل تعيين جميع اللاعبين "الحراس" باسم عام، وإخفاء أسماء جميع اللاعبين "النينجا".

Script - تخصيص الفريق

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- ضبط اسم جميع الحراس إلى "Guard" العام
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- إخفاء الاسم لجميع النينجا
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

شخصيات NPC

بالنسبة لشخصيات NPC الموضوعة بالفعل في العالم ثلاثي الأبعاد، يمكنك تحرير الاسم/الصحة مباشرةً على كائن Humanoid في نافذة الخصائص.

تجاوز أسماء العرض

افتراضيًا، يتطابق اسم عرض الإنساني مع اسم العرض لحساب المستخدم الخاص بـ Roblox، وهو فريد ومنفصل عن اسم المستخدم لهذا الحساب. لإظهار اسم مخصص بالكامل غير مرتبط بحساب المستخدم، يمكنك تجاوز خاصية Humanoid.DisplayName.

تعيينه مباشرة

يمكنك تعيين خاصية DisplayName لأي مثيل Humanoid تحصل على إشارة له من خلال Script، مثل مثال تخصيص الفريق، أو مباشرةً على كائن Humanoid لشخصية NPC.

تعيينه من خلال إدخال المستخدم

في بعض الأنواع مثل تمثيل الأدوار أو القتال، قد ترغب في توفير وسيلة للمستخدمين لإدخال اسم شخصيتهم الخاصة، أو اسم شخصية حيوان أليف، وما إلى ذلك، والتي تتعلق بتجربتهم وليست مرتبطة باسم العرض الخاص بهم. يمكنك جمع هذه المدخلات على جانب العميل من خلال إدخال اسم في TextBox.

بمجرد إرسال المدخلات، يمكنك تمريرها إلى الخادم من خلال حدث بعيد، ثم، على جانب الخادم، استمع للحدث البعيد وعيّن الاسم المصفى على Humanoid لشخصية المستخدم.

LocalScript - إشعال الحدث البعيد

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - تعيين الاسم المصفى

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- إنشاء حدث بعيد لاستقبال النص من العميل للتصفية
local changeNameEvent = Instance.new("RemoteEvent")
changeNameEvent.Name = "ChangeNameEvent"
changeNameEvent.Parent = ReplicatedStorage
local function onRequestNameChange(player, newName)
local character = player.Character
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(newName, player.UserId)
end)
if success then
local filteredName
local success, errorMessage = pcall(function()
filteredName = filterResult:GetNonChatStringForBroadcastAsync()
end)
if success and humanoid then
humanoid.DisplayName = filteredName
end
end
end
changeNameEvent.OnServerEvent:Connect(onRequestNameChange)
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.