سكربت

سكربت

 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)

Comments