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

Health values won't work?

Asked by 8 years ago

I had a friend help me create a script for a flying thing, however, we can't seem to get the health to work, and the thing keeps changing locations of stuff on the plane, We have adjusted the values of our scripts and tried several different methods, studio doesn't really show any errors. I also wanted to get feedback as to how well we did on this script, it took a while to make and I wanted to see if there was anything I should do differently.\



wait(1) local v = script.Parent local seat = v.DriverSeat local engine = v.Engine local pos = engine.Pos local rot = engine.Rot local Parts = 0 local start = 0 local destroyed = false local max_health = 5000 local armor = v.Armor armor.Value = max_health local bar = script.Parent.ArmorBar local fires = 0 function Weld() local rep = game.Lighting:findFirstChild(script.Parent.Name) local e = engine:GetChildren() for i=1,#e do if e[i].className == "Weld" then e[i]:destroy() end end e = v:GetChildren() for i=1,#e do if e[i]:IsA("BasePart") and e[i]~=engine then local w = Instance.new("Weld",engine) w.Name = "Weld"..e[i].Name w.Part0 = engine w.Part1 = e[i] w.C0 = rep:findFirstChild("Engine").CFrame:inverse() w.C1 = rep:findFirstChild(e[i].Name).CFrame:inverse() end end engine.Anchored = false engine.CFrame = engine.CFrame + Vector3.new(0,0.1,0) engine.Anchored = true engine.CFrame = engine.CFrame - Vector3.new(0,0.1,0) for i=1,#e do if e[i]:IsA("BasePart") then e[i].Anchored = false end end end seat.ChildAdded:connect(function(w) if w.className == "Weld" and w.Name == "SeatWeld" then wait() local t = w.Part1 if t~=nil and t.Parent~=nil then local char = t.Parent local pilot = game.Players:GetPlayerFromCharacter(char) if pilot ~= nil then local ctrl = script.Control:clone() ctrl.Vehicle.Value = v ctrl.Disabled = false ctrl.Parent = pilot.PlayerGui end end end end) Weld() function Explode() pcall(function() local e = v.Engine:GetChildren() for i=1,#e do e[i]:destroy() end local e = v:GetChildren() local center = v.Part10.CFrame.p for i=1,#e do if e[i]:IsA("BasePart") then e[i].Velocity = e[i].Velocity + (e[i].CFrame.p-center).unit * math.random(30,80) end end local boom = Instance.new("Explosion",workspace) boom.Position = center boom.BlastPressure = 10 boom.BlastRadius=20 end) delay(7.5,function() local e=v:GetChildren() for i=1,#e do if e[i]:IsA("BasePart") then e[i]:destroy() wait() end end v:destroy() end) end function ImpactDamage(hit, self) if hit ~=nil then if hit.Parent~=nil and hit.Parent:findFirstChild("Humanoid") ~=nil and destroyed then hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - ((self.Velocity.magnitude)*10*(100+self:GetMass()/100))/1000 elseif hit.Parent ~= v and hit.CanCollide and not destroyed and hit.Parent:findFirstChild("Humanoid")==nil then --print(self.Velocity.magnitude,(self:GetMass()+20)) armor.Value = armor.Value - ((self.Velocity.magnitude)*10*(100+self:GetMass()/100))/500 end end end e = v:GetChildren() for i=1,#e do if e[i]:IsA("BasePart") then e[i].Touched:connect(function(hit) ImpactDamage(hit,e[i]) end) end end function UpdateBar() if armor.Value < 0 then if not destroyed then destroyed = true Explode() end armor.Value = 0 end if armor.Value < max_health /2 and fires < math.floor(15*(.5-armor.Value/max_health)) then local a = math.random(1,12) if a < math.random(2,4) then local f = Instance.new("Fire",v:GetChildren()[math.random(1,#v:GetChildren())]) f.Heat = 40*(.5-armor.Value/max_health) f.Size = f.Heat fires = fires + 1 end end bar.Mesh.Scale = Vector3.new(armor.Value/max_health,1,1) bar.Mesh.Offset = Vector3.new((1-armor.Value/max_health)*bar.Size.X/2,0,0) end

Many have been asking where and what the exact issue is, I don't really know where it is except that the first issue is with the health bar at the top, the health bar is actually not a humanoid, it is a brick that shrinks when the plane gets hit and when the bar hits a certain level the plain sets on fire, and when the health bar is gone the plane explodes, the other issue is with the wielding, somehow it keeps wielding random plane parts to the health bar.

1
I personally hate when people use waits at the beginning of their scripts. Learn how to use WaitForChild. Also, do you expect us to look through this whole script? It would be nice if you told us where the problem was at least. User#11440 120 — 8y
0
I don't exactly know where the heck the issue is, I can tell you one of the issues is in the top. Conmmander 479 — 8y
0
what is "the health" that isn't right? what is happening that shouldn't be happening and what should be happening? 1waffle1 2908 — 8y
0
edited it and fixed it. Conmmander 479 — 8y

Answer this question