محدد الأصدقاء

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

قد يكون من الصعب تحديد موقع الأصدقاء أثناء تجربة اللعبة. يتيح لك محدد الأصدقاء وحدة المطور العثور على أصدقائك بسهولة والانتقال إليهم داخل المكان.

استخدام الوحدة

التثبيت

لاستخدام وحدة محدد الأصدقاء في تجربة:

  1. من قائمة نافذة في الاستوديو أو شريط أدوات علامة التبويب الرئيسية، افتح صندوق الأدوات واختر علامة التبويب متجر المبدعين.

  2. تأكد من تحديد فرز النماذج، ثم انقر فوق زر عرض الكل ل الفئات.

  3. ابحث وانقر على بلاطة الحزم.

  4. ابحث عن وحدة محدد الأصدقاء وانقر عليها، أو اسحبها وأفلتها في عرض الثلاثي الأبعاد.

  5. في نافذة مستكشف، انقل النموذج الكامل محدد الأصدقاء إلى ReplicatedStorage. عند تشغيل التجربة، ستبدأ الوحدة في العمل.

الاختبار في الاستوديو

لاختبار الوحدة في الاستوديو، يجب تشغيل وحدة محدد الأصدقاء في محاكاة متعددة العملاء، حيث لن يكون هناك أصدقاء في اختبار اللعب الفردي.

  1. في StarterPlayerScripts، أنشئ LocalScript جديدة وأعد تسميتها إلى ConfigureFriendsLocator.

  2. ألصق الكود التالي في البرنامج النصي الجديد ConfigureFriendsLocator. تضمن الإعداد showAllPlayers داخل الدالة configure عرض محددات المواقع لجميع المستخدمين أثناء الاختبار في الاستوديو، ولكن ليس في مكان منشور.

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- يسمح بتصحيح الأخطاء في الاستوديو
    })
  3. من الميزان في الاستوديو، ابدأ محاكاة متعددة العملاء مع عميلين. ستفتح ثلاث نسخ جديدة من الاستوديو؛ خادم محاكي وعميلين محاكين.

    خيار الخادم والعملاء في قائمة أوضاع الاختبار في ميزان الاستوديو.
  4. انتقل إلى إحدى نسخ استوديو العميل، وحرك مسافة 100 وحدة عن الشخصية الأخرى، ويتعين عليك رؤية أيقونة محدد تظهر فوق رأسها.

الاتصال بالأحداث

تتعرض وحدة محدد الأصدقاء الأحداث بحيث يمكنك تقديم سلوكيات مخصصة عندما يتفاعل المستخدمون مع أيقونة محدد.

  1. تأكد من أنك قد أنشأت البرنامج النصي ConfigureFriendsLocator الموضح في الاختبار في الاستوديو.

  2. أضف الأسطر 8 و 11-13 إلى البرنامج النصي:

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- يسمح بتصحيح الأخطاء في الاستوديو
    teleportToFriend = false, -- يمنع النقل عند النقر/اللمس على الأيقونة
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("لقد نقرت على أيقونة محدد الموقع لـ", player.DisplayName)
    end)
  3. قم بإجراء اختبار متعدد العملاء وانقر على أيقونة محدد شخصية أخرى. لاحظ أن شخصيتك لا تنتقل إلى ذلك الموقع، ويتم تفعيل الحدث للسماح بالتعامل المخصص مع نقرات الأيقونة.

واجهة المستخدم لمحدد المواقع المخصصة

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

لاستبدال واجهة المستخدم الافتراضية:

  1. أنشئ مثيل ScreenGui جديدة داخل حاوية StarterGui.

  2. أنشئ مثيل Frame باسم FriendLocator كطفل لـ ScreenGui الجديدة، ثم أضف عناصر مثل ImageLabels، TextLabels لتصميم واجهتك المخصصة.

  3. عند الانتهاء، قم بتعطيل ScreenGui الوالد بحيث لا تظهر واجهة مستخدم محدد المواقع المخصصة حتى الحاجة.

  4. (اختياري) إذا كنت تريد عرض صورة أفاتار صديق و DisplayName في مكان ما في واجهة المستخدم المخصصة، يمكنك وضع المثيلات التالية داخل إطار FriendLocator.

    ستبحث الوحدة عن هذه العناصر وتعرض صورة أفاتار الصديق و/أو اسم العرض الخاص بهما تباعًا.

مرجع واجهة برمجة التطبيقات

الدوال

configure

configure(config: table)

تجاوز خيارات التكوين الافتراضية من خلال المفاتيح/القيم التالية في جدول config.

المفتاحالوصفالافتراضي
alwaysOnTopإذا كان true، سيتم عرض أيقونات المحددات في أعلى كل شيء، مما يمنع حجبها بواسطة كائنات العالم ثلاثي الأبعاد.true
showAllPlayersإذا كان true، سيتم عرض المواقع لجميع اللاعبين، وليس فقط الأصدقاء؛ يمكن أن يساعد ذلك في التحقق من وظيفة الوحدة في الاستوديو.false
teleportToFriendينقل شخصية اللاعب إلى موقع الصديق عندما يتم النقر أو اللمس على أيقونة محددها.true
thresholdDistanceحد مسافة الكاميرا الذي تظهر عنده أيقونات المحددات؛ لن تظهر أيقونات الأصدقاء الأقرب من هذه المسافة.100
maxLocatorsالحد الأقصى لعدد أيقونات المحددات المعروضة في أي وقت.10
LocalScript - ConfigureFriendsLocator

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})

الأحداث

clicked

يتم إطلاقه عندما يتم النقر/تفعيل أيقونة محدد الموقع بواسطة اللاعب المحلي. يمكن الاتصال بهذا الحدث فقط في LocalScript.

المعلمات
player: Playerاللاعب الذي تنتمي إليه أيقونة المحدد.
playerCFrame: CFrameCFrame من Humanoid.RootPart للاعب الذي تنتمي إليه أيقونة المحدد.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- طلب البث حول موقع الهدف
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("لقد نقرت على أيقونة محدد الموقع لـ", player.DisplayName, "في الموقع", playerCFrame.Position)
end)

visibilityChanged

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

المعلمات
player: Playerكائن Player الذي تنتمي إليه أيقونة المحدد.
playerCFrame: CFrameCFrame من Humanoid.RootPart للاعب الذي تنتمي إليه أيقونة المحدد.
isVisible: booleanما إذا كانت أيقونة المحدد مرئية حاليًا على شاشة اللاعب المحلي. لاحظ أن هذا سيظل true إذا كانت alwaysOnTop هي false وكانت أيقونة محدد المواقع تظهر وراء كائن في العالم ثلاثي الأبعاد.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("رؤية أيقونة المحدد لـ", player.DisplayName, ":", isVisible)
end)
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.