نقاط الحفظ
جزء من قسم برمجة ألعاب 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 إلى كل لاعب على حدة، لذا فإن وصول لاعب إلى المخيم لا يغيّر موقع ظهور أي لاعب آخر.
التحدي
متوسطالمنصة الرمادية هي workspace.Start، والمنصة الزرقاء المتوهجة هي نقطة حفظ (كلتاهما من نوع SpawnLocations). هذا البرنامج النصي موجود داخل نقطة الحفظ.
- عند انضمام لاعب، اضبط
RespawnLocationلديه علىworkspace.Start. - عندما يلمس لاعب نقطة الحفظ، اضبط
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)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس برمجة ألعاب Roblox
تدرّب بنفسك: مترجم Lua عبر الإنترنت