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

اسلك المسار

الدرس 2 من 18 في دورة لعبة Roblox: الدفاع عن الأبراج على Coddy.

تسير الأعداء على مسار تحدده أجزاء غير مرئية في workspace.Path.Waypoints، بأسماء من 1 إلى 6. لا يضمن GetChildren ترتيبًا معينًا، لذا رتّبها أولًا حسب الرقم في أسمائها:

table.sort(waypoints, function(a, b)
	return tonumber(a.Name) < tonumber(b.Name)
end)

كل عدو هو نموذج في ServerStorage.Enemies: انسخه، وضعه فوق نقطة المسار 1 باستخدام PivotTo، واجعل workspace.Enemies هو العنصر الأب له.

يتحرك Humanoid باستخدام MoveTo، ويُطلَق الحدث MoveToFinished عند وصوله. وبعد 8 ثوانٍ يتوقف عن المحاولة ويُطلَق مع false، لذا يُرسَل العدو البطيء على مقطع طويل مجددًا حتى يصل:

repeat
	humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()

يستغرق المشي وقتًا، لذا تعمل walkPath في مسار تنفيذ خاص بها باستخدام task.spawn، ويواصل البرنامج النصي التنفيذ.

challenge icon

التحدي

سهل
  1. احصل على ServerStorage وlocal enemies = workspace.Enemies.
  2. ضع نقاط المسار في قائمة ورتّبها حسب الرقم.
  3. اكتب walkPath(enemy): انتقل عبر نقاط المسار من 2 إلى الأخيرة، واستخدم MoveTo حتى تشير MoveToFinished إلى وصول العدو. توقّف إذا اختفى العدو (not enemy.Parent).
  4. اكتب spawnEnemy(kind): انسخ النموذج، وضعه على ارتفاع 5 وحدات studs فوق نقطة المسار 1، واجعل enemies هو العنصر الأب له، وابدأ walkPath باستخدام task.spawn، ثم أعده.
  5. أنشئ عدوًا واحدًا من النوع "Zombie".

اضغط Play وشاهده وهو يمشي. ثم اضغط Check.

جرّب بنفسك

local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)

print("The base can take " .. Settings.BaseHealth .. " hits")

-- يحصل كل لاعب على Money في لوحة المتصدرين
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local money = Instance.new("IntValue")
	money.Name = "Money"
	money.Value = Settings.StartMoney
	money.Parent = leaderstats
end)
quiz iconاختبر نفسك

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

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