ħ·½°É¡¤ÖÐÎÄħ·½¾ãÀÖ²¿

 ÕÒ»ØÃÜÂë
 ע²á
ËÑË÷
ÈÈËÑ: ħ·½

Tycoon Script __link__ — Roblox War

-- === BASE BUILDING === local function buildBasePart(player, partName, cost, position) local data = playerData[player.UserId] if data.Money.Value >= cost then data.Money.Value -= cost local part = Instance.new("Part") part.Name = partName part.Size = Vector3.new(5, 3, 5) part.BrickColor = BrickColor.new("Medium stone grey") part.Anchored = true part.Parent = workspace part.Position = position table.insert(data.BaseParts, part) end end

-- Clean up units when a player leaves game:GetService("Players").PlayerRemoving:Connect(function(player) local data = playerData[player.UserId] if data and data.Units then for _, unit in pairs(data.Units) do if unit then unit:Destroy() end end end end) roblox war tycoon script

-- === CONFIGURATION === local STARTING_MONEY = 500 local INCOME_AMOUNT = 50 local INCOME_INTERVAL = 5 -- seconds " tried to spawn "

local spawnUnitRemote = Instance.new("RemoteEvent") spawnUnitRemote.Name = "SpawnUnit" spawnUnitRemote.Parent = remoteEvents spawnUnitRemote.OnServerEvent:Connect(function(player, unitType) spawnUnit(player, unitType) end) roblox war tycoon script

local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService")

-- === RESOURCE INCOME LOOP === task.spawn(function() while true do task.wait(INCOME_INTERVAL) for _, player in pairs(Players:GetPlayers()) do local data = playerData[player.UserId] if data and data.Money then data.Money.Value += INCOME_AMOUNT end end end end)

-- === UNIT SPAWNING === local function spawnUnit(player, unitType) local data = playerData[player.UserId] local unitInfo = UNITS[unitType] if not unitInfo then return end if data.Money.Value >= unitInfo.cost then data.Money.Value -= unitInfo.cost -- Find spawn point (you must place a Part named "UnitSpawn" in the world) local spawnPart = workspace:FindFirstChild("UnitSpawn") if not spawnPart then warn("No UnitSpawn part found in workspace") return end -- Create unit model local unit = Instance.new("Model") unit.Name = unitType .. "_" .. player.Name local primaryPart = Instance.new("Part") primaryPart.Name = "PrimaryPart" primaryPart.Size = Vector3.new(3, 2, 5) primaryPart.Anchored = false primaryPart.CanCollide = true primaryPart.BrickColor = BrickColor.new("Bright red") primaryPart.Parent = unit -- Humanoid for movement & combat local humanoid = Instance.new("Humanoid") humanoid.MaxHealth = unitInfo.health humanoid.Health = unitInfo.health humanoid.WalkSpeed = unitInfo.speed humanoid.Parent = unit unit.PrimaryPart = primaryPart unit.Parent = workspace unit:SetPrimaryPartCFrame(spawnPart.CFrame + Vector3.new(0, 2, 0)) -- Store unit reference for combat if not data.Units then data.Units = {} end table.insert(data.Units, unit) -- Auto attack nearby enemies task.spawn(function() while unit and unit.Parent do task.wait(1) local nearestEnemy = nil local shortestDist = 30 for _, otherPlayer in pairs(Players:GetPlayers()) do if otherPlayer ~= player then local enemyData = playerData[otherPlayer.UserId] if enemyData and enemyData.Units then for _, enemyUnit in pairs(enemyData.Units) do if enemyUnit and enemyUnit.PrimaryPart then local dist = (unit.PrimaryPart.Position - enemyUnit.PrimaryPart.Position).Magnitude if dist < shortestDist then shortestDist = dist nearestEnemy = enemyUnit end end end end end end if nearestEnemy and nearestEnemy.PrimaryPart and nearestEnemy:FindFirstChild("Humanoid") then nearestEnemy.Humanoid:TakeDamage(unitInfo.damage) end end end) else -- Notify player (use RemoteEvent for client feedback) print(player.Name .. " tried to spawn " .. unitType .. " but lacks funds") end end

Archiver|ÊÖ»ú°æ|ħ·½°É¡¤ÖÐÎÄħ·½¾ãÀÖ²¿

GMT+8, 2026-3-9 08:05

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

»Ø¶¥²¿