Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Can someone help me with Capture Script?

Asked by 8 years ago

Hello everyone, I want add to capture script, if team will capture the post, then it should add to them cash every few sec. Can someone help me too with CFrame? Becouse i want to move horizontally, but now it moving perpendicularly. I mean of coure a , b , c and d.

Here is script(not mine, i think it's good script.):

bin = script.Parent.Base
owner = script.Parent.CurrentOwner
distance = script.Parent.CaptureDistance.Value
steps = script.Parent.StepsToBottom
maxsteps = steps.Value
a = script.Parent.P4
b = script.Parent.P3
c = script.Parent.P2
d = script.Parent.P1
neutral = script.Parent.NeutralColor.Value

attackingteam = nil
defendingteam = nil

script.Parent.FlagManager.Disabled = false

players = {}

for i,v in pairs(game.Players:GetPlayers()) do
table.insert(players, v)
end

game.Players.PlayerAdded:connect(function(p) table.insert(players, p) end)

function findTeamByColor(color)
returnee = ""
for i,v in pairs(game.Teams:children()) do
if v.TeamColor == color then
returnee = v.Name
break
end
end
return returnee
end

function moveFlag(team, name, name2)
if (team ~= owner.Value) and (owner.Value ~= neutral) then
if steps.Value > 0 then
a.CFrame = a.CFrame-Vector3.new(0,7/maxsteps,0)
b.CFrame = b.CFrame-Vector3.new(0,7/maxsteps,0)
c.CFrame = c.CFrame-Vector3.new(0,7/maxsteps,0)
d.CFrame = c.CFrame-Vector3.new(0,7/maxsteps,0)
steps.Value = steps.Value-1
if steps.Value == 0 then
attackingteam = team
defendingteam = owner.Value
owner.Value = neutral
if m~=nil then m:Remove() end
m = Instance.new("Hint", workspace)
m.Text = "Earth Post, controlled by " ..name2.. ", is being captured by the " ..name.. "!"
game:service("Debris"):AddItem(m, 10)
end
end
elseif (team == owner.Value) and (owner.Value ~= neutral) then
if steps.Value < maxsteps then
a.CFrame = a.CFrame+Vector3.new(0,7/maxsteps,0)
b.CFrame = b.CFrame+Vector3.new(0,7/maxsteps,0)
c.CFrame = c.CFrame+Vector3.new(0,7/maxsteps,0)
d.CFrame = c.CFrame+Vector3.new(0,7/maxsteps,0)
steps.Value = steps.Value+1
if steps.Value == maxsteps then
owner.Value = team
end
end
elseif (team ~= owner.Value) and (owner.Value == neutral) then
if team == defendingteam then
if steps.Value > 0 then
a.CFrame = a.CFrame-Vector3.new(0,7/maxsteps,0)
b.CFrame = b.CFrame-Vector3.new(0,7/maxsteps,0)
c.CFrame = c.CFrame-Vector3.new(0,7/maxsteps,0)
d.CFrame = d.CFrame-Vector3.new(0,7/maxsteps,0)
steps.Value = steps.Value-1
if steps.Value == 0 then
if m~=nil then m:Remove() end
m = Instance.new("Hint", workspace)
m.Text = "Earth Post has been recovered from the " ..findTeamByColor(attackingteam).. " by the " ..name.. "!"
game:service("Debris"):AddItem(m, 10)
attackingteam = nil 
defendingteam = nil
owner.Value = team
end
end
else
a.CFrame = a.CFrame+Vector3.new(0,7/maxsteps,0)
b.CFrame = b.CFrame+Vector3.new(0,7/maxsteps,0)
c.CFrame = c.CFrame+Vector3.new(0,7/maxsteps,0)
d.CFrame = d.CFrame+Vector3.new(0,7/maxsteps,0)
steps.Value = steps.Value+1
if steps.Value == maxsteps then
if m~=nil then m:Remove() end
m = Instance.new("Hint", workspace)
if defendingteam then
m.Text = "Earth Post has been captured by the " ..name.. " from the " ..findTeamByColor(defendingteam).. "!"
else
m.Text = "Earth Post has been claimed by the " ..name.. "."
end
game:service("Debris"):AddItem(m, 10)
attackingteam = nil
defendingteam = nil
owner.Value = team
end
end
end
end

while true do
wait()
for i,v in pairs(players) do
if v.Character ~= nil then
torso = v.Character:findFirstChild("Torso")
if torso ~= nil then
if (torso.Position-bin.Position).magnitude <= distance then
if v.TeamColor ~= neutral then
moveFlag(v.TeamColor, findTeamByColor(v.TeamColor), findTeamByColor(owner.Value))
end
end
end
end
end
end

Answer this question