local spawner = script.Parent
local soldierTemplate = game.ServerStorage:WaitForChild("Soldier")
local spawnDelay = 5 -- 5 ثواني بين كل جندي
local maxSoldiersPerPlayer = 10
local Players = game:GetService("Players")
local playerSoldiers = {} -- جدول يخزن الجنود لكل لاعب
local lastSpawnTime = {} -- آخر وقت توليد لكل لاعب
local function spawnSoldier(player)
playerSoldiers[player] = playerSoldiers[player] or {}
lastSpawnTime[player] = lastSpawnTime[player] or 0
-- تحقق من الحد الأقصى وعدد الجنود
if #playerSoldiers[player] >= maxSoldiersPerPlayer then return end
-- تحقق من Cooldown
if tick() - lastSpawnTime[player] < spawnDelay then return end
lastSpawnTime[player] = tick()
-- نسخ الجندي وتوليده
local newSoldier = soldierTemplate:Clone()
newSoldier.Parent = workspace
newSoldier:SetPrimaryPartCFrame(CFrame.new(spawner.Position + Vector3.new(0,3,0)))
table.insert(playerSoldiers[player], newSoldier)
-- إزالة الجندي من الجدول عند موته
newSoldier.Humanoid.Died:Connect(function()
for i, s in ipairs(playerSoldiers[player]) do
if s == newSoldier then
table.remove(playerSoldiers[player], i)
break
end
end
end)
-- ربط الجندي باللاعب (Follow AI)
local FollowAI = require(game.ServerScriptService:WaitForChild("FollowAI"))
FollowAI.new(newSoldier, player)
end
-- عندما يدخل اللاعب على Part
spawner.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
spawnSoldier(player)
end
end)