دردشة الصوت

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

دردشة الصوت هي ميزة تتيح التواصل الصوتي في الوقت الحقيقي بينك وبين لاعبين آخرين. وهي متاحة فقط للأماكن التي تدعم حدًا أقصى من 100 لاعب.

مستخدمان يتحدثان بالصوت داخل لعبة.

تفعيل دردشة الصوت

تكون دردشة الصوت مفعلة بشكل افتراضي للمستخدمين الذين تتجاوز أعمارهم 13 عامًا وتم التحقق من هويتهم في جميع الألعاب الجديدة التي تحتوي على حد أقصى من 100 لاعب. يتطلب تفعيل دردشة الصوت استخدام واجهة برمجة التطبيقات لتحويل الكلام إلى نص.

لتفعيل الصوت للألعاب الحالية أو تعطيله للألعاب الجديدة:

  1. افتح لعبتك في الاستوديو.
  2. افتح ملفإعدادات التجربة.
  3. انتقل إلى علامة التبويب التواصل في الجانب الأيسر من النافذة.
  4. قم بتبديل تفعيل دردشة الصوت إلى الإعداد المطلوب.
  5. اختياري
    لتعزيز التواصل بين اللاعبين داخل لعبتك، قم بتفعيل تفعيل الكاميرا للسماح للاعبين المؤهلين بتحريك شخصياتهم مع حركتهم.
  6. انشر المكان لحفظ التغييرات.

تعيين الحد الأقصى للاعبين

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

  1. حدد اللعبة في لوحة التحكم الخاصة بالمنشئين ثم انتقل إلى تكوينالأماكن.
  2. حدد المكان المطلوب ثم انتقل إلى الوصول في العمود الأيسر.
  3. بالنسبة لـ الحد الأقصى لعدد الزوار، أدخل رقمًا أقل من أو يساوي 100.
  4. انقر على زر حفظ التغييرات.

عند تحديث الحد الأقصى لعدد اللاعبين في مكان ما إلى أقل من 100، قد تكون هناك خوادم تم تكوينها مسبقًا لعدد مختلف، أعلى. نظرًا لأن تلك الخوادم لن تدعم دردشة الصوت، يُوصى بـ إعادة تشغيل الخوادم.

تخصيص سلوك الصوت

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

إذا لم يظهر VoiceChatService بالفعل:

  1. انقر بزر الماوس الأيمن في نافذة المستكشف واختر إظهار الخدمات… من قائمة السياق.

  2. حدد VoiceChatService في نافذة المنبثقة وانقر على إدراج. ستظهر الخدمة في تسلسل المستكشف.

    VoiceChatService في تسلسل المستكشف
  3. مع تحديد VoiceChatService، تأكد من تعيين UseAudioApi إلى Enabled في نافذة الخصائص. قد يكون هذا قد تم بالفعل من أجلك.

دردشة قائمة على الفريق

لتنفيذ دردشة قائمة على Team حيث يمكن فقط لزملاء الفريق سماع بعضهم البعض، يمكنك استخدام Script التالي داخل ServerScriptService:

دردشة الفريق
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- يفترض أن هناك جهاز إدخال صوت واحد فقط لكل لاعب، مرتبط بكائن اللاعب
-- يتم توفير هذا لك إذا كانت VoiceChatService.EnableDefaultVoice صحيحة
-- قد تحتاج إلى إعادة العمل من أجل العمومية إذا وضعت كائنات AudioDeviceInput في مكان آخر
return forPlayer:FindFirstChildWhichIsA("AudioDeviceInput")
end
local function onTeamChanged(player : Player)
local team = player.Team
if not team then return end
local device = findAudioInput(player)
if not device then return end
-- السماح فقط لزملاء الفريق بسماع بعضهم البعض
device.AccessType = Enum.AccessModifierType.Allow
local allowed = {}
for _, player : Player in team:GetPlayers() do
table.insert(allowed, player.UserId)
end
device:SetUserIdAccessList(allowed)
end
local function onTeamAdded(team : Team)
team.PlayerAdded:Connect(onTeamChanged)
team.PlayerRemoved:Connect(onTeamChanged)
end
for _, team : Team in Teams:GetTeams() do
onTeamAdded(team)
end
Teams.ChildAdded:Connect(function(child : Instance)
if child:IsA("Team") then
onTeamAdded(child)
end
end)

دردشة غير مكانية

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

دردشة غير مكانية
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance)
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = source
end
-- إعداد شريط حجم عالمي لصوت الجميع
local volumeSlider = Instance.new("AudioFader", Workspace)
local output = Instance.new("AudioDeviceOutput", Workspace)
wireUp(volumeSlider, output)
local function onPlayerAdded(player : Player)
local device = Instance.new("AudioDeviceInput", player)
device.Player = player
-- توجيه إدخال ميكروفون كل لاعب جديد إلى شريط الحجم العالمي
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
LocalScript
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onDescendantAdded(descendant : Instance)
if descendant:IsA("Wire") then
descendant:Destroy()
end
end
for _, descendant in player:GetDescendants() do
onDescendantAdded(descendant)
end
player.DescendantAdded:Connect(onDescendantAdded)

تعطيل لكل مكان

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

لتعطيل دردشة الصوت لمكان محدد داخل لعبة:

  1. انقر بزر الماوس الأيمن في نافذة المستكشف واختر إظهار الخدمات… من قائمة السياق.

  2. حدد VoiceChatService في نافذة المنبثقة وانقر على إدراج. ستظهر الخدمة في تسلسل المستكشف.

    VoiceChatService في تسلسل المستكشف
  3. مع تحديد VoiceChatService، قم بتعطيل EnableDefaultVoice في نافذة الخصائص.

  4. انشر المكان لحفظ التغييرات وأعد تشغيل الخوادم لضمان سريان التغيير على جميع الخوادم التي تعمل حاليًا في لعبتك.

تحقق من الحالة

يمكنك التحقق مما إذا كان اللاعب قد قام بتمكين دردشة الصوت عن طريق استدعاء IsVoiceEnabledForUserIdAsync() في LocalScript، أو في Script مع تعيين RunContext إلى Enum.RunContext.Client.

برنامج نصي للعميل - تحقق من حالة دردشة الصوت
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("دردشة الصوت مفعلة!")
end
©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.