Menu
CoddyTech
flag Ar iconالعربيةdown icon

نقاط الحفظ

جزء من قسم برمجة ألعاب Roblox في رحلة Lua على Coddy. الدرس 22 من 24.

عندما يُهزَم أحد اللاعبين، ينتظر Roblox لمدة 5 ثوانٍ (Players.RespawnTime) ويمنحه شخصية جديدة عند SpawnLocation. إذا كان المكان يحتوي على عدة SpawnLocations، يختار Roblox أحدها عشوائيًا، لذلك قد تتحول نقطة التحقق إلى نقطة بداية عن طريق الخطأ.

لكل لاعب خاصية RespawnLocation. عيّنها إلى SpawnLocation، وسيُعاد ظهور ذلك اللاعب هناك دائمًا. تستخدمها ألعاب Obby مرتين: عندما ينضم اللاعب، تشير إلى نقطة البداية؛ وعندما يصل إلى نقطة تحقق، تنتقل إلى نقطة التحقق.

local Players = game:GetService("Players")
local camp = workspace.Camp
camp.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		player.RespawnLocation = camp
	end
end)

تنتمي RespawnLocation إلى كل لاعب على حدة، لذا فإن وصول لاعب إلى المخيم لا يغيّر موقع ظهور أي لاعب آخر.

challenge icon

التحدي

متوسط

المنصة الرمادية هي workspace.Start، والمنصة الزرقاء المتوهجة هي نقطة حفظ (كلتاهما من نوع SpawnLocations). هذا البرنامج النصي موجود داخل نقطة الحفظ.

  1. عند انضمام لاعب، اضبط RespawnLocation لديه على workspace.Start.
  2. عندما يلمس لاعب نقطة الحفظ، اضبط RespawnLocation لديه على نقطة الحفظ واجعل لونها أخضر: Color3.fromRGB(0, 255, 0).

اضغط على Play، ثم قف على نقطة الحفظ، وبعدها امشِ إلى الحمم البركانية في الطرف البعيد: ينبغي أن تعود إلى نقطة الحفظ. ثم اضغط على Check.

جرّب بنفسك

local Players = game:GetService("Players")
local checkpoint = script.Parent

Players.PlayerAdded:Connect(function(player)
	-- اجعل كل لاعب يبدأ عند workspace.Start
end)

checkpoint.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		-- أعد إحياء هذا اللاعب هنا من الآن فصاعدًا

		-- غيّر لون checkpoint إلى الأخضر
	end
end)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس برمجة ألعاب Roblox

تدرّب بنفسك: مترجم Lua عبر الإنترنت