SHOW:
|
|
- or go back to the newest paste.
| 1 | --https://github.com/Mokiros/roblox-FE-compatibility | |
| 2 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
| |
| 3 | local Player,game,owner = owner,game | |
| 4 | local RealPlayer = Player | |
| 5 | do | |
| 6 | print("FE Compatibility code V2 by Mokiros")
| |
| 7 | local RealPlayer = RealPlayer | |
| 8 | script.Parent = RealPlayer.Character | |
| 9 | ||
| 10 | --Fake event to make stuff like Mouse.KeyDown work | |
| 11 | local Disconnect_Function = function(this) | |
| 12 | this[1].Functions[this[2]] = nil | |
| 13 | end | |
| 14 | local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
| |
| 15 | local FakeEvent_Metatable = {__index={
| |
| 16 | Connect = function(this,f) | |
| 17 | local i = tostring(math.random(0,10000)) | |
| 18 | while this.Functions[i] do | |
| 19 | i = tostring(math.random(0,10000)) | |
| 20 | end | |
| 21 | this.Functions[i] = f | |
| 22 | return setmetatable({this,i},Disconnect_Metatable)
| |
| 23 | end | |
| 24 | }} | |
| 25 | FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect | |
| 26 | local function fakeEvent() | |
| 27 | return setmetatable({Functions={}},FakeEvent_Metatable)
| |
| 28 | end | |
| 29 | ||
| 30 | --Creating fake input objects with fake variables | |
| 31 | local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
| |
| 32 | FakeMouse.keyUp = FakeMouse.KeyUp | |
| 33 | FakeMouse.keyDown = FakeMouse.KeyDown | |
| 34 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
| |
| 35 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
| |
| 36 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
| |
| 37 | end} | |
| 38 | --Merged 2 functions into one by checking amount of arguments | |
| 39 | CAS.UnbindAction = CAS.BindAction | |
| 40 | ||
| 41 | --This function will trigger the events that have been :Connect()'ed | |
| 42 | local function TriggerEvent(self,ev,...) | |
| 43 | for _,f in pairs(self[ev].Functions) do | |
| 44 | f(...) | |
| 45 | end | |
| 46 | end | |
| 47 | FakeMouse.TriggerEvent = TriggerEvent | |
| 48 | UIS.TriggerEvent = TriggerEvent | |
| 49 | ||
| 50 | --Client communication | |
| 51 | local Event = Instance.new("RemoteEvent")
| |
| 52 | Event.Name = "UserInput_Event" | |
| 53 | Event.OnServerEvent:Connect(function(plr,io) | |
| 54 | if plr~=RealPlayer then return end | |
| 55 | FakeMouse.Target = io.Target | |
| 56 | FakeMouse.Hit = io.Hit | |
| 57 | if not io.isMouse then | |
| 58 | local b = io.UserInputState == Enum.UserInputState.Begin | |
| 59 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
| 60 | return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up") | |
| 61 | end | |
| 62 | if io.UserInputType == Enum.UserInputType.MouseButton2 then | |
| 63 | return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up") | |
| 64 | end | |
| 65 | for _,t in pairs(CAS.Actions) do | |
| 66 | for _,k in pairs(t.Keys) do | |
| 67 | if k==io.KeyCode then | |
| 68 | t.Function(t.Name,io.UserInputState,io) | |
| 69 | end | |
| 70 | end | |
| 71 | end | |
| 72 | FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
| 73 | UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false) | |
| 74 | end | |
| 75 | end) | |
| 76 | Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
| |
| 77 | local Mouse = owner:GetMouse() | |
| 78 | local UIS = game:GetService("UserInputService")
| |
| 79 | local input = function(io,RobloxHandled) | |
| 80 | if RobloxHandled then return end | |
| 81 | --Since InputObject is a client-side instance, we create and pass table instead | |
| 82 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
| |
| 83 | end | |
| 84 | UIS.InputBegan:Connect(input) | |
| 85 | UIS.InputEnded:Connect(input) | |
| 86 | local h,t | |
| 87 | --Give the server mouse data every second frame, but only if the values changed | |
| 88 | --If player is not moving their mouse, client won't fire events | |
| 89 | local HB = game:GetService("RunService").Heartbeat
| |
| 90 | while true do | |
| 91 | if h~=Mouse.Hit or t~=Mouse.Target then | |
| 92 | h,t=Mouse.Hit,Mouse.Target | |
| 93 | Event:FireServer({isMouse=true,Target=t,Hit=h})
| |
| 94 | end | |
| 95 | --Wait 2 frames | |
| 96 | for i=1,2 do | |
| 97 | HB:Wait() | |
| 98 | end | |
| 99 | end]==],script) | |
| 100 | ||
| 101 | ----Sandboxed game object that allows the usage of client-side methods and services | |
| 102 | --Real game object | |
| 103 | local RealGame = game | |
| 104 | ||
| 105 | --Metatable for fake service | |
| 106 | local FakeService_Metatable = {
| |
| 107 | __index = function(self,k) | |
| 108 | local s = rawget(self,"_RealService") | |
| 109 | if s then | |
| 110 | return typeof(s[k])=="function" | |
| 111 | and function(_,...)return s[k](s,...)end or s[k] | |
| 112 | end | |
| 113 | end, | |
| 114 | __newindex = function(self,k,v) | |
| 115 | local s = rawget(self,"_RealService") | |
| 116 | if s then s[k]=v end | |
| 117 | end | |
| 118 | } | |
| 119 | local function FakeService(t,RealService) | |
| 120 | t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService | |
| 121 | return setmetatable(t,FakeService_Metatable) | |
| 122 | end | |
| 123 | ||
| 124 | --Fake game object | |
| 125 | local FakeGame = {
| |
| 126 | GetService = function(self,s) | |
| 127 | return rawget(self,s) or RealGame:GetService(s) | |
| 128 | end, | |
| 129 | Players = FakeService({
| |
| 130 | LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
| |
| 131 | },"Players"), | |
| 132 | UserInputService = FakeService(UIS,"UserInputService"), | |
| 133 | ContextActionService = FakeService(CAS,"ContextActionService"), | |
| 134 | RunService = FakeService({
| |
| 135 | _btrs = {},
| |
| 136 | RenderStepped = RealGame:GetService("RunService").Heartbeat,
| |
| 137 | BindToRenderStep = function(self,name,_,fun) | |
| 138 | self._btrs[name] = self.Heartbeat:Connect(fun) | |
| 139 | end, | |
| 140 | UnbindFromRenderStep = function(self,name) | |
| 141 | self._btrs[name]:Disconnect() | |
| 142 | end, | |
| 143 | },"RunService") | |
| 144 | } | |
| 145 | rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer) | |
| 146 | FakeGame.service = FakeGame.GetService | |
| 147 | FakeService(FakeGame,game) | |
| 148 | --Changing owner to fake player object to support owner:GetMouse() | |
| 149 | game,owner = FakeGame,FakeGame.Players.LocalPlayer | |
| 150 | end | |
| 151 | ||
| 152 | wait(1)--this was so much work i did not change the animations from the last stand sorry... | |
| 153 | warn "Slenercat5's" | |
| 154 | warn "Dirty Deeds Done Dirt Cheep" | |
| 155 | warn "Q to call stand" | |
| 156 | warn "E to do far range attack" | |
| 157 | warn "R to make Enemy clone" | |
| 158 | warn "T to jump to other dimension" | |
| 159 | warn "Y to Make Clone" | |
| 160 | warn "F to use love train" | |
| 161 | warn "moveset based on project jojo's d4c" | |
| 162 | warn "Model by JojofMer" | |
| 163 | warn"sorry currently 1 color" | |
| 164 | warn "Avatar clothing and hair by Masterofroblox1206" | |
| 165 | plr = game.Players.LocalPlayer | |
| 166 | mse = plr:GetMouse() | |
| 167 | sound = Instance.new("Sound", game.Workspace)
| |
| 168 | sound.SoundId = "https://www.roblox.com/asset/?id=274698941" | |
| 169 | sound.Volume = 10 | |
| 170 | canworld = true | |
| 171 | BeeSpeed = 50 | |
| 172 | ||
| 173 | chr=plr.Character | |
| 174 | tors=torso | |
| 175 | --[[ | |
| 176 | for _,v in pairs(plr.Character:GetChildren())do | |
| 177 | if v:IsA('Shirt') or v:IsA('Pants') or v:IsA('Accessory') then
| |
| 178 | v:remove() | |
| 179 | end | |
| 180 | end | |
| 181 | local sh = Instance.new("Shirt",chr)
| |
| 182 | sh.ShirtTemplate = "http://www.roblox.com/asset/?id=394790364" | |
| 183 | p=Instance.new('Pants',chr)
| |
| 184 | p.PantsTemplate='http://www.roblox.com/asset/?id=394795102'--]] | |
| 185 | ||
| 186 | chr['Left Arm'].BrickColor=BrickColor.new('Pastel brown')
| |
| 187 | chr['Right Arm'].BrickColor=BrickColor.new('Pastel brown')
| |
| 188 | chr['Torso'].BrickColor=BrickColor.new('Pastel brown')
| |
| 189 | chr.Head.BrickColor=BrickColor.new('Pastel brown')
| |
| 190 | ||
| 191 | ||
| 192 | ||
| 193 | ||
| 194 | local Players=game:service'Players' | |
| 195 | local Player=Players.LocalPlayer | |
| 196 | local Mouse=Player:GetMouse'' | |
| 197 | Character=Player.Character | |
| 198 | ||
| 199 | local RenderStepped=game:service'RunService'.RenderStepped | |
| 200 | ||
| 201 | local MeshId='http://www.roblox.com/asset?id=779592805' | |
| 202 | local TextureId='http://www.roblox.com/asset/?id=775493027' | |
| 203 | ||
| 204 | ||
| 205 | local QHold=false | |
| 206 | local EHold=false | |
| 207 | ||
| 208 | cut = Instance.new("Sound", chr)
| |
| 209 | cut.SoundId = "https://www.roblox.com/asset/?id=0" | |
| 210 | cut.Volume = 1.5 | |
| 211 | thri = Instance.new("Sound", chr)
| |
| 212 | thri.SoundId = "https://www.roblox.com/asset/?id=186311262" | |
| 213 | thri.Volume = 2.5 | |
| 214 | ||
| 215 | ||
| 216 | Sound2=Instance.new('Sound')
| |
| 217 | Sound2.SoundId='rbxassetid://616594063' | |
| 218 | Sound2.Parent=Player.Character.Head | |
| 219 | ||
| 220 | ||
| 221 | Effects = {}
| |
| 222 | local Player = game.Players.localPlayer | |
| 223 | local Character = Player.Character | |
| 224 | Character.Archivable = true | |
| 225 | AdvancingFortress = Character:Clone() | |
| 226 | --[[ | |
| 227 | Hair=Instance.new('Part',Character)
| |
| 228 | Hair.Size=Vector3.new(1,1,1) | |
| 229 | M=Instance.new('FileMesh',Hair)
| |
| 230 | M.Scale=Vector3.new(.028,.028,.028) | |
| 231 | M.MeshId='rbxassetid://1450916371' | |
| 232 | M.TextureId='rbxassetid://1450916523' | |
| 233 | WARF=Instance.new('Weld',Hair)
| |
| 234 | WARF.Part0=Hair | |
| 235 | WARF.Part1=Character.Head | |
| 236 | WARF.C0=CFrame.new(0,-.2,0)--]] | |
| 237 | ||
| 238 | ||
| 239 | --//D4cCostume | |
| 240 | ||
| 241 | function eclone(targetPart) | |
| 242 | ||
| 243 | --Converted with ttyyuu12345's model to script plugin v4 | |
| 244 | function sandbox(var,func) | |
| 245 | local env = getfenv(func) | |
| 246 | local newenv = setmetatable({},{
| |
| 247 | __index = function(self,k) | |
| 248 | if k=="script" then | |
| 249 | return var | |
| 250 | else | |
| 251 | return env[k] | |
| 252 | end | |
| 253 | end, | |
| 254 | }) | |
| 255 | setfenv(func,newenv) | |
| 256 | return func | |
| 257 | end | |
| 258 | cors = {}
| |
| 259 | mas = Instance.new("Model",game:GetService("Lighting"))
| |
| 260 | Model0 = Instance.new("Model")
| |
| 261 | Part1 = Instance.new("Part")
| |
| 262 | SpecialMesh2 = Instance.new("SpecialMesh")
| |
| 263 | Decal3 = Instance.new("Decal")
| |
| 264 | Part4 = Instance.new("Part")
| |
| 265 | Decal5 = Instance.new("Decal")
| |
| 266 | Motor6 = Instance.new("Motor")
| |
| 267 | Motor7 = Instance.new("Motor")
| |
| 268 | Motor8 = Instance.new("Motor")
| |
| 269 | Motor9 = Instance.new("Motor")
| |
| 270 | Motor10 = Instance.new("Motor")
| |
| 271 | Part11 = Instance.new("Part")
| |
| 272 | Part12 = Instance.new("Part")
| |
| 273 | Part13 = Instance.new("Part")
| |
| 274 | Part14 = Instance.new("Part")
| |
| 275 | Humanoid15 = Instance.new("Humanoid")
| |
| 276 | Humanoid15.WalkToPart=targetPart | |
| 277 | BodyColors16 = Instance.new("BodyColors")
| |
| 278 | Script17 = Instance.new("Script")
| |
| 279 | Model0.Name = "Clone" | |
| 280 | Model0.Parent = mas | |
| 281 | Model0.PrimaryPart = Part1 | |
| 282 | Part1.Name = "Head" | |
| 283 | Part1.Parent = Model0 | |
| 284 | Part1.BrickColor = BrickColor.new("Bright yellow")
| |
| 285 | Part1.FormFactor = Enum.FormFactor.Symmetric | |
| 286 | Part1.Size = Vector3.new(2, 1, 1) | |
| 287 | Part1.CFrame = CFrame.new(6.34995413, 4.50001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 288 | Part1.TopSurface = Enum.SurfaceType.Smooth | |
| 289 | Part1.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 290 | Part1.Position = Vector3.new(6.34995413, 4.50001717, 23.1599998) | |
| 291 | Part1.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 292 | SpecialMesh2.Parent = Part1 | |
| 293 | SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25) | |
| 294 | SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25) | |
| 295 | Decal3.Name = "face" | |
| 296 | Decal3.Parent = Part1 | |
| 297 | Decal3.Texture = "rbxasset://textures/face.png" | |
| 298 | Part4.Name = "Torso" | |
| 299 | Part4.Parent = Model0 | |
| 300 | Part4.BrickColor = BrickColor.new("Bright blue")
| |
| 301 | Part4.FormFactor = Enum.FormFactor.Symmetric | |
| 302 | Part4.Size = Vector3.new(2, 2, 1) | |
| 303 | Part4.CFrame = CFrame.new(6.34995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 304 | Part4.LeftSurface = Enum.SurfaceType.Weld | |
| 305 | Part4.RightSurface = Enum.SurfaceType.Weld | |
| 306 | Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
| 307 | Part4.Position = Vector3.new(6.34995413, 3.00001717, 23.1599998) | |
| 308 | Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
| 309 | Decal5.Name = "roblox" | |
| 310 | Decal5.Parent = Part4 | |
| 311 | Motor6.Name = "Right Shoulder" | |
| 312 | Motor6.Parent = Part4 | |
| 313 | Motor6.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 314 | Motor6.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 315 | Motor6.Part0 = Part4 | |
| 316 | Motor6.Part1 = Part12 | |
| 317 | Motor6.MaxVelocity = 0.15000000596046 | |
| 318 | Motor7.Name = "Left Shoulder" | |
| 319 | Motor7.Parent = Part4 | |
| 320 | Motor7.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 321 | Motor7.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 322 | Motor7.Part0 = Part4 | |
| 323 | Motor7.Part1 = Part11 | |
| 324 | Motor7.MaxVelocity = 0.15000000596046 | |
| 325 | Motor8.Name = "Right Hip" | |
| 326 | Motor8.Parent = Part4 | |
| 327 | Motor8.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 328 | Motor8.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 329 | Motor8.Part0 = Part4 | |
| 330 | Motor8.Part1 = Part14 | |
| 331 | Motor8.MaxVelocity = 0.10000000149012 | |
| 332 | Motor9.Name = "Left Hip" | |
| 333 | Motor9.Parent = Part4 | |
| 334 | Motor9.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 335 | Motor9.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 336 | Motor9.Part0 = Part4 | |
| 337 | Motor9.Part1 = Part13 | |
| 338 | Motor9.MaxVelocity = 0.10000000149012 | |
| 339 | Motor10.Name = "Neck" | |
| 340 | Motor10.Parent = Part4 | |
| 341 | Motor10.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0) | |
| 342 | Motor10.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0) | |
| 343 | Motor10.Part0 = Part4 | |
| 344 | Motor10.Part1 = Part1 | |
| 345 | Motor10.MaxVelocity = 0.10000000149012 | |
| 346 | Part11.Name = "Left Arm" | |
| 347 | Part11.Parent = Model0 | |
| 348 | Part11.BrickColor = BrickColor.new("Bright yellow")
| |
| 349 | Part11.CanCollide = false | |
| 350 | Part11.FormFactor = Enum.FormFactor.Symmetric | |
| 351 | Part11.Size = Vector3.new(1, 2, 1) | |
| 352 | Part11.CFrame = CFrame.new(4.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 353 | Part11.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 354 | Part11.Position = Vector3.new(4.84995413, 3.00001717, 23.1599998) | |
| 355 | Part11.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 356 | Part12.Name = "Right Arm" | |
| 357 | Part12.Parent = Model0 | |
| 358 | Part12.BrickColor = BrickColor.new("Bright yellow")
| |
| 359 | Part12.CanCollide = false | |
| 360 | Part12.FormFactor = Enum.FormFactor.Symmetric | |
| 361 | Part12.Size = Vector3.new(1, 2, 1) | |
| 362 | Part12.CFrame = CFrame.new(7.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 363 | Part12.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 364 | Part12.Position = Vector3.new(7.84995413, 3.00001717, 23.1599998) | |
| 365 | Part12.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 366 | Part13.Name = "Left Leg" | |
| 367 | Part13.Parent = Model0 | |
| 368 | Part13.BrickColor = BrickColor.new("Br. yellowish green")
| |
| 369 | Part13.CanCollide = false | |
| 370 | Part13.FormFactor = Enum.FormFactor.Symmetric | |
| 371 | Part13.Size = Vector3.new(1, 2, 1) | |
| 372 | Part13.CFrame = CFrame.new(5.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 373 | Part13.BottomSurface = Enum.SurfaceType.Smooth | |
| 374 | Part13.TopSurface = Enum.SurfaceType.Inlet | |
| 375 | Part13.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 376 | Part13.Position = Vector3.new(5.84995413, 1.00001717, 23.1599998) | |
| 377 | Part13.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 378 | Part14.Name = "Right Leg" | |
| 379 | Part14.Parent = Model0 | |
| 380 | Part14.BrickColor = BrickColor.new("Br. yellowish green")
| |
| 381 | Part14.CanCollide = false | |
| 382 | Part14.FormFactor = Enum.FormFactor.Symmetric | |
| 383 | Part14.Size = Vector3.new(1, 2, 1) | |
| 384 | Part14.CFrame = CFrame.new(6.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 385 | Part14.BottomSurface = Enum.SurfaceType.Smooth | |
| 386 | Part14.TopSurface = Enum.SurfaceType.Inlet | |
| 387 | Part14.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 388 | Part14.Position = Vector3.new(6.84995413, 1.00001717, 23.1599998) | |
| 389 | Part14.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 390 | Humanoid15.Parent = Model0 | |
| 391 | Humanoid15.NameOcclusion = Enum.NameOcclusion.NoOcclusion | |
| 392 | Humanoid15.RightLeg = Part14 | |
| 393 | Humanoid15.LeftLeg = Part13 | |
| 394 | Humanoid15.Torso = Part4 | |
| 395 | Humanoid15.WalkToPoint=Vector3.new(0,20,0) | |
| 396 | BodyColors16.Parent = Model0 | |
| 397 | BodyColors16.HeadColor = BrickColor.new("Bright yellow")
| |
| 398 | BodyColors16.LeftArmColor = BrickColor.new("Bright yellow")
| |
| 399 | BodyColors16.LeftLegColor = BrickColor.new("Br. yellowish green")
| |
| 400 | BodyColors16.RightArmColor = BrickColor.new("Bright yellow")
| |
| 401 | BodyColors16.RightLegColor = BrickColor.new("Br. yellowish green")
| |
| 402 | BodyColors16.TorsoColor = BrickColor.new("Bright blue")
| |
| 403 | Script17.Name = "Full Animation" | |
| 404 | Script17.Parent = Model0 | |
| 405 | table.insert(cors,sandbox(Script17,function() | |
| 406 | --[[Made by Jammer622 @[http://www.roblox.com/Advanced-Player-AI-item?id=59391730], | |
| 407 | This is the ORIGINAL model, if you see others, they are stolen. | |
| 408 | Scripts mixed from vanilla Animate, Health, and Sound, | |
| 409 | with much custom content by myself, making them great AIs. | |
| 410 | No help from Miked's scripts, I made my own joint script. | |
| 411 | If you find any glitches, bugs, or just want to suggest an idea, please message me. | |
| 412 | My team works hard on these AIs, please don't make attempts to steal them. | |
| 413 | Your feedback is extremely appreciated! | |
| 414 | ||
| 415 | _---=CREDITS=---_ | |
| 416 | The Roblox Team Without them, none of this would be possible. | |
| 417 | Vanilla Sound | |
| 418 | Vanilla Health | |
| 419 | Vanilla Animate | |
| 420 | Jammer622 That's me, main programmer and weapon publisher. | |
| 421 | Main Developer | |
| 422 | Health GUI Script | |
| 423 | Animation Work | |
| 424 | Relationship Work | |
| 425 | Wandering | |
| 426 | Pathing (Map Generation) | |
| 427 | Weapon Usage | |
| 428 | Weapon (Re)Publishing | |
| 429 | Sonypony458 | |
| 430 | McDonalds Drink | |
| 431 | Customization | |
| 432 | Teamwork AI | |
| 433 | Model Variables | |
| 434 | Setting Wiki [Below] | |
| 435 | Macdeath I owe it to him for keeping me on track during this. | |
| 436 | Feature Inspiration | |
| 437 | Problem Solving | |
| 438 | Suggestions | |
| 439 | lah30303 Amazing pathing work goes to this fine sir. | |
| 440 | Pathing (Pathing Generation/System) | |
| 441 | ||
| 442 | _---=SETTINGS=---_ | |
| 443 | Inside this model's file, you'll find several values that can be changed. | |
| 444 | DropWeapon -This sets whether or not the bot will drop any equipped weapon upon dying. | |
| 445 | Force_Pants -This must be set through Spawners. | |
| 446 | Force_Shirt -This must be set through Spawners. | |
| 447 | Force_Weapon -This must be set through Spawners. | |
| 448 | Force_Hat -This must be set through Spawners. | |
| 449 | IgnoreCombatFF -This sets whether or not the bot will allow friendly fire during combat. | |
| 450 | IsAPlayer -This is a tag to specify this bot's existance to other AIs. | |
| 451 | IsOnTeam -This sets whether or not the bot is on a team. | |
| 452 | ShowTag -This sets whether or not the bot's team color name shows up beside its own. | |
| 453 | Team -This sets the bot's team color. | |
| 454 | PathTo -This is an experimental pathfinding engine. Use at your own risk! | |
| 455 | PrintMap -This prints maps generated when using PathTo. Use at your own risk! | |
| 456 | Respawn -This sets whether the bot will respawn or not upon death. | |
| 457 | Custom_Name -This must be set through Spawners. | |
| 458 | Wander -This sets whether the bot is stationary or if it moves, but not if it uses weapons or not. | |
| 459 | ]] | |
| 460 | print("Player Bot Loading")
| |
| 461 | Delay(0, function() --Vanilla Sound | |
| 462 | function waitForChild(parent, childName) | |
| 463 | local child = parent:findFirstChild(childName) | |
| 464 | if child then return child end | |
| 465 | while true do | |
| 466 | child = parent.ChildAdded:wait() | |
| 467 | if child.Name==childName then return child end | |
| 468 | end | |
| 469 | end | |
| 470 | function newSound(id) | |
| 471 | local sound = Instance.new("Sound")
| |
| 472 | sound.SoundId = id | |
| 473 | sound.archivable = false | |
| 474 | sound.Parent = script.Parent.Head | |
| 475 | return sound | |
| 476 | end | |
| 477 | local sDied = newSound("rbxasset://sounds/uuhhh.wav")
| |
| 478 | local sFallingDown = newSound("rbxasset://sounds/splat.wav")
| |
| 479 | local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
| |
| 480 | local sGettingUp = newSound("rbxasset://sounds/hit.wav")
| |
| 481 | local sJumping = newSound("rbxasset://sounds/button.wav")
| |
| 482 | local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
| |
| 483 | sRunning.Looped = true | |
| 484 | local Figure = script.Parent | |
| 485 | local Head = waitForChild(Figure, "Head") | |
| 486 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 487 | function onDied() | |
| 488 | sDied:Play() | |
| 489 | end | |
| 490 | function onState(state, sound) | |
| 491 | if state then | |
| 492 | sound:Play() | |
| 493 | else | |
| 494 | sound:Pause() | |
| 495 | end | |
| 496 | end | |
| 497 | function onRunning(speed) | |
| 498 | if speed>0 then | |
| 499 | sRunning:Play() | |
| 500 | else | |
| 501 | sRunning:Pause() | |
| 502 | end | |
| 503 | end | |
| 504 | ||
| 505 | Humanoid.Died:connect(onDied) | |
| 506 | Humanoid.Running:connect(onRunning) | |
| 507 | Humanoid.Jumping:connect(function(state) onState(state, sJumping) end) | |
| 508 | Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end) | |
| 509 | Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end) | |
| 510 | Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end) | |
| 511 | end) | |
| 512 | Delay(0, function() --Vanilla Health | |
| 513 | function waitForChild(parent, childName) | |
| 514 | local child = parent:findFirstChild(childName) | |
| 515 | if child then return child end | |
| 516 | while true do | |
| 517 | child = parent.ChildAdded:wait() | |
| 518 | if child.Name==childName then return child end | |
| 519 | end | |
| 520 | end | |
| 521 | local Figure = script.Parent | |
| 522 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 523 | local regening = false | |
| 524 | function regenHealth() | |
| 525 | if regening then return end | |
| 526 | regening = true | |
| 527 | while Humanoid.Health < Humanoid.MaxHealth do | |
| 528 | local s = wait(1) | |
| 529 | local health = Humanoid.Health | |
| 530 | if health > 0 and health < Humanoid.MaxHealth then | |
| 531 | local newHealthDelta = 0.01 * s * Humanoid.MaxHealth | |
| 532 | health = health + newHealthDelta | |
| 533 | Humanoid.Health = math.min(health,Humanoid.MaxHealth) | |
| 534 | end | |
| 535 | end | |
| 536 | if Humanoid.Health > Humanoid.MaxHealth then | |
| 537 | Humanoid.Health = Humanoid.MaxHealth | |
| 538 | end | |
| 539 | regening = false | |
| 540 | end | |
| 541 | Humanoid.HealthChanged:connect(regenHealth) | |
| 542 | end) | |
| 543 | Delay(0, function() --Vanilla Animate, Multiple Additions | |
| 544 | function waitForChild(parent, childName) | |
| 545 | local child = parent:findFirstChild(childName) | |
| 546 | if child then return child end | |
| 547 | while true do | |
| 548 | child = parent.ChildAdded:wait() | |
| 549 | if child.Name==childName then return child end | |
| 550 | end | |
| 551 | end | |
| 552 | local Figure = script.Parent | |
| 553 | local Clone = Figure:Clone() | |
| 554 | local Torso = waitForChild(Figure, "Torso") | |
| 555 | local Joints = Torso:GetChildren() | |
| 556 | for All = 1, #Joints do | |
| 557 | if Joints.className == "Motor" or Joints.className == "Motor6D" then | |
| 558 | Joints[All]:Remove() | |
| 559 | end | |
| 560 | end | |
| 561 | local RightShoulder = Instance.new("Motor")
| |
| 562 | local LeftShoulder = Instance.new("Motor")
| |
| 563 | local RightHip = Instance.new("Motor")
| |
| 564 | local LeftHip = Instance.new("Motor")
| |
| 565 | local Neck = Instance.new("Motor")
| |
| 566 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 567 | ZStat = 1 | |
| 568 | ZStat2 = 0 | |
| 569 | local pose = "Standing" | |
| 570 | RightShoulder.Part0 = Torso | |
| 571 | RightShoulder.Part1 = Figure["Right Arm"] | |
| 572 | RightShoulder.MaxVelocity = 0.15 | |
| 573 | RightShoulder.Name = "Right Shoulder" | |
| 574 | RightShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 575 | RightShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 576 | RightShoulder.Parent = Torso | |
| 577 | LeftShoulder.Part0 = Torso | |
| 578 | LeftShoulder.Part1 = Figure["Left Arm"] | |
| 579 | LeftShoulder.MaxVelocity = 0.15 | |
| 580 | LeftShoulder.Name = "Left Shoulder" | |
| 581 | LeftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 582 | LeftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 583 | LeftShoulder.Parent = Torso | |
| 584 | RightHip.Part0 = Torso | |
| 585 | RightHip.Part1 = Figure["Right Leg"] | |
| 586 | RightHip.MaxVelocity = 0.1 | |
| 587 | RightHip.Name = "Right Hip" | |
| 588 | RightHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 589 | RightHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 590 | RightHip.Parent = Torso | |
| 591 | LeftHip.Part0 = Torso | |
| 592 | LeftHip.Part1 = Figure["Left Leg"] | |
| 593 | LeftHip.MaxVelocity = 0.1 | |
| 594 | LeftHip.Name = "Left Hip" | |
| 595 | LeftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 596 | LeftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 597 | LeftHip.Parent = Torso | |
| 598 | Neck.Part0 = Torso | |
| 599 | Neck.Part1 = Figure["Head"] | |
| 600 | Neck.MaxVelocity = 0.1 | |
| 601 | Neck.Name = "Neck" | |
| 602 | Neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) | |
| 603 | Neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) | |
| 604 | Neck.Parent = Torso | |
| 605 | local toolAnim = "None" | |
| 606 | local toolAnimTime = 0 | |
| 607 | SpawnModel = Instance.new("Model")
| |
| 608 | function onRunning(speed) | |
| 609 | if speed>0 then | |
| 610 | pose = "Running" | |
| 611 | else | |
| 612 | pose = "Standing" | |
| 613 | end | |
| 614 | end | |
| 615 | function CheckTag(Tag) | |
| 616 | if script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
| |
| 617 | if Tag.Value.Character:FindFirstChild("IsLocalEnemy") == nil then
| |
| 618 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == Tag.Value.TeamColor) or script.Parent.IsOnTeam.Value == false then | |
| 619 | local Tag2 = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 620 | Tag2.Name = "IsLocalEnemy" | |
| 621 | print(Tag.Value.Character.Name .." Has Become An Outlaw") | |
| 622 | end | |
| 623 | end | |
| 624 | if Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 625 | Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 626 | end | |
| 627 | local Found = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 628 | Found.Name = "Loc" ..script.Parent.Name | |
| 629 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 630 | elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Players:FindFirstChild(Tag.Value) ~= nil and game.Players[Tag.Value].Character ~= nil then
| |
| 631 | if game.Players[Tag.Value].Character:FindFirstChild("IsLocalEnemy") == nil then
| |
| 632 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == game.Players[Tag.Value].TeamColor) or script.Parent.IsOnTeam.Value == false then | |
| 633 | local Tag2 = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
| |
| 634 | Tag2.Name = "IsLocalEnemy" | |
| 635 | print(Tag.Value .." Has Become An Outlaw") | |
| 636 | end | |
| 637 | end | |
| 638 | if game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 639 | game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 640 | end | |
| 641 | local Found = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
| |
| 642 | Found.Name = "Loc" ..script.Parent.Name | |
| 643 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 644 | elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
| |
| 645 | if game.Workspace[Tag.Value]:FindFirstChild("IsLocalEnemy") == nil then
| |
| 646 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and Workspace[Tag.Value].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value == Workspace[Tag.Value].IsOnTeam.Team.Value) or script.Parent.IsOnTeam.Value == false or Workspace[Tag.Value].IsOnTeam.Value == false then | |
| 647 | local Tag2 = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 648 | Tag2.Name = "IsLocalEnemy" | |
| 649 | print(Tag.Value .." Has Become An Outlaw") | |
| 650 | end | |
| 651 | end | |
| 652 | if game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 653 | game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 654 | end | |
| 655 | local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 656 | Found.Name = "Loc" ..script.Parent.Name | |
| 657 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 658 | elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
| |
| 659 | local Found = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 660 | Found.Name = "Loc" ..script.Parent.Name | |
| 661 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 662 | elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
| |
| 663 | local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 664 | Found.Name = "Loc" ..script.Parent.Name | |
| 665 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 666 | end | |
| 667 | end | |
| 668 | function CheckSpawns(Object) | |
| 669 | local Parts = Object:GetChildren() | |
| 670 | for Check = 1, #Parts do | |
| 671 | if Parts[Check].className == "SpawnLocation" then | |
| 672 | local I = Instance.new("Vector3Value", SpawnModel)
| |
| 673 | I.Value = Parts[Check].Position | |
| 674 | end | |
| 675 | CheckSpawns(Parts[Check]) | |
| 676 | end | |
| 677 | end | |
| 678 | function onDied() | |
| 679 | pose = "Dead" | |
| 680 | Delay(5, function() | |
| 681 | if script.Parent.Respawn.Value == true then | |
| 682 | CheckSpawns(Workspace) | |
| 683 | local Spawn = SpawnModel:GetChildren() | |
| 684 | Clone.Parent = game.Workspace | |
| 685 | if #Spawn > 0 then | |
| 686 | Spawn = Spawn[math.random(1, #Spawn)].Value | |
| 687 | Clone:MoveTo(Spawn) | |
| 688 | else | |
| 689 | Clone:MoveTo(Vector3.new(0, 50, 0)) | |
| 690 | end | |
| 691 | end | |
| 692 | Figure:Remove() | |
| 693 | return | |
| 694 | end) | |
| 695 | end | |
| 696 | function onJumping() | |
| 697 | pose = "Jumping" | |
| 698 | end | |
| 699 | function onClimbing() | |
| 700 | pose = "Climbing" | |
| 701 | end | |
| 702 | function onGettingUp() | |
| 703 | pose = "GettingUp" | |
| 704 | end | |
| 705 | function onFreeFall() | |
| 706 | pose = "FreeFall" | |
| 707 | end | |
| 708 | function onFallingDown() | |
| 709 | pose = "FallingDown" | |
| 710 | end | |
| 711 | function onSeated() | |
| 712 | pose = "Seated" | |
| 713 | end | |
| 714 | function onPlatformStanding() | |
| 715 | pose = "PlatformStanding" | |
| 716 | end | |
| 717 | function moveJump() | |
| 718 | RightShoulder.MaxVelocity = 0.5 | |
| 719 | LeftShoulder.MaxVelocity = 0.5 | |
| 720 | RightShoulder.DesiredAngle = (3.14/ZStat) | |
| 721 | LeftShoulder.DesiredAngle = (-3.14/ZStat) | |
| 722 | RightHip.DesiredAngle = (0) | |
| 723 | LeftHip.DesiredAngle = (0) | |
| 724 | end | |
| 725 | function moveFreeFall() | |
| 726 | RightShoulder.MaxVelocity = 0.5 | |
| 727 | LeftShoulder.MaxVelocity = 0.5 | |
| 728 | RightShoulder.DesiredAngle = (3.14/ZStat) | |
| 729 | LeftShoulder.DesiredAngle = (-3.14/ZStat) | |
| 730 | RightHip.DesiredAngle = (0) | |
| 731 | LeftHip.DesiredAngle = (0) | |
| 732 | end | |
| 733 | function moveSit() | |
| 734 | RightShoulder.MaxVelocity = 0.15 | |
| 735 | LeftShoulder.MaxVelocity = 0.15 | |
| 736 | RightShoulder.DesiredAngle = (3.14 /2) | |
| 737 | LeftShoulder.DesiredAngle = (-3.14 /2) | |
| 738 | RightHip.DesiredAngle = (3.14 /2) | |
| 739 | LeftHip.DesiredAngle = (-3.14 /2) | |
| 740 | end | |
| 741 | function getTool() | |
| 742 | for _, kid in ipairs(Figure:GetChildren()) do | |
| 743 | if kid.className == "Tool" then return kid end | |
| 744 | end | |
| 745 | return nil | |
| 746 | end | |
| 747 | function getToolAnim(tool) | |
| 748 | for _, c in ipairs(tool:GetChildren()) do | |
| 749 | if c.Name == "toolanim" and c.className == "StringValue" then | |
| 750 | return c | |
| 751 | end | |
| 752 | end | |
| 753 | return nil | |
| 754 | end | |
| 755 | function animateTool() | |
| 756 | if (toolAnim == "None") then | |
| 757 | RightShoulder.DesiredAngle = (1.57) | |
| 758 | return | |
| 759 | end | |
| 760 | if (toolAnim == "Slash") then | |
| 761 | RightShoulder.MaxVelocity = 0.5 | |
| 762 | RightShoulder.DesiredAngle = (0) | |
| 763 | return | |
| 764 | end | |
| 765 | if (toolAnim == "Lunge") then | |
| 766 | RightShoulder.MaxVelocity = 0.5 | |
| 767 | LeftShoulder.MaxVelocity = 0.5 | |
| 768 | RightHip.MaxVelocity = 0.5 | |
| 769 | LeftHip.MaxVelocity = 0.5 | |
| 770 | RightShoulder.DesiredAngle = (1.57) | |
| 771 | LeftShoulder.DesiredAngle = (1.0) | |
| 772 | RightHip.DesiredAngle = (1.57) | |
| 773 | LeftHip.DesiredAngle = (1.0) | |
| 774 | return | |
| 775 | end | |
| 776 | end | |
| 777 | function move(time) | |
| 778 | local amplitude | |
| 779 | local frequency | |
| 780 | if (pose == "Jumping") then | |
| 781 | moveJump() | |
| 782 | return | |
| 783 | end | |
| 784 | if (pose == "FreeFall") then | |
| 785 | moveFreeFall() | |
| 786 | return | |
| 787 | end | |
| 788 | if (pose == "Seated") then | |
| 789 | moveSit() | |
| 790 | return | |
| 791 | end | |
| 792 | local climbFudge = 0 | |
| 793 | if (pose == "Running") then | |
| 794 | RightShoulder.MaxVelocity = 0.15 | |
| 795 | LeftShoulder.MaxVelocity = 0.15 | |
| 796 | amplitude = 1 | |
| 797 | frequency = 9 | |
| 798 | elseif (pose == "Climbing") then | |
| 799 | RightShoulder.MaxVelocity = 0.5 | |
| 800 | LeftShoulder.MaxVelocity = 0.5 | |
| 801 | amplitude = 1 | |
| 802 | frequency = 9 | |
| 803 | climbFudge = 3.14 | |
| 804 | else | |
| 805 | amplitude = 0.1 | |
| 806 | frequency = 1 | |
| 807 | end | |
| 808 | desiredAngle = amplitude * math.sin(time*frequency) | |
| 809 | RightShoulder.DesiredAngle = (desiredAngle + climbFudge) + ZStat2 | |
| 810 | LeftShoulder.DesiredAngle = (desiredAngle - climbFudge) -ZStat2 | |
| 811 | RightHip.DesiredAngle = (-desiredAngle) | |
| 812 | LeftHip.DesiredAngle = (-desiredAngle) | |
| 813 | local tool = getTool() | |
| 814 | if tool then | |
| 815 | animStringValueObject = getToolAnim(tool) | |
| 816 | if animStringValueObject then | |
| 817 | toolAnim = animStringValueObject.Value | |
| 818 | animStringValueObject.Parent = nil | |
| 819 | toolAnimTime = time + .3 | |
| 820 | end | |
| 821 | if time > toolAnimTime then | |
| 822 | toolAnimTime = 0 | |
| 823 | toolAnim = "None" | |
| 824 | end | |
| 825 | animateTool() | |
| 826 | else | |
| 827 | toolAnim = "None" | |
| 828 | toolAnimTime = 0 | |
| 829 | end | |
| 830 | end | |
| 831 | Humanoid.Died:connect(onDied) | |
| 832 | Humanoid.Running:connect(onRunning) | |
| 833 | Humanoid.Jumping:connect(onJumping) | |
| 834 | Humanoid.Climbing:connect(onClimbing) | |
| 835 | Humanoid.GettingUp:connect(onGettingUp) | |
| 836 | Humanoid.FreeFalling:connect(onFreeFall) | |
| 837 | Humanoid.FallingDown:connect(onFallingDown) | |
| 838 | Humanoid.Seated:connect(onSeated) | |
| 839 | Humanoid.PlatformStanding:connect(onPlatformStanding) | |
| 840 | Humanoid.ChildAdded:connect(CheckTag) | |
| 841 | OriginalTime = 0.1 | |
| 842 | Time = OriginalTime | |
| 843 | while Figure.Parent~=nil do | |
| 844 | Time = Time + 0.1 | |
| 845 | wait(OriginalTime) | |
| 846 | move(Time) | |
| 847 | end | |
| 848 | end) | |
| 849 | Delay(0, function() --lah30303's Pathing Script | |
| 850 | function CalcMoves(map, px, py, tx, ty) | |
| 851 | if map[ty][tx] ~= 0 then | |
| 852 | return nil | |
| 853 | end | |
| 854 | local openlist, closedlist, listk, closedk, tempH, tempG, xsize, ysize, curbase = {}, {}, 1, 0, math.abs(px - tx) + math.abs(py - ty), 0, #map[1], #map, {}
| |
| 855 | openlist[1] = {x = px, y = py, g = 0, h = tempH, f = 0 + tempH ,par = 1}
| |
| 856 | local nodenumber = 0 | |
| 857 | while listk > 0 do | |
| 858 | nodenumber = nodenumber + 1 | |
| 859 | if nodenumber / ScanSkip == math.floor(nodenumber / ScanSkip) then | |
| 860 | wait() | |
| 861 | if DebugPathing == true then | |
| 862 | print("Node", nodenumber)
| |
| 863 | end | |
| 864 | end | |
| 865 | closedk = closedk + 1 | |
| 866 | table.insert(closedlist, closedk, openlist[1]) | |
| 867 | curbase = closedlist[closedk] | |
| 868 | if closedlist[closedk].x == tx and closedlist[closedk].y == ty then | |
| 869 | return closedlist | |
| 870 | end | |
| 871 | openlist[1] = openlist[listk] | |
| 872 | table.remove(openlist, listk) | |
| 873 | listk = listk - 1 | |
| 874 | local v = 1 | |
| 875 | while true do | |
| 876 | local u = v | |
| 877 | if 2 * u + 1 <= listk then | |
| 878 | if openlist[u].f >= openlist[2 * u].f then | |
| 879 | v = 2 * u | |
| 880 | end | |
| 881 | if openlist[v].f >= openlist[2 * u + 1].f then | |
| 882 | v = 2 * u + 1 | |
| 883 | end | |
| 884 | elseif 2 * u <= listk then | |
| 885 | if openlist[u].f >= openlist[2 * u].f then | |
| 886 | v = 2 * u | |
| 887 | end | |
| 888 | end | |
| 889 | if u ~= v then | |
| 890 | local temp = openlist[u] | |
| 891 | openlist[u] = openlist[v] | |
| 892 | openlist[v] = temp | |
| 893 | else | |
| 894 | break | |
| 895 | end | |
| 896 | end | |
| 897 | ||
| 898 | local tocheck = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {1, -1}, {-1, 1}, {1, 1}} --[1]Right, [2]Left, [3]Down, [4]Up, [5]UpLeft, [6]UpRight, [7]DownLeft, [8]DownRight
| |
| 899 | if closedk > 0 then | |
| 900 | for k = 1, closedk do | |
| 901 | for i, v in pairs(tocheck) do | |
| 902 | if closedlist[k].x == curbase.x + v[1] and closedlist[k].y == curbase.y + v[2] then | |
| 903 | tocheck[i] = nil | |
| 904 | end | |
| 905 | end | |
| 906 | end | |
| 907 | end | |
| 908 | for i, v in pairs(tocheck) do | |
| 909 | local a = curbase.x + v[1] | |
| 910 | local b = curbase.y + v[2] | |
| 911 | if a > xsize or a < 1 or b > ysize or b < 1 then | |
| 912 | tocheck[i] = nil | |
| 913 | end | |
| 914 | end | |
| 915 | for i, v in pairs(tocheck) do | |
| 916 | local a, b = curbase.x + v[1], curbase.y + v[2] | |
| 917 | if a <= xsize and a >= 1 and b <= ysize and b >= 1 and map[b][a] ~= 0 then | |
| 918 | tocheck[i] = nil | |
| 919 | end | |
| 920 | end | |
| 921 | tempG = curbase.g + 1 | |
| 922 | tempDiagG = curbase.g + 1.4 | |
| 923 | for k = 1, listk do | |
| 924 | for i, v in pairs(tocheck) do | |
| 925 | if openlist[k].x == curbase.x + v[1] and openlist[k].y == curbase.y + 1 and openlist[k].g > tempG then | |
| 926 | tempH = math.abs((curbase.x + v[1])-tx) + math.abs((curbase.y + v[1])-ty) | |
| 927 | table.insert(openlist, k, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG + tempH, par = closedk})
| |
| 928 | local m = k | |
| 929 | while m ~= 1 do | |
| 930 | if openlist[m].f <= openlist[math.floor(m/2)].f then | |
| 931 | temp = openlist[math.floor(m/2)] | |
| 932 | openlist[math.floor(m/2)] = openlist[m] | |
| 933 | openlist[m] = temp | |
| 934 | m = math.floor(m/2) | |
| 935 | else | |
| 936 | break | |
| 937 | end | |
| 938 | tocheck[i] = nil | |
| 939 | end | |
| 940 | end | |
| 941 | end | |
| 942 | end | |
| 943 | for i, v in pairs(tocheck) do | |
| 944 | listk = listk + 1 | |
| 945 | tempH = math.abs((curbase.x + v[1]) - tx) + math.abs((curbase.y + v[2]) - ty) | |
| 946 | table.insert(openlist, listk, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG+tempH, par = closedk})
| |
| 947 | m = listk | |
| 948 | while m ~= 1 do | |
| 949 | if openlist[m].f <= openlist[math.floor(m/2)].f then | |
| 950 | temp = openlist[math.floor(m/2)] | |
| 951 | openlist[math.floor(m/2)] = openlist[m] | |
| 952 | openlist[m] = temp | |
| 953 | m = math.floor(m/2) | |
| 954 | else | |
| 955 | break | |
| 956 | end | |
| 957 | end | |
| 958 | end | |
| 959 | end | |
| 960 | return nil | |
| 961 | end | |
| 962 | ||
| 963 | ||
| 964 | function CalcPath(closedlist) | |
| 965 | ||
| 966 | if closedlist == nil or table.getn(closedlist) == 1 then | |
| 967 | return nil | |
| 968 | end | |
| 969 | local path = {}
| |
| 970 | local pathIndex = {}
| |
| 971 | local last = table.getn(closedlist) | |
| 972 | table.insert(pathIndex,1,last) | |
| 973 | ||
| 974 | local i = 1 | |
| 975 | while pathIndex[i] > 1 do | |
| 976 | i = i + 1 | |
| 977 | table.insert(pathIndex, i, closedlist[pathIndex[i - 1]].par) | |
| 978 | end | |
| 979 | ||
| 980 | for n = table.getn(pathIndex) - 1, 1, -1 do | |
| 981 | table.insert(path, {x = closedlist[pathIndex[n]].x, y = closedlist[pathIndex[n]].y})
| |
| 982 | end | |
| 983 | ||
| 984 | closedlist = nil | |
| 985 | return path | |
| 986 | end | |
| 987 | end) | |
| 988 | Delay(0, function() --Main Artificial Intelligence Scripting/Path Grid Generator | |
| 989 | local Base | |
| 990 | if script.Parent:FindFirstChild("BASE") == nil then
| |
| 991 | Base = Instance.new("Part")
| |
| 992 | Base.Transparency = 1 | |
| 993 | Base.TopSurface = "Smooth" | |
| 994 | Base.BottomSurface = "Smooth" | |
| 995 | Base.CanCollide = false | |
| 996 | Base.Anchored = true | |
| 997 | Base.Locked = true | |
| 998 | Base.BrickColor = BrickColor.new(0, 0, 0) | |
| 999 | Base.Name = "BASE" | |
| 1000 | Base.CFrame = CFrame.new(Vector3.new(0, 0, 0)) | |
| 1001 | Base.Parent = script.Parent | |
| 1002 | else | |
| 1003 | Base = script.Parent.BASE | |
| 1004 | Base.CFrame = CFrame.new(Vector3.new(0, 0, 0)) | |
| 1005 | end | |
| 1006 | function Jump() | |
| 1007 | script.Parent.Humanoid.Jump = true | |
| 1008 | end | |
| 1009 | function Check(Hit) | |
| 1010 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent.Parent ~= nil then | |
| 1011 | if Hit.Parent:FindFirstChild("Humanoid") == nil and Hit.Parent.Parent:FindFirstChild("Humanoid") == nil then
| |
| 1012 | Jump() | |
| 1013 | end | |
| 1014 | end | |
| 1015 | end | |
| 1016 | script.Parent.Torso.Touched:connect(Check) | |
| 1017 | function Prep(Target, Current, Attempts) | |
| 1018 | if Attempts == nil then | |
| 1019 | Attempts = 1000 | |
| 1020 | end | |
| 1021 | local Hit = false | |
| 1022 | local Tag = Base:Clone() | |
| 1023 | Tag.Position = Target | |
| 1024 | Tag.Parent = script.Parent | |
| 1025 | local TagRay = Ray.new(Tag.CFrame.p, (CFrame.new(Tag.CFrame.p - Vector3.new(0, 3, 0)).p - Tag.CFrame.p).Unit * 40) | |
| 1026 | local TRHit, TRPos = game.Workspace:FindPartOnRay(TagRay, script.Parent) | |
| 1027 | if TRHit ~= nil then | |
| 1028 | Hit = true | |
| 1029 | end | |
| 1030 | if Tag.Parent ~= nil then | |
| 1031 | Tag:Remove() | |
| 1032 | end | |
| 1033 | if Hit == false and Attempts > 0 and script.Parent.Wander.Value == true then | |
| 1034 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base, Attempts - 1) | |
| 1035 | elseif script.Parent.Wander.Value == true then | |
| 1036 | local TargetRay = Ray.new(script.Parent.Torso.CFrame.p, (CFrame.new(Target).p - script.Parent.Torso.CFrame.p).Unit * ((Target - script.Parent.Torso.Position).Magnitude - 3)) | |
| 1037 | local THit, TPos = game.Workspace:FindPartOnRay(TargetRay, script.Parent) | |
| 1038 | local TrueTarget = script.Parent.Torso.Position | |
| 1039 | if THit ~= nil then | |
| 1040 | for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - TPos).Magnitude) do | |
| 1041 | local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (TPos - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3) | |
| 1042 | local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent) | |
| 1043 | if TH2 ~= nil and TH2.Name ~= "Lava" then | |
| 1044 | TrueTarget = TP2 | |
| 1045 | else | |
| 1046 | break | |
| 1047 | end | |
| 1048 | end | |
| 1049 | else | |
| 1050 | for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - Target).Magnitude) do | |
| 1051 | local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (Target - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3) | |
| 1052 | local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent) | |
| 1053 | if TH2 ~= nil and TH2.Name ~= "Lava" then | |
| 1054 | TrueTarget = TP2 | |
| 1055 | else | |
| 1056 | break | |
| 1057 | end | |
| 1058 | end | |
| 1059 | end | |
| 1060 | script.Parent.Humanoid:MoveTo(TrueTarget, Current) | |
| 1061 | end | |
| 1062 | end | |
| 1063 | function ZHit(Part) | |
| 1064 | if script.Parent:FindFirstChild("IsAZombie") ~= nil and script.Parent.Humanoid.Health > 0 and Part ~= nil and Part.Parent ~= nil and Part.Parent:FindFirstChild("Humanoid") ~= nil and Part.Parent:FindFirstChild("IsAZombie") == nil then
| |
| 1065 | Part.Parent.Humanoid:TakeDamage(2) | |
| 1066 | script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + 1 | |
| 1067 | script.Parent.Humanoid:TakeDamage(-1) | |
| 1068 | end | |
| 1069 | end | |
| 1070 | script.Parent["Right Arm"].Touched:connect(ZHit) | |
| 1071 | script.Parent["Left Arm"].Touched:connect(ZHit) | |
| 1072 | CurrentMap = {}
| |
| 1073 | MapMask = {}
| |
| 1074 | MapVar = {0, 0, 0, 0, 0}
| |
| 1075 | BlockScanned = 0 | |
| 1076 | ScanSkip = 5 | |
| 1077 | DebugPathing = true | |
| 1078 | function GenerateMap(PathPos) | |
| 1079 | CurrentMap = {}
| |
| 1080 | MapMask = {}
| |
| 1081 | MapVar = {0, 0, 0, 0, 0}
| |
| 1082 | BlockScanned = 0 | |
| 1083 | MapVariables = ScanParts(Workspace, 1) | |
| 1084 | for MapX = 1, math.max(-MapVariables[1], MapVariables[2]) * 2 + 1 do | |
| 1085 | CurrentMap[MapX] = {}
| |
| 1086 | for MapY = 1, math.max(-MapVariables[3], MapVariables[4]) * 2 + 1 do | |
| 1087 | CurrentMap[MapX][MapY] = 0 | |
| 1088 | end | |
| 1089 | end | |
| 1090 | for MaskX = 1, #CurrentMap do | |
| 1091 | MapMask[MaskX] = {}
| |
| 1092 | for MaskY = 1, #CurrentMap[MaskX] do | |
| 1093 | MapMask[MaskX][MaskY] = {MapVariables[1] + MaskX - 0.5, MapVariables[1] + MaskY - 0.5}
| |
| 1094 | end | |
| 1095 | end | |
| 1096 | ScanParts(Workspace, 2, MapVariables) | |
| 1097 | wait(1) | |
| 1098 | if script.Parent.PrintMap.Value == true then | |
| 1099 | print("Printing Map...")
| |
| 1100 | for ClearPrint = 1, 250 do | |
| 1101 | wait() | |
| 1102 | print() | |
| 1103 | end | |
| 1104 | for PrintX = 1, #CurrentMap do | |
| 1105 | local PrintZ = "" | |
| 1106 | for PrintY = 1, #CurrentMap[PrintX] do | |
| 1107 | PrintZ = PrintZ ..CurrentMap[PrintX][PrintY] | |
| 1108 | end | |
| 1109 | print(PrintZ) | |
| 1110 | wait(0.1) | |
| 1111 | end | |
| 1112 | end | |
| 1113 | local MapCoords = {0, 0, 0, 0}
| |
| 1114 | local Distance = math.huge | |
| 1115 | for MPX = 1, #CurrentMap do | |
| 1116 | for MPY = 1, #CurrentMap[MPX] do | |
| 1117 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude < Distance then | |
| 1118 | MapCoords = {MPX, MPY, 0, 0}
| |
| 1119 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude | |
| 1120 | end | |
| 1121 | end | |
| 1122 | end | |
| 1123 | local Distance = math.huge | |
| 1124 | for MPX = 1, #CurrentMap do | |
| 1125 | for MPY = 1, #CurrentMap[MPX] do | |
| 1126 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude < Distance then | |
| 1127 | MapCoords = {MapCoords[1], MapCoords[2], math.min(MPX, #CurrentMap) - 1, math.min(MPY, #CurrentMap[1] - 1)}
| |
| 1128 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude | |
| 1129 | end | |
| 1130 | end | |
| 1131 | end | |
| 1132 | for i, v in pairs(CalcPath(CalcMoves(CurrentMap, MapCoords[1], MapCoords[2], MapCoords[3], MapCoords[4]))) do | |
| 1133 | local Timer = 20 | |
| 1134 | local pX = v["x"] | |
| 1135 | local pY = v["y"] | |
| 1136 | local pTo = Vector3.new(MapMask[pX][pY][1], 0, MapMask[pX][pY][2]) | |
| 1137 | pTo = pTo + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit | |
| 1138 | while (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude > 2.5 and Timer > 0 do | |
| 1139 | script.Parent.Humanoid:MoveTo(pTo, Base) | |
| 1140 | Timer = Timer - 1 | |
| 1141 | if Timer == 10 then | |
| 1142 | script.Parent.Humanoid.Jump = true | |
| 1143 | end | |
| 1144 | wait(0.1) | |
| 1145 | end | |
| 1146 | if Timer == 0 then | |
| 1147 | if (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude <= 5 then | |
| 1148 | script.Parent.Torso.CFrame = script.Parent.Torso.CFrame + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit * (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude | |
| 1149 | else | |
| 1150 | break | |
| 1151 | end | |
| 1152 | end | |
| 1153 | end | |
| 1154 | end | |
| 1155 | function ScanParts(CurrentModel, CurrentStage, Variables) | |
| 1156 | local X = CurrentModel:GetChildren() | |
| 1157 | for I = 1, #X do | |
| 1158 | if #X[I]:GetChildren() > 0 then | |
| 1159 | ScanParts(X[I], 1, Variables) | |
| 1160 | end | |
| 1161 | if X[I].ClassName == "Part" or X[I].ClassName == "WedgePart" or X[I].ClassName == "CornerWedgePart" or X[I].ClassName == "TrussPart" or X[I].ClassName == "SpawnLocation" or X[I].ClassName == "Seat" or X[I].ClassName == "VehicleSeat" or X[I].ClassName == "SkateboardPlatform" then | |
| 1162 | BlockScanned = BlockScanned + 1 | |
| 1163 | if BlockScanned / ScanSkip == math.floor(BlockScanned / ScanSkip) then | |
| 1164 | wait() | |
| 1165 | if DebugPathing == true then | |
| 1166 | print("Block", BlockScanned)
| |
| 1167 | end | |
| 1168 | end | |
| 1169 | if CurrentStage == 1 then | |
| 1170 | MapVar[1] = math.min(math.ceil(X[I].Position.X - X[I].Size.X / 2), MapVar[1]) | |
| 1171 | MapVar[2] = math.max(math.floor(X[I].Position.X + X[I].Size.X / 2), MapVar[2]) | |
| 1172 | MapVar[3] = math.min(math.ceil(X[I].Position.Z - X[I].Size.Z / 2), MapVar[3]) | |
| 1173 | MapVar[4] = math.max(math.floor(X[I].Position.Z + X[I].Size.Z / 2), MapVar[4]) | |
| 1174 | elseif CurrentStage == 2 and ((X[I].Position.Y + X[I].Size.Y / 2 > script.Parent.Torso.Position.Y + 2 and X[I].Position.Y - X[I].Size.Y / 2 < script.Parent.Torso.Position.Y + 2) or X[I].Position.Y + X[I].Size.Y / 2 < script.Parent.Torso.Position.Y - 8) then | |
| 1175 | local BlockStart = {X[I].Position.X - X[I].Size.X / 2, X[I].Position.Z - X[I].Size.Z / 2}
| |
| 1176 | local BlockEnd = {X[I].Position.X + X[I].Size.X / 2, X[I].Position.Z + X[I].Size.Z / 2}
| |
| 1177 | local BlockCoords = {0, 0, 0, 0}
| |
| 1178 | local Distance = math.huge | |
| 1179 | for MPX = 1, #CurrentMap do | |
| 1180 | for MPY = 1, #CurrentMap[MPX] do | |
| 1181 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude < Distance then | |
| 1182 | BlockCoords = {MPX, MPY, 0, 0}
| |
| 1183 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude | |
| 1184 | end | |
| 1185 | end | |
| 1186 | end | |
| 1187 | local Distance = math.huge | |
| 1188 | for MPX = 1, #CurrentMap do | |
| 1189 | for MPY = 1, #CurrentMap[MPX] do | |
| 1190 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude < Distance then | |
| 1191 | BlockCoords = {BlockCoords[1], BlockCoords[2], MPX, MPY}
| |
| 1192 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude | |
| 1193 | end | |
| 1194 | end | |
| 1195 | end | |
| 1196 | for XGrid = BlockCoords[2], BlockCoords[4] do | |
| 1197 | for YGrid = BlockCoords[1], BlockCoords[3] do | |
| 1198 | CurrentMap[XGrid][YGrid] = 1 | |
| 1199 | end | |
| 1200 | end | |
| 1201 | end | |
| 1202 | end | |
| 1203 | end | |
| 1204 | if CurrentStage == 1 then | |
| 1205 | MapVar[5] = {MapVar[1] + MapVar[2] / 2, MapVar[3] + MapVar[4] / 2}
| |
| 1206 | return MapVar | |
| 1207 | end | |
| 1208 | end | |
| 1209 | IsInCombat = false | |
| 1210 | while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") == nil do
| |
| 1211 | local Distance = 100 | |
| 1212 | local Target = nil | |
| 1213 | IsInCombat = false | |
| 1214 | local Players = Workspace:GetChildren() | |
| 1215 | for Check = 1, #Players do | |
| 1216 | if Players[Check] ~= script.Parent and ((Players[Check]:FindFirstChild("Humanoid") ~= nil and (Players[Check]:FindFirstChild("IsAZombie") ~= nil or Players[Check]:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or (script.Parent.IsOnTeam.Value == true and Players[Check]:FindFirstChild("IsOnTeam") ~= nil and Players[Check].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value ~= Players[Check].IsOnTeam.Team.Value) or (game.Players:GetPlayerFromCharacter(Players[Check]) ~= nil and script.Parent.IsOnTeam.Value == true and game.Players:GetPlayerFromCharacter(Players[Check]).Neutral == false and game.Players:GetPlayerFromCharacter(Players[Check]).TeamColor ~= script.Parent.IsOnTeam.Team.Value)) and Players[Check].Humanoid.Health > 0) or (Players[Check]:FindFirstChild("Zombie") ~= nil and Players[Check].Zombie.ClassName == "Humanoid" and Players[Check].Zombie.Health > 0)) and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
| |
| 1217 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1218 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 1219 | if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
| |
| 1220 | local TeamTag = nil | |
| 1221 | local Parts = Players[Check]:GetChildren() | |
| 1222 | for X = 1, #Parts do | |
| 1223 | if Parts[X].Name == "TeamLoc" then | |
| 1224 | if Parts[X].Value == script.Parent.IsOnTeam.Team.Value then | |
| 1225 | TeamTag = Parts[X] | |
| 1226 | end | |
| 1227 | end | |
| 1228 | end | |
| 1229 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil or Parts[X] ~= nil or (Players[Check].Torso.Position - (script.Parent.Torso.Position + script.Parent.Torso.CFrame.lookVector * 50)).Magnitude <= 52 then
| |
| 1230 | if script.Parent.IsOnTeam.Value == false then | |
| 1231 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 1232 | Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 1233 | end | |
| 1234 | local Found = Instance.new("CFrameValue", Players[Check])
| |
| 1235 | Found.Name = "Loc" ..script.Parent.Name | |
| 1236 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 1237 | else | |
| 1238 | if Parts[X] ~= nil then | |
| 1239 | Parts[X]:Remove() | |
| 1240 | end | |
| 1241 | local Found = Instance.new("BrickColorValue", Players[Check])
| |
| 1242 | Found.Name = "TeamLoc" | |
| 1243 | Found.Value = script.Parent.IsOnTeam.Team.Value | |
| 1244 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 1245 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 1246 | Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 1247 | end | |
| 1248 | local Found = Instance.new("CFrameValue", Players[Check])
| |
| 1249 | Found.Name = "Loc" ..script.Parent.Name | |
| 1250 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 1251 | end | |
| 1252 | end | |
| 1253 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 1254 | Target = Players[Check].Torso | |
| 1255 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 1256 | end | |
| 1257 | end | |
| 1258 | end | |
| 1259 | end | |
| 1260 | if Target == nil then | |
| 1261 | local HasTool = false | |
| 1262 | local ToolCheck = script.Parent:GetChildren() | |
| 1263 | for Check = 1, #ToolCheck do | |
| 1264 | if ToolCheck[Check].ClassName == "Tool" then | |
| 1265 | HasTool = true | |
| 1266 | end | |
| 1267 | end | |
| 1268 | if HasTool == false then | |
| 1269 | Distance = 100 | |
| 1270 | for Check = 1, #Players do | |
| 1271 | if Players[Check].ClassName == "Tool" and Players[Check]:FindFirstChild("Handle") ~= nil and Players[Check]:FindFirstChild("Active") ~= nil and Players[Check]:FindFirstChild("TargetPos") ~= nil and Players[Check]:FindFirstChild("Type") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 1272 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1273 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 1274 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then | |
| 1275 | Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude | |
| 1276 | Target = Players[Check] | |
| 1277 | end | |
| 1278 | end | |
| 1279 | end | |
| 1280 | if Target ~= nil and Target.ClassName == "Tool" then | |
| 1281 | if Distance <= 5 and HasTool == false then | |
| 1282 | Target.Parent = script.Parent | |
| 1283 | HasTool = true | |
| 1284 | else | |
| 1285 | Prep(Target.Handle.Position, Base) | |
| 1286 | end | |
| 1287 | else | |
| 1288 | for Check = 1, #Players do | |
| 1289 | if Players[Check].Name == "Crate" and Players[Check]:FindFirstChild("OpenCrate") ~= nil and Players[Check].OpenCrate.Value == false and (Players[Check].Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 1290 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1291 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 1292 | if Hit ~= nil and Hit == Players[Check] then | |
| 1293 | Target = Players[Check] | |
| 1294 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 1295 | end | |
| 1296 | end | |
| 1297 | end | |
| 1298 | if Target ~= nil then | |
| 1299 | script.Parent.Humanoid:MoveTo(Target.Position, Target) | |
| 1300 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then | |
| 1301 | Target.OpenCrate.Value = true | |
| 1302 | end | |
| 1303 | else | |
| 1304 | local HasHat = false | |
| 1305 | local HatCheck = script.Parent:GetChildren() | |
| 1306 | for Check = 1, #HatCheck do | |
| 1307 | if ToolCheck[Check].ClassName == "Hat" then | |
| 1308 | HasHat = true | |
| 1309 | end | |
| 1310 | end | |
| 1311 | if HasHat == false then | |
| 1312 | Distance = 100 | |
| 1313 | for Check = 1, #Players do | |
| 1314 | if Players[Check].ClassName == "Hat" and Players[Check]:FindFirstChild("Handle") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 1315 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1316 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 1317 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then | |
| 1318 | Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude | |
| 1319 | Target = Players[Check] | |
| 1320 | end | |
| 1321 | end | |
| 1322 | end | |
| 1323 | if Target ~= nil and Target.ClassName == "Hat" then | |
| 1324 | if Distance <= 5 and HasHat == false then | |
| 1325 | Target.Parent = script.Parent | |
| 1326 | HasHat = true | |
| 1327 | else | |
| 1328 | Prep(Target.Handle.Position, Base) | |
| 1329 | end | |
| 1330 | else | |
| 1331 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 1332 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 1333 | GenerateMap(script.Parent.PathTo.Value) | |
| 1334 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 1335 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 1336 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 1337 | end | |
| 1338 | else | |
| 1339 | Jump() | |
| 1340 | end | |
| 1341 | end | |
| 1342 | end | |
| 1343 | end | |
| 1344 | end | |
| 1345 | else | |
| 1346 | if Target == nil then | |
| 1347 | local Distance = 80 | |
| 1348 | local Players = Workspace:GetChildren() | |
| 1349 | for Check = 1, #Players do | |
| 1350 | if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check] ~= script.Parent and Players[Check]:FindFirstChild("IsLocalEnemy") == nil and Players[Check]:FindFirstChild("Leader") ~= nil and Players[Check].Humanoid.Health > 0 and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 1351 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1352 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 1353 | if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
| |
| 1354 | Target = Players[Check].Torso | |
| 1355 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 1356 | end | |
| 1357 | end | |
| 1358 | end | |
| 1359 | if Target ~= nil then | |
| 1360 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 10 | |
| 1361 | Prep(Position, Base) | |
| 1362 | else | |
| 1363 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 1364 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 1365 | GenerateMap(script.Parent.PathTo.Value) | |
| 1366 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 1367 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 1368 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 1369 | end | |
| 1370 | else | |
| 1371 | Jump() | |
| 1372 | end | |
| 1373 | end | |
| 1374 | else | |
| 1375 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 1376 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 1377 | GenerateMap(script.Parent.PathTo.Value) | |
| 1378 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 1379 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 1380 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 1381 | end | |
| 1382 | else | |
| 1383 | Jump() | |
| 1384 | end | |
| 1385 | end | |
| 1386 | end | |
| 1387 | else | |
| 1388 | local Weapon = nil | |
| 1389 | local ToolCheck = script.Parent:GetChildren() | |
| 1390 | for Check = 1, #ToolCheck do | |
| 1391 | if ToolCheck[Check].ClassName == "Tool" then | |
| 1392 | Weapon = ToolCheck[Check] | |
| 1393 | end | |
| 1394 | end | |
| 1395 | if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
| |
| 1396 | if Weapon.Type.Value == "Melee" then | |
| 1397 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 1398 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then | |
| 1399 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1400 | Weapon.Active.Value = true | |
| 1401 | end | |
| 1402 | elseif Weapon.Type.Value == "Melee/Ranged" then | |
| 1403 | if Distance <= 10 then | |
| 1404 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 1405 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1406 | Weapon.Active.Value = true | |
| 1407 | else | |
| 1408 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Base) | |
| 1409 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 50 then | |
| 1410 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1411 | Weapon.Active.Value = true | |
| 1412 | end | |
| 1413 | end | |
| 1414 | elseif Weapon.Type.Value == "Melee/RangedMed" then | |
| 1415 | if Distance <= 10 then | |
| 1416 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 1417 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1418 | Weapon.Active.Value = true | |
| 1419 | else | |
| 1420 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base) | |
| 1421 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 40 then | |
| 1422 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1423 | Weapon.Active.Value = true | |
| 1424 | end | |
| 1425 | end | |
| 1426 | elseif Weapon.Type.Value == "Melee/RangedClose" then | |
| 1427 | if Distance <= 10 then | |
| 1428 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 1429 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1430 | Weapon.Active.Value = true | |
| 1431 | else | |
| 1432 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Base) | |
| 1433 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 30 then | |
| 1434 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1435 | Weapon.Active.Value = true | |
| 1436 | end | |
| 1437 | end | |
| 1438 | elseif Weapon.Type.Value == "Ranged" then | |
| 1439 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base) | |
| 1440 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1441 | wait() | |
| 1442 | Weapon.Active.Value = true | |
| 1443 | elseif Weapon.Type.Value == "RangedMed" then | |
| 1444 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 60, Base) | |
| 1445 | if Distance <= 70 then | |
| 1446 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1447 | wait() | |
| 1448 | Weapon.Active.Value = true | |
| 1449 | end | |
| 1450 | elseif Weapon.Type.Value == "RangedClose" then | |
| 1451 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base) | |
| 1452 | if Distance <= 40 then | |
| 1453 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1454 | wait() | |
| 1455 | Weapon.Active.Value = true | |
| 1456 | end | |
| 1457 | elseif Weapon.Type.Value == "RangedAngle" and Distance <= 100 then | |
| 1458 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * (script.Parent.Torso.Position - Target.Position).Magnitude + Target.Velocity | |
| 1459 | script.Parent.Humanoid:MoveTo(Position, Base) | |
| 1460 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1461 | wait() | |
| 1462 | Weapon.Active.Value = true | |
| 1463 | elseif Weapon.Type.Value == "RangedTactical" then | |
| 1464 | if Distance <= 30 then | |
| 1465 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 50 | |
| 1466 | Prep(Position, Base) | |
| 1467 | elseif Distance >= 50 then | |
| 1468 | Prep(Target.Position, Target) | |
| 1469 | end | |
| 1470 | if Distance <= 50 and Distance >= 30 then | |
| 1471 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Target.Parent.Torso) | |
| 1472 | end | |
| 1473 | if Distance <= 60 then | |
| 1474 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1475 | wait() | |
| 1476 | Weapon.Active.Value = true | |
| 1477 | end | |
| 1478 | elseif Weapon.Type.Value == "Shuriken" then | |
| 1479 | if Distance <= 15 then | |
| 1480 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20 | |
| 1481 | Prep(Position, Base) | |
| 1482 | elseif Distance >= 30 then | |
| 1483 | Prep(Target.Position, Target) | |
| 1484 | end | |
| 1485 | if Distance <= 30 and Distance >= 15 then | |
| 1486 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Target.Parent.Torso) | |
| 1487 | end | |
| 1488 | if Distance <= 50 then | |
| 1489 | Weapon.TargetPos.Value = (Target.Position + Target.Velocity / 2) + Vector3.new(math.random(-2, 2), math.random(-2, 2) + ((Target.Position + Target.Velocity / 2) - script.Parent.Torso.Position).Magnitude / 8, math.random(-2, 2)) | |
| 1490 | wait() | |
| 1491 | Weapon.Active.Value = true | |
| 1492 | end | |
| 1493 | elseif Weapon.Type.Value == "HealDrink" then | |
| 1494 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120 | |
| 1495 | Prep(Position, Base) | |
| 1496 | if script.Parent.Humanoid.Health < script.Parent.Humanoid.MaxHealth then | |
| 1497 | Weapon.Active.Value = true | |
| 1498 | end | |
| 1499 | elseif Weapon.Type.Value == "GrenadeDirect" then | |
| 1500 | if Distance >= 80 and Distance <= 100 then | |
| 1501 | Prep(Target.Position, Target) | |
| 1502 | wait(0.5) | |
| 1503 | Weapon.Active.Value = true | |
| 1504 | wait(0.5) | |
| 1505 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100 | |
| 1506 | Prep(Position, Base) | |
| 1507 | else | |
| 1508 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100 | |
| 1509 | Prep(Position, Base) | |
| 1510 | end | |
| 1511 | elseif Weapon.Type.Value == "Bomb" then | |
| 1512 | if Distance > 10 then | |
| 1513 | Prep(Target.Position, Target) | |
| 1514 | elseif Distance <= 10 then | |
| 1515 | Weapon.Active.Value = true | |
| 1516 | wait(2) | |
| 1517 | while Weapon ~= nil and Weapon:FindFirstChild("Handle") ~= nil and Weapon.Handle.Transparency == 1 do
| |
| 1518 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base) | |
| 1519 | wait(0.5) | |
| 1520 | end | |
| 1521 | end | |
| 1522 | elseif Weapon.Type.Value == "Backstab" then | |
| 1523 | if Distance >= 10 then | |
| 1524 | if (script.Parent.Torso.Position - (Target.Position + Target.CFrame.lookVector * 50)).Magnitude <= 52 then | |
| 1525 | Prep(Target.Position, Target) | |
| 1526 | else | |
| 1527 | if (script.Parent.Torso.Position - (Target.Position - Target.CFrame.lookVector * 15)).Magnitude <= 5 then | |
| 1528 | Prep(Target.Position, Base) | |
| 1529 | local backstab_time = 20 | |
| 1530 | while backstab_time > 1 and (script.Parent.Torso.Position - Target.Position).Magnitude >= 4 do | |
| 1531 | wait(0.1) | |
| 1532 | backstab_time = backstab_time - 1 | |
| 1533 | end | |
| 1534 | if (script.Parent.Torso.Position - Target.Position).Magnitude < 4 then | |
| 1535 | Weapon.Active.Value = true | |
| 1536 | end | |
| 1537 | else | |
| 1538 | Prep(Target.Position - Target.CFrame.lookVector * 15, Base) | |
| 1539 | end | |
| 1540 | end | |
| 1541 | else | |
| 1542 | Prep(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target) | |
| 1543 | if Distance <= 5 then | |
| 1544 | Weapon.Active.Value = true | |
| 1545 | end | |
| 1546 | end | |
| 1547 | elseif Weapon.Type.Value == "Crossbow" then | |
| 1548 | if Distance > 80 then | |
| 1549 | Prep(Target.Position, Target) | |
| 1550 | elseif Distance < 40 then | |
| 1551 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100, Base) | |
| 1552 | elseif Distance <= 80 and Distance >= 40 then | |
| 1553 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * ((script.Parent.Torso.Position - Target.Position).Magnitude - 5), Base) | |
| 1554 | wait(0.2) | |
| 1555 | Weapon.TargetPos.Value = Target.Position + Target.Velocity / 8 + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 1556 | Weapon.Active.Value = true | |
| 1557 | end | |
| 1558 | end | |
| 1559 | IsInCombat = true | |
| 1560 | elseif Distance <= 100 then | |
| 1561 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120 | |
| 1562 | Prep(Position, Base) | |
| 1563 | end | |
| 1564 | end | |
| 1565 | if IsInCombat == true then | |
| 1566 | wait(0.2) | |
| 1567 | else | |
| 1568 | wait(0.6) | |
| 1569 | end | |
| 1570 | end | |
| 1571 | local Weapon = nil | |
| 1572 | local ToolCheck = script.Parent:GetChildren() | |
| 1573 | for Check = 1, #ToolCheck do | |
| 1574 | if ToolCheck[Check].ClassName == "Tool" then | |
| 1575 | Weapon = ToolCheck[Check] | |
| 1576 | end | |
| 1577 | end | |
| 1578 | if Weapon ~= nil and script.Parent.DropWeapon.Value == true then | |
| 1579 | Weapon.Parent = Workspace | |
| 1580 | elseif Weapon ~= nil then | |
| 1581 | Weapon:Remove() | |
| 1582 | end | |
| 1583 | if script.Parent:FindFirstChild("IsAZombie") ~= nil then
| |
| 1584 | script.Parent.Name = "New Zombie" | |
| 1585 | script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + math.random(math.random(-50, -25), math.random(25, math.random(50, 100))) | |
| 1586 | wait() | |
| 1587 | script.Parent.Humanoid.Health = script.Parent.Humanoid.MaxHealth | |
| 1588 | script.Parent.Humanoid.WalkSpeed = script.Parent.Humanoid.WalkSpeed + math.random(math.random(-200, 0), math.random(100, math.random(200, 300))) / 100 | |
| 1589 | ZStat = 2 | |
| 1590 | ZStat2 = 1.57 | |
| 1591 | Delay(1, function() | |
| 1592 | while script.Parent:FindFirstChild("Humanoid") ~= nil and script.Parent.Humanoid.Health > 0 do
| |
| 1593 | script.Parent.Humanoid.MaxHealth = math.max(0, script.Parent.Humanoid.MaxHealth - 1) | |
| 1594 | script.Parent.Humanoid.Health = math.min(script.Parent.Humanoid.Health, script.Parent.Humanoid.MaxHealth) | |
| 1595 | wait(1) | |
| 1596 | end | |
| 1597 | end) | |
| 1598 | while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") ~= nil do
| |
| 1599 | local Distance = 100 | |
| 1600 | local Target = nil | |
| 1601 | local Players = Workspace:GetChildren() | |
| 1602 | for Check = 1, #Players do | |
| 1603 | if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check]:FindFirstChild("Torso") ~= nil and Players[Check]:FindFirstChild("IsAZombie") == nil and Players[Check].Humanoid.Health > 0 and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
| |
| 1604 | local ZRay = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 1605 | local ZHit, ZPos = Workspace:FindPartOnRay(ZRay, script.Parent) | |
| 1606 | if Players[Check]:FindFirstChild("ZFound") ~= nil or (ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check])) then
| |
| 1607 | if ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check]) then | |
| 1608 | if Players[Check]:FindFirstChild("ZFound") ~= nil then
| |
| 1609 | Players[Check].ZFound:Remove() | |
| 1610 | end | |
| 1611 | local ZTag = Instance.new("CFrameValue", Players[Check])
| |
| 1612 | ZTag.Name = "ZFound" | |
| 1613 | game:GetService("Debris"):AddItem(ZTag, 5)
| |
| 1614 | end | |
| 1615 | if (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then | |
| 1616 | Target = Players[Check].Torso | |
| 1617 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 1618 | end | |
| 1619 | end | |
| 1620 | end | |
| 1621 | end | |
| 1622 | if Target == nil then | |
| 1623 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 1624 | if math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 1625 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 1626 | end | |
| 1627 | else | |
| 1628 | Jump() | |
| 1629 | end | |
| 1630 | elseif script.Parent.Wander.Value == true then | |
| 1631 | script.Parent.Humanoid:MoveTo(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target) | |
| 1632 | end | |
| 1633 | wait(0.8) | |
| 1634 | end | |
| 1635 | end | |
| 1636 | end) | |
| 1637 | Delay(0, function() --Random Tool Usage Script | |
| 1638 | while true do | |
| 1639 | wait(math.random(40, 70 + math.random(30, 120)) / 10) | |
| 1640 | local Weapon = nil | |
| 1641 | local ToolCheck = script.Parent:GetChildren() | |
| 1642 | for Check = 1, #ToolCheck do | |
| 1643 | if ToolCheck[Check].ClassName == "Tool" then | |
| 1644 | Weapon = ToolCheck[Check] | |
| 1645 | end | |
| 1646 | end | |
| 1647 | if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
| |
| 1648 | if Weapon.Type.Value == "HealDrink" then | |
| 1649 | Weapon.Active.Value = true | |
| 1650 | end | |
| 1651 | end | |
| 1652 | end | |
| 1653 | end) | |
| 1654 | Delay(1, function() --Player Customization Script | |
| 1655 | if script.Parent["Custom_Name"].Value == "" then | |
| 1656 | script.Parent.Name = "Player" ..math.random(1, 999) | |
| 1657 | else | |
| 1658 | script.Parent.Name = script.Parent["Custom_Name"].Value | |
| 1659 | end | |
| 1660 | BColors = {3, 5, 12, 18, 108, 128, 138, 224, 224, 226, 226}
| |
| 1661 | SColors = {145, 146, 147, 148, 149, 150, 168, 176, 178, 179, 200}
| |
| 1662 | PColors = {190, 191, 193, 1024, 1025, 1026, 1027, 1028, 1029, 1030}
| |
| 1663 | BColor = BrickColor.new(BColors[math.random(1, #BColors)]) | |
| 1664 | SColor = BrickColor.new(SColors[math.random(1, #SColors)]) | |
| 1665 | PColor = BrickColor.new(PColors[math.random(1, #PColors)]) | |
| 1666 | if script.Parent.IsOnTeam.Value == true then | |
| 1667 | SColor = script.Parent.IsOnTeam.Team.Value | |
| 1668 | PColor = SColor | |
| 1669 | if script.Parent.IsOnTeam.ShowTag.Value == true then | |
| 1670 | script.Parent.Name = script.Parent.Name .." [" ..script.Parent.IsOnTeam.Team.Value.Name .."]" | |
| 1671 | end | |
| 1672 | end | |
| 1673 | if script.Parent["Body Colors"].ForceColors.Value ~= true then | |
| 1674 | script.Parent["Body Colors"].HeadColor = BColor | |
| 1675 | script.Parent["Body Colors"].LeftArmColor = BColor | |
| 1676 | script.Parent["Body Colors"].LeftLegColor = PColor | |
| 1677 | script.Parent["Body Colors"].RightArmColor = BColor | |
| 1678 | script.Parent["Body Colors"].RightLegColor = PColor | |
| 1679 | script.Parent["Body Colors"].TorsoColor = SColor | |
| 1680 | end | |
| 1681 | script.Parent.Head.BrickColor = script.Parent["Body Colors"].HeadColor | |
| 1682 | script.Parent["Left Arm"].BrickColor = script.Parent["Body Colors"].LeftArmColor | |
| 1683 | script.Parent["Left Leg"].BrickColor = script.Parent["Body Colors"].LeftLegColor | |
| 1684 | script.Parent["Right Arm"].BrickColor = script.Parent["Body Colors"].RightArmColor | |
| 1685 | script.Parent["Right Leg"].BrickColor = script.Parent["Body Colors"].RightLegColor | |
| 1686 | script.Parent.Torso.BrickColor = script.Parent["Body Colors"].TorsoColor | |
| 1687 | if script.Parent["Force_Weapon"].Value ~= 0 then | |
| 1688 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Weapon"].Value)
| |
| 1689 | local c = x:GetChildren() | |
| 1690 | for i = 1, #c do | |
| 1691 | if c[i].ClassName == "Tool" and c[i]:FindFirstChild("AIProgram") ~= nil and c[i]:FindFirstChild("Active") ~= nil and c[i]:FindFirstChild("TargetPos") ~= nil and c[i]:FindFirstChild("Type") ~= nil and c[i]:FindFirstChild("Handle") ~= nil then
| |
| 1692 | c[i].Parent = script.Parent | |
| 1693 | script.Parent.DropWeapon.Value = false | |
| 1694 | end | |
| 1695 | end | |
| 1696 | end | |
| 1697 | if script.Parent["Force_Hat"].Value ~= 0 then | |
| 1698 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Hat"].Value)
| |
| 1699 | local c = x:GetChildren() | |
| 1700 | for i = 1, #c do | |
| 1701 | if c[i].ClassName == "Hat" and c[i]:FindFirstChild("Handle") ~= nil then
| |
| 1702 | c[i].Parent = script.Parent | |
| 1703 | end | |
| 1704 | end | |
| 1705 | end | |
| 1706 | if script.Parent["Force_Shirt"].Value ~= 0 then | |
| 1707 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Shirt"].Value)
| |
| 1708 | local c = x:GetChildren() | |
| 1709 | for i = 1, #c do | |
| 1710 | if c[i].ClassName == "Shirt" then | |
| 1711 | c[i].Parent = script.Parent | |
| 1712 | end | |
| 1713 | end | |
| 1714 | end | |
| 1715 | if script.Parent["Force_Pants"].Value ~= 0 then | |
| 1716 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Pants"].Value)
| |
| 1717 | local c = x:GetChildren() | |
| 1718 | for i = 1, #c do | |
| 1719 | if c[i].ClassName == "Pants" then | |
| 1720 | c[i].Parent = script.Parent | |
| 1721 | end | |
| 1722 | end | |
| 1723 | end | |
| 1724 | end) | |
| 1725 | wait() | |
| 1726 | print("Player Bot Loaded")
| |
| 1727 | end)) | |
| 1728 | Model0.Name=targetPart.Parent.Name | |
| 1729 | Model0.Torso.Touched:connect(function(h) | |
| 1730 | if h.Parent.Name==Model0.Name then | |
| 1731 | h.Parent:BreakJoints() | |
| 1732 | Model0:remove() | |
| 1733 | end | |
| 1734 | end) | |
| 1735 | Model0.Torso.Position=Character.Torso.Position | |
| 1736 | for i,v in pairs(mas:GetChildren()) do | |
| 1737 | v.Parent = game:GetService("Players").LocalPlayer.Character
| |
| 1738 | pcall(function() v:MakeJoints() end) | |
| 1739 | end | |
| 1740 | mas:Destroy() | |
| 1741 | for i,v in pairs(cors) do | |
| 1742 | spawn(function() | |
| 1743 | pcall(v) | |
| 1744 | end) | |
| 1745 | end | |
| 1746 | end | |
| 1747 | ||
| 1748 | function yclone() | |
| 1749 | ||
| 1750 | --Converted with ttyyuu12345's model to script plugin v4 | |
| 1751 | function sandbox(var,func) | |
| 1752 | local env = getfenv(func) | |
| 1753 | local newenv = setmetatable({},{
| |
| 1754 | __index = function(self,k) | |
| 1755 | if k=="script" then | |
| 1756 | return var | |
| 1757 | else | |
| 1758 | return env[k] | |
| 1759 | end | |
| 1760 | end, | |
| 1761 | }) | |
| 1762 | setfenv(func,newenv) | |
| 1763 | return func | |
| 1764 | end | |
| 1765 | cors = {}
| |
| 1766 | mas = Instance.new("Model",game:GetService("Lighting"))
| |
| 1767 | Model0 = Instance.new("Model")
| |
| 1768 | Model0.Name =Player.Name .."'s clone" | |
| 1769 | Part1 = Instance.new("Part")
| |
| 1770 | SpecialMesh2 = Instance.new("SpecialMesh")
| |
| 1771 | Decal3 = Instance.new("Decal")
| |
| 1772 | Part4 = Instance.new("Part")
| |
| 1773 | Decal5 = Instance.new("Decal")
| |
| 1774 | Motor6 = Instance.new("Motor")
| |
| 1775 | Motor7 = Instance.new("Motor")
| |
| 1776 | Motor8 = Instance.new("Motor")
| |
| 1777 | Motor9 = Instance.new("Motor")
| |
| 1778 | Motor10 = Instance.new("Motor")
| |
| 1779 | Part11 = Instance.new("Part")
| |
| 1780 | Part12 = Instance.new("Part")
| |
| 1781 | Part13 = Instance.new("Part")
| |
| 1782 | Part14 = Instance.new("Part")
| |
| 1783 | Humanoid15 = Instance.new("Humanoid")
| |
| 1784 | BodyColors16 = Instance.new("BodyColors")
| |
| 1785 | Script17 = Instance.new("Script")
| |
| 1786 | Model0.Name = "Clone" | |
| 1787 | Model0.Parent = mas | |
| 1788 | Model0.PrimaryPart = Part1 | |
| 1789 | Part1.Name = "Head" | |
| 1790 | Part1.Parent = Model0 | |
| 1791 | Part1.BrickColor = BrickColor.new("Bright yellow")
| |
| 1792 | Part1.FormFactor = Enum.FormFactor.Symmetric | |
| 1793 | Part1.Size = Vector3.new(2, 1, 1) | |
| 1794 | Part1.CFrame = CFrame.new(6.34995413, 4.50001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1795 | Part1.TopSurface = Enum.SurfaceType.Smooth | |
| 1796 | Part1.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1797 | Part1.Position = Vector3.new(6.34995413, 4.50001717, 23.1599998) | |
| 1798 | Part1.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1799 | SpecialMesh2.Parent = Part1 | |
| 1800 | SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25) | |
| 1801 | SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25) | |
| 1802 | Decal3.Name = "face" | |
| 1803 | Decal3.Parent = Part1 | |
| 1804 | Decal3.Texture = "rbxasset://textures/face.png" | |
| 1805 | Part4.Name = "Torso" | |
| 1806 | Part4.Parent = Model0 | |
| 1807 | Part4.BrickColor = BrickColor.new("Bright blue")
| |
| 1808 | Part4.FormFactor = Enum.FormFactor.Symmetric | |
| 1809 | Part4.Size = Vector3.new(2, 2, 1) | |
| 1810 | Part4.CFrame = CFrame.new(6.34995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1811 | Part4.LeftSurface = Enum.SurfaceType.Weld | |
| 1812 | Part4.RightSurface = Enum.SurfaceType.Weld | |
| 1813 | Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
| 1814 | Part4.Position = Vector3.new(6.34995413, 3.00001717, 23.1599998) | |
| 1815 | Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
| 1816 | Decal5.Name = "roblox" | |
| 1817 | Decal5.Parent = Part4 | |
| 1818 | Motor6.Name = "Right Shoulder" | |
| 1819 | Motor6.Parent = Part4 | |
| 1820 | Motor6.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 1821 | Motor6.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 1822 | Motor6.Part0 = Part4 | |
| 1823 | Motor6.Part1 = Part12 | |
| 1824 | Motor6.MaxVelocity = 0.15000000596046 | |
| 1825 | Motor7.Name = "Left Shoulder" | |
| 1826 | Motor7.Parent = Part4 | |
| 1827 | Motor7.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 1828 | Motor7.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 1829 | Motor7.Part0 = Part4 | |
| 1830 | Motor7.Part1 = Part11 | |
| 1831 | Motor7.MaxVelocity = 0.15000000596046 | |
| 1832 | Motor8.Name = "Right Hip" | |
| 1833 | Motor8.Parent = Part4 | |
| 1834 | Motor8.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 1835 | Motor8.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0) | |
| 1836 | Motor8.Part0 = Part4 | |
| 1837 | Motor8.Part1 = Part14 | |
| 1838 | Motor8.MaxVelocity = 0.10000000149012 | |
| 1839 | Motor9.Name = "Left Hip" | |
| 1840 | Motor9.Parent = Part4 | |
| 1841 | Motor9.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 1842 | Motor9.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
| 1843 | Motor9.Part0 = Part4 | |
| 1844 | Motor9.Part1 = Part13 | |
| 1845 | Motor9.MaxVelocity = 0.10000000149012 | |
| 1846 | Motor10.Name = "Neck" | |
| 1847 | Motor10.Parent = Part4 | |
| 1848 | Motor10.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0) | |
| 1849 | Motor10.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0) | |
| 1850 | Motor10.Part0 = Part4 | |
| 1851 | Motor10.Part1 = Part1 | |
| 1852 | Motor10.MaxVelocity = 0.10000000149012 | |
| 1853 | Part11.Name = "Left Arm" | |
| 1854 | Part11.Parent = Model0 | |
| 1855 | Part11.BrickColor = BrickColor.new("Bright yellow")
| |
| 1856 | Part11.CanCollide = false | |
| 1857 | Part11.FormFactor = Enum.FormFactor.Symmetric | |
| 1858 | Part11.Size = Vector3.new(1, 2, 1) | |
| 1859 | Part11.CFrame = CFrame.new(4.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1860 | Part11.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1861 | Part11.Position = Vector3.new(4.84995413, 3.00001717, 23.1599998) | |
| 1862 | Part11.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1863 | Part12.Name = "Right Arm" | |
| 1864 | Part12.Parent = Model0 | |
| 1865 | Part12.BrickColor = BrickColor.new("Bright yellow")
| |
| 1866 | Part12.CanCollide = false | |
| 1867 | Part12.FormFactor = Enum.FormFactor.Symmetric | |
| 1868 | Part12.Size = Vector3.new(1, 2, 1) | |
| 1869 | Part12.CFrame = CFrame.new(7.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1870 | Part12.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1871 | Part12.Position = Vector3.new(7.84995413, 3.00001717, 23.1599998) | |
| 1872 | Part12.Color = Color3.new(0.960784, 0.803922, 0.188235) | |
| 1873 | Part13.Name = "Left Leg" | |
| 1874 | Part13.Parent = Model0 | |
| 1875 | Part13.BrickColor = BrickColor.new("Br. yellowish green")
| |
| 1876 | Part13.CanCollide = false | |
| 1877 | Part13.FormFactor = Enum.FormFactor.Symmetric | |
| 1878 | Part13.Size = Vector3.new(1, 2, 1) | |
| 1879 | Part13.CFrame = CFrame.new(5.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1880 | Part13.BottomSurface = Enum.SurfaceType.Smooth | |
| 1881 | Part13.TopSurface = Enum.SurfaceType.Inlet | |
| 1882 | Part13.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 1883 | Part13.Position = Vector3.new(5.84995413, 1.00001717, 23.1599998) | |
| 1884 | Part13.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 1885 | Part14.Name = "Right Leg" | |
| 1886 | Part14.Parent = Model0 | |
| 1887 | Part14.BrickColor = BrickColor.new("Br. yellowish green")
| |
| 1888 | Part14.CanCollide = false | |
| 1889 | Part14.FormFactor = Enum.FormFactor.Symmetric | |
| 1890 | Part14.Size = Vector3.new(1, 2, 1) | |
| 1891 | Part14.CFrame = CFrame.new(6.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
| 1892 | Part14.BottomSurface = Enum.SurfaceType.Smooth | |
| 1893 | Part14.TopSurface = Enum.SurfaceType.Inlet | |
| 1894 | Part14.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 1895 | Part14.Position = Vector3.new(6.84995413, 1.00001717, 23.1599998) | |
| 1896 | Part14.Color = Color3.new(0.643137, 0.741176, 0.278431) | |
| 1897 | Humanoid15.Parent = Model0 | |
| 1898 | Humanoid15.NameOcclusion = Enum.NameOcclusion.NoOcclusion | |
| 1899 | Humanoid15.RightLeg = Part14 | |
| 1900 | Humanoid15.LeftLeg = Part13 | |
| 1901 | Humanoid15.Torso = Part4 | |
| 1902 | BodyColors16.Parent = Model0 | |
| 1903 | BodyColors16.HeadColor = BrickColor.new("Bright yellow")
| |
| 1904 | BodyColors16.LeftArmColor = BrickColor.new("Bright yellow")
| |
| 1905 | BodyColors16.LeftLegColor = BrickColor.new("Br. yellowish green")
| |
| 1906 | BodyColors16.RightArmColor = BrickColor.new("Bright yellow")
| |
| 1907 | BodyColors16.RightLegColor = BrickColor.new("Br. yellowish green")
| |
| 1908 | BodyColors16.TorsoColor = BrickColor.new("Bright blue")
| |
| 1909 | Script17.Name = "Full Animation" | |
| 1910 | Script17.Parent = Model0 | |
| 1911 | table.insert(cors,sandbox(Script17,function() | |
| 1912 | --[[Made by Jammer622 @[http://www.roblox.com/Advanced-Player-AI-item?id=59391730], | |
| 1913 | This is the ORIGINAL model, if you see others, they are stolen. | |
| 1914 | Scripts mixed from vanilla Animate, Health, and Sound, | |
| 1915 | with much custom content by myself, making them great AIs. | |
| 1916 | No help from Miked's scripts, I made my own joint script. | |
| 1917 | If you find any glitches, bugs, or just want to suggest an idea, please message me. | |
| 1918 | My team works hard on these AIs, please don't make attempts to steal them. | |
| 1919 | Your feedback is extremely appreciated! | |
| 1920 | ||
| 1921 | _---=CREDITS=---_ | |
| 1922 | The Roblox Team Without them, none of this would be possible. | |
| 1923 | Vanilla Sound | |
| 1924 | Vanilla Health | |
| 1925 | Vanilla Animate | |
| 1926 | Jammer622 That's me, main programmer and weapon publisher. | |
| 1927 | Main Developer | |
| 1928 | Health GUI Script | |
| 1929 | Animation Work | |
| 1930 | Relationship Work | |
| 1931 | Wandering | |
| 1932 | Pathing (Map Generation) | |
| 1933 | Weapon Usage | |
| 1934 | Weapon (Re)Publishing | |
| 1935 | Sonypony458 | |
| 1936 | McDonalds Drink | |
| 1937 | Customization | |
| 1938 | Teamwork AI | |
| 1939 | Model Variables | |
| 1940 | Setting Wiki [Below] | |
| 1941 | Macdeath I owe it to him for keeping me on track during this. | |
| 1942 | Feature Inspiration | |
| 1943 | Problem Solving | |
| 1944 | Suggestions | |
| 1945 | lah30303 Amazing pathing work goes to this fine sir. | |
| 1946 | Pathing (Pathing Generation/System) | |
| 1947 | ||
| 1948 | _---=SETTINGS=---_ | |
| 1949 | Inside this model's file, you'll find several values that can be changed. | |
| 1950 | DropWeapon -This sets whether or not the bot will drop any equipped weapon upon dying. | |
| 1951 | Force_Pants -This must be set through Spawners. | |
| 1952 | Force_Shirt -This must be set through Spawners. | |
| 1953 | Force_Weapon -This must be set through Spawners. | |
| 1954 | Force_Hat -This must be set through Spawners. | |
| 1955 | IgnoreCombatFF -This sets whether or not the bot will allow friendly fire during combat. | |
| 1956 | IsAPlayer -This is a tag to specify this bot's existance to other AIs. | |
| 1957 | IsOnTeam -This sets whether or not the bot is on a team. | |
| 1958 | ShowTag -This sets whether or not the bot's team color name shows up beside its own. | |
| 1959 | Team -This sets the bot's team color. | |
| 1960 | PathTo -This is an experimental pathfinding engine. Use at your own risk! | |
| 1961 | PrintMap -This prints maps generated when using PathTo. Use at your own risk! | |
| 1962 | Respawn -This sets whether the bot will respawn or not upon death. | |
| 1963 | Custom_Name -This must be set through Spawners. | |
| 1964 | Wander -This sets whether the bot is stationary or if it moves, but not if it uses weapons or not. | |
| 1965 | ]] | |
| 1966 | print("Player Bot Loading")
| |
| 1967 | Delay(0, function() --Vanilla Sound | |
| 1968 | function waitForChild(parent, childName) | |
| 1969 | local child = parent:findFirstChild(childName) | |
| 1970 | if child then return child end | |
| 1971 | while true do | |
| 1972 | child = parent.ChildAdded:wait() | |
| 1973 | if child.Name==childName then return child end | |
| 1974 | end | |
| 1975 | end | |
| 1976 | function newSound(id) | |
| 1977 | local sound = Instance.new("Sound")
| |
| 1978 | sound.SoundId = id | |
| 1979 | sound.archivable = false | |
| 1980 | sound.Parent = script.Parent.Head | |
| 1981 | return sound | |
| 1982 | end | |
| 1983 | local sDied = newSound("rbxasset://sounds/uuhhh.wav")
| |
| 1984 | local sFallingDown = newSound("rbxasset://sounds/splat.wav")
| |
| 1985 | local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
| |
| 1986 | local sGettingUp = newSound("rbxasset://sounds/hit.wav")
| |
| 1987 | local sJumping = newSound("rbxasset://sounds/button.wav")
| |
| 1988 | local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
| |
| 1989 | sRunning.Looped = true | |
| 1990 | local Figure = script.Parent | |
| 1991 | local Head = waitForChild(Figure, "Head") | |
| 1992 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 1993 | function onDied() | |
| 1994 | sDied:Play() | |
| 1995 | end | |
| 1996 | function onState(state, sound) | |
| 1997 | if state then | |
| 1998 | sound:Play() | |
| 1999 | else | |
| 2000 | sound:Pause() | |
| 2001 | end | |
| 2002 | end | |
| 2003 | function onRunning(speed) | |
| 2004 | if speed>0 then | |
| 2005 | sRunning:Play() | |
| 2006 | else | |
| 2007 | sRunning:Pause() | |
| 2008 | end | |
| 2009 | end | |
| 2010 | ||
| 2011 | Humanoid.Died:connect(onDied) | |
| 2012 | Humanoid.Running:connect(onRunning) | |
| 2013 | Humanoid.Jumping:connect(function(state) onState(state, sJumping) end) | |
| 2014 | Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end) | |
| 2015 | Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end) | |
| 2016 | Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end) | |
| 2017 | end) | |
| 2018 | Delay(0, function() --Vanilla Health | |
| 2019 | function waitForChild(parent, childName) | |
| 2020 | local child = parent:findFirstChild(childName) | |
| 2021 | if child then return child end | |
| 2022 | while true do | |
| 2023 | child = parent.ChildAdded:wait() | |
| 2024 | if child.Name==childName then return child end | |
| 2025 | end | |
| 2026 | end | |
| 2027 | local Figure = script.Parent | |
| 2028 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 2029 | local regening = false | |
| 2030 | function regenHealth() | |
| 2031 | if regening then return end | |
| 2032 | regening = true | |
| 2033 | while Humanoid.Health < Humanoid.MaxHealth do | |
| 2034 | local s = wait(1) | |
| 2035 | local health = Humanoid.Health | |
| 2036 | if health > 0 and health < Humanoid.MaxHealth then | |
| 2037 | local newHealthDelta = 0.01 * s * Humanoid.MaxHealth | |
| 2038 | health = health + newHealthDelta | |
| 2039 | Humanoid.Health = math.min(health,Humanoid.MaxHealth) | |
| 2040 | end | |
| 2041 | end | |
| 2042 | if Humanoid.Health > Humanoid.MaxHealth then | |
| 2043 | Humanoid.Health = Humanoid.MaxHealth | |
| 2044 | end | |
| 2045 | regening = false | |
| 2046 | end | |
| 2047 | Humanoid.HealthChanged:connect(regenHealth) | |
| 2048 | end) | |
| 2049 | Delay(0, function() --Vanilla Animate, Multiple Additions | |
| 2050 | function waitForChild(parent, childName) | |
| 2051 | local child = parent:findFirstChild(childName) | |
| 2052 | if child then return child end | |
| 2053 | while true do | |
| 2054 | child = parent.ChildAdded:wait() | |
| 2055 | if child.Name==childName then return child end | |
| 2056 | end | |
| 2057 | end | |
| 2058 | local Figure = script.Parent | |
| 2059 | local Clone = Figure:Clone() | |
| 2060 | local Torso = waitForChild(Figure, "Torso") | |
| 2061 | local Joints = Torso:GetChildren() | |
| 2062 | for All = 1, #Joints do | |
| 2063 | if Joints.className == "Motor" or Joints.className == "Motor6D" then | |
| 2064 | Joints[All]:Remove() | |
| 2065 | end | |
| 2066 | end | |
| 2067 | local RightShoulder = Instance.new("Motor")
| |
| 2068 | local LeftShoulder = Instance.new("Motor")
| |
| 2069 | local RightHip = Instance.new("Motor")
| |
| 2070 | local LeftHip = Instance.new("Motor")
| |
| 2071 | local Neck = Instance.new("Motor")
| |
| 2072 | local Humanoid = waitForChild(Figure, "Humanoid") | |
| 2073 | ZStat = 1 | |
| 2074 | ZStat2 = 0 | |
| 2075 | local pose = "Standing" | |
| 2076 | RightShoulder.Part0 = Torso | |
| 2077 | RightShoulder.Part1 = Figure["Right Arm"] | |
| 2078 | RightShoulder.MaxVelocity = 0.15 | |
| 2079 | RightShoulder.Name = "Right Shoulder" | |
| 2080 | RightShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 2081 | RightShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 2082 | RightShoulder.Parent = Torso | |
| 2083 | LeftShoulder.Part0 = Torso | |
| 2084 | LeftShoulder.Part1 = Figure["Left Arm"] | |
| 2085 | LeftShoulder.MaxVelocity = 0.15 | |
| 2086 | LeftShoulder.Name = "Left Shoulder" | |
| 2087 | LeftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 2088 | LeftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 2089 | LeftShoulder.Parent = Torso | |
| 2090 | RightHip.Part0 = Torso | |
| 2091 | RightHip.Part1 = Figure["Right Leg"] | |
| 2092 | RightHip.MaxVelocity = 0.1 | |
| 2093 | RightHip.Name = "Right Hip" | |
| 2094 | RightHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 2095 | RightHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
| 2096 | RightHip.Parent = Torso | |
| 2097 | LeftHip.Part0 = Torso | |
| 2098 | LeftHip.Part1 = Figure["Left Leg"] | |
| 2099 | LeftHip.MaxVelocity = 0.1 | |
| 2100 | LeftHip.Name = "Left Hip" | |
| 2101 | LeftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 2102 | LeftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) | |
| 2103 | LeftHip.Parent = Torso | |
| 2104 | Neck.Part0 = Torso | |
| 2105 | Neck.Part1 = Figure["Head"] | |
| 2106 | Neck.MaxVelocity = 0.1 | |
| 2107 | Neck.Name = "Neck" | |
| 2108 | Neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) | |
| 2109 | Neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) | |
| 2110 | Neck.Parent = Torso | |
| 2111 | local toolAnim = "None" | |
| 2112 | local toolAnimTime = 0 | |
| 2113 | SpawnModel = Instance.new("Model")
| |
| 2114 | function onRunning(speed) | |
| 2115 | if speed>0 then | |
| 2116 | pose = "Running" | |
| 2117 | else | |
| 2118 | pose = "Standing" | |
| 2119 | end | |
| 2120 | end | |
| 2121 | function CheckTag(Tag) | |
| 2122 | if script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
| |
| 2123 | if Tag.Value.Character:FindFirstChild("IsLocalEnemy") == nil then
| |
| 2124 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == Tag.Value.TeamColor) or script.Parent.IsOnTeam.Value == false then | |
| 2125 | local Tag2 = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 2126 | Tag2.Name = "IsLocalEnemy" | |
| 2127 | print(Tag.Value.Character.Name .." Has Become An Outlaw") | |
| 2128 | end | |
| 2129 | end | |
| 2130 | if Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 2131 | Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 2132 | end | |
| 2133 | local Found = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 2134 | Found.Name = "Loc" ..script.Parent.Name | |
| 2135 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2136 | elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Players:FindFirstChild(Tag.Value) ~= nil and game.Players[Tag.Value].Character ~= nil then
| |
| 2137 | if game.Players[Tag.Value].Character:FindFirstChild("IsLocalEnemy") == nil then
| |
| 2138 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == game.Players[Tag.Value].TeamColor) or script.Parent.IsOnTeam.Value == false then | |
| 2139 | local Tag2 = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
| |
| 2140 | Tag2.Name = "IsLocalEnemy" | |
| 2141 | print(Tag.Value .." Has Become An Outlaw") | |
| 2142 | end | |
| 2143 | end | |
| 2144 | if game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 2145 | game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 2146 | end | |
| 2147 | local Found = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
| |
| 2148 | Found.Name = "Loc" ..script.Parent.Name | |
| 2149 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2150 | elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
| |
| 2151 | if game.Workspace[Tag.Value]:FindFirstChild("IsLocalEnemy") == nil then
| |
| 2152 | if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and Workspace[Tag.Value].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value == Workspace[Tag.Value].IsOnTeam.Team.Value) or script.Parent.IsOnTeam.Value == false or Workspace[Tag.Value].IsOnTeam.Value == false then | |
| 2153 | local Tag2 = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 2154 | Tag2.Name = "IsLocalEnemy" | |
| 2155 | print(Tag.Value .." Has Become An Outlaw") | |
| 2156 | end | |
| 2157 | end | |
| 2158 | if game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 2159 | game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 2160 | end | |
| 2161 | local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 2162 | Found.Name = "Loc" ..script.Parent.Name | |
| 2163 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2164 | elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
| |
| 2165 | local Found = Instance.new("CFrameValue", Tag.Value.Character)
| |
| 2166 | Found.Name = "Loc" ..script.Parent.Name | |
| 2167 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2168 | elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
| |
| 2169 | local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
| |
| 2170 | Found.Name = "Loc" ..script.Parent.Name | |
| 2171 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2172 | end | |
| 2173 | end | |
| 2174 | function CheckSpawns(Object) | |
| 2175 | local Parts = Object:GetChildren() | |
| 2176 | for Check = 1, #Parts do | |
| 2177 | if Parts[Check].className == "SpawnLocation" then | |
| 2178 | local I = Instance.new("Vector3Value", SpawnModel)
| |
| 2179 | I.Value = Parts[Check].Position | |
| 2180 | end | |
| 2181 | CheckSpawns(Parts[Check]) | |
| 2182 | end | |
| 2183 | end | |
| 2184 | function onDied() | |
| 2185 | pose = "Dead" | |
| 2186 | Delay(5, function() | |
| 2187 | if script.Parent.Respawn.Value == true then | |
| 2188 | CheckSpawns(Workspace) | |
| 2189 | local Spawn = SpawnModel:GetChildren() | |
| 2190 | Clone.Parent = game.Workspace | |
| 2191 | if #Spawn > 0 then | |
| 2192 | Spawn = Spawn[math.random(1, #Spawn)].Value | |
| 2193 | Clone:MoveTo(Spawn) | |
| 2194 | else | |
| 2195 | Clone:MoveTo(Vector3.new(0, 50, 0)) | |
| 2196 | end | |
| 2197 | end | |
| 2198 | Figure:Remove() | |
| 2199 | return | |
| 2200 | end) | |
| 2201 | end | |
| 2202 | function onJumping() | |
| 2203 | pose = "Jumping" | |
| 2204 | end | |
| 2205 | function onClimbing() | |
| 2206 | pose = "Climbing" | |
| 2207 | end | |
| 2208 | function onGettingUp() | |
| 2209 | pose = "GettingUp" | |
| 2210 | end | |
| 2211 | function onFreeFall() | |
| 2212 | pose = "FreeFall" | |
| 2213 | end | |
| 2214 | function onFallingDown() | |
| 2215 | pose = "FallingDown" | |
| 2216 | end | |
| 2217 | function onSeated() | |
| 2218 | pose = "Seated" | |
| 2219 | end | |
| 2220 | function onPlatformStanding() | |
| 2221 | pose = "PlatformStanding" | |
| 2222 | end | |
| 2223 | function moveJump() | |
| 2224 | RightShoulder.MaxVelocity = 0.5 | |
| 2225 | LeftShoulder.MaxVelocity = 0.5 | |
| 2226 | RightShoulder.DesiredAngle = (3.14/ZStat) | |
| 2227 | LeftShoulder.DesiredAngle = (-3.14/ZStat) | |
| 2228 | RightHip.DesiredAngle = (0) | |
| 2229 | LeftHip.DesiredAngle = (0) | |
| 2230 | end | |
| 2231 | function moveFreeFall() | |
| 2232 | RightShoulder.MaxVelocity = 0.5 | |
| 2233 | LeftShoulder.MaxVelocity = 0.5 | |
| 2234 | RightShoulder.DesiredAngle = (3.14/ZStat) | |
| 2235 | LeftShoulder.DesiredAngle = (-3.14/ZStat) | |
| 2236 | RightHip.DesiredAngle = (0) | |
| 2237 | LeftHip.DesiredAngle = (0) | |
| 2238 | end | |
| 2239 | function moveSit() | |
| 2240 | RightShoulder.MaxVelocity = 0.15 | |
| 2241 | LeftShoulder.MaxVelocity = 0.15 | |
| 2242 | RightShoulder.DesiredAngle = (3.14 /2) | |
| 2243 | LeftShoulder.DesiredAngle = (-3.14 /2) | |
| 2244 | RightHip.DesiredAngle = (3.14 /2) | |
| 2245 | LeftHip.DesiredAngle = (-3.14 /2) | |
| 2246 | end | |
| 2247 | function getTool() | |
| 2248 | for _, kid in ipairs(Figure:GetChildren()) do | |
| 2249 | if kid.className == "Tool" then return kid end | |
| 2250 | end | |
| 2251 | return nil | |
| 2252 | end | |
| 2253 | function getToolAnim(tool) | |
| 2254 | for _, c in ipairs(tool:GetChildren()) do | |
| 2255 | if c.Name == "toolanim" and c.className == "StringValue" then | |
| 2256 | return c | |
| 2257 | end | |
| 2258 | end | |
| 2259 | return nil | |
| 2260 | end | |
| 2261 | function animateTool() | |
| 2262 | if (toolAnim == "None") then | |
| 2263 | RightShoulder.DesiredAngle = (1.57) | |
| 2264 | return | |
| 2265 | end | |
| 2266 | if (toolAnim == "Slash") then | |
| 2267 | RightShoulder.MaxVelocity = 0.5 | |
| 2268 | RightShoulder.DesiredAngle = (0) | |
| 2269 | return | |
| 2270 | end | |
| 2271 | if (toolAnim == "Lunge") then | |
| 2272 | RightShoulder.MaxVelocity = 0.5 | |
| 2273 | LeftShoulder.MaxVelocity = 0.5 | |
| 2274 | RightHip.MaxVelocity = 0.5 | |
| 2275 | LeftHip.MaxVelocity = 0.5 | |
| 2276 | RightShoulder.DesiredAngle = (1.57) | |
| 2277 | LeftShoulder.DesiredAngle = (1.0) | |
| 2278 | RightHip.DesiredAngle = (1.57) | |
| 2279 | LeftHip.DesiredAngle = (1.0) | |
| 2280 | return | |
| 2281 | end | |
| 2282 | end | |
| 2283 | function move(time) | |
| 2284 | local amplitude | |
| 2285 | local frequency | |
| 2286 | if (pose == "Jumping") then | |
| 2287 | moveJump() | |
| 2288 | return | |
| 2289 | end | |
| 2290 | if (pose == "FreeFall") then | |
| 2291 | moveFreeFall() | |
| 2292 | return | |
| 2293 | end | |
| 2294 | if (pose == "Seated") then | |
| 2295 | moveSit() | |
| 2296 | return | |
| 2297 | end | |
| 2298 | local climbFudge = 0 | |
| 2299 | if (pose == "Running") then | |
| 2300 | RightShoulder.MaxVelocity = 0.15 | |
| 2301 | LeftShoulder.MaxVelocity = 0.15 | |
| 2302 | amplitude = 1 | |
| 2303 | frequency = 9 | |
| 2304 | elseif (pose == "Climbing") then | |
| 2305 | RightShoulder.MaxVelocity = 0.5 | |
| 2306 | LeftShoulder.MaxVelocity = 0.5 | |
| 2307 | amplitude = 1 | |
| 2308 | frequency = 9 | |
| 2309 | climbFudge = 3.14 | |
| 2310 | else | |
| 2311 | amplitude = 0.1 | |
| 2312 | frequency = 1 | |
| 2313 | end | |
| 2314 | desiredAngle = amplitude * math.sin(time*frequency) | |
| 2315 | RightShoulder.DesiredAngle = (desiredAngle + climbFudge) + ZStat2 | |
| 2316 | LeftShoulder.DesiredAngle = (desiredAngle - climbFudge) -ZStat2 | |
| 2317 | RightHip.DesiredAngle = (-desiredAngle) | |
| 2318 | LeftHip.DesiredAngle = (-desiredAngle) | |
| 2319 | local tool = getTool() | |
| 2320 | if tool then | |
| 2321 | animStringValueObject = getToolAnim(tool) | |
| 2322 | if animStringValueObject then | |
| 2323 | toolAnim = animStringValueObject.Value | |
| 2324 | animStringValueObject.Parent = nil | |
| 2325 | toolAnimTime = time + .3 | |
| 2326 | end | |
| 2327 | if time > toolAnimTime then | |
| 2328 | toolAnimTime = 0 | |
| 2329 | toolAnim = "None" | |
| 2330 | end | |
| 2331 | animateTool() | |
| 2332 | else | |
| 2333 | toolAnim = "None" | |
| 2334 | toolAnimTime = 0 | |
| 2335 | end | |
| 2336 | end | |
| 2337 | Humanoid.Died:connect(onDied) | |
| 2338 | Humanoid.Running:connect(onRunning) | |
| 2339 | Humanoid.Jumping:connect(onJumping) | |
| 2340 | Humanoid.Climbing:connect(onClimbing) | |
| 2341 | Humanoid.GettingUp:connect(onGettingUp) | |
| 2342 | Humanoid.FreeFalling:connect(onFreeFall) | |
| 2343 | Humanoid.FallingDown:connect(onFallingDown) | |
| 2344 | Humanoid.Seated:connect(onSeated) | |
| 2345 | Humanoid.PlatformStanding:connect(onPlatformStanding) | |
| 2346 | Humanoid.ChildAdded:connect(CheckTag) | |
| 2347 | OriginalTime = 0.1 | |
| 2348 | Time = OriginalTime | |
| 2349 | while Figure.Parent~=nil do | |
| 2350 | Time = Time + 0.1 | |
| 2351 | wait(OriginalTime) | |
| 2352 | move(Time) | |
| 2353 | end | |
| 2354 | end) | |
| 2355 | Delay(0, function() --lah30303's Pathing Script | |
| 2356 | function CalcMoves(map, px, py, tx, ty) | |
| 2357 | if map[ty][tx] ~= 0 then | |
| 2358 | return nil | |
| 2359 | end | |
| 2360 | local openlist, closedlist, listk, closedk, tempH, tempG, xsize, ysize, curbase = {}, {}, 1, 0, math.abs(px - tx) + math.abs(py - ty), 0, #map[1], #map, {}
| |
| 2361 | openlist[1] = {x = px, y = py, g = 0, h = tempH, f = 0 + tempH ,par = 1}
| |
| 2362 | local nodenumber = 0 | |
| 2363 | while listk > 0 do | |
| 2364 | nodenumber = nodenumber + 1 | |
| 2365 | if nodenumber / ScanSkip == math.floor(nodenumber / ScanSkip) then | |
| 2366 | wait() | |
| 2367 | if DebugPathing == true then | |
| 2368 | print("Node", nodenumber)
| |
| 2369 | end | |
| 2370 | end | |
| 2371 | closedk = closedk + 1 | |
| 2372 | table.insert(closedlist, closedk, openlist[1]) | |
| 2373 | curbase = closedlist[closedk] | |
| 2374 | if closedlist[closedk].x == tx and closedlist[closedk].y == ty then | |
| 2375 | return closedlist | |
| 2376 | end | |
| 2377 | openlist[1] = openlist[listk] | |
| 2378 | table.remove(openlist, listk) | |
| 2379 | listk = listk - 1 | |
| 2380 | local v = 1 | |
| 2381 | while true do | |
| 2382 | local u = v | |
| 2383 | if 2 * u + 1 <= listk then | |
| 2384 | if openlist[u].f >= openlist[2 * u].f then | |
| 2385 | v = 2 * u | |
| 2386 | end | |
| 2387 | if openlist[v].f >= openlist[2 * u + 1].f then | |
| 2388 | v = 2 * u + 1 | |
| 2389 | end | |
| 2390 | elseif 2 * u <= listk then | |
| 2391 | if openlist[u].f >= openlist[2 * u].f then | |
| 2392 | v = 2 * u | |
| 2393 | end | |
| 2394 | end | |
| 2395 | if u ~= v then | |
| 2396 | local temp = openlist[u] | |
| 2397 | openlist[u] = openlist[v] | |
| 2398 | openlist[v] = temp | |
| 2399 | else | |
| 2400 | break | |
| 2401 | end | |
| 2402 | end | |
| 2403 | ||
| 2404 | local tocheck = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {1, -1}, {-1, 1}, {1, 1}} --[1]Right, [2]Left, [3]Down, [4]Up, [5]UpLeft, [6]UpRight, [7]DownLeft, [8]DownRight
| |
| 2405 | if closedk > 0 then | |
| 2406 | for k = 1, closedk do | |
| 2407 | for i, v in pairs(tocheck) do | |
| 2408 | if closedlist[k].x == curbase.x + v[1] and closedlist[k].y == curbase.y + v[2] then | |
| 2409 | tocheck[i] = nil | |
| 2410 | end | |
| 2411 | end | |
| 2412 | end | |
| 2413 | end | |
| 2414 | for i, v in pairs(tocheck) do | |
| 2415 | local a = curbase.x + v[1] | |
| 2416 | local b = curbase.y + v[2] | |
| 2417 | if a > xsize or a < 1 or b > ysize or b < 1 then | |
| 2418 | tocheck[i] = nil | |
| 2419 | end | |
| 2420 | end | |
| 2421 | for i, v in pairs(tocheck) do | |
| 2422 | local a, b = curbase.x + v[1], curbase.y + v[2] | |
| 2423 | if a <= xsize and a >= 1 and b <= ysize and b >= 1 and map[b][a] ~= 0 then | |
| 2424 | tocheck[i] = nil | |
| 2425 | end | |
| 2426 | end | |
| 2427 | tempG = curbase.g + 1 | |
| 2428 | tempDiagG = curbase.g + 1.4 | |
| 2429 | for k = 1, listk do | |
| 2430 | for i, v in pairs(tocheck) do | |
| 2431 | if openlist[k].x == curbase.x + v[1] and openlist[k].y == curbase.y + 1 and openlist[k].g > tempG then | |
| 2432 | tempH = math.abs((curbase.x + v[1])-tx) + math.abs((curbase.y + v[1])-ty) | |
| 2433 | table.insert(openlist, k, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG + tempH, par = closedk})
| |
| 2434 | local m = k | |
| 2435 | while m ~= 1 do | |
| 2436 | if openlist[m].f <= openlist[math.floor(m/2)].f then | |
| 2437 | temp = openlist[math.floor(m/2)] | |
| 2438 | openlist[math.floor(m/2)] = openlist[m] | |
| 2439 | openlist[m] = temp | |
| 2440 | m = math.floor(m/2) | |
| 2441 | else | |
| 2442 | break | |
| 2443 | end | |
| 2444 | tocheck[i] = nil | |
| 2445 | end | |
| 2446 | end | |
| 2447 | end | |
| 2448 | end | |
| 2449 | for i, v in pairs(tocheck) do | |
| 2450 | listk = listk + 1 | |
| 2451 | tempH = math.abs((curbase.x + v[1]) - tx) + math.abs((curbase.y + v[2]) - ty) | |
| 2452 | table.insert(openlist, listk, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG+tempH, par = closedk})
| |
| 2453 | m = listk | |
| 2454 | while m ~= 1 do | |
| 2455 | if openlist[m].f <= openlist[math.floor(m/2)].f then | |
| 2456 | temp = openlist[math.floor(m/2)] | |
| 2457 | openlist[math.floor(m/2)] = openlist[m] | |
| 2458 | openlist[m] = temp | |
| 2459 | m = math.floor(m/2) | |
| 2460 | else | |
| 2461 | break | |
| 2462 | end | |
| 2463 | end | |
| 2464 | end | |
| 2465 | end | |
| 2466 | return nil | |
| 2467 | end | |
| 2468 | ||
| 2469 | ||
| 2470 | function CalcPath(closedlist) | |
| 2471 | ||
| 2472 | if closedlist == nil or table.getn(closedlist) == 1 then | |
| 2473 | return nil | |
| 2474 | end | |
| 2475 | local path = {}
| |
| 2476 | local pathIndex = {}
| |
| 2477 | local last = table.getn(closedlist) | |
| 2478 | table.insert(pathIndex,1,last) | |
| 2479 | ||
| 2480 | local i = 1 | |
| 2481 | while pathIndex[i] > 1 do | |
| 2482 | i = i + 1 | |
| 2483 | table.insert(pathIndex, i, closedlist[pathIndex[i - 1]].par) | |
| 2484 | end | |
| 2485 | ||
| 2486 | for n = table.getn(pathIndex) - 1, 1, -1 do | |
| 2487 | table.insert(path, {x = closedlist[pathIndex[n]].x, y = closedlist[pathIndex[n]].y})
| |
| 2488 | end | |
| 2489 | ||
| 2490 | closedlist = nil | |
| 2491 | return path | |
| 2492 | end | |
| 2493 | end) | |
| 2494 | Delay(0, function() --Main Artificial Intelligence Scripting/Path Grid Generator | |
| 2495 | local Base | |
| 2496 | if script.Parent:FindFirstChild("BASE") == nil then
| |
| 2497 | Base = Instance.new("Part")
| |
| 2498 | Base.Transparency = 1 | |
| 2499 | Base.TopSurface = "Smooth" | |
| 2500 | Base.BottomSurface = "Smooth" | |
| 2501 | Base.CanCollide = false | |
| 2502 | Base.Anchored = true | |
| 2503 | Base.Locked = true | |
| 2504 | Base.BrickColor = BrickColor.new(0, 0, 0) | |
| 2505 | Base.Name = "BASE" | |
| 2506 | Base.CFrame = CFrame.new(Vector3.new(0, 0, 0)) | |
| 2507 | Base.Parent = script.Parent | |
| 2508 | else | |
| 2509 | Base = script.Parent.BASE | |
| 2510 | Base.CFrame = CFrame.new(Vector3.new(0, 0, 0)) | |
| 2511 | end | |
| 2512 | function Jump() | |
| 2513 | script.Parent.Humanoid.Jump = true | |
| 2514 | end | |
| 2515 | function Check(Hit) | |
| 2516 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent.Parent ~= nil then | |
| 2517 | if Hit.Parent:FindFirstChild("Humanoid") == nil and Hit.Parent.Parent:FindFirstChild("Humanoid") == nil then
| |
| 2518 | Jump() | |
| 2519 | end | |
| 2520 | end | |
| 2521 | end | |
| 2522 | script.Parent.Torso.Touched:connect(Check) | |
| 2523 | function Prep(Target, Current, Attempts) | |
| 2524 | if Attempts == nil then | |
| 2525 | Attempts = 1000 | |
| 2526 | end | |
| 2527 | local Hit = false | |
| 2528 | local Tag = Base:Clone() | |
| 2529 | Tag.Position = Target | |
| 2530 | Tag.Parent = script.Parent | |
| 2531 | local TagRay = Ray.new(Tag.CFrame.p, (CFrame.new(Tag.CFrame.p - Vector3.new(0, 3, 0)).p - Tag.CFrame.p).Unit * 40) | |
| 2532 | local TRHit, TRPos = game.Workspace:FindPartOnRay(TagRay, script.Parent) | |
| 2533 | if TRHit ~= nil then | |
| 2534 | Hit = true | |
| 2535 | end | |
| 2536 | if Tag.Parent ~= nil then | |
| 2537 | Tag:Remove() | |
| 2538 | end | |
| 2539 | if Hit == false and Attempts > 0 and script.Parent.Wander.Value == true then | |
| 2540 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base, Attempts - 1) | |
| 2541 | elseif script.Parent.Wander.Value == true then | |
| 2542 | local TargetRay = Ray.new(script.Parent.Torso.CFrame.p, (CFrame.new(Target).p - script.Parent.Torso.CFrame.p).Unit * ((Target - script.Parent.Torso.Position).Magnitude - 3)) | |
| 2543 | local THit, TPos = game.Workspace:FindPartOnRay(TargetRay, script.Parent) | |
| 2544 | local TrueTarget = script.Parent.Torso.Position | |
| 2545 | if THit ~= nil then | |
| 2546 | for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - TPos).Magnitude) do | |
| 2547 | local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (TPos - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3) | |
| 2548 | local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent) | |
| 2549 | if TH2 ~= nil and TH2.Name ~= "Lava" then | |
| 2550 | TrueTarget = TP2 | |
| 2551 | else | |
| 2552 | break | |
| 2553 | end | |
| 2554 | end | |
| 2555 | else | |
| 2556 | for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - Target).Magnitude) do | |
| 2557 | local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (Target - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3) | |
| 2558 | local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent) | |
| 2559 | if TH2 ~= nil and TH2.Name ~= "Lava" then | |
| 2560 | TrueTarget = TP2 | |
| 2561 | else | |
| 2562 | break | |
| 2563 | end | |
| 2564 | end | |
| 2565 | end | |
| 2566 | script.Parent.Humanoid:MoveTo(TrueTarget, Current) | |
| 2567 | end | |
| 2568 | end | |
| 2569 | function ZHit(Part) | |
| 2570 | if script.Parent:FindFirstChild("IsAZombie") ~= nil and script.Parent.Humanoid.Health > 0 and Part ~= nil and Part.Parent ~= nil and Part.Parent:FindFirstChild("Humanoid") ~= nil and Part.Parent:FindFirstChild("IsAZombie") == nil then
| |
| 2571 | Part.Parent.Humanoid:TakeDamage(2) | |
| 2572 | script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + 1 | |
| 2573 | script.Parent.Humanoid:TakeDamage(-1) | |
| 2574 | end | |
| 2575 | end | |
| 2576 | script.Parent["Right Arm"].Touched:connect(ZHit) | |
| 2577 | script.Parent["Left Arm"].Touched:connect(ZHit) | |
| 2578 | CurrentMap = {}
| |
| 2579 | MapMask = {}
| |
| 2580 | MapVar = {0, 0, 0, 0, 0}
| |
| 2581 | BlockScanned = 0 | |
| 2582 | ScanSkip = 5 | |
| 2583 | DebugPathing = true | |
| 2584 | function GenerateMap(PathPos) | |
| 2585 | CurrentMap = {}
| |
| 2586 | MapMask = {}
| |
| 2587 | MapVar = {0, 0, 0, 0, 0}
| |
| 2588 | BlockScanned = 0 | |
| 2589 | MapVariables = ScanParts(Workspace, 1) | |
| 2590 | for MapX = 1, math.max(-MapVariables[1], MapVariables[2]) * 2 + 1 do | |
| 2591 | CurrentMap[MapX] = {}
| |
| 2592 | for MapY = 1, math.max(-MapVariables[3], MapVariables[4]) * 2 + 1 do | |
| 2593 | CurrentMap[MapX][MapY] = 0 | |
| 2594 | end | |
| 2595 | end | |
| 2596 | for MaskX = 1, #CurrentMap do | |
| 2597 | MapMask[MaskX] = {}
| |
| 2598 | for MaskY = 1, #CurrentMap[MaskX] do | |
| 2599 | MapMask[MaskX][MaskY] = {MapVariables[1] + MaskX - 0.5, MapVariables[1] + MaskY - 0.5}
| |
| 2600 | end | |
| 2601 | end | |
| 2602 | ScanParts(Workspace, 2, MapVariables) | |
| 2603 | wait(1) | |
| 2604 | if script.Parent.PrintMap.Value == true then | |
| 2605 | print("Printing Map...")
| |
| 2606 | for ClearPrint = 1, 250 do | |
| 2607 | wait() | |
| 2608 | print() | |
| 2609 | end | |
| 2610 | for PrintX = 1, #CurrentMap do | |
| 2611 | local PrintZ = "" | |
| 2612 | for PrintY = 1, #CurrentMap[PrintX] do | |
| 2613 | PrintZ = PrintZ ..CurrentMap[PrintX][PrintY] | |
| 2614 | end | |
| 2615 | print(PrintZ) | |
| 2616 | wait(0.1) | |
| 2617 | end | |
| 2618 | end | |
| 2619 | local MapCoords = {0, 0, 0, 0}
| |
| 2620 | local Distance = math.huge | |
| 2621 | for MPX = 1, #CurrentMap do | |
| 2622 | for MPY = 1, #CurrentMap[MPX] do | |
| 2623 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude < Distance then | |
| 2624 | MapCoords = {MPX, MPY, 0, 0}
| |
| 2625 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude | |
| 2626 | end | |
| 2627 | end | |
| 2628 | end | |
| 2629 | local Distance = math.huge | |
| 2630 | for MPX = 1, #CurrentMap do | |
| 2631 | for MPY = 1, #CurrentMap[MPX] do | |
| 2632 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude < Distance then | |
| 2633 | MapCoords = {MapCoords[1], MapCoords[2], math.min(MPX, #CurrentMap) - 1, math.min(MPY, #CurrentMap[1] - 1)}
| |
| 2634 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude | |
| 2635 | end | |
| 2636 | end | |
| 2637 | end | |
| 2638 | for i, v in pairs(CalcPath(CalcMoves(CurrentMap, MapCoords[1], MapCoords[2], MapCoords[3], MapCoords[4]))) do | |
| 2639 | local Timer = 20 | |
| 2640 | local pX = v["x"] | |
| 2641 | local pY = v["y"] | |
| 2642 | local pTo = Vector3.new(MapMask[pX][pY][1], 0, MapMask[pX][pY][2]) | |
| 2643 | pTo = pTo + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit | |
| 2644 | while (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude > 2.5 and Timer > 0 do | |
| 2645 | script.Parent.Humanoid:MoveTo(pTo, Base) | |
| 2646 | Timer = Timer - 1 | |
| 2647 | if Timer == 10 then | |
| 2648 | script.Parent.Humanoid.Jump = true | |
| 2649 | end | |
| 2650 | wait(0.1) | |
| 2651 | end | |
| 2652 | if Timer == 0 then | |
| 2653 | if (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude <= 5 then | |
| 2654 | script.Parent.Torso.CFrame = script.Parent.Torso.CFrame + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit * (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude | |
| 2655 | else | |
| 2656 | break | |
| 2657 | end | |
| 2658 | end | |
| 2659 | end | |
| 2660 | end | |
| 2661 | function ScanParts(CurrentModel, CurrentStage, Variables) | |
| 2662 | local X = CurrentModel:GetChildren() | |
| 2663 | for I = 1, #X do | |
| 2664 | if #X[I]:GetChildren() > 0 then | |
| 2665 | ScanParts(X[I], 1, Variables) | |
| 2666 | end | |
| 2667 | if X[I].ClassName == "Part" or X[I].ClassName == "WedgePart" or X[I].ClassName == "CornerWedgePart" or X[I].ClassName == "TrussPart" or X[I].ClassName == "SpawnLocation" or X[I].ClassName == "Seat" or X[I].ClassName == "VehicleSeat" or X[I].ClassName == "SkateboardPlatform" then | |
| 2668 | BlockScanned = BlockScanned + 1 | |
| 2669 | if BlockScanned / ScanSkip == math.floor(BlockScanned / ScanSkip) then | |
| 2670 | wait() | |
| 2671 | if DebugPathing == true then | |
| 2672 | print("Block", BlockScanned)
| |
| 2673 | end | |
| 2674 | end | |
| 2675 | if CurrentStage == 1 then | |
| 2676 | MapVar[1] = math.min(math.ceil(X[I].Position.X - X[I].Size.X / 2), MapVar[1]) | |
| 2677 | MapVar[2] = math.max(math.floor(X[I].Position.X + X[I].Size.X / 2), MapVar[2]) | |
| 2678 | MapVar[3] = math.min(math.ceil(X[I].Position.Z - X[I].Size.Z / 2), MapVar[3]) | |
| 2679 | MapVar[4] = math.max(math.floor(X[I].Position.Z + X[I].Size.Z / 2), MapVar[4]) | |
| 2680 | elseif CurrentStage == 2 and ((X[I].Position.Y + X[I].Size.Y / 2 > script.Parent.Torso.Position.Y + 2 and X[I].Position.Y - X[I].Size.Y / 2 < script.Parent.Torso.Position.Y + 2) or X[I].Position.Y + X[I].Size.Y / 2 < script.Parent.Torso.Position.Y - 8) then | |
| 2681 | local BlockStart = {X[I].Position.X - X[I].Size.X / 2, X[I].Position.Z - X[I].Size.Z / 2}
| |
| 2682 | local BlockEnd = {X[I].Position.X + X[I].Size.X / 2, X[I].Position.Z + X[I].Size.Z / 2}
| |
| 2683 | local BlockCoords = {0, 0, 0, 0}
| |
| 2684 | local Distance = math.huge | |
| 2685 | for MPX = 1, #CurrentMap do | |
| 2686 | for MPY = 1, #CurrentMap[MPX] do | |
| 2687 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude < Distance then | |
| 2688 | BlockCoords = {MPX, MPY, 0, 0}
| |
| 2689 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude | |
| 2690 | end | |
| 2691 | end | |
| 2692 | end | |
| 2693 | local Distance = math.huge | |
| 2694 | for MPX = 1, #CurrentMap do | |
| 2695 | for MPY = 1, #CurrentMap[MPX] do | |
| 2696 | if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude < Distance then | |
| 2697 | BlockCoords = {BlockCoords[1], BlockCoords[2], MPX, MPY}
| |
| 2698 | Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude | |
| 2699 | end | |
| 2700 | end | |
| 2701 | end | |
| 2702 | for XGrid = BlockCoords[2], BlockCoords[4] do | |
| 2703 | for YGrid = BlockCoords[1], BlockCoords[3] do | |
| 2704 | CurrentMap[XGrid][YGrid] = 1 | |
| 2705 | end | |
| 2706 | end | |
| 2707 | end | |
| 2708 | end | |
| 2709 | end | |
| 2710 | if CurrentStage == 1 then | |
| 2711 | MapVar[5] = {MapVar[1] + MapVar[2] / 2, MapVar[3] + MapVar[4] / 2}
| |
| 2712 | return MapVar | |
| 2713 | end | |
| 2714 | end | |
| 2715 | IsInCombat = false | |
| 2716 | while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") == nil do
| |
| 2717 | local Distance = 100 | |
| 2718 | local Target = nil | |
| 2719 | IsInCombat = false | |
| 2720 | local Players = Workspace:GetChildren() | |
| 2721 | for Check = 1, #Players do | |
| 2722 | if Players[Check] ~= script.Parent and ((Players[Check]:FindFirstChild("Humanoid") ~= nil and (Players[Check]:FindFirstChild("IsAZombie") ~= nil or Players[Check]:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or (script.Parent.IsOnTeam.Value == true and Players[Check]:FindFirstChild("IsOnTeam") ~= nil and Players[Check].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value ~= Players[Check].IsOnTeam.Team.Value) or (game.Players:GetPlayerFromCharacter(Players[Check]) ~= nil and script.Parent.IsOnTeam.Value == true and game.Players:GetPlayerFromCharacter(Players[Check]).Neutral == false and game.Players:GetPlayerFromCharacter(Players[Check]).TeamColor ~= script.Parent.IsOnTeam.Team.Value)) and Players[Check].Humanoid.Health > 0) or (Players[Check]:FindFirstChild("Zombie") ~= nil and Players[Check].Zombie.ClassName == "Humanoid" and Players[Check].Zombie.Health > 0)) and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
| |
| 2723 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 2724 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 2725 | if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
| |
| 2726 | local TeamTag = nil | |
| 2727 | local Parts = Players[Check]:GetChildren() | |
| 2728 | for X = 1, #Parts do | |
| 2729 | if Parts[X].Name == "TeamLoc" then | |
| 2730 | if Parts[X].Value == script.Parent.IsOnTeam.Team.Value then | |
| 2731 | TeamTag = Parts[X] | |
| 2732 | end | |
| 2733 | end | |
| 2734 | end | |
| 2735 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil or Parts[X] ~= nil or (Players[Check].Torso.Position - (script.Parent.Torso.Position + script.Parent.Torso.CFrame.lookVector * 50)).Magnitude <= 52 then
| |
| 2736 | if script.Parent.IsOnTeam.Value == false then | |
| 2737 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 2738 | Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 2739 | end | |
| 2740 | local Found = Instance.new("CFrameValue", Players[Check])
| |
| 2741 | Found.Name = "Loc" ..script.Parent.Name | |
| 2742 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2743 | else | |
| 2744 | if Parts[X] ~= nil then | |
| 2745 | Parts[X]:Remove() | |
| 2746 | end | |
| 2747 | local Found = Instance.new("BrickColorValue", Players[Check])
| |
| 2748 | Found.Name = "TeamLoc" | |
| 2749 | Found.Value = script.Parent.IsOnTeam.Team.Value | |
| 2750 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2751 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
| |
| 2752 | Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
| |
| 2753 | end | |
| 2754 | local Found = Instance.new("CFrameValue", Players[Check])
| |
| 2755 | Found.Name = "Loc" ..script.Parent.Name | |
| 2756 | game:GetService("Debris"):AddItem(Found, 3)
| |
| 2757 | end | |
| 2758 | end | |
| 2759 | if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 2760 | Target = Players[Check].Torso | |
| 2761 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 2762 | end | |
| 2763 | end | |
| 2764 | end | |
| 2765 | end | |
| 2766 | if Target == nil then | |
| 2767 | local HasTool = false | |
| 2768 | local ToolCheck = script.Parent:GetChildren() | |
| 2769 | for Check = 1, #ToolCheck do | |
| 2770 | if ToolCheck[Check].ClassName == "Tool" then | |
| 2771 | HasTool = true | |
| 2772 | end | |
| 2773 | end | |
| 2774 | if HasTool == false then | |
| 2775 | Distance = 100 | |
| 2776 | for Check = 1, #Players do | |
| 2777 | if Players[Check].ClassName == "Tool" and Players[Check]:FindFirstChild("Handle") ~= nil and Players[Check]:FindFirstChild("Active") ~= nil and Players[Check]:FindFirstChild("TargetPos") ~= nil and Players[Check]:FindFirstChild("Type") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 2778 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 2779 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 2780 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then | |
| 2781 | Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude | |
| 2782 | Target = Players[Check] | |
| 2783 | end | |
| 2784 | end | |
| 2785 | end | |
| 2786 | if Target ~= nil and Target.ClassName == "Tool" then | |
| 2787 | if Distance <= 5 and HasTool == false then | |
| 2788 | Target.Parent = script.Parent | |
| 2789 | HasTool = true | |
| 2790 | else | |
| 2791 | Prep(Target.Handle.Position, Base) | |
| 2792 | end | |
| 2793 | else | |
| 2794 | for Check = 1, #Players do | |
| 2795 | if Players[Check].Name == "Crate" and Players[Check]:FindFirstChild("OpenCrate") ~= nil and Players[Check].OpenCrate.Value == false and (Players[Check].Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 2796 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 2797 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 2798 | if Hit ~= nil and Hit == Players[Check] then | |
| 2799 | Target = Players[Check] | |
| 2800 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 2801 | end | |
| 2802 | end | |
| 2803 | end | |
| 2804 | if Target ~= nil then | |
| 2805 | script.Parent.Humanoid:MoveTo(Target.Position, Target) | |
| 2806 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then | |
| 2807 | Target.OpenCrate.Value = true | |
| 2808 | end | |
| 2809 | else | |
| 2810 | local HasHat = false | |
| 2811 | local HatCheck = script.Parent:GetChildren() | |
| 2812 | for Check = 1, #HatCheck do | |
| 2813 | if ToolCheck[Check].ClassName == "Hat" then | |
| 2814 | HasHat = true | |
| 2815 | end | |
| 2816 | end | |
| 2817 | if HasHat == false then | |
| 2818 | Distance = 100 | |
| 2819 | for Check = 1, #Players do | |
| 2820 | if Players[Check].ClassName == "Hat" and Players[Check]:FindFirstChild("Handle") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 2821 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 2822 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 2823 | if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then | |
| 2824 | Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude | |
| 2825 | Target = Players[Check] | |
| 2826 | end | |
| 2827 | end | |
| 2828 | end | |
| 2829 | if Target ~= nil and Target.ClassName == "Hat" then | |
| 2830 | if Distance <= 5 and HasHat == false then | |
| 2831 | Target.Parent = script.Parent | |
| 2832 | HasHat = true | |
| 2833 | else | |
| 2834 | Prep(Target.Handle.Position, Base) | |
| 2835 | end | |
| 2836 | else | |
| 2837 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 2838 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 2839 | GenerateMap(script.Parent.PathTo.Value) | |
| 2840 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 2841 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 2842 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 2843 | end | |
| 2844 | else | |
| 2845 | Jump() | |
| 2846 | end | |
| 2847 | end | |
| 2848 | end | |
| 2849 | end | |
| 2850 | end | |
| 2851 | else | |
| 2852 | if Target == nil then | |
| 2853 | local Distance = 80 | |
| 2854 | local Players = Workspace:GetChildren() | |
| 2855 | for Check = 1, #Players do | |
| 2856 | if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check] ~= script.Parent and Players[Check]:FindFirstChild("IsLocalEnemy") == nil and Players[Check]:FindFirstChild("Leader") ~= nil and Players[Check].Humanoid.Health > 0 and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
| |
| 2857 | local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 2858 | local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent) | |
| 2859 | if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
| |
| 2860 | Target = Players[Check].Torso | |
| 2861 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 2862 | end | |
| 2863 | end | |
| 2864 | end | |
| 2865 | if Target ~= nil then | |
| 2866 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 10 | |
| 2867 | Prep(Position, Base) | |
| 2868 | else | |
| 2869 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 2870 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 2871 | GenerateMap(script.Parent.PathTo.Value) | |
| 2872 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 2873 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 2874 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 2875 | end | |
| 2876 | else | |
| 2877 | Jump() | |
| 2878 | end | |
| 2879 | end | |
| 2880 | else | |
| 2881 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 2882 | if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then | |
| 2883 | GenerateMap(script.Parent.PathTo.Value) | |
| 2884 | script.Parent.PathTo.Value = Vector3.new(0, 0, 0) | |
| 2885 | elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 2886 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 2887 | end | |
| 2888 | else | |
| 2889 | Jump() | |
| 2890 | end | |
| 2891 | end | |
| 2892 | end | |
| 2893 | else | |
| 2894 | local Weapon = nil | |
| 2895 | local ToolCheck = script.Parent:GetChildren() | |
| 2896 | for Check = 1, #ToolCheck do | |
| 2897 | if ToolCheck[Check].ClassName == "Tool" then | |
| 2898 | Weapon = ToolCheck[Check] | |
| 2899 | end | |
| 2900 | end | |
| 2901 | if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
| |
| 2902 | if Weapon.Type.Value == "Melee" then | |
| 2903 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 2904 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then | |
| 2905 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2906 | Weapon.Active.Value = true | |
| 2907 | end | |
| 2908 | elseif Weapon.Type.Value == "Melee/Ranged" then | |
| 2909 | if Distance <= 10 then | |
| 2910 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 2911 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2912 | Weapon.Active.Value = true | |
| 2913 | else | |
| 2914 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Base) | |
| 2915 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 50 then | |
| 2916 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2917 | Weapon.Active.Value = true | |
| 2918 | end | |
| 2919 | end | |
| 2920 | elseif Weapon.Type.Value == "Melee/RangedMed" then | |
| 2921 | if Distance <= 10 then | |
| 2922 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 2923 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2924 | Weapon.Active.Value = true | |
| 2925 | else | |
| 2926 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base) | |
| 2927 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 40 then | |
| 2928 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2929 | Weapon.Active.Value = true | |
| 2930 | end | |
| 2931 | end | |
| 2932 | elseif Weapon.Type.Value == "Melee/RangedClose" then | |
| 2933 | if Distance <= 10 then | |
| 2934 | Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target) | |
| 2935 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2936 | Weapon.Active.Value = true | |
| 2937 | else | |
| 2938 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Base) | |
| 2939 | if (Target.Position - script.Parent.Torso.Position).Magnitude <= 30 then | |
| 2940 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2941 | Weapon.Active.Value = true | |
| 2942 | end | |
| 2943 | end | |
| 2944 | elseif Weapon.Type.Value == "Ranged" then | |
| 2945 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base) | |
| 2946 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2947 | wait() | |
| 2948 | Weapon.Active.Value = true | |
| 2949 | elseif Weapon.Type.Value == "RangedMed" then | |
| 2950 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 60, Base) | |
| 2951 | if Distance <= 70 then | |
| 2952 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2953 | wait() | |
| 2954 | Weapon.Active.Value = true | |
| 2955 | end | |
| 2956 | elseif Weapon.Type.Value == "RangedClose" then | |
| 2957 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base) | |
| 2958 | if Distance <= 40 then | |
| 2959 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2960 | wait() | |
| 2961 | Weapon.Active.Value = true | |
| 2962 | end | |
| 2963 | elseif Weapon.Type.Value == "RangedAngle" and Distance <= 100 then | |
| 2964 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * (script.Parent.Torso.Position - Target.Position).Magnitude + Target.Velocity | |
| 2965 | script.Parent.Humanoid:MoveTo(Position, Base) | |
| 2966 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2967 | wait() | |
| 2968 | Weapon.Active.Value = true | |
| 2969 | elseif Weapon.Type.Value == "RangedTactical" then | |
| 2970 | if Distance <= 30 then | |
| 2971 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 50 | |
| 2972 | Prep(Position, Base) | |
| 2973 | elseif Distance >= 50 then | |
| 2974 | Prep(Target.Position, Target) | |
| 2975 | end | |
| 2976 | if Distance <= 50 and Distance >= 30 then | |
| 2977 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Target.Parent.Torso) | |
| 2978 | end | |
| 2979 | if Distance <= 60 then | |
| 2980 | Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 2981 | wait() | |
| 2982 | Weapon.Active.Value = true | |
| 2983 | end | |
| 2984 | elseif Weapon.Type.Value == "Shuriken" then | |
| 2985 | if Distance <= 15 then | |
| 2986 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20 | |
| 2987 | Prep(Position, Base) | |
| 2988 | elseif Distance >= 30 then | |
| 2989 | Prep(Target.Position, Target) | |
| 2990 | end | |
| 2991 | if Distance <= 30 and Distance >= 15 then | |
| 2992 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Target.Parent.Torso) | |
| 2993 | end | |
| 2994 | if Distance <= 50 then | |
| 2995 | Weapon.TargetPos.Value = (Target.Position + Target.Velocity / 2) + Vector3.new(math.random(-2, 2), math.random(-2, 2) + ((Target.Position + Target.Velocity / 2) - script.Parent.Torso.Position).Magnitude / 8, math.random(-2, 2)) | |
| 2996 | wait() | |
| 2997 | Weapon.Active.Value = true | |
| 2998 | end | |
| 2999 | elseif Weapon.Type.Value == "HealDrink" then | |
| 3000 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120 | |
| 3001 | Prep(Position, Base) | |
| 3002 | if script.Parent.Humanoid.Health < script.Parent.Humanoid.MaxHealth then | |
| 3003 | Weapon.Active.Value = true | |
| 3004 | end | |
| 3005 | elseif Weapon.Type.Value == "GrenadeDirect" then | |
| 3006 | if Distance >= 80 and Distance <= 100 then | |
| 3007 | Prep(Target.Position, Target) | |
| 3008 | wait(0.5) | |
| 3009 | Weapon.Active.Value = true | |
| 3010 | wait(0.5) | |
| 3011 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100 | |
| 3012 | Prep(Position, Base) | |
| 3013 | else | |
| 3014 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100 | |
| 3015 | Prep(Position, Base) | |
| 3016 | end | |
| 3017 | elseif Weapon.Type.Value == "Bomb" then | |
| 3018 | if Distance > 10 then | |
| 3019 | Prep(Target.Position, Target) | |
| 3020 | elseif Distance <= 10 then | |
| 3021 | Weapon.Active.Value = true | |
| 3022 | wait(2) | |
| 3023 | while Weapon ~= nil and Weapon:FindFirstChild("Handle") ~= nil and Weapon.Handle.Transparency == 1 do
| |
| 3024 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base) | |
| 3025 | wait(0.5) | |
| 3026 | end | |
| 3027 | end | |
| 3028 | elseif Weapon.Type.Value == "Backstab" then | |
| 3029 | if Distance >= 10 then | |
| 3030 | if (script.Parent.Torso.Position - (Target.Position + Target.CFrame.lookVector * 50)).Magnitude <= 52 then | |
| 3031 | Prep(Target.Position, Target) | |
| 3032 | else | |
| 3033 | if (script.Parent.Torso.Position - (Target.Position - Target.CFrame.lookVector * 15)).Magnitude <= 5 then | |
| 3034 | Prep(Target.Position, Base) | |
| 3035 | local backstab_time = 20 | |
| 3036 | while backstab_time > 1 and (script.Parent.Torso.Position - Target.Position).Magnitude >= 4 do | |
| 3037 | wait(0.1) | |
| 3038 | backstab_time = backstab_time - 1 | |
| 3039 | end | |
| 3040 | if (script.Parent.Torso.Position - Target.Position).Magnitude < 4 then | |
| 3041 | Weapon.Active.Value = true | |
| 3042 | end | |
| 3043 | else | |
| 3044 | Prep(Target.Position - Target.CFrame.lookVector * 15, Base) | |
| 3045 | end | |
| 3046 | end | |
| 3047 | else | |
| 3048 | Prep(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target) | |
| 3049 | if Distance <= 5 then | |
| 3050 | Weapon.Active.Value = true | |
| 3051 | end | |
| 3052 | end | |
| 3053 | elseif Weapon.Type.Value == "Crossbow" then | |
| 3054 | if Distance > 80 then | |
| 3055 | Prep(Target.Position, Target) | |
| 3056 | elseif Distance < 40 then | |
| 3057 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100, Base) | |
| 3058 | elseif Distance <= 80 and Distance >= 40 then | |
| 3059 | Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * ((script.Parent.Torso.Position - Target.Position).Magnitude - 5), Base) | |
| 3060 | wait(0.2) | |
| 3061 | Weapon.TargetPos.Value = Target.Position + Target.Velocity / 8 + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2)) | |
| 3062 | Weapon.Active.Value = true | |
| 3063 | end | |
| 3064 | end | |
| 3065 | IsInCombat = true | |
| 3066 | elseif Distance <= 100 then | |
| 3067 | local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120 | |
| 3068 | Prep(Position, Base) | |
| 3069 | end | |
| 3070 | end | |
| 3071 | if IsInCombat == true then | |
| 3072 | wait(0.2) | |
| 3073 | else | |
| 3074 | wait(0.6) | |
| 3075 | end | |
| 3076 | end | |
| 3077 | local Weapon = nil | |
| 3078 | local ToolCheck = script.Parent:GetChildren() | |
| 3079 | for Check = 1, #ToolCheck do | |
| 3080 | if ToolCheck[Check].ClassName == "Tool" then | |
| 3081 | Weapon = ToolCheck[Check] | |
| 3082 | end | |
| 3083 | end | |
| 3084 | if Weapon ~= nil and script.Parent.DropWeapon.Value == true then | |
| 3085 | Weapon.Parent = Workspace | |
| 3086 | elseif Weapon ~= nil then | |
| 3087 | Weapon:Remove() | |
| 3088 | end | |
| 3089 | if script.Parent:FindFirstChild("IsAZombie") ~= nil then
| |
| 3090 | script.Parent.Name = "New Zombie" | |
| 3091 | script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + math.random(math.random(-50, -25), math.random(25, math.random(50, 100))) | |
| 3092 | wait() | |
| 3093 | script.Parent.Humanoid.Health = script.Parent.Humanoid.MaxHealth | |
| 3094 | script.Parent.Humanoid.WalkSpeed = script.Parent.Humanoid.WalkSpeed + math.random(math.random(-200, 0), math.random(100, math.random(200, 300))) / 100 | |
| 3095 | ZStat = 2 | |
| 3096 | ZStat2 = 1.57 | |
| 3097 | Delay(1, function() | |
| 3098 | while script.Parent:FindFirstChild("Humanoid") ~= nil and script.Parent.Humanoid.Health > 0 do
| |
| 3099 | script.Parent.Humanoid.MaxHealth = math.max(0, script.Parent.Humanoid.MaxHealth - 1) | |
| 3100 | script.Parent.Humanoid.Health = math.min(script.Parent.Humanoid.Health, script.Parent.Humanoid.MaxHealth) | |
| 3101 | wait(1) | |
| 3102 | end | |
| 3103 | end) | |
| 3104 | while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") ~= nil do
| |
| 3105 | local Distance = 100 | |
| 3106 | local Target = nil | |
| 3107 | local Players = Workspace:GetChildren() | |
| 3108 | for Check = 1, #Players do | |
| 3109 | if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check]:FindFirstChild("Torso") ~= nil and Players[Check]:FindFirstChild("IsAZombie") == nil and Players[Check].Humanoid.Health > 0 and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
| |
| 3110 | local ZRay = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100) | |
| 3111 | local ZHit, ZPos = Workspace:FindPartOnRay(ZRay, script.Parent) | |
| 3112 | if Players[Check]:FindFirstChild("ZFound") ~= nil or (ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check])) then
| |
| 3113 | if ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check]) then | |
| 3114 | if Players[Check]:FindFirstChild("ZFound") ~= nil then
| |
| 3115 | Players[Check].ZFound:Remove() | |
| 3116 | end | |
| 3117 | local ZTag = Instance.new("CFrameValue", Players[Check])
| |
| 3118 | ZTag.Name = "ZFound" | |
| 3119 | game:GetService("Debris"):AddItem(ZTag, 5)
| |
| 3120 | end | |
| 3121 | if (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then | |
| 3122 | Target = Players[Check].Torso | |
| 3123 | Distance = (Target.Position - script.Parent.Torso.Position).Magnitude | |
| 3124 | end | |
| 3125 | end | |
| 3126 | end | |
| 3127 | end | |
| 3128 | if Target == nil then | |
| 3129 | if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then | |
| 3130 | if math.random(1, 10) == 1 and script.Parent.Wander.Value == true then | |
| 3131 | Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base) | |
| 3132 | end | |
| 3133 | else | |
| 3134 | Jump() | |
| 3135 | end | |
| 3136 | elseif script.Parent.Wander.Value == true then | |
| 3137 | script.Parent.Humanoid:MoveTo(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target) | |
| 3138 | end | |
| 3139 | wait(0.8) | |
| 3140 | end | |
| 3141 | end | |
| 3142 | end) | |
| 3143 | Delay(0, function() --Random Tool Usage Script | |
| 3144 | while true do | |
| 3145 | wait(math.random(40, 70 + math.random(30, 120)) / 10) | |
| 3146 | local Weapon = nil | |
| 3147 | local ToolCheck = script.Parent:GetChildren() | |
| 3148 | for Check = 1, #ToolCheck do | |
| 3149 | if ToolCheck[Check].ClassName == "Tool" then | |
| 3150 | Weapon = ToolCheck[Check] | |
| 3151 | end | |
| 3152 | end | |
| 3153 | if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
| |
| 3154 | if Weapon.Type.Value == "HealDrink" then | |
| 3155 | Weapon.Active.Value = true | |
| 3156 | end | |
| 3157 | end | |
| 3158 | end | |
| 3159 | end) | |
| 3160 | Delay(1, function() --Player Customization Script | |
| 3161 | if script.Parent["Custom_Name"].Value == "" then | |
| 3162 | script.Parent.Name = "Player" ..math.random(1, 999) | |
| 3163 | else | |
| 3164 | script.Parent.Name = script.Parent["Custom_Name"].Value | |
| 3165 | end | |
| 3166 | BColors = {3, 5, 12, 18, 108, 128, 138, 224, 224, 226, 226}
| |
| 3167 | SColors = {145, 146, 147, 148, 149, 150, 168, 176, 178, 179, 200}
| |
| 3168 | PColors = {190, 191, 193, 1024, 1025, 1026, 1027, 1028, 1029, 1030}
| |
| 3169 | BColor = BrickColor.new(BColors[math.random(1, #BColors)]) | |
| 3170 | SColor = BrickColor.new(SColors[math.random(1, #SColors)]) | |
| 3171 | PColor = BrickColor.new(PColors[math.random(1, #PColors)]) | |
| 3172 | if script.Parent.IsOnTeam.Value == true then | |
| 3173 | SColor = script.Parent.IsOnTeam.Team.Value | |
| 3174 | PColor = SColor | |
| 3175 | if script.Parent.IsOnTeam.ShowTag.Value == true then | |
| 3176 | script.Parent.Name = script.Parent.Name .." [" ..script.Parent.IsOnTeam.Team.Value.Name .."]" | |
| 3177 | end | |
| 3178 | end | |
| 3179 | if script.Parent["Body Colors"].ForceColors.Value ~= true then | |
| 3180 | script.Parent["Body Colors"].HeadColor = BColor | |
| 3181 | script.Parent["Body Colors"].LeftArmColor = BColor | |
| 3182 | script.Parent["Body Colors"].LeftLegColor = PColor | |
| 3183 | script.Parent["Body Colors"].RightArmColor = BColor | |
| 3184 | script.Parent["Body Colors"].RightLegColor = PColor | |
| 3185 | script.Parent["Body Colors"].TorsoColor = SColor | |
| 3186 | end | |
| 3187 | script.Parent.Head.BrickColor = script.Parent["Body Colors"].HeadColor | |
| 3188 | script.Parent["Left Arm"].BrickColor = script.Parent["Body Colors"].LeftArmColor | |
| 3189 | script.Parent["Left Leg"].BrickColor = script.Parent["Body Colors"].LeftLegColor | |
| 3190 | script.Parent["Right Arm"].BrickColor = script.Parent["Body Colors"].RightArmColor | |
| 3191 | script.Parent["Right Leg"].BrickColor = script.Parent["Body Colors"].RightLegColor | |
| 3192 | script.Parent.Torso.BrickColor = script.Parent["Body Colors"].TorsoColor | |
| 3193 | if script.Parent["Force_Weapon"].Value ~= 0 then | |
| 3194 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Weapon"].Value)
| |
| 3195 | local c = x:GetChildren() | |
| 3196 | for i = 1, #c do | |
| 3197 | if c[i].ClassName == "Tool" and c[i]:FindFirstChild("AIProgram") ~= nil and c[i]:FindFirstChild("Active") ~= nil and c[i]:FindFirstChild("TargetPos") ~= nil and c[i]:FindFirstChild("Type") ~= nil and c[i]:FindFirstChild("Handle") ~= nil then
| |
| 3198 | c[i].Parent = script.Parent | |
| 3199 | script.Parent.DropWeapon.Value = false | |
| 3200 | end | |
| 3201 | end | |
| 3202 | end | |
| 3203 | if script.Parent["Force_Hat"].Value ~= 0 then | |
| 3204 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Hat"].Value)
| |
| 3205 | local c = x:GetChildren() | |
| 3206 | for i = 1, #c do | |
| 3207 | if c[i].ClassName == "Hat" and c[i]:FindFirstChild("Handle") ~= nil then
| |
| 3208 | c[i].Parent = script.Parent | |
| 3209 | end | |
| 3210 | end | |
| 3211 | end | |
| 3212 | if script.Parent["Force_Shirt"].Value ~= 0 then | |
| 3213 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Shirt"].Value)
| |
| 3214 | local c = x:GetChildren() | |
| 3215 | for i = 1, #c do | |
| 3216 | if c[i].ClassName == "Shirt" then | |
| 3217 | c[i].Parent = script.Parent | |
| 3218 | end | |
| 3219 | end | |
| 3220 | end | |
| 3221 | if script.Parent["Force_Pants"].Value ~= 0 then | |
| 3222 | local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Pants"].Value)
| |
| 3223 | local c = x:GetChildren() | |
| 3224 | for i = 1, #c do | |
| 3225 | if c[i].ClassName == "Pants" then | |
| 3226 | c[i].Parent = script.Parent | |
| 3227 | end | |
| 3228 | end | |
| 3229 | end | |
| 3230 | end) | |
| 3231 | wait() | |
| 3232 | print("Player Bot Loaded")
| |
| 3233 | end)) | |
| 3234 | Model0.Humanoid.Died:connect(function() | |
| 3235 | Model0:remove() | |
| 3236 | YOURCLONE=nil | |
| 3237 | end) | |
| 3238 | ||
| 3239 | Model0.Torso.Position=Vector3.new(Character.Torso.Position.X,Character.Torso.Position.Y+3,Character.Torso.Position.Z) | |
| 3240 | Model0.Name=Character.Name.."'s clone" | |
| 3241 | Model0.Humanoid.WalkToPart=torso | |
| 3242 | YOURCLONE=Model0 | |
| 3243 | for i,v in pairs(mas:GetChildren()) do | |
| 3244 | v.Parent = workspace | |
| 3245 | pcall(function() v:MakeJoints() end) | |
| 3246 | end | |
| 3247 | mas:Destroy() | |
| 3248 | for i,v in pairs(cors) do | |
| 3249 | spawn(function() | |
| 3250 | pcall(v) | |
| 3251 | end) | |
| 3252 | end | |
| 3253 | end | |
| 3254 | ||
| 3255 | --Converted with ttyyuu12345's model to script plugin v4 | |
| 3256 | function sandbox(var,func) | |
| 3257 | local env = getfenv(func) | |
| 3258 | local newenv = setmetatable({},{
| |
| 3259 | __index = function(self,k) | |
| 3260 | if k=="script" then | |
| 3261 | return var | |
| 3262 | else | |
| 3263 | return env[k] | |
| 3264 | end | |
| 3265 | end, | |
| 3266 | }) | |
| 3267 | setfenv(func,newenv) | |
| 3268 | return func | |
| 3269 | end | |
| 3270 | cors = {}
| |
| 3271 | mas = Instance.new("Model",game:GetService("Lighting"))
| |
| 3272 | Model0 = Instance.new("Model")
| |
| 3273 | MEF=Model0 | |
| 3274 | Part1 = Instance.new("Part")
| |
| 3275 | SpecialMesh2 = Instance.new("SpecialMesh")
| |
| 3276 | Part3 = Instance.new("Part")
| |
| 3277 | SpecialMesh4 = Instance.new("SpecialMesh")
| |
| 3278 | Part5 = Instance.new("Part")
| |
| 3279 | SpecialMesh6 = Instance.new("SpecialMesh")
| |
| 3280 | Part7 = Instance.new("Part")
| |
| 3281 | SpecialMesh8 = Instance.new("SpecialMesh")
| |
| 3282 | Part9 = Instance.new("Part")
| |
| 3283 | SpecialMesh10 = Instance.new("SpecialMesh")
| |
| 3284 | Part11 = Instance.new("Part")
| |
| 3285 | SpecialMesh12 = Instance.new("SpecialMesh")
| |
| 3286 | Model0.Parent = mas | |
| 3287 | Part1.Name = "Right Arm" | |
| 3288 | Part1.Parent = Model0 | |
| 3289 | Part1.Material = Enum.Material.Glass | |
| 3290 | Part1.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3291 | Part1.Rotation = Vector3.new(-180, 0, -90) | |
| 3292 | Part1.Size = Vector3.new(4, 1, 2) | |
| 3293 | Part1.CFrame = CFrame.new(-12.3300028, 0.500003994, -1.11000025, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
| 3294 | Part1.BottomSurface = Enum.SurfaceType.Smooth | |
| 3295 | Part1.TopSurface = Enum.SurfaceType.Smooth | |
| 3296 | Part1.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3297 | Part1.Position = Vector3.new(-12.3300028, 0.500003994, -1.11000025) | |
| 3298 | Part1.Orientation = Vector3.new(0, 180, 90) | |
| 3299 | Part1.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3300 | SpecialMesh2.Parent = Part1 | |
| 3301 | SpecialMesh2.MeshId = "rbxassetid://1563415862" | |
| 3302 | SpecialMesh2.Offset = Vector3.new(0, 4, 0) | |
| 3303 | SpecialMesh2.MeshType = Enum.MeshType.FileMesh | |
| 3304 | Part3.Name = "Right Leg" | |
| 3305 | Part3.Parent = Model0 | |
| 3306 | Part3.Material = Enum.Material.Glass | |
| 3307 | Part3.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3308 | Part3.Rotation = Vector3.new(-180, 0, -90) | |
| 3309 | Part3.Size = Vector3.new(4, 1, 2) | |
| 3310 | Part3.CFrame = CFrame.new(-14.3400002, 0.500003994, -0.0500001721, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
| 3311 | Part3.BottomSurface = Enum.SurfaceType.Smooth | |
| 3312 | Part3.TopSurface = Enum.SurfaceType.Smooth | |
| 3313 | Part3.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3314 | Part3.Position = Vector3.new(-14.3400002, 0.500003994, -0.0500001721) | |
| 3315 | Part3.Orientation = Vector3.new(0, 180, 90) | |
| 3316 | Part3.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3317 | SpecialMesh4.Parent = Part3 | |
| 3318 | SpecialMesh4.MeshId = "rbxassetid://1563410216" | |
| 3319 | SpecialMesh4.Offset = Vector3.new(0, 4, 0) | |
| 3320 | SpecialMesh4.MeshType = Enum.MeshType.FileMesh | |
| 3321 | Part5.Name = "Left Leg" | |
| 3322 | Part5.Parent = Model0 | |
| 3323 | Part5.Material = Enum.Material.Glass | |
| 3324 | Part5.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3325 | Part5.Rotation = Vector3.new(-180, 0, -90) | |
| 3326 | Part5.Size = Vector3.new(4, 1, 2) | |
| 3327 | Part5.CFrame = CFrame.new(-14.3299971, 0.500003994, 1.17999947, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
| 3328 | Part5.BottomSurface = Enum.SurfaceType.Smooth | |
| 3329 | Part5.TopSurface = Enum.SurfaceType.Smooth | |
| 3330 | Part5.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3331 | Part5.Position = Vector3.new(-14.3299971, 0.500003994, 1.17999947) | |
| 3332 | Part5.Orientation = Vector3.new(0, 180, 90) | |
| 3333 | Part5.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3334 | SpecialMesh6.Parent = Part5 | |
| 3335 | SpecialMesh6.MeshId = "rbxassetid://1563408982" | |
| 3336 | SpecialMesh6.Offset = Vector3.new(0, 4, 0) | |
| 3337 | SpecialMesh6.MeshType = Enum.MeshType.FileMesh | |
| 3338 | Part7.Name = "Left Arm" | |
| 3339 | Part7.Parent = Model0 | |
| 3340 | Part7.Material = Enum.Material.Glass | |
| 3341 | Part7.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3342 | Part7.Rotation = Vector3.new(0, 0, -90) | |
| 3343 | Part7.Size = Vector3.new(4, 1, 2) | |
| 3344 | Part7.CFrame = CFrame.new(-12.2099981, 0.490003794, 2.1400013, 0, 1, 0, -1, 0, 0, 0, 0, 1) | |
| 3345 | Part7.BottomSurface = Enum.SurfaceType.Smooth | |
| 3346 | Part7.TopSurface = Enum.SurfaceType.Smooth | |
| 3347 | Part7.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3348 | Part7.Position = Vector3.new(-12.2099981, 0.490003794, 2.1400013) | |
| 3349 | Part7.Orientation = Vector3.new(0, 0, -90) | |
| 3350 | Part7.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3351 | SpecialMesh8.Parent = Part7 | |
| 3352 | SpecialMesh8.MeshId = "rbxassetid://1563407350" | |
| 3353 | SpecialMesh8.Offset = Vector3.new(0, 4, 0) | |
| 3354 | SpecialMesh8.MeshType = Enum.MeshType.FileMesh | |
| 3355 | Part9.Name = "Torso" | |
| 3356 | Part9.Parent = Model0 | |
| 3357 | Part9.Material = Enum.Material.Glass | |
| 3358 | Part9.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3359 | Part9.Rotation = Vector3.new(-180, 0, -90) | |
| 3360 | Part9.Size = Vector3.new(4, 1, 2) | |
| 3361 | Part9.CFrame = CFrame.new(-12.6299973, 0.500003994, 0.519999921, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
| 3362 | Part9.BottomSurface = Enum.SurfaceType.Smooth | |
| 3363 | Part9.TopSurface = Enum.SurfaceType.Smooth | |
| 3364 | Part9.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3365 | Part9.Position = Vector3.new(-12.6299973, 0.500003994, 0.519999921) | |
| 3366 | Part9.Orientation = Vector3.new(0, 180, 90) | |
| 3367 | Part9.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3368 | SpecialMesh10.Parent = Part9 | |
| 3369 | SpecialMesh10.MeshId = "rbxassetid://1563386325" | |
| 3370 | SpecialMesh10.MeshType = Enum.MeshType.FileMesh | |
| 3371 | Part11.Name = "Head" | |
| 3372 | Part11.Parent = Model0 | |
| 3373 | Part11.Material = Enum.Material.Glass | |
| 3374 | Part11.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 3375 | Part11.Rotation = Vector3.new(-180, 0, -90) | |
| 3376 | Part11.Size = Vector3.new(4, 1, 2) | |
| 3377 | Part11.CFrame = CFrame.new(-10.1799965, 0.500003994, 0.519999921, 0, 1, 0, 1, 0, 0, 0, 0, -1) | |
| 3378 | Part11.BottomSurface = Enum.SurfaceType.Smooth | |
| 3379 | Part11.TopSurface = Enum.SurfaceType.Smooth | |
| 3380 | Part11.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3381 | Part11.Position = Vector3.new(-10.1799965, 0.500003994, 0.519999921) | |
| 3382 | Part11.Orientation = Vector3.new(0, 180, 90) | |
| 3383 | Part11.Color = Color3.new(0.623529, 0.952941, 0.913726) | |
| 3384 | SpecialMesh12.Parent = Part11 | |
| 3385 | SpecialMesh12.MeshId = "rbxassetid://1563390192" | |
| 3386 | SpecialMesh12.MeshType = Enum.MeshType.FileMesh | |
| 3387 | for i,v in pairs(mas:GetChildren()) do | |
| 3388 | v.Parent = AdvancingFortress | |
| 3389 | pcall(function() v:MakeJoints() end) | |
| 3390 | end | |
| 3391 | mas:Destroy() | |
| 3392 | for i,v in pairs(cors) do | |
| 3393 | spawn(function() | |
| 3394 | pcall(v) | |
| 3395 | end) | |
| 3396 | end | |
| 3397 | --end of costume | |
| 3398 | ||
| 3399 | ||
| 3400 | AdvancingFortress.Parent = Character | |
| 3401 | torso = AdvancingFortress.Torso | |
| 3402 | hum = AdvancingFortress.Humanoid | |
| 3403 | AdvancingFortress.Name = "Advancing Fortress" | |
| 3404 | pl = AdvancingFortress | |
| 3405 | for i, v in pairs(AdvancingFortress:GetChildren()) do | |
| 3406 | if v:IsA("BasePart") then
| |
| 3407 | v.Transparency = 1 | |
| 3408 | end | |
| 3409 | end | |
| 3410 | local Humanoid = AdvancingFortress.Humanoid | |
| 3411 | local Mouse = Player:GetMouse() | |
| 3412 | local LeftArm = AdvancingFortress["Left Arm"] | |
| 3413 | local RightArm = AdvancingFortress["Right Arm"] | |
| 3414 | local LeftLeg = AdvancingFortress["Left Leg"] | |
| 3415 | local RightLeg = AdvancingFortress["Right Leg"] | |
| 3416 | local Head = AdvancingFortress.Head | |
| 3417 | local Torso = AdvancingFortress.Torso | |
| 3418 | local Camera = game.Workspace.CurrentCamera | |
| 3419 | local RootPart = AdvancingFortress.HumanoidRootPart | |
| 3420 | local RootJoint = RootPart.RootJoint | |
| 3421 | local attack = false | |
| 3422 | local Anim = "Idle" | |
| 3423 | local attacktype = 1 | |
| 3424 | local Torsovelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude | |
| 3425 | local velocity = RootPart.Velocity.y | |
| 3426 | local sine = 0 | |
| 3427 | local change = 1 | |
| 3428 | local Create = LoadLibrary("RbxUtility").Create
| |
| 3429 | local TimeStop = false | |
| 3430 | local m = Create("Model")({
| |
| 3431 | Parent = AdvancingFortress, | |
| 3432 | Name = "WeaponModel" | |
| 3433 | }) | |
| 3434 | --for _,v in pairs(KQ) do | |
| 3435 | --v.Transparency=1 | |
| 3436 | --end | |
| 3437 | KQ={
| |
| 3438 | ||
| 3439 | } | |
| 3440 | ||
| 3441 | AdvancingFortress.Head.Name = "FHead" | |
| 3442 | AdvancingFortress.Torso.Name = "FTorso" | |
| 3443 | ||
| 3444 | ||
| 3445 | shirt = Instance.new("Shirt", Character)
| |
| 3446 | shirt.Name = "Shirt" | |
| 3447 | pants = Instance.new("Pants", Character)
| |
| 3448 | pants.Name = "Pants" | |
| 3449 | Character.Shirt.ShirtTemplate = "rbxassetid://609199174" | |
| 3450 | Character.Pants.PantsTemplate = "rbxassetid://1079566963" | |
| 3451 | ||
| 3452 | for i, v in pairs(Character:GetChildren()) do | |
| 3453 | if v.ClassName == "Accessory" then | |
| 3454 | v:Remove() | |
| 3455 | end | |
| 3456 | end | |
| 3457 | ||
| 3458 | Hat3 = Instance.new("Model")
| |
| 3459 | Hat3.Parent = Character | |
| 3460 | Hat3.Name = "Hat3" | |
| 3461 | rh = Instance.new("Part")
| |
| 3462 | rh.Parent = Hat3 | |
| 3463 | rh.BrickColor = BrickColor.new("Cool yellow")
| |
| 3464 | rh.Locked = true | |
| 3465 | rh.CanCollide = false | |
| 3466 | mesh = Instance.new("SpecialMesh")
| |
| 3467 | rh.formFactor = "Symmetric" | |
| 3468 | mesh.MeshType = "FileMesh" | |
| 3469 | mesh.MeshId = "rbxassetid://495152230" | |
| 3470 | mesh.Parent = rh | |
| 3471 | local weld = Instance.new("Weld")
| |
| 3472 | weld.Parent = rh | |
| 3473 | weld.Part0 = rh | |
| 3474 | weld.Part1 =Character.Head | |
| 3475 | weld.C0 = CFrame.new(0, 0.4, 0)*CFrame.Angles(0, 0, 0) | |
| 3476 | mesh.Scale = Vector3.new(1,1,1) | |
| 3477 | Hat3.Part.Transparency = 0 | |
| 3478 | ||
| 3479 | for _,v in pairs(AdvancingFortress:GetChildren()) do | |
| 3480 | if v:IsA('Part') then
| |
| 3481 | v.BrickColor=BrickColor.new('Pastel blue-green')
| |
| 3482 | end | |
| 3483 | end | |
| 3484 | for _,v in pairs(MEF:GetChildren()) do | |
| 3485 | table.insert(KQ,v) | |
| 3486 | v.CanCollide=false | |
| 3487 | if v.Name=='Head' or v.Name=='Torso' then | |
| 3488 | g=AdvancingFortress['F'..v.Name] | |
| 3489 | else | |
| 3490 | g=AdvancingFortress[v.Name] | |
| 3491 | end | |
| 3492 | v.Parent=AdvancingFortress | |
| 3493 | v.Transparency=1 | |
| 3494 | weld=Instance.new('Weld',v)
| |
| 3495 | if v.Name=='Head' then | |
| 3496 | weld.C0=CFrame.new(0,-1,0)*CFrame.Angles(0,-1.5,0) | |
| 3497 | elseif v.Name=='Torso' then | |
| 3498 | weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0) | |
| 3499 | elseif v.Name=='Left Arm' then | |
| 3500 | weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,1.5,0) | |
| 3501 | elseif v.Name=='Left Leg' then | |
| 3502 | weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0) | |
| 3503 | elseif v.Name=='Right Arm' then | |
| 3504 | weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0) | |
| 3505 | elseif v.Name=='Right Leg' then | |
| 3506 | weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0) | |
| 3507 | end | |
| 3508 | weld.Part0=v | |
| 3509 | weld.Part1=g | |
| 3510 | end-- apply costume | |
| 3511 | AdvancingFortress.FTorso.BrickColor=BrickColor.new('Pastel blue-green')
| |
| 3512 | ||
| 3513 | AdvancingFortress.HumanoidRootPart.Name = "FHumanoidRootPart" | |
| 3514 | Humanoid.Animator.Parent = nil | |
| 3515 | AdvancingFortress.Animate.Parent = nil | |
| 3516 | ||
| 3517 | base = Instance.new("ScreenGui",plr.PlayerGui)
| |
| 3518 | bbg = Instance.new("BillboardGui",plr.Character.Head)
| |
| 3519 | bbg.Size = UDim2.new(0,200,0,50) | |
| 3520 | bbg.StudsOffset = Vector3.new(0,3,0) | |
| 3521 | ||
| 3522 | bbgTl = Instance.new("TextLabel",bbg)
| |
| 3523 | bbgTl.BackgroundTransparency = 1 | |
| 3524 | bbgTl.Size = UDim2.new(10,0,1,0) | |
| 3525 | bbgTl.Position = UDim2.new(-4.5,0,0,0) | |
| 3526 | bbgTl.Font = "Code" | |
| 3527 | bbgTl.Text = " " | |
| 3528 | bbgTl.TextSize = 25 | |
| 3529 | bbgTl.TextStrokeColor3 = Color3.new(1,1,1) | |
| 3530 | bbgTl.TextColor3 = Color3.new(0,0,0) | |
| 3531 | bbgTl.TextStrokeTransparency = 0 | |
| 3532 | bbgTl.TextWrapped = true | |
| 3533 | ||
| 3534 | function Chat(msg) | |
| 3535 | if msg=='NANI' then | |
| 3536 | CFuncs.Sound.Create(948494432, Torso, 1, 1) | |
| 3537 | end | |
| 3538 | ff=game.Chat:FilterStringAsync(msg,Player,Player) | |
| 3539 | bbgTl.Text = ff | |
| 3540 | wait(1) | |
| 3541 | if bbgTl.Text == ff then | |
| 3542 | bbgTl.Text = " " | |
| 3543 | end | |
| 3544 | end | |
| 3545 | lknives=false | |
| 3546 | ||
| 3547 | ||
| 3548 | -- Fired when client sends a request to write on the sign | |
| 3549 | -- Called when button is clicked | |
| 3550 | ||
| 3551 | ||
| 3552 | plr.Chatted:connect(function(msg)-- local messageObject = getTextObject(msg, Player.UserId) | |
| 3553 | Chat(msg) | |
| 3554 | end) | |
| 3555 | ||
| 3556 | ||
| 3557 | local function newMotor(part0, part1, c0, c1) | |
| 3558 | local w = Create("Weld")({
| |
| 3559 | Parent = part0, | |
| 3560 | Part0 = part0, | |
| 3561 | Part1 = part1, | |
| 3562 | C0 = c0, | |
| 3563 | C1 = c1 | |
| 3564 | }) | |
| 3565 | return w | |
| 3566 | end | |
| 3567 | function clerp(a, b, t) | |
| 3568 | return a:lerp(b, t) | |
| 3569 | end | |
| 3570 | RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14) | |
| 3571 | NeckCF = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0) | |
| 3572 | local RW = newMotor(Torso, RightArm, CFrame.new(1.5, 0, 0), CFrame.new(0, 0, 0)) | |
| 3573 | local LW = newMotor(Torso, LeftArm, CFrame.new(-1.5, 0, 0), CFrame.new(0, 0, 0)) | |
| 3574 | local RH = newMotor(Torso, RightLeg, CFrame.new(0.5, -2, 0), CFrame.new(0, 0, 0)) | |
| 3575 | local LH = newMotor(Torso, LeftLeg, CFrame.new(-0.5, -2, 0), CFrame.new(0, 0, 0)) | |
| 3576 | RootJoint.C1 = CFrame.new(0, 0, 0) | |
| 3577 | RootJoint.C0 = CFrame.new(0, 0, 0) | |
| 3578 | Torso.Neck.C1 = CFrame.new(0, 0, 0) | |
| 3579 | Torso.Neck.C0 = CFrame.new(0, 1.5, 0) | |
| 3580 | local rarmc1 = RW.C1 | |
| 3581 | local larmc1 = LW.C1 | |
| 3582 | local rlegc1 = RH.C1 | |
| 3583 | local llegc1 = LH.C1 | |
| 3584 | local resetc1 = false | |
| 3585 | function PlayAnimationFromTable(table, speed, bool) | |
| 3586 | RootJoint.C0 = clerp(RootJoint.C0, table[1], speed) | |
| 3587 | Torso.Neck.C0 = clerp(Torso.Neck.C0, table[2], speed) | |
| 3588 | RW.C0 = clerp(RW.C0, table[3], speed) | |
| 3589 | LW.C0 = clerp(LW.C0, table[4], speed) | |
| 3590 | RH.C0 = clerp(RH.C0, table[5], speed) | |
| 3591 | LH.C0 = clerp(LH.C0, table[6], speed) | |
| 3592 | if bool == true and resetc1 == false then | |
| 3593 | resetc1 = true | |
| 3594 | RootJoint.C1 = RootJoint.C1 | |
| 3595 | Torso.Neck.C1 = Torso.Neck.C1 | |
| 3596 | RW.C1 = rarmc1 | |
| 3597 | LW.C1 = larmc1 | |
| 3598 | RH.C1 = rlegc1 | |
| 3599 | LH.C1 = llegc1 | |
| 3600 | end | |
| 3601 | end | |
| 3602 | ArtificialHB = Create("BindableEvent", script)({Parent = script, Name = "Heartbeat"})
| |
| 3603 | script:WaitForChild("Heartbeat")
| |
| 3604 | frame = 0.03333333333333333 | |
| 3605 | tf = 0 | |
| 3606 | allowframeloss = false | |
| 3607 | tossremainder = false | |
| 3608 | lastframe = tick() | |
| 3609 | script.Heartbeat:Fire() | |
| 3610 | game:GetService("RunService").Heartbeat:connect(function(s, p)
| |
| 3611 | tf = tf + s | |
| 3612 | if tf >= frame then | |
| 3613 | if allowframeloss then | |
| 3614 | script.Heartbeat:Fire() | |
| 3615 | lastframe = tick() | |
| 3616 | else | |
| 3617 | for i = 1, math.floor(tf / frame) do | |
| 3618 | script.Heartbeat:Fire() | |
| 3619 | end | |
| 3620 | lastframe = tick() | |
| 3621 | end | |
| 3622 | if tossremainder then | |
| 3623 | tf = 0 | |
| 3624 | else | |
| 3625 | tf = tf - frame * math.floor(tf / frame) | |
| 3626 | end | |
| 3627 | end | |
| 3628 | end) | |
| 3629 | function swait(num) | |
| 3630 | if num == 0 or num == nil then | |
| 3631 | ArtificialHB.Event:wait() | |
| 3632 | else | |
| 3633 | for i = 0, num do | |
| 3634 | ArtificialHB.Event:wait() | |
| 3635 | end | |
| 3636 | end | |
| 3637 | end | |
| 3638 | function RemoveOutlines(part) | |
| 3639 | part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10 | |
| 3640 | end | |
| 3641 | CFuncs = {
| |
| 3642 | Part = {
| |
| 3643 | Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size) | |
| 3644 | local Part = Create("Part")({
| |
| 3645 | Parent = Parent, | |
| 3646 | Reflectance = Reflectance, | |
| 3647 | Transparency = Transparency, | |
| 3648 | CanCollide = false, | |
| 3649 | Locked = true, | |
| 3650 | BrickColor = BrickColor.new(tostring(BColor)), | |
| 3651 | Name = Name, | |
| 3652 | Size = Size, | |
| 3653 | Material = Material | |
| 3654 | }) | |
| 3655 | RemoveOutlines(Part) | |
| 3656 | return Part | |
| 3657 | end | |
| 3658 | }, | |
| 3659 | Mesh = {
| |
| 3660 | Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale) | |
| 3661 | local Msh = Create(Mesh)({
| |
| 3662 | Parent = Part, | |
| 3663 | Offset = OffSet, | |
| 3664 | Scale = Scale | |
| 3665 | }) | |
| 3666 | if Mesh == "SpecialMesh" then | |
| 3667 | Msh.MeshType = MeshType | |
| 3668 | Msh.MeshId = MeshId | |
| 3669 | end | |
| 3670 | return Msh | |
| 3671 | end | |
| 3672 | }, | |
| 3673 | Weld = {
| |
| 3674 | Create = function(Parent, Part0, Part1, C0, C1) | |
| 3675 | local Weld = Create("Weld")({
| |
| 3676 | Parent = Parent, | |
| 3677 | Part0 = Part0, | |
| 3678 | Part1 = Part1, | |
| 3679 | C0 = C0, | |
| 3680 | C1 = C1 | |
| 3681 | }) | |
| 3682 | return Weld | |
| 3683 | end | |
| 3684 | }, | |
| 3685 | Sound = {
| |
| 3686 | Create = function(id, par, vol, pit) | |
| 3687 | local Sound = Create("Sound")({
| |
| 3688 | Volume = vol, | |
| 3689 | Pitch = pit or 1, | |
| 3690 | SoundId = "rbxassetid://" .. id, | |
| 3691 | Parent = par or workspace | |
| 3692 | }) | |
| 3693 | Sound:play() | |
| 3694 | game:GetService("Debris"):AddItem(Sound, 130)
| |
| 3695 | return Sound | |
| 3696 | end | |
| 3697 | }, | |
| 3698 | Decal = {
| |
| 3699 | Create = function(Color, Texture, Transparency, Name, Parent) | |
| 3700 | local Decal = Create("Decal")({
| |
| 3701 | Color3 = Color, | |
| 3702 | Texture = "rbxassetid://" .. Texture, | |
| 3703 | Transparency = Transparency, | |
| 3704 | Name = Name, | |
| 3705 | Parent = Parent | |
| 3706 | }) | |
| 3707 | return Decal | |
| 3708 | end | |
| 3709 | }, | |
| 3710 | BillboardGui = {
| |
| 3711 | Create = function(Parent, Image, Position, Size) | |
| 3712 | local BillPar = CFuncs.Part.Create(Parent, "SmoothPlastic", 0, 1, BrickColor.new("Black"), "BillboardGuiPart", Vector3.new(1, 1, 1))
| |
| 3713 | BillPar.CFrame = CFrame.new(Position) | |
| 3714 | local Bill = Create("BillboardGui")({
| |
| 3715 | Parent = BillPar, | |
| 3716 | Adornee = BillPar, | |
| 3717 | Size = UDim2.new(1, 0, 1, 0), | |
| 3718 | SizeOffset = Vector2.new(Size, Size) | |
| 3719 | }) | |
| 3720 | local d = Create("ImageLabel", Bill)({
| |
| 3721 | Parent = Bill, | |
| 3722 | BackgroundTransparency = 1, | |
| 3723 | Size = UDim2.new(1, 0, 1, 0), | |
| 3724 | Image = "rbxassetid://" .. Image | |
| 3725 | }) | |
| 3726 | return BillPar | |
| 3727 | end | |
| 3728 | }, | |
| 3729 | ParticleEmitter = {
| |
| 3730 | Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread) | |
| 3731 | local Particle = Create("ParticleEmitter")({
| |
| 3732 | Parent = Parent, | |
| 3733 | Color = ColorSequence.new(Color1, Color2), | |
| 3734 | LightEmission = LightEmission, | |
| 3735 | Size = Size, | |
| 3736 | Texture = Texture, | |
| 3737 | Transparency = Transparency, | |
| 3738 | ZOffset = ZOffset, | |
| 3739 | Acceleration = Accel, | |
| 3740 | Drag = Drag, | |
| 3741 | LockedToPart = LockedToPart, | |
| 3742 | VelocityInheritance = VelocityInheritance, | |
| 3743 | EmissionDirection = EmissionDirection, | |
| 3744 | Enabled = Enabled, | |
| 3745 | Lifetime = LifeTime, | |
| 3746 | Rate = Rate, | |
| 3747 | Rotation = Rotation, | |
| 3748 | RotSpeed = RotSpeed, | |
| 3749 | Speed = Speed, | |
| 3750 | VelocitySpread = VelocitySpread | |
| 3751 | }) | |
| 3752 | return Particle | |
| 3753 | end | |
| 3754 | }, | |
| 3755 | CreateTemplate = {}
| |
| 3756 | } | |
| 3757 | function rayCast(Position, Direction, Range, Ignore) | |
| 3758 | return game:service("Workspace"):FindPartOnRay(Ray.new(Position, Direction.unit * (Range or 999.999)), Ignore)
| |
| 3759 | end | |
| 3760 | function FindNearestTorso(pos) | |
| 3761 | local list = game.Workspace:children() | |
| 3762 | local torso | |
| 3763 | local dist = 1000 | |
| 3764 | local temp, human, temp2 | |
| 3765 | for x = 1, #list do | |
| 3766 | temp2 = list[x] | |
| 3767 | if temp2.className == "Model" and temp2.Name ~= Character.Name then | |
| 3768 | temp = temp2:findFirstChild("Torso")
| |
| 3769 | human = temp2:findFirstChild("Humanoid")
| |
| 3770 | if temp ~= nil and human ~= nil and human.Health > 0 and dist > (temp.Position - pos).magnitude then | |
| 3771 | local dohit = true | |
| 3772 | if dohit == true then | |
| 3773 | torso = temp | |
| 3774 | dist = (temp.Position - pos).magnitude | |
| 3775 | end | |
| 3776 | end | |
| 3777 | end | |
| 3778 | end | |
| 3779 | return torso, dist | |
| 3780 | end | |
| 3781 | function Damage(Part, hit, minim, maxim, knockback, Type, Property, Delay, HitSound, HitPitch) | |
| 3782 | if hit.Parent == nil then | |
| 3783 | return | |
| 3784 | end | |
| 3785 | local h = hit.Parent:FindFirstChild("Humanoid")
| |
| 3786 | for _, v in pairs(hit.Parent:children()) do | |
| 3787 | c=hit.Parent:findFirstChild('HumanoidRootPart')
| |
| 3788 | if v:IsA("Humanoid") then
| |
| 3789 | h = v | |
| 3790 | if c~=nil then | |
| 3791 | end | |
| 3792 | end | |
| 3793 | end | |
| 3794 | if h ~= nil and hit.Parent.Name ~= Character.Name and hit.Parent:FindFirstChild("Torso") ~= nil then
| |
| 3795 | if hit.Parent:findFirstChild("DebounceHit") ~= nil and hit.Parent.DebounceHit.Value == true then
| |
| 3796 | return | |
| 3797 | end | |
| 3798 | local c = Create("ObjectValue")({
| |
| 3799 | Name = "creator", | |
| 3800 | Value = game:service("Players").LocalPlayer,
| |
| 3801 | Parent = h | |
| 3802 | }) | |
| 3803 | game:GetService("Debris"):AddItem(c, 0.5)
| |
| 3804 | CFuncs.Sound.Create(HitSound, hit, 1, HitPitch) | |
| 3805 | local Damage = math.random(minim, maxim) | |
| 3806 | local blocked = false | |
| 3807 | local block = hit.Parent:findFirstChild("Block")
| |
| 3808 | if block ~= nil and block.className == "IntValue" and block.Value > 0 then | |
| 3809 | blocked = true | |
| 3810 | block.Value = block.Value - 1 | |
| 3811 | print(block.Value) | |
| 3812 | end | |
| 3813 | if TimeStop == false then | |
| 3814 | h.Health = h.Health - Damage | |
| 3815 | ShowDamage(Part.CFrame * CFrame.new(0, 0, Part.Size.Z / 2).p + Vector3.new(0, 1.5, 0), -Damage, 1.5, BrickColor.new("Pastel blue-green").Color)
| |
| 3816 | elseif TimeStop == true then | |
| 3817 | repeat | |
| 3818 | wait() | |
| 3819 | until TimeStop == false | |
| 3820 | h.Health = h.Health - Damage / 2 | |
| 3821 | ShowDamage(Part.CFrame * CFrame.new(0, 0, Part.Size.Z / 2).p + Vector3.new(0, 1.5, 0), -Damage, 1.5, BrickColor.new("Pastel blue-green").Color)
| |
| 3822 | end | |
| 3823 | if Type == "Knockdown" then | |
| 3824 | local hum = hit.Parent.Humanoid | |
| 3825 | hum.PlatformStand = true | |
| 3826 | coroutine.resume(coroutine.create(function(HHumanoid) | |
| 3827 | swait(1) | |
| 3828 | HHumanoid.PlatformStand = false | |
| 3829 | end), hum) | |
| 3830 | local angle = hit.Position - (Property.Position + Vector3.new(0, 0, 0)).unit | |
| 3831 | local bodvol = Create("BodyVelocity")({
| |
| 3832 | velocity = angle * knockback, | |
| 3833 | P = 5000, | |
| 3834 | maxForce = Vector3.new(8000, 8000, 8000), | |
| 3835 | Parent = hit | |
| 3836 | }) | |
| 3837 | local rl = Create("BodyAngularVelocity")({
| |
| 3838 | P = 3000, | |
| 3839 | maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000, | |
| 3840 | angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)), | |
| 3841 | Parent = hit | |
| 3842 | }) | |
| 3843 | game:GetService("Debris"):AddItem(bodvol, 0.5)
| |
| 3844 | game:GetService("Debris"):AddItem(rl, 0.5)
| |
| 3845 | elseif Type == "Normal" then | |
| 3846 | local vp = Create("BodyVelocity")({
| |
| 3847 | P = 500, | |
| 3848 | maxForce = Vector3.new(math.huge, 0, math.huge), | |
| 3849 | velocity = Property.CFrame.lookVector * knockback + Property.Velocity / 1.05 | |
| 3850 | }) | |
| 3851 | if knockback > 0 then | |
| 3852 | vp.Parent = hit.Parent.Torso | |
| 3853 | end | |
| 3854 | game:GetService("Debris"):AddItem(vp, 0.5)
| |
| 3855 | elseif Type == "Up" then | |
| 3856 | local bodyVelocity = Create("BodyVelocity")({
| |
| 3857 | velocity = Vector3.new(0, 20, 0), | |
| 3858 | P = 5000, | |
| 3859 | maxForce = Vector3.new(8000, 8000, 8000), | |
| 3860 | Parent = hit | |
| 3861 | }) | |
| 3862 | game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
| |
| 3863 | elseif Type == "DarkUp" then | |
| 3864 | coroutine.resume(coroutine.create(function() | |
| 3865 | for i = 0, 1, 0.1 do | |
| 3866 | swait() | |
| 3867 | Effects.Block.Create(BrickColor.new("Black"), hit.Parent.Torso.CFrame, 5, 5, 5, 1, 1, 1, 0.08, 1)
| |
| 3868 | end | |
| 3869 | end)) | |
| 3870 | local bodyVelocity = Create("BodyVelocity")({
| |
| 3871 | velocity = Vector3.new(0, 20, 0), | |
| 3872 | P = 5000, | |
| 3873 | maxForce = Vector3.new(8000, 8000, 8000), | |
| 3874 | Parent = hit | |
| 3875 | }) | |
| 3876 | game:GetService("Debris"):AddItem(bodyVelocity, 1)
| |
| 3877 | elseif Type == "Snare" then | |
| 3878 | local bp = Create("BodyPosition")({
| |
| 3879 | P = 2000, | |
| 3880 | D = 100, | |
| 3881 | maxForce = Vector3.new(math.huge, math.huge, math.huge), | |
| 3882 | position = hit.Parent.Torso.Position, | |
| 3883 | Parent = hit.Parent.Torso | |
| 3884 | }) | |
| 3885 | game:GetService("Debris"):AddItem(bp, 1)
| |
| 3886 | elseif Type == "Freeze" then | |
| 3887 | local BodPos = Create("BodyPosition")({
| |
| 3888 | P = 50000, | |
| 3889 | D = 1000, | |
| 3890 | maxForce = Vector3.new(math.huge, math.huge, math.huge), | |
| 3891 | position = hit.Parent.Torso.Position, | |
| 3892 | Parent = hit.Parent.Torso | |
| 3893 | }) | |
| 3894 | local BodGy = Create("BodyGyro")({
| |
| 3895 | maxTorque = Vector3.new(400000, 400000, 400000) * math.huge, | |
| 3896 | P = 20000, | |
| 3897 | Parent = hit.Parent.Torso, | |
| 3898 | cframe = hit.Parent.Torso.CFrame | |
| 3899 | }) | |
| 3900 | hit.Parent.Torso.Anchored = true | |
| 3901 | coroutine.resume(coroutine.create(function(Part) | |
| 3902 | swait(1.5) | |
| 3903 | Part.Anchored = false | |
| 3904 | end), hit.Parent.Torso) | |
| 3905 | game:GetService("Debris"):AddItem(BodPos, 3)
| |
| 3906 | game:GetService("Debris"):AddItem(BodGy, 3)
| |
| 3907 | end | |
| 3908 | local debounce = Create("BoolValue")({
| |
| 3909 | Name = "DebounceHit", | |
| 3910 | Parent = hit.Parent, | |
| 3911 | Value = true | |
| 3912 | }) | |
| 3913 | game:GetService("Debris"):AddItem(debounce, Delay)
| |
| 3914 | c = Create("ObjectValue")({
| |
| 3915 | Name = "creator", | |
| 3916 | Value = Player, | |
| 3917 | Parent = h | |
| 3918 | }) | |
| 3919 | game:GetService("Debris"):AddItem(c, 0.5)
| |
| 3920 | end | |
| 3921 | end | |
| 3922 | function ShowDamage(Pos, Text, Time, Color) | |
| 3923 | local Rate = 0.03333333333333333 | |
| 3924 | local Pos = Pos or Vector3.new(0, 0, 0) | |
| 3925 | local Text = Text or "" | |
| 3926 | local Time = Time or 2 | |
| 3927 | local Color = Color or Color3.new(1, 0, 1) | |
| 3928 | local EffectPart = CFuncs.Part.Create(workspace, "SmoothPlastic", 0, 1, BrickColor.new(Color), "Effect", Vector3.new(0, 0, 0)) | |
| 3929 | EffectPart.Anchored = true | |
| 3930 | local BillboardGui = Create("BillboardGui")({
| |
| 3931 | Size = UDim2.new(3, 0, 3, 0), | |
| 3932 | Adornee = EffectPart, | |
| 3933 | Parent = EffectPart | |
| 3934 | }) | |
| 3935 | local TextLabel = Create("TextLabel")({
| |
| 3936 | BackgroundTransparency = 1, | |
| 3937 | Size = UDim2.new(1, 0, 1, 0), | |
| 3938 | Text = Text, | |
| 3939 | Font = "SciFi", | |
| 3940 | TextColor3 = Color, | |
| 3941 | TextScaled = true, | |
| 3942 | Parent = BillboardGui | |
| 3943 | }) | |
| 3944 | game.Debris:AddItem(EffectPart, Time) | |
| 3945 | EffectPart.Parent = game:GetService("Workspace")
| |
| 3946 | delay(0, function() | |
| 3947 | local Frames = Time / Rate | |
| 3948 | for Frame = 1, Frames do | |
| 3949 | wait(Rate) | |
| 3950 | local Percent = Frame / Frames | |
| 3951 | EffectPart.CFrame = CFrame.new(Pos) + Vector3.new(0, Percent, 0) | |
| 3952 | TextLabel.TextTransparency = Percent | |
| 3953 | end | |
| 3954 | if EffectPart and EffectPart.Parent then | |
| 3955 | EffectPart:Destroy() | |
| 3956 | end | |
| 3957 | end) | |
| 3958 | end | |
| 3959 | local STDamage = false | |
| 3960 | function MagnitudeDamage(Part, Magnitude, MinimumDamage, MaximumDamage, KnockBack, Type, HitSound, HitPitch) | |
| 3961 | for _, c in pairs(workspace:children()) do | |
| 3962 | local hum = c:findFirstChild("Humanoid")
| |
| 3963 | if hum ~= nil then | |
| 3964 | local head = c:findFirstChild("Torso")
| |
| 3965 | if head ~= nil then | |
| 3966 | local targ = head.Position - Part.Position | |
| 3967 | local mag = targ.magnitude | |
| 3968 | if Magnitude >= mag and c.Name ~= Player.Name then | |
| 3969 | Damage(head, head, MinimumDamage, MaximumDamage, KnockBack, Type, RootPart, 0.1, HitSound, HitPitch) | |
| 3970 | if STDamage == true then | |
| 3971 | for i = 1, 3 do | |
| 3972 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 1, 1, 1, 4, 4, 4, 0.07, 1)
| |
| 3973 | end | |
| 3974 | for i = 1, 10 do | |
| 3975 | CamShake(1, 70000) | |
| 3976 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 1, 1, 1)
| |
| 3977 | end | |
| 3978 | elseif STDamage == false then | |
| 3979 | CamShake(1, 90000) | |
| 3980 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.07, 1)
| |
| 3981 | for i = 1, 2 do | |
| 3982 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 0.4, 0.4, 0.4)
| |
| 3983 | end | |
| 3984 | end | |
| 3985 | end | |
| 3986 | end | |
| 3987 | end | |
| 3988 | end | |
| 3989 | end | |
| 3990 | --[[ | |
| 3991 | HHandle = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HHandle", Vector3.new(1.09999979, 0.299999923, 1.0999999)) | |
| 3992 | HHandleWeld = CFuncs.Weld.Create(m, Head, HHandle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0646438599, -0.0500068665, -0.0646400452, -0.707107365, -3.21031663E-8, 0.707106411, -8.19564079E-8, 1.00000119, -1.41561088E-7, -0.707106352, 1.38630043E-7, -0.707107484)) | |
| 3993 | Eye1 = CFuncs.Part.Create(m, Enum.Material.Neon, 0, 1, "White", "Eye1", Vector3.new(0.400000006, 0.200000003, 0.200000003)) | |
| 3994 | PartWeld = CFuncs.Weld.Create(m, HHandle, Eye1, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0381011963, -0.0574798584, 0.471725464, -2.89082527E-6, 0.173647985, -0.984807968, -6.2584877E-7, 0.984808922, 0.173648104, 1.00000012, 1.02902288E-6, -2.77161598E-6)) | |
| 3995 | CFuncs.Mesh.Create("SpecialMesh", Eye1, Enum.MeshType.Sphere, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 3996 | Eye2 = CFuncs.Part.Create(m, Enum.Material.Neon, 0, 1, "White", "Eye2", Vector3.new(0.400000006, 0.200000003, 0.200000003)) | |
| 3997 | PartWeld = CFuncs.Weld.Create(m, HHandle, Eye2, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0115432739, -0.0487277508, 0.482452393, -0.981060266, -0.173648134, -0.0858327746, -0.172987267, 0.984808922, -0.0151339322, 0.0871568322, 3.96735317E-7, -0.996194839)) | |
| 3998 | CFuncs.Mesh.Create("SpecialMesh", Eye2, Enum.MeshType.Sphere, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 3999 | THandle = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Medium stone grey", "THandle", Vector3.new(1, 0.799999893, 1)) | |
| 4000 | THandleWeld = CFuncs.Weld.Create(m, Torso, THandle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4001 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.80000019, 0.300000012, 1.80000007)) | |
| 4002 | PartWeld = CFuncs.Weld.Create(m, THandle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-6.10351563E-5, -1.04342794, -0.404396057, 1, -8.19564079E-8, 5.96046519E-8, -1.01078633E-7, 0.939694166, -0.342019171, 1.52638329E-8, 0.34201926, 0.939693213)) | |
| 4003 | CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4004 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 1.10000002, 0.300000012)) | |
| 4005 | PartWeld = CFuncs.Weld.Create(m, THandle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-5.34057617E-5, -0.943422318, -1.35441589, 1, -8.19564079E-8, 5.96046519E-8, -1.01078633E-7, 0.939694166, -0.342019171, 1.52638329E-8, 0.34201926, 0.939693213)) | |
| 4006 | CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4007 | --]] | |
| 4008 | AHandleR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "AHandleR", Vector3.new(0.799999952, 0.800000012, 1.22000003)) | |
| 4009 | AHandleRWeld = CFuncs.Weld.Create(m, RightArm, AHandleR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.209915161, 0.00999641418, -3.81469727E-6, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4010 | --[[ | |
| 4011 | ||
| 4012 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.899999976, 1.01999998)) | |
| 4013 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0999984741, 0.550004005, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4014 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4015 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.150001526, 0.200003624, -0.359994888, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4016 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4017 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.20000267, 0.359992981, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4018 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.20000005, 0.800000012, 1.20000005)) | |
| 4019 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.209899902, -0.809997559, 5.7220459E-6, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024)) | |
| 4020 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999988, 1.01999998)) | |
| 4021 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.300003052, 0.650004387, 1.71661377E-5, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4022 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.699999988, 1.01999998)) | |
| 4023 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.650003433, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4024 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999928, 0.520000041)) | |
| 4025 | PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199996948, -0.049996376, -3.81469727E-6, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4026 | --]] | |
| 4027 | HitboxR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HitboxR", Vector3.new(0.799999952, 0.800000012, 1.22000003)) | |
| 4028 | ||
| 4029 | HitboxRWeld = CFuncs.Weld.Create(m, AHandleR, HitboxR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.700003624, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024)) | |
| 4030 | AHandleL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "AHandleL", Vector3.new(0.800000072, 0.800000012, 1.22000003)) | |
| 4031 | AHandleLWeld = CFuncs.Weld.Create(m, LeftArm, AHandleL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.210014343, 0.00999736786, 1.14440918E-5, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024)) | |
| 4032 | HitboxL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HitboxL", Vector3.new(0.800000072, 0.800000012, 1.22000003)) | |
| 4033 | HitboxLWeld = CFuncs.Weld.Create(m, AHandleL, HitboxL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.700003624, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4034 | ||
| 4035 | ||
| 4036 | --[[ | |
| 4037 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4038 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149986267, 0.200001717, -0.360012054, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4039 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999928, 0.520000041)) | |
| 4040 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199989319, -0.0499982834, -9.53674316E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4041 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4042 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149986267, 0.200001717, 0.359992981, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4043 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.20000005, 0.800000012, 1.20000005)) | |
| 4044 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.21005249, -0.81000042, 2.28881836E-5, -1, -8.19564079E-8, -5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, -5.96046519E-8, -1.41561088E-7, -1.00000024)) | |
| 4045 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.899999976, 1.01999998)) | |
| 4046 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0999984741, 0.550003052, -5.7220459E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4047 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999988, 1.01999998)) | |
| 4048 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.299995422, 0.650003433, -3.81469727E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4049 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.699999988, 1.01999998)) | |
| 4050 | PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.65000248, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4051 | LHandleR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "LHandleR", Vector3.new(1.02999997, 1.00999999, 1.19000006)) | |
| 4052 | LHandleRWeld = CFuncs.Weld.Create(m, RightLeg, LHandleR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00498962402, -0.0950021744, 0.00499534607, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024)) | |
| 4053 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000012, 0.800000012, 0.200000003)) | |
| 4054 | PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00498962402, -0.00499916077, -0.604999542, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4055 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 1.00999999, 1.19000006)) | |
| 4056 | PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.600002289, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4057 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 0.699999928, 1.19000006)) | |
| 4058 | PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, -0.454998016, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4059 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.400000006, 1.20000005, 0.200000003)) | |
| 4060 | PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00499725342, -0.00499916077, -0.604999542, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4061 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000131, 1.20000005, 0.800000012)) | |
| 4062 | PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00499725342, 0.0149993896, 0.00500297546, 2.28095047E-7, 1.00000775, 2.99581131E-7, -1.00000417, 5.63755016E-8, -4.06898749E-7, -2.98379774E-7, 2.07959161E-8, 1.0000037)) | |
| 4063 | CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4064 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003)) | |
| 4065 | WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.604999542, -0.504998207, 0.29499054, -2.98023224E-8, -6.70552254E-8, -1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8)) | |
| 4066 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4067 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003)) | |
| 4068 | WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.60499382, -0.495001793, 0.305000305, -5.96046519E-8, -1.41561088E-7, -1.00000024, -8.19564079E-8, -1.00000119, -1.41561088E-7, -1, -8.19564079E-8, -5.96046519E-8)) | |
| 4069 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4070 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003)) | |
| 4071 | WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.604999542, -0.495001793, 0.29499054, 2.98023224E-8, 6.70552254E-8, 1.00000012, -3.7252903E-8, -1.0000006, -7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8)) | |
| 4072 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4073 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003)) | |
| 4074 | WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.604999542, -0.504998207, 0.305000305, 2.98023224E-8, 6.70552254E-8, 1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, -1, -4.47034836E-8, -2.98023224E-8)) | |
| 4075 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4076 | LHandleL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "LHandleL", Vector3.new(1.02999997, 1.00999999, 1.19000006)) | |
| 4077 | LHandleLWeld = CFuncs.Weld.Create(m, LeftLeg, LHandleL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00498199463, -0.095000267, 0.00502204895, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024)) | |
| 4078 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 1.00999999, 1.19000006)) | |
| 4079 | PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.600001335, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4080 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.400000006, 1.20000005, 0.300000012)) | |
| 4081 | PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00499725342, -0.00500106812, -0.554998398, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4082 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 0.699999928, 1.19000006)) | |
| 4083 | PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, -0.454999924, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4084 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000131, 1.20000005, 0.800000012)) | |
| 4085 | PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00499534607, 0.0149993896, 0.00500297546, 2.28095047E-7, 1.00000775, 2.99581131E-7, -1.00000417, 5.63755016E-8, -4.06898749E-7, -2.98379774E-7, 2.07959161E-8, 1.0000037)) | |
| 4086 | CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4087 | Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000012, 0.800000012, 0.300000012)) | |
| 4088 | PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00498962402, -0.00500106812, -0.554998398, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024)) | |
| 4089 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4090 | WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.554998398, -0.505000114, 0.305000305, 2.98023224E-8, 6.70552254E-8, 1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, -1, -4.47034836E-8, -2.98023224E-8)) | |
| 4091 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4092 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4093 | WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.554998398, -0.505000114, 0.29499054, -2.98023224E-8, -6.70552254E-8, -1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8)) | |
| 4094 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4095 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4096 | WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.554998398, -0.494999886, 0.29499054, 2.98023224E-8, 6.70552254E-8, 1.00000012, -3.7252903E-8, -1.0000006, -7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8)) | |
| 4097 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4098 | Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003)) | |
| 4099 | WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.554998398, -0.494999886, 0.305000305, -5.96046519E-8, -1.41561088E-7, -1.00000024, -8.19564079E-8, -1.00000119, -1.41561088E-7, -1, -8.19564079E-8, -5.96046519E-8)) | |
| 4100 | CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
| |
| 4101 | --]] | |
| 4102 | Shield = CFuncs.Part.Create(m, "Neon", 0, 0.5, "Pastle brown", "Part", Vector3.new(9.1, 8.5, 0.2)) | |
| 4103 | CFuncs.Mesh.Create("SpecialMesh", Shield, "FileMesh", "rbxassetid://708292865", Vector3.new(0, 0, 0), Vector3.new(0.04, 0.04, 0.04))
| |
| 4104 | Shield.Parent = nil | |
| 4105 | ||
| 4106 | EffectModel = Create("Model")({Parent = Character, Name = "Effects"})
| |
| 4107 | Effects = {
| |
| 4108 | Block = {
| |
| 4109 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay, Type) | |
| 4110 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4111 | prt.Anchored = true | |
| 4112 | prt.CFrame = cframe | |
| 4113 | local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4114 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4115 | if Type == 1 or Type == nil then | |
| 4116 | table.insert(Effects, {
| |
| 4117 | prt, | |
| 4118 | "Block1", | |
| 4119 | delay, | |
| 4120 | x3, | |
| 4121 | y3, | |
| 4122 | z3, | |
| 4123 | msh | |
| 4124 | }) | |
| 4125 | elseif Type == 2 then | |
| 4126 | table.insert(Effects, {
| |
| 4127 | prt, | |
| 4128 | "Block2", | |
| 4129 | delay, | |
| 4130 | x3, | |
| 4131 | y3, | |
| 4132 | z3, | |
| 4133 | msh | |
| 4134 | }) | |
| 4135 | end | |
| 4136 | end | |
| 4137 | }, | |
| 4138 | Cylinder = {
| |
| 4139 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4140 | local prt = CFuncs.Part .. Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.2, 0.2, 0.2)) | |
| 4141 | prt.Anchored = true | |
| 4142 | prt.CFrame = cframe | |
| 4143 | local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4144 | game:GetService("Debris"):AddItem(prt, 2)
| |
| 4145 | Effects[#Effects + 1] = {
| |
| 4146 | prt, | |
| 4147 | "Cylinder", | |
| 4148 | delay, | |
| 4149 | x3, | |
| 4150 | y3, | |
| 4151 | z3 | |
| 4152 | } | |
| 4153 | end | |
| 4154 | }, | |
| 4155 | Head = {
| |
| 4156 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4157 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4158 | prt.Anchored = true | |
| 4159 | prt.CFrame = cframe | |
| 4160 | local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Head", "nil", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4161 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4162 | table.insert(Effects, {
| |
| 4163 | prt, | |
| 4164 | "Cylinder", | |
| 4165 | delay, | |
| 4166 | x3, | |
| 4167 | y3, | |
| 4168 | z3, | |
| 4169 | msh | |
| 4170 | }) | |
| 4171 | end | |
| 4172 | }, | |
| 4173 | Sphere = {
| |
| 4174 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4175 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4176 | prt.Anchored = true | |
| 4177 | prt.CFrame = cframe | |
| 4178 | local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4179 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4180 | table.insert(Effects, {
| |
| 4181 | prt, | |
| 4182 | "Cylinder", | |
| 4183 | delay, | |
| 4184 | x3, | |
| 4185 | y3, | |
| 4186 | z3, | |
| 4187 | msh | |
| 4188 | }) | |
| 4189 | end | |
| 4190 | }, | |
| 4191 | Sphere2 = {
| |
| 4192 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4193 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4194 | prt.Anchored = true | |
| 4195 | prt.CFrame = cframe | |
| 4196 | local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4197 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4198 | table.insert(Effects, {
| |
| 4199 | prt, | |
| 4200 | "Cylinder", | |
| 4201 | delay, | |
| 4202 | x3, | |
| 4203 | y3, | |
| 4204 | z3, | |
| 4205 | msh | |
| 4206 | }) | |
| 4207 | end | |
| 4208 | }, | |
| 4209 | Elec = {
| |
| 4210 | Create = function(cff, x, y, z) | |
| 4211 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, BrickColor.new("Pastel blue-green"), "Part", Vector3.new(1, 1, 1))
| |
| 4212 | prt.Anchored = true | |
| 4213 | prt.CFrame = cff * CFrame.new(math.random(-x, x), math.random(-y, y), math.random(-z, z)) | |
| 4214 | prt.CFrame = CFrame.new(prt.Position) | |
| 4215 | game:GetService("Debris"):AddItem(prt, 2)
| |
| 4216 | local xval = math.random() / 2 | |
| 4217 | local yval = math.random() / 2 | |
| 4218 | local zval = math.random() / 2 | |
| 4219 | local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(xval, yval, zval))
| |
| 4220 | table.insert(Effects, {
| |
| 4221 | prt, | |
| 4222 | "Elec", | |
| 4223 | 0.1, | |
| 4224 | x, | |
| 4225 | y, | |
| 4226 | z, | |
| 4227 | xval, | |
| 4228 | yval, | |
| 4229 | zval | |
| 4230 | }) | |
| 4231 | end | |
| 4232 | }, | |
| 4233 | Ring = {
| |
| 4234 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4235 | local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4236 | prt.Anchored = true | |
| 4237 | prt.CFrame = cframe | |
| 4238 | local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4239 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4240 | table.insert(Effects, {
| |
| 4241 | prt, | |
| 4242 | "Cylinder", | |
| 4243 | delay, | |
| 4244 | x3, | |
| 4245 | y3, | |
| 4246 | z3, | |
| 4247 | msh | |
| 4248 | }) | |
| 4249 | end | |
| 4250 | }, | |
| 4251 | Wave = {
| |
| 4252 | Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay) | |
| 4253 | local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4254 | prt.Anchored = true | |
| 4255 | prt.CFrame = cframe | |
| 4256 | local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://20329976", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4257 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4258 | table.insert(Effects, {
| |
| 4259 | prt, | |
| 4260 | "Cylinder", | |
| 4261 | delay, | |
| 4262 | x3, | |
| 4263 | y3, | |
| 4264 | z3, | |
| 4265 | msh | |
| 4266 | }) | |
| 4267 | end | |
| 4268 | }, | |
| 4269 | Break = {
| |
| 4270 | Create = function(brickcolor, cframe, x1, y1, z1) | |
| 4271 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5)) | |
| 4272 | prt.Anchored = true | |
| 4273 | prt.CFrame = cframe * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)) | |
| 4274 | local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4275 | local num = math.random(10, 50) / 1000 | |
| 4276 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4277 | table.insert(Effects, {
| |
| 4278 | prt, | |
| 4279 | "Shatter", | |
| 4280 | num, | |
| 4281 | prt.CFrame, | |
| 4282 | math.random() - math.random(), | |
| 4283 | 0, | |
| 4284 | math.random(50, 100) / 100 | |
| 4285 | }) | |
| 4286 | end | |
| 4287 | }, | |
| 4288 | Fire = {
| |
| 4289 | Create = function(brickcolor, cframe, x1, y1, z1, delay) | |
| 4290 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new()) | |
| 4291 | prt.Anchored = true | |
| 4292 | prt.CFrame = cframe | |
| 4293 | msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4294 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4295 | table.insert(Effects, {
| |
| 4296 | prt, | |
| 4297 | "Fire", | |
| 4298 | delay, | |
| 4299 | 1, | |
| 4300 | 1, | |
| 4301 | 1, | |
| 4302 | msh | |
| 4303 | }) | |
| 4304 | end | |
| 4305 | }, | |
| 4306 | FireWave = {
| |
| 4307 | Create = function(brickcolor, cframe, x1, y1, z1) | |
| 4308 | local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 1, brickcolor, "Effect", Vector3.new()) | |
| 4309 | prt.Anchored = true | |
| 4310 | prt.CFrame = cframe | |
| 4311 | msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
| |
| 4312 | local d = Create("Decal")({
| |
| 4313 | Parent = prt, | |
| 4314 | Texture = "rbxassetid://26356434", | |
| 4315 | Face = "Top" | |
| 4316 | }) | |
| 4317 | local d = Create("Decal")({
| |
| 4318 | Parent = prt, | |
| 4319 | Texture = "rbxassetid://26356434", | |
| 4320 | Face = "Bottom" | |
| 4321 | }) | |
| 4322 | game:GetService("Debris"):AddItem(prt, 10)
| |
| 4323 | table.insert(Effects, {
| |
| 4324 | prt, | |
| 4325 | "FireWave", | |
| 4326 | 1, | |
| 4327 | 30, | |
| 4328 | math.random(400, 600) / 100, | |
| 4329 | msh | |
| 4330 | }) | |
| 4331 | end | |
| 4332 | }, | |
| 4333 | Lightning = {
| |
| 4334 | Create = function(p0, p1, tym, ofs, col, th, tra, last) | |
| 4335 | local magz = (p0 - p1).magnitude | |
| 4336 | local curpos = p0 | |
| 4337 | local trz = {
| |
| 4338 | -ofs, | |
| 4339 | ofs | |
| 4340 | } | |
| 4341 | for i = 1, tym do | |
| 4342 | local li = CFuncs.Part.Create(EffectModel, "Neon", 0, tra or 0.4, col, "Ref", Vector3.new(th, th, magz / tym)) | |
| 4343 | local ofz = Vector3.new(trz[math.random(1, 2)], trz[math.random(1, 2)], trz[math.random(1, 2)]) | |
| 4344 | local trolpos = CFrame.new(curpos, p1) * CFrame.new(0, 0, magz / tym).p + ofz | |
| 4345 | li.Material = "Neon" | |
| 4346 | if tym == i then | |
| 4347 | local magz2 = (curpos - p1).magnitude | |
| 4348 | li.Size = Vector3.new(th, th, magz2) | |
| 4349 | li.CFrame = CFrame.new(curpos, p1) * CFrame.new(0, 0, -magz2 / 2) | |
| 4350 | table.insert(Effects, {
| |
| 4351 | li, | |
| 4352 | "Disappear", | |
| 4353 | last | |
| 4354 | }) | |
| 4355 | else | |
| 4356 | li.CFrame = CFrame.new(curpos, trolpos) * CFrame.new(0, 0, magz / tym / 2) | |
| 4357 | curpos = li.CFrame * CFrame.new(0, 0, magz / tym / 2).p | |
| 4358 | game.Debris:AddItem(li, 10) | |
| 4359 | table.insert(Effects, {
| |
| 4360 | li, | |
| 4361 | "Disappear", | |
| 4362 | last | |
| 4363 | }) | |
| 4364 | end | |
| 4365 | end | |
| 4366 | end | |
| 4367 | }, | |
| 4368 | EffectTemplate = {}
| |
| 4369 | } | |
| 4370 | local Invisible = true | |
| 4371 | function Reappear() | |
| 4372 | for _, i in pairs(AdvancingFortress:children()) do | |
| 4373 | if i:IsA("BasePart") then
| |
| 4374 | coroutine.resume(coroutine.create(function(Part) | |
| 4375 | for i = 0, 1, 0.3 do | |
| 4376 | swait() | |
| 4377 | Part.Transparency = -i | |
| 4378 | end | |
| 4379 | Part.Transparency = 0 | |
| 4380 | end), i) | |
| 4381 | end | |
| 4382 | end | |
| 4383 | for _, i in pairs(m:children()) do | |
| 4384 | if i:IsA("BasePart") then
| |
| 4385 | coroutine.resume(coroutine.create(function(Part) | |
| 4386 | for i = 0, 1, 0.3 do | |
| 4387 | swait() | |
| 4388 | Part.Transparency = i | |
| 4389 | end | |
| 4390 | Part.Transparency = 0 | |
| 4391 | end), i) | |
| 4392 | end | |
| 4393 | end | |
| 4394 | end | |
| 4395 | function ReappearArmorOnly() | |
| 4396 | for _, i in pairs(m:children()) do | |
| 4397 | if i:IsA("BasePart") then
| |
| 4398 | coroutine.resume(coroutine.create(function(Part) | |
| 4399 | for i = 0, 1, 0.3 do | |
| 4400 | swait() | |
| 4401 | Part.Transparency = i | |
| 4402 | end | |
| 4403 | Part.Transparency = 0 | |
| 4404 | for _,v in pairs(KQ) do | |
| 4405 | St=v.Weld.Part1.Name | |
| 4406 | if St=='FHead' then | |
| 4407 | St='Head' | |
| 4408 | end | |
| 4409 | v.Weld.Part1=Character[St] | |
| 4410 | end | |
| 4411 | end), i) | |
| 4412 | end | |
| 4413 | end | |
| 4414 | end | |
| 4415 | function Disappear() | |
| 4416 | for _, i in pairs(AdvancingFortress:children()) do | |
| 4417 | if i:IsA("BasePart") then
| |
| 4418 | coroutine.resume(coroutine.create(function(Part) | |
| 4419 | for i = 0, 1, 0.3 do | |
| 4420 | swait() | |
| 4421 | Part.Transparency = i | |
| 4422 | end | |
| 4423 | Part.Transparency = 1 | |
| 4424 | end), i) | |
| 4425 | end | |
| 4426 | end | |
| 4427 | for _, i in pairs(m:children()) do | |
| 4428 | if i:IsA("BasePart") then
| |
| 4429 | coroutine.resume(coroutine.create(function(Part) | |
| 4430 | for i = 0, 1, 0.3 do | |
| 4431 | swait() | |
| 4432 | Part.Transparency = i | |
| 4433 | end | |
| 4434 | Part.Transparency = 1 | |
| 4435 | end), i) | |
| 4436 | end | |
| 4437 | end | |
| 4438 | end | |
| 4439 | function DisappearArmorOnly() | |
| 4440 | for _, i in pairs(m:children()) do | |
| 4441 | if i:IsA("BasePart") then
| |
| 4442 | coroutine.resume(coroutine.create(function(Part) | |
| 4443 | for i = 0, 1, 0.3 do | |
| 4444 | swait() | |
| 4445 | Part.Transparency = i | |
| 4446 | end | |
| 4447 | Part.Transparency = 1 | |
| 4448 | for _,v in pairs(KQ) do | |
| 4449 | St=v.Weld.Part1.Name | |
| 4450 | if St=='Head' then | |
| 4451 | St='FHead' | |
| 4452 | end | |
| 4453 | v.Weld.Part1=AdvancingFortress[St] | |
| 4454 | end | |
| 4455 | end), i) | |
| 4456 | end | |
| 4457 | end | |
| 4458 | end | |
| 4459 | function CamShake(time, freq) | |
| 4460 | coroutine.resume(coroutine.create(function() | |
| 4461 | local cam = game:GetService("Workspace").CurrentCamera
| |
| 4462 | local time = 10 | |
| 4463 | local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0) | |
| 4464 | if math.random(1, 2) == 1 then | |
| 4465 | seed = Vector3.new(-seed.x, seed.y, 0) | |
| 4466 | end | |
| 4467 | if math.random(1, 2) == 1 then | |
| 4468 | seed = Vector3.new(seed.x, -seed.y, 0) | |
| 4469 | end | |
| 4470 | cam.CoordinateFrame = CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(seed.x * time, seed.y * time, 0) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude) | |
| 4471 | for i = 1, time do | |
| 4472 | cam.CoordinateFrame = CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(-seed.x, -seed.y, 0) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude) | |
| 4473 | wait() | |
| 4474 | end | |
| 4475 | end)) | |
| 4476 | end | |
| 4477 | local ora = false | |
| 4478 | function ORA() | |
| 4479 | attack = true | |
| 4480 | local S = CFuncs.Sound.Create("", Torso, 3, 1)
| |
| 4481 | S.Looped = true | |
| 4482 | if ora == true then | |
| 4483 | while ora == true do | |
| 4484 | CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
| |
| 4485 | MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1) | |
| 4486 | for i = 0, 1, 0.8 do | |
| 4487 | swait() | |
| 4488 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5) | |
| 4489 | PlayAnimationFromTable({
| |
| 4490 | CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4491 | CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4492 | CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4493 | CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4494 | CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4495 | CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4496 | }, 0.8, false) | |
| 4497 | end | |
| 4498 | CFuncs.Sound.Create("200632136", HitboxR, 0.3, math.random(1, 1.2))
| |
| 4499 | MagnitudeDamage(HitboxR, 5, 4, 10, 0, "Normal", "260430117", 1) | |
| 4500 | for i = 0, 1, 0.8 do | |
| 4501 | swait() | |
| 4502 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5) | |
| 4503 | PlayAnimationFromTable({
| |
| 4504 | CFrame.new(1.1920929E-6, -0.0170394331, -0.52941519, 0.70710516, -2.21270369E-7, -0.707108498, 0.18301405, 0.965925574, 0.183012888, 0.683014154, -0.258820117, 0.683010995) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4505 | CFrame.new(-1.22189522E-6, 1.49999356, 1.04308128E-6, 0.707110465, 0.122788236, 0.696360528, -1.4748274E-6, 0.98480773, -0.173648238, -0.707103193, 0.122787461, 0.696368098) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4506 | CFrame.new(1.44562268, 0.333473027, -0.475224167, 0.907739162, 0.217196256, 0.358959734, 0.40125221, -0.199453548, -0.893991232, -0.122576535, 0.955528319, -0.268199235) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4507 | CFrame.new(-1.884794, 0.881342709, -0.770847201, 0.0912726, 0.688403964, -0.719562054, -0.91795665, -0.221949756, -0.328776807, -0.386037856, 0.690535009, 0.611666858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4508 | CFrame.new(0.789779902, -1.8586235, 0.161380947, 0.965926766, -0.258817255, -8.10623169E-6, 0.243211254, 0.907672405, 0.342022836, -0.0885141194, -0.330371499, 0.939691722) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4509 | CFrame.new(-0.73783946, -1.45406294, -0.215006173, 0.882573366, -0.0180292428, 0.469829261, -0.163172901, 0.925412893, 0.342031717, -0.440952569, -0.378531486, 0.813802838) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4510 | }, 0.8, false) | |
| 4511 | end | |
| 4512 | CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
| |
| 4513 | MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1) | |
| 4514 | for i = 0, 1, 0.8 do | |
| 4515 | swait() | |
| 4516 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5) | |
| 4517 | PlayAnimationFromTable({
| |
| 4518 | CFrame.new(0.215482175, -0.0393944569, -0.126133978, 0.259671897, -0.351393819, 0.8994959, -0.075478971, 0.921212733, 0.381667405, -0.962742627, -0.167001322, 0.212690249) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4519 | CFrame.new(-1.26510859E-5, 1.49999118, -2.16066837E-7, 0.420251548, -0.0215960592, -0.90715003, -0.100918382, 0.992402375, -0.0703775883, 0.901778162, 0.12112467, 0.414879382) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4520 | CFrame.new(1.81840861, 0.705381036, -0.347923756, -0.236346364, -0.883376777, 0.404705286, 0.945798516, -0.113677993, 0.304209948, -0.222726092, 0.454668403, 0.862362981) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4521 | CFrame.new(-1.21960759, 0.420275182, -0.728423595, -0.57802856, -0.255150676, 0.775100708, 0.665436089, -0.697164714, 0.266751111, 0.472311139, 0.669969678, 0.572767615) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4522 | CFrame.new(0.620917439, -1.53014767, -0.12091887, 0.707106113, 0.241845652, -0.66446346, -1.2293458E-6, 0.939692676, 0.342019886, 0.707107484, -0.241843566, 0.664462805) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4523 | CFrame.new(-0.873213649, -1.89646459, -0.100004375, 0.933012128, 0.353242815, -0.0686147735, -0.258823931, 0.791241407, 0.554028153, 0.249997303, -0.499155849, 0.829665601) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4524 | }, 0.8, false) | |
| 4525 | end | |
| 4526 | CFuncs.Sound.Create("200632136", HitboxR, 0.3, math.random(1, 1.2))
| |
| 4527 | MagnitudeDamage(HitboxR, 5, 4, 10, 0, "Normal", "260430117", 1) | |
| 4528 | for i = 0, 1, 0.8 do | |
| 4529 | swait() | |
| 4530 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5) | |
| 4531 | PlayAnimationFromTable({
| |
| 4532 | CFrame.new(0.299998224, -0.0468490347, -0.211314023, 0.642786682, -2.87348001E-7, -0.766045272, 0.323744863, 0.906307757, 0.271653205, 0.694272637, -0.42261824, 0.582562685) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4533 | CFrame.new(2.71201134E-6, 1.4999969, 8.94069672E-7, 0.642777503, 0.133020476, 0.754416466, 4.31999706E-6, 0.984809279, -0.173647597, -0.766052961, 0.111620098, 0.633012772) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4534 | CFrame.new(1.27057993, 0.327670783, -0.599993467, 0.638493001, 0.280156553, -0.716825664, -0.769049883, 0.196164608, -0.608343422, -0.0298155248, 0.939697862, 0.340704083) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4535 | CFrame.new(-1.86040878, 1.02262986, -0.452570885, 0.386218816, 0.717701018, -0.579433978, -0.403004408, -0.433759809, -0.805879354, -0.829712272, 0.544763446, 0.121709965) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4536 | CFrame.new(0.779964924, -1.75316048, -0.0263362825, 0.826099217, -0.36394459, 0.43023771, 0.181541473, 0.894650102, 0.40822047, -0.533481896, -0.259124577, 0.805140793) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4537 | CFrame.new(-0.724003315, -1.47219872, -0.266945302, 0.766038954, -0.166370958, 0.620890498, 4.09781933E-6, 0.965925932, 0.258819997, -0.642794192, -0.198263675, 0.739937425) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4538 | }, 0.8, false) | |
| 4539 | end | |
| 4540 | CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
| |
| 4541 | MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1) | |
| 4542 | end | |
| 4543 | end | |
| 4544 | S:Stop() | |
| 4545 | local S2 = CFuncs.Sound.Create("", Torso, 1.5, 1)
| |
| 4546 | for i = 0, 1, 0.13 do | |
| 4547 | swait() | |
| 4548 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -3), 0.5) | |
| 4549 | PlayAnimationFromTable({
| |
| 4550 | CFrame.new(2.68220901E-6, -0.0739577487, 0.0232374109, 0.707105994, -3.47710994E-7, -0.707107604, -0.122787997, 0.98480767, -0.122788213, 0.696364999, 0.173648596, 0.696363389) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4551 | CFrame.new(-5.36441803E-7, 1.49999356, -1.28149986E-6, 0.707105994, -0.122788511, 0.696365297, -3.47710994E-7, 0.984808028, 0.173649326, -0.707107604, -0.122788727, 0.696363688) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4552 | CFrame.new(1.13747835, 0.382733107, -0.729447305, 0.579597414, 0.772029877, -0.260839432, -0.351051509, -0.0523141921, -0.934893906, -0.735411942, 0.633429527, 0.240701318) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4553 | CFrame.new(-1.53455412, 0.605712295, -0.542039633, 0.786121905, 0.427828372, -0.446066588, -0.606968522, 0.398195386, -0.687771559, -0.116626531, 0.811420619, 0.572708428) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4554 | CFrame.new(0.903839946, -1.70734286, 0.373858094, 0.863655448, -0.430708885, 0.261895239, 0.187955216, 0.757234871, 0.625514567, -0.46773085, -0.491004646, 0.734943748) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4555 | CFrame.new(-0.596739769, -1.62411702, -0.0967329144, 0.725493789, -0.291957259, 0.623233199, -0.081900157, 0.86250174, 0.499382436, -0.683338165, -0.41334182, 0.601828396) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4556 | }, 0.2, false) | |
| 4557 | end | |
| 4558 | CFuncs.Sound.Create("471881954", HitboxR, 1, 1)
| |
| 4559 | MagnitudeDamage(HitboxR, 7, 10, 15, 50, "Normal", "610359590", 1) | |
| 4560 | for i = 0, 1, 0.1 do | |
| 4561 | swait() | |
| 4562 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 0.3) | |
| 4563 | PlayAnimationFromTable({
| |
| 4564 | CFrame.new(-0.338160992, -0.0772590488, -0.484170675, 0.307024002, -0.153706044, 0.939207554, -0.403236002, 0.872901201, 0.274671286, -0.86205399, -0.463052958, 0.206021816) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4565 | CFrame.new(-0.0502282679, 1.50051379, -0.0864891857, 0.502356887, -0.246090144, -0.828901231, -0.00520065427, 0.957766473, -0.287500501, 0.864644766, 0.148738697, 0.479860842) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4566 | CFrame.new(1.81698525, 1.20575511, -0.168038458, 0.0800605565, -0.859217465, 0.505307972, 0.457053572, -0.418860257, -0.784640014, 0.885828495, 0.293771386, 0.359173566) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4567 | CFrame.new(-1.66351938, 0.691055655, 0.203685582, 0.309526145, 0.793331623, -0.524231553, -0.937197804, 0.347743452, -0.0271089375, 0.160791725, 0.499699503, 0.851144433) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4568 | CFrame.new(0.971616864, -1.6145575, 0.096719563, 0.544056833, -0.203144252, -0.814085484, 0.51142931, 0.849463344, 0.129818588, 0.665161908, -0.486975014, 0.566052973) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4569 | CFrame.new(-0.676943898, -1.44413579, 0.206094518, 0.884253025, 0.0570309162, -0.463512957, 0.209485695, 0.838620007, 0.502824426, 0.417387724, -0.541723251, 0.729605079) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4570 | }, 0.6, false) | |
| 4571 | end | |
| 4572 | attack = false | |
| 4573 | end | |
| 4574 | function CastleCrusherFist() | |
| 4575 | attack = true | |
| 4576 | STDamage = true | |
| 4577 | local S2 = CFuncs.Sound.Create("", Torso, 1, 1)
| |
| 4578 | for i = 0, 1, 0.1 do | |
| 4579 | swait() | |
| 4580 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
| |
| 4581 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
| |
| 4582 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.2) | |
| 4583 | PlayAnimationFromTable({
| |
| 4584 | CFrame.new(-5.99771738E-7, -0.00717129931, 0.169464022, 0.422617912, -2.2671E-7, -0.906308055, -0.309975952, 0.939692557, -0.144544229, 0.851650834, 0.342020661, 0.397130787) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4585 | CFrame.new(-0.0102166235, 1.52751005, -0.239579424, 0.456926107, -0.171424359, 0.872835577, -0.167732254, 0.94705075, 0.273807496, -0.87355268, -0.271512181, 0.403976858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4586 | CFrame.new(0.944673777, 0.474064022, -0.539126158, 0.229199454, 0.762564063, 0.604949772, 0.809601307, 0.195682317, -0.553402781, -0.540382624, 0.616607308, -0.572522938) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4587 | CFrame.new(-1.61232829, 0.309644789, -0.24482432, 0.455398798, 0.536860108, -0.710207343, -0.887026072, 0.205374956, -0.413530886, -0.076149486, 0.818293095, 0.569735885) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4588 | CFrame.new(1.08113468, -1.48232126, 0.656104684, 0.81421864, -0.517612338, 0.262917578, 0.175395042, 0.651024699, 0.738514543, -0.553430021, -0.555197835, 0.620862961) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4589 | CFrame.new(-0.427128136, -1.50760674, -0.0473105907, 0.804508269, -0.373179317, 0.462065101, -0.173640698, 0.596196175, 0.783836842, -0.567992628, -0.71083647, 0.414845526) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4590 | }, 0.2, false) | |
| 4591 | end | |
| 4592 | MagnitudeDamage(HitboxR, 10, 50, 80, 100, "Normal", "610359515", 1) | |
| 4593 | Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
| |
| 4594 | CFuncs.Sound.Create("471881980", HitboxR, 1, 0.9)
| |
| 4595 | CFuncs.Sound.Create("471881954", HitboxR, 1, 0.8)
| |
| 4596 | for i = 0, 1, 0.08 do | |
| 4597 | swait() | |
| 4598 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
| |
| 4599 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
| |
| 4600 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 0.3) | |
| 4601 | PlayAnimationFromTable({
| |
| 4602 | CFrame.new(-3.57627869E-7, -0.116980031, -2.22140098, 0.342020035, -6.11579551E-8, 0.939692736, -0.604023039, 0.766044259, 0.219846413, -0.71984607, -0.642787933, 0.262002468) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4603 | CFrame.new(-1.13248825E-6, 1.49999046, 8.94069672E-7, 0.422608167, -0.383014679, -0.82140249, -1.36196613E-5, 0.906310022, -0.422613323, 0.906312764, 0.17861104, 0.383008778) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4604 | CFrame.new(1.72490048, 1.25688744, -0.021425128, -0.678134382, -0.731868863, 0.0670941696, 0.667953849, -0.575675249, 0.47163111, -0.306547582, 0.364645123, 0.879239857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4605 | CFrame.new(-1.70565486, 0.469353855, 0.162862837, 0.82686162, 0.55728358, 0.0757693052, -0.414878726, 0.513436973, 0.751176, 0.379712611, -0.652546048, 0.655748963) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4606 | CFrame.new(0.757160306, -1.48393714, -0.193787217, 0.601814985, 0.305624545, -0.737842917, -2.98023224E-8, 0.923879623, 0.382683486, 0.798635662, -0.230304718, 0.556004763) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4607 | CFrame.new(-0.908789515, -1.60188651, -0.0663503706, 0.696367741, 0.548584938, -0.462741733, -0.173660636, 0.7544052, 0.633021533, 0.696362019, -0.360454619, 0.620610356) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4608 | }, 0.6, false) | |
| 4609 | end | |
| 4610 | STDamage = false | |
| 4611 | attack = false | |
| 4612 | end | |
| 4613 | function CastleCrusherFist() | |
| 4614 | attack = true | |
| 4615 | STDamage = true | |
| 4616 | local S2 = CFuncs.Sound.Create("", Torso, 1, 1)
| |
| 4617 | for i = 0, 1, 0.1 do | |
| 4618 | swait() | |
| 4619 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
| |
| 4620 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
| |
| 4621 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.5) | |
| 4622 | PlayAnimationFromTable({
| |
| 4623 | CFrame.new(-5.99771738E-7, -0.00717129931, 0.169464022, 0.422617912, -2.2671E-7, -0.906308055, -0.309975952, 0.939692557, -0.144544229, 0.851650834, 0.342020661, 0.397130787) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4624 | CFrame.new(-0.0102166235, 1.52751005, -0.239579424, 0.456926107, -0.171424359, 0.872835577, -0.167732254, 0.94705075, 0.273807496, -0.87355268, -0.271512181, 0.403976858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4625 | CFrame.new(0.944673777, 0.474064022, -0.539126158, 0.229199454, 0.762564063, 0.604949772, 0.809601307, 0.195682317, -0.553402781, -0.540382624, 0.616607308, -0.572522938) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4626 | CFrame.new(-1.61232829, 0.309644789, -0.24482432, 0.455398798, 0.536860108, -0.710207343, -0.887026072, 0.205374956, -0.413530886, -0.076149486, 0.818293095, 0.569735885) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4627 | CFrame.new(1.08113468, -1.48232126, 0.656104684, 0.81421864, -0.517612338, 0.262917578, 0.175395042, 0.651024699, 0.738514543, -0.553430021, -0.555197835, 0.620862961) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4628 | CFrame.new(-0.427128136, -1.50760674, -0.0473105907, 0.804508269, -0.373179317, 0.462065101, -0.173640698, 0.596196175, 0.783836842, -0.567992628, -0.71083647, 0.414845526) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4629 | }, 0.2, false) | |
| 4630 | end | |
| 4631 | Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
| |
| 4632 | Character.HumanoidRootPart.Velocity = Character.HumanoidRootPart.CFrame.lookVector * 140 | |
| 4633 | CFuncs.Sound.Create("471881980", HitboxR, 1, 0.9)
| |
| 4634 | CFuncs.Sound.Create("471881954", HitboxR, 1, 0.8)
| |
| 4635 | for i = 0, 1, 0.08 do | |
| 4636 | swait() | |
| 4637 | MagnitudeDamage(HitboxR, 5, 50, 80, 100, "Normal", "610359515", 1) | |
| 4638 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
| |
| 4639 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
| |
| 4640 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 1) | |
| 4641 | PlayAnimationFromTable({
| |
| 4642 | CFrame.new(-3.57627869E-7, -0.116980031, -2.22140098, 0.342020035, -6.11579551E-8, 0.939692736, -0.604023039, 0.766044259, 0.219846413, -0.71984607, -0.642787933, 0.262002468) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4643 | CFrame.new(-1.13248825E-6, 1.49999046, 8.94069672E-7, 0.422608167, -0.383014679, -0.82140249, -1.36196613E-5, 0.906310022, -0.422613323, 0.906312764, 0.17861104, 0.383008778) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4644 | CFrame.new(1.72490048, 1.25688744, -0.021425128, -0.678134382, -0.731868863, 0.0670941696, 0.667953849, -0.575675249, 0.47163111, -0.306547582, 0.364645123, 0.879239857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4645 | CFrame.new(-1.70565486, 0.469353855, 0.162862837, 0.82686162, 0.55728358, 0.0757693052, -0.414878726, 0.513436973, 0.751176, 0.379712611, -0.652546048, 0.655748963) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4646 | CFrame.new(0.757160306, -1.48393714, -0.193787217, 0.601814985, 0.305624545, -0.737842917, -2.98023224E-8, 0.923879623, 0.382683486, 0.798635662, -0.230304718, 0.556004763) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4647 | CFrame.new(-0.908789515, -1.60188651, -0.0663503706, 0.696367741, 0.548584938, -0.462741733, -0.173660636, 0.7544052, 0.633021533, 0.696362019, -0.360454619, 0.620610356) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4648 | }, 0.6, false) | |
| 4649 | end | |
| 4650 | STDamage = false | |
| 4651 | attack = false | |
| 4652 | end | |
| 4653 | ||
| 4654 | ||
| 4655 | distance2__=0 | |
| 4656 | AdvancingFortress.FHead.face:remove() | |
| 4657 | ||
| 4658 | function Lattack() | |
| 4659 | attack = true | |
| 4660 | local S = CFuncs.Sound.Create("", Torso, 3, 1)
| |
| 4661 | S.Looped = true | |
| 4662 | if Long then | |
| 4663 | while Long and distance2__>-15 do-- max range | |
| 4664 | distance2__=distance2__-1 | |
| 4665 | ||
| 4666 | for i = 0, 1, 0.8 do | |
| 4667 | swait() | |
| 4668 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, distance2__), 0.5) | |
| 4669 | PlayAnimationFromTable({
| |
| 4670 | CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4671 | CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4672 | CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4673 | CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4674 | CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4675 | CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4676 | }, 0.8, false) | |
| 4677 | end | |
| 4678 | ||
| 4679 | end | |
| 4680 | for i = 0, 1, 0.8 do | |
| 4681 | swait() | |
| 4682 | PlayAnimationFromTable({
| |
| 4683 | CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, -1, 0), | |
| 4684 | CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4685 | CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4686 | CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4687 | CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4688 | CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4689 | }, 0.8, false) | |
| 4690 | end | |
| 4691 | CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
| |
| 4692 | MagnitudeDamage(HitboxL, 5, 4, 50, 0, "Normal", "260430117", 1) | |
| 4693 | PlayAnimationFromTable({
| |
| 4694 | CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 1, 0), | |
| 4695 | CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4696 | CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4697 | CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4698 | CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4699 | CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4700 | }, 0.8, false) | |
| 4701 | end | |
| 4702 | wait(1) | |
| 4703 | distance2__=0 | |
| 4704 | STDamage = false | |
| 4705 | attack = false | |
| 4706 | end | |
| 4707 | ||
| 4708 | ||
| 4709 | ||
| 4710 | ||
| 4711 | function weld5(part0, part1, c0, c1) | |
| 4712 | local weeld = Instance.new("Weld", part0)
| |
| 4713 | weeld.Part0 = part0 | |
| 4714 | weeld.Part1 = part1 | |
| 4715 | weeld.C0 = c0 | |
| 4716 | weeld.C1 = c1 | |
| 4717 | return weeld | |
| 4718 | end | |
| 4719 | local Grab = false | |
| 4720 | function GRABEMBOIGRABEM() | |
| 4721 | attack = true | |
| 4722 | gp = nil | |
| 4723 | con1 = HitboxR.Touched:connect(function(hit) | |
| 4724 | local ht = hit.Parent | |
| 4725 | local hum1 = ht:FindFirstChild("Humanoid")
| |
| 4726 | if Grab == false then | |
| 4727 | if hum1 ~= nil and hit.Parent ~= Character then | |
| 4728 | hum1.PlatformStand = true | |
| 4729 | gp = ht | |
| 4730 | Grab = true | |
| 4731 | local asd = weld5(RightArm, ht:FindFirstChild("Torso"), CFrame.new(0, -1.5, 0), CFrame.new(0, 0, 0))
| |
| 4732 | asd.Parent = RightArm | |
| 4733 | asd.Name = "asd" | |
| 4734 | asd.C0 = asd.C0 * CFrame.Angles(math.rad(-90), 0, 0) | |
| 4735 | CFuncs.Sound.Create("200632821", Torso, 1, 1)
| |
| 4736 | elseif hum1 == nil then | |
| 4737 | con1:disconnect() | |
| 4738 | wait() | |
| 4739 | return | |
| 4740 | end | |
| 4741 | end | |
| 4742 | end) | |
| 4743 | for i = 0, 1, 0.2 do | |
| 4744 | swait() | |
| 4745 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.3) | |
| 4746 | PlayAnimationFromTable({
| |
| 4747 | CFrame.new(-1.08022243E-4, -0.233785003, -0.0873367637, 0.499999821, -1.78813863E-7, -0.866025507, 0.150383934, 0.984807789, 0.0868239477, 0.852868676, -0.173648283, 0.492403716) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4748 | CFrame.new(-1.2665987E-7, 1.49999368, -1.02072954E-6, 0.573575675, 0.0713936985, 0.816035628, -5.01982868E-7, 0.996194899, -0.0871551931, -0.819152594, 0.049989678, 0.571393132) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4749 | CFrame.new(1.47017705, 0.884583473, 0.0280318335, 0.886720777, -0.205462068, 0.414139926, 0.236241817, -0.568640172, -0.787933052, 0.397386849, 0.796513736, -0.455686152) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4750 | CFrame.new(-1.76647317, 0.409804255, -0.03838256, 0.444113791, 0.836516619, -0.320940912, -0.836516619, 0.258818626, -0.482962757, -0.320940822, 0.482962757, 0.814704895) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4751 | CFrame.new(0.838749349, -1.98392951, 0.15807499, 0.830397308, -0.277826965, 0.48296237, 0.167731524, 0.951251447, 0.258818328, -0.53132534, -0.133914024, 0.836516857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4752 | CFrame.new(-0.811016142, -1.63281643, -0.179561377, 0.642214835, 0.00870995224, 0.76647532, -0.0151349902, 0.999884725, 0.00131897628, -0.766375303, -0.0124476701, 0.642272472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4753 | }, 0.3, false) | |
| 4754 | end | |
| 4755 | for i = 0, 1, 0.1 do | |
| 4756 | swait() | |
| 4757 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -6), 0.3) | |
| 4758 | PlayAnimationFromTable({
| |
| 4759 | CFrame.new(0.159273595, -0.292363107, -0.115490548, 0.0844330043, -0.144068986, 0.985959053, -0.357129037, 0.919379771, 0.164923266, -0.930231094, -0.366039604, 0.0261747837) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4760 | CFrame.new(4.81307507E-6, 1.49999106, -3.65450978E-6, 0.171444774, -0.100317284, -0.980072975, -0.0616287738, 0.991762042, -0.11229457, 0.983264267, 0.0796530023, 0.163850009) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4761 | CFrame.new(1.73932612, 1.06159639, 0.141945362, -0.153680667, -0.913934886, 0.375639945, 0.659919798, -0.377877831, -0.649395287, 0.735450923, 0.148092732, 0.661196351) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4762 | CFrame.new(-1.68730593, 0.429691374, -0.418232322, 0.633863091, 0.519853055, -0.57268703, -0.772902489, 0.453472316, -0.443829596, 0.028971523, 0.723958433, 0.689235032) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4763 | CFrame.new(0.51381135, -1.74729896, 0.0663300753, 0.422899842, 0.615153313, -0.665388703, -0.0435856879, 0.747240186, 0.66312325, 0.905127704, -0.251433372, 0.342819571) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4764 | CFrame.new(-0.991570175, -1.5009346, -0.1830419, 0.415304065, 0.586875141, -0.695054054, -0.166150108, 0.800146103, 0.576333642, 0.894380629, -0.123870395, 0.429813296) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4765 | }, 0.3, false) | |
| 4766 | end | |
| 4767 | if Grab == true then | |
| 4768 | for i = 1, 5 do | |
| 4769 | for i = 0, 1, 0.35 do | |
| 4770 | swait() | |
| 4771 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 13, -6), 0.3) | |
| 4772 | PlayAnimationFromTable({
| |
| 4773 | CFrame.new(-0.0701122433, -0.336599797, -0.467321932, 0.694850504, -0.140219957, -0.70535183, 0.704946458, 0.326802045, 0.629484713, 0.142244101, -0.934633017, 0.325926095) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4774 | CFrame.new(-3.05473804E-6, 1.49998987, 8.94069672E-7, 0.707109332, 0.122785509, 0.696362555, 1.49011612E-6, 0.984807491, -0.173649877, -0.707104206, 0.122789055, 0.696367502) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4775 | CFrame.new(1.23286271, 0.549701929, -0.640782475, 0.740093768, 0.612683415, 0.277277708, 0.0735714883, 0.336068332, -0.938959956, -0.668469429, 0.715318501, 0.203645304) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4776 | CFrame.new(-1.63418663, 0.202915072, -0.0286649466, 0.865367413, 0.490698665, 0.101754986, -0.445756227, 0.846484005, -0.291146517, -0.228999093, 0.206590697, 0.951251805) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4777 | CFrame.new(0.702593744, -1.71321297, 0.369734973, 0.965928972, -0.148447216, 0.212003857, 1.10641122E-6, 0.819153726, 0.573574424, -0.258809477, -0.554031372, 0.791244447) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4778 | CFrame.new(-0.577289343, -1.34221494, -0.247686923, 0.766049445, -0.219846189, 0.604016602, 1.58697367E-6, 0.939692199, 0.342021465, -0.642781496, -0.262004316, 0.719851196) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4779 | }, 0.4, false) | |
| 4780 | end | |
| 4781 | for i = 0, 1, 0.3 do | |
| 4782 | swait() | |
| 4783 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -6), 0.3) | |
| 4784 | PlayAnimationFromTable({
| |
| 4785 | CFrame.new(-0.170705646, -0.774955988, -0.472947001, 0.827218175, 0.130671635, 0.546475112, -0.561879098, 0.194839522, 0.803946257, -0.00142200035, -0.972091854, 0.234596446) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4786 | CFrame.new(-1.76951289E-7, 1.49999058, 2.2649765E-6, 0.80180192, -0.161171481, -0.575445414, 0.176131338, 0.983905077, -0.0301590711, 0.571044207, -0.0771723837, 0.817283988) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4787 | CFrame.new(1.59014189, 0.537312388, -0.263691217, 0.798337102, -0.524361372, 0.296147287, 0.455999702, 0.205153137, -0.866011977, 0.393347621, 0.826412499, 0.402889967) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4788 | CFrame.new(-1.41546631, 0.414666086, 0.337005794, 0.716736436, 0.581529975, 0.384852976, -0.56681174, 0.807305396, -0.164264664, -0.406218559, -0.100404784, 0.908243656) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4789 | CFrame.new(0.793360233, -1.59947133, 0.0620805621, 0.876221955, -0.148448378, -0.458477885, 0.368687749, 0.81915307, 0.439383447, 0.310339272, -0.55403173, 0.772486985) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4790 | CFrame.new(-0.535338402, -1.81867206, 0.817932665, 0.829598367, 0.11430642, -0.546535134, 0.32139504, 0.702652454, 0.634810925, 0.456587166, -0.702291727, 0.546181798) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4791 | }, 0.7, false) | |
| 4792 | end | |
| 4793 | local hit, pos = rayCast(HitboxR.Position, CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0)).lookVector, 100, Character) | |
| 4794 | if hit ~= nil then | |
| 4795 | MagnitudeDamage(HitboxR, 5, 10, 30, 0, "Normal", "610359515", 1.3) | |
| 4796 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 1, 1, 1, 0.7, 0.7, 0.7, 0.09, 1)
| |
| 4797 | Effects.Wave.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 1, 1, 1, 0.7, 0.7, 0.7, 0.09)
| |
| 4798 | Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 3, 3, 3, 5, 5, 5, 0.09)
| |
| 4799 | end | |
| 4800 | end | |
| 4801 | end | |
| 4802 | for i, v in pairs(RightArm:GetChildren()) do | |
| 4803 | if v.Name == "asd" and v:IsA("Weld") then
| |
| 4804 | v:Remove() | |
| 4805 | end | |
| 4806 | end | |
| 4807 | Grab = false | |
| 4808 | con1:disconnect() | |
| 4809 | attack = false | |
| 4810 | end | |
| 4811 | local IsWearingArmor = false | |
| 4812 | function Armor(Mode) | |
| 4813 | attack = true | |
| 4814 | if IsWearingArmor == false and Mode == "On" then | |
| 4815 | IsWearingArmor = true | |
| 4816 | Disappear() | |
| 4817 | swait(10) | |
| 4818 | ReappearArmorOnly() | |
| 4819 | Character.Humanoid.MaxHealth = 500 | |
| 4820 | Character.Humanoid.Health = 500 | |
| 4821 | AHandleRWeld.Part0 = Character["Right Arm"] | |
| 4822 | AHandleLWeld.Part0 = Character["Left Arm"] | |
| 4823 | for i, v in pairs(AdvancingFortress:GetChildren()) do | |
| 4824 | if v:IsA("BasePart") then
| |
| 4825 | v.Transparency = 1 | |
| 4826 | end | |
| 4827 | end | |
| 4828 | for i, v in pairs(Character:GetChildren()) do | |
| 4829 | if v:IsA("Accessory") then
| |
| 4830 | v.Handle.Transparency = 1 | |
| 4831 | end | |
| 4832 | end | |
| 4833 | elseif IsWearingArmor == true and Mode == "Off" then | |
| 4834 | IsWearingArmor = false | |
| 4835 | DisappearArmorOnly() | |
| 4836 | for i, v in pairs(Character:GetChildren()) do | |
| 4837 | if v:IsA("Accessory") then
| |
| 4838 | v.Handle.Transparency = 0 | |
| 4839 | end | |
| 4840 | end | |
| 4841 | swait(10) | |
| 4842 | Reappear() | |
| 4843 | Character.Humanoid.MaxHealth = 100 | |
| 4844 | Character.Humanoid.Health = 100 | |
| 4845 | ||
| 4846 | AHandleRWeld.Part0 = RightArm | |
| 4847 | AHandleLWeld.Part0 = LeftArm | |
| 4848 | ||
| 4849 | for i, v in pairs(AdvancingFortress:GetChildren()) do | |
| 4850 | if v:IsA("BasePart") then
| |
| 4851 | v.Transparency = 0 | |
| 4852 | end | |
| 4853 | end | |
| 4854 | end | |
| 4855 | attack = false | |
| 4856 | end | |
| 4857 | local ShieldMode = false | |
| 4858 | local ShieldCharge = false | |
| 4859 | function HoloHexShield() | |
| 4860 | attack = true | |
| 4861 | Shield.Parent = m | |
| 4862 | Shield.CanCollide = true | |
| 4863 | if ShieldMode == true then | |
| 4864 | while ShieldMode == true do | |
| 4865 | swait() | |
| 4866 | Effects.Elec.Create(Shield.CFrame, 6, 6, 6) | |
| 4867 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3) | |
| 4868 | PlayAnimationFromTable({
| |
| 4869 | CFrame.new(-1.35600567E-6, -0.00759640103, -0.0868249983, 0.499999046, -1.78813579E-7, -0.866026044, 0.150384009, 0.984807789, 0.0868238211, 0.852869093, -0.173648283, 0.492402941) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4870 | CFrame.new(1.49011612E-7, 1.4999963, -2.08616257E-7, 0.499999046, 0.0754797831, 0.862731695, -1.78813579E-7, 0.996196151, -0.0871563852, -0.866026044, 0.0435779616, 0.498097092) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4871 | CFrame.new(1.50238657, 0.320674658, 0.252193451, 0.855209947, -0.376432747, -0.356249839, 0.469514668, 0.853786647, 0.224954769, 0.219480619, -0.35964793, 0.906907678) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4872 | CFrame.new(-0.944740474, 0.689363539, -0.718644142, 0.836517215, -0.545084715, 0.0558781698, -0.258834839, -0.482974619, -0.836504936, 0.482953727, 0.685287297, -0.545103252) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4873 | CFrame.new(0.61525929, -1.85127568, 0.120779425, 0.928754449, -0.162676111, 0.333104134, 0.0394990072, 0.93689239, 0.347407103, -0.368597984, -0.309496939, 0.876555264) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4874 | CFrame.new(-0.849455297, -1.60697818, -0.270956695, 0.696359396, -0.136922374, 0.704511464, -0.122786656, 0.944430828, 0.30491665, -0.707112312, -0.298836082, 0.640850842) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4875 | }, 0.3, false) | |
| 4876 | end | |
| 4877 | end | |
| 4878 | Shield.CanCollide = false | |
| 4879 | CFuncs.Sound.Create("200632211", HitboxR, 1, 0.8)
| |
| 4880 | CFuncs.Sound.Create("200632875", HitboxR, 1, 0.9)
| |
| 4881 | Character.HumanoidRootPart.Velocity = Character.HumanoidRootPart.CFrame.lookVector * 160 | |
| 4882 | Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
| |
| 4883 | for i = 0, 1, 0.05 do | |
| 4884 | swait() | |
| 4885 | MagnitudeDamage(Shield, 5, 10, 15, 20, "Normal", "610359515", 1.3) | |
| 4886 | Effects.Elec.Create(Shield.CFrame, 6, 6, 6) | |
| 4887 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -3), 1) | |
| 4888 | PlayAnimationFromTable({
| |
| 4889 | CFrame.new(8.64267349E-7, -0.183445007, -0.748600185, 0.499999046, -1.19209105E-7, -0.866026044, 0.496732056, 0.819152176, 0.28678751, 0.709407032, -0.573576331, 0.409575343) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4890 | CFrame.new(-7.15255737E-7, 1.50001967, -6.2584877E-7, 0.499999046, 0.36600244, 0.784893453, -1.19209105E-7, 0.90631634, -0.42262283, -0.866026044, 0.211310923, 0.453157306) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4891 | CFrame.new(1.76569033, 0.610707581, 0.171269983, 0.658267856, -0.680293143, -0.322312057, 0.725086272, 0.457917482, 0.514355659, -0.202320263, -0.572288036, 0.794703186) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4892 | CFrame.new(-1.07552779, 1.01543474, -0.975205183, 0.645357251, -0.653341353, -0.39580214, -0.64124006, -0.181770697, -0.745500326, 0.4151209, 0.734918237, -0.536255598) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4893 | CFrame.new(0.630614281, -1.76328135, 0.440194428, 0.866077662, -0.24334389, 0.436684549, -0.0614839792, 0.815044224, 0.57612747, -0.496114343, -0.525820255, 0.69092983) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4894 | CFrame.new(-0.857700765, -1.25810766, -0.239681423, 0.499215126, -0.257185757, 0.827429712, -0.238765404, 0.877132356, 0.416689515, -0.832931936, -0.405579239, 0.376470625) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4895 | }, 0.5, false) | |
| 4896 | end | |
| 4897 | Shield.Parent = nil | |
| 4898 | attack = false | |
| 4899 | end | |
| 4900 | Mouse.Button1Down:connect(function() | |
| 4901 | if attack == false and attacktype == 1 then | |
| 4902 | attacktype = 2 | |
| 4903 | attackone() | |
| 4904 | elseif attack == false and attacktype == 2 then | |
| 4905 | attacktype = 1 | |
| 4906 | attacktwo() | |
| 4907 | end | |
| 4908 | end) | |
| 4909 | game.Lighting.Outlines = false | |
| 4910 | function attackone() | |
| 4911 | attack = true | |
| 4912 | for i = 0, 1, 0.12 do | |
| 4913 | swait() | |
| 4914 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3) | |
| 4915 | PlayAnimationFromTable({
| |
| 4916 | CFrame.new(1.51857734E-4, -0.310488015, -0.087417841, 0.707106054, 5.26835073E-8, -0.707107484, 0.122787014, 0.984807968, 0.122786865, 0.696365058, -0.173646957, 0.696363688) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4917 | CFrame.new(0.101928703, 1.50244772, -0.0383823365, 0.76589334, 0.0762532279, 0.638430059, -0.0196644422, 0.995256186, -0.095281601, -0.642666996, 0.0604211651, 0.763759375) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4918 | CFrame.new(1.01774633, 0.557527065, -0.776187301, 0.541353703, 0.741649806, 0.396095604, 0.711713314, -0.153383806, -0.685520053, -0.447661191, 0.653015316, -0.610876858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4919 | CFrame.new(-1.07208586, 0.264054269, -0.716768324, 0.529938459, -0.260122895, -0.807156265, -0.752277017, 0.295165181, -0.589030504, 0.39146477, 0.919355154, -0.039265126) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4920 | CFrame.new(0.81415844, -1.89738977, 0.144144416, 0.866025925, -0.171008825, 0.469845951, -1.40815973E-6, 0.939692497, 0.342020512, -0.499999285, -0.296199232, 0.813797772) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4921 | CFrame.new(-0.818738878, -1.59999573, -0.397991776, 0.642786622, 0.0667650178, 0.763130188, 4.3399632E-7, 0.99619472, -0.0871558338, -0.766045213, 0.0560229495, 0.640340626) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4922 | }, 0.3, false) | |
| 4923 | end | |
| 4924 | MagnitudeDamage(HitboxR, 7, 10, 15, math.random(1, 3), "Normal", "260430079", 1) | |
| 4925 | CFuncs.Sound.Create("200632136", HitboxR, 1, 1)
| |
| 4926 | RootPart.Velocity = RootPart.CFrame.lookVector * 40 | |
| 4927 | for i = 0, 1, 0.11 do | |
| 4928 | swait() | |
| 4929 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3) | |
| 4930 | PlayAnimationFromTable({
| |
| 4931 | CFrame.new(0.31380862, -0.320521832, 0.0252371654, 0.249517962, -0.150383011, 0.956622124, -0.0458769947, 0.984923244, 0.166798219, -0.967282891, -0.0855060965, 0.238856897) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4932 | CFrame.new(0.101926193, 1.50244832, -0.0383800864, 0.337979913, 0.0762555003, -0.938059092, -0.0828148723, 0.995255768, 0.051067099, 0.937502801, 0.0604255944, 0.342691481) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4933 | CFrame.new(1.96121001, 0.774859428, -0.462411612, 0.340120375, -0.92077136, 0.191045195, 0.466549307, -0.0111669078, -0.884424806, 0.816486418, 0.389942825, 0.42578721) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4934 | CFrame.new(-1.36170578, 0.526111126, -0.597925961, 0.81348151, -0.212761745, -0.541276693, -0.539894938, 0.0697831511, -0.838834763, 0.216243982, 0.974609077, -0.0581016839) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4935 | CFrame.new(0.970680714, -1.68610644, -0.0975568295, 0.579166114, -0.127570763, -0.805166125, 0.110368893, 0.990856647, -0.0776019096, 0.807703912, -0.0439208932, 0.587950349) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4936 | CFrame.new(-0.827146292, -1.8113209, -0.0556658059, 0.816036701, 0.217413262, -0.535551846, -0.0871567726, 0.962250471, 0.257832885, 0.571391284, -0.163724124, 0.804180741) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4937 | }, 0.45, false) | |
| 4938 | end | |
| 4939 | attack = false | |
| 4940 | end | |
| 4941 | function attacktwo() | |
| 4942 | attack = true | |
| 4943 | for i = 0, 1, 0.12 do | |
| 4944 | swait() | |
| 4945 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3) | |
| 4946 | PlayAnimationFromTable({
| |
| 4947 | CFrame.new(-0.0382043272, -0.447743475, -0.209081307, 0.653245032, -0.0733856931, 0.753581822, -0.271655023, 0.906307638, 0.323743671, -0.706735075, -0.416198224, 0.572105408) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4948 | CFrame.new(-2.74181366E-6, 1.49999321, -3.4570694E-6, 0.707105815, -0.183012873, -0.683013678, -8.7171793E-7, 0.965925694, -0.258819759, 0.707107782, 0.183013588, 0.683011472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4949 | CFrame.new(1.65075588, 0.743636727, -0.356577665, 0.542998552, -0.115416825, 0.831764221, 0.839699984, 0.0834951103, -0.536593378, -0.00751632452, 0.989801884, 0.142253295) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4950 | CFrame.new(-1.08620656, -0.00580590963, -0.864283919, 0.656464815, -0.698875248, 0.283949524, 0.478162557, 0.0943745971, -0.873186052, 0.583450615, 0.708990037, 0.396129608) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4951 | CFrame.new(0.856426239, -1.40340364, -0.356423855, 0.707105279, -0.122788861, -0.696365654, 9.42498446E-7, 0.98480767, -0.173648372, 0.707108438, 0.122787014, 0.696362913) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4952 | CFrame.new(-0.695387185, -1.90375674, -0.304245114, 0.92541647, 0.246137589, -0.288133472, -0.173648298, 0.951251149, 0.254887551, 0.336824656, -0.185843274, 0.923044682) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4953 | }, 0.34, false) | |
| 4954 | end | |
| 4955 | MagnitudeDamage(HitboxL, 7, 10, 15, math.random(1, 3), "Normal", "260430079", 1.1) | |
| 4956 | CFuncs.Sound.Create("200632136", HitboxL, 1, 1)
| |
| 4957 | RootPart.Velocity = RootPart.CFrame.lookVector * 40 | |
| 4958 | for i = 0, 1, 0.12 do | |
| 4959 | swait() | |
| 4960 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3) | |
| 4961 | PlayAnimationFromTable({
| |
| 4962 | CFrame.new(-0.479634404, -0.393727064, -0.220339894, 0.248309121, 0.219825819, -0.94340837, 0.019257009, 0.972597659, 0.231695861, 0.968489468, -0.0756994039, 0.237271711) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4963 | CFrame.new(-4.01586294E-6, 1.4999907, -1.59628689E-6, 0.237956509, -0.0991817266, 0.966198623, 0.22414881, 0.973527908, 0.0447304621, -0.945057809, 0.205928385, 0.253888786) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4964 | CFrame.new(1.08192515, 0.657660127, -1.1749661, 0.228772208, 0.493058115, 0.839379132, 0.874719322, 0.27430138, -0.399530977, -0.427234828, 0.825622678, -0.368534833) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4965 | CFrame.new(-1.23054802, 1.29996836, -0.754827142, 0.94838953, -0.316170156, 0.0243683457, -0.269034386, -0.84291333, -0.465958893, 0.167862713, 0.43535465, -0.88447094) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4966 | CFrame.new(0.839919031, -1.81287205, 0.0102108568, 0.808574855, -0.267538428, 0.524051666, 0.171010748, 0.95905602, 0.22575888, -0.562994003, -0.0929245204, 0.821220458) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 4967 | CFrame.new(-0.846072078, -1.7213496, -0.247524291, 0.693717241, 0.0689389557, 0.716940701, -0.0478171073, 0.997620881, -0.0496601462, -0.718658566, 1.68083934E-4, 0.695363283) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 4968 | }, 0.45, false) | |
| 4969 | end | |
| 4970 | attack = false | |
| 4971 | end | |
| 4972 | function findNearestTorso(pos) | |
| 4973 | local list = game.Workspace:children() | |
| 4974 | local torso | |
| 4975 | local dist = 1000 | |
| 4976 | local temp, human, temp2 | |
| 4977 | for x = 1, #list do | |
| 4978 | temp2 = list[x] | |
| 4979 | if temp2.className == "Model" and temp2.Name ~= Character.Name then | |
| 4980 | temp = temp2:findFirstChild("Torso")
| |
| 4981 | human = temp2:findFirstChild("Humanoid")
| |
| 4982 | if temp ~= nil and human ~= nil and human.Health > 0 and dist > (temp.Position - pos).magnitude then | |
| 4983 | local dohit = true | |
| 4984 | if dohit == true then | |
| 4985 | torso = temp | |
| 4986 | dist = (temp.Position - pos).magnitude | |
| 4987 | end | |
| 4988 | end | |
| 4989 | end | |
| 4990 | end | |
| 4991 | return torso, dist | |
| 4992 | end | |
| 4993 | function TrueAim(aim) | |
| 4994 | local target, distance = findNearestTorso(Mouse.Hit.p) | |
| 4995 | local tehcf = HitboxR.CFrame * CFrame.fromEulerAnglesXYZ(1.57, 0, 0).lookVector | |
| 4996 | if aim ~= nil then | |
| 4997 | tehcf = aim | |
| 4998 | end | |
| 4999 | table.insert(Effects, {
| |
| 5000 | tehcf, | |
| 5001 | "Shoot", | |
| 5002 | 30, | |
| 5003 | HitboxR.Position, | |
| 5004 | 10, | |
| 5005 | 15, | |
| 5006 | 0, | |
| 5007 | 3, | |
| 5008 | HitboxR, | |
| 5009 | target | |
| 5010 | }) | |
| 5011 | end | |
| 5012 | function FireProjectiles() | |
| 5013 | attack = true | |
| 5014 | Humanoid.WalkSpeed = 20 | |
| 5015 | CFuncs.Sound.Create("300915902", HitboxR, 1, 0.8)
| |
| 5016 | for i = 0, 1, 0.1 do | |
| 5017 | swait() | |
| 5018 | Effects.Elec.Create(HitboxR.CFrame, 2, 2, 2) | |
| 5019 | PlayAnimationFromTable({
| |
| 5020 | CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5021 | CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5022 | CFrame.new(0.874554753, 1.14087927, -1.06730831, -0.166365892, 0.198266983, 0.965925813, 0.797995508, -0.548363924, 0.250000268, 0.579245627, 0.812396049, -0.0669871047) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5023 | CFrame.new(-0.257126778, 1.24225974, -0.962940335, 0.692363203, -0.593008757, -0.411064416, -0.708803177, -0.665577948, -0.233675212, -0.135024026, 0.453151852, -0.88114804) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5024 | CFrame.new(0.604643881, -1.9909004, 0.0280392915, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5025 | CFrame.new(-0.604644895, -1.99090064, 0.0280393362, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 5026 | }, 0.3, false) | |
| 5027 | end | |
| 5028 | for i = 0, 1, 0.1 do | |
| 5029 | swait() | |
| 5030 | Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3) | |
| 5031 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
| |
| 5032 | Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
| |
| 5033 | PlayAnimationFromTable({
| |
| 5034 | CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5035 | CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5036 | CFrame.new(0.661153734, 0.568759024, -0.827975571, -0.166752055, 0.025078943, 0.985679924, 0.98324734, -0.0704026297, 0.168131784, 0.0736110285, 0.99720335, -0.012919019) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5037 | CFrame.new(-0.390097797, 0.861622274, -0.554995477, 0.351840883, -0.837056041, -0.418981194, -0.935129642, -0.294365793, -0.197183579, 0.0417199843, 0.461178988, -0.886325777) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5038 | CFrame.new(0.604644954, -1.9909004, 0.0280390829, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5039 | CFrame.new(-0.604644775, -1.99090064, 0.0280380547, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 5040 | }, 0.2, false) | |
| 5041 | end | |
| 5042 | for i = 1, 10 do | |
| 5043 | for i = 0, 1, 0.3 do | |
| 5044 | swait() | |
| 5045 | Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3) | |
| 5046 | Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
| |
| 5047 | PlayAnimationFromTable({
| |
| 5048 | CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5049 | CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5050 | CFrame.new(0.661153734, 0.568759024, -0.827975571, -0.166752055, 0.025078943, 0.985679924, 0.98324734, -0.0704026297, 0.168131784, 0.0736110285, 0.99720335, -0.012919019) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5051 | CFrame.new(-0.390097797, 0.861622274, -0.554995477, 0.351840883, -0.837056041, -0.418981194, -0.935129642, -0.294365793, -0.197183579, 0.0417199843, 0.461178988, -0.886325777) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5052 | CFrame.new(0.604644954, -1.9909004, 0.0280390829, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5053 | CFrame.new(-0.604644775, -1.99090064, 0.0280380547, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 5054 | }, 0.3, false) | |
| 5055 | end | |
| 5056 | CFuncs.Sound.Create("300916105", HitboxR, 1, 1.2)
| |
| 5057 | CFuncs.Sound.Create("300916014", HitboxR, 1, 1)
| |
| 5058 | Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 2, 2, 2, 0.07)
| |
| 5059 | local MouseLook = CFrame.new((HitboxR.Position + Mouse.Hit.p) / 2, Mouse.Hit.p) | |
| 5060 | TrueAim(MouseLook.lookVector) | |
| 5061 | for i = 0, 1, 0.3 do | |
| 5062 | swait() | |
| 5063 | Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3) | |
| 5064 | Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
| |
| 5065 | PlayAnimationFromTable({
| |
| 5066 | CFrame.new(1.90734863E-6, -0.25291419, 0.238341585, 1, 0, 0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5067 | CFrame.new(0, 1.49999189, -1.1920929E-6, 1, 0, 0, 0, 0.98480767, 0.173648626, 0, -0.173648626, 0.98480767) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5068 | CFrame.new(0.689965963, 0.767623663, -0.856841147, -0.544456005, 0.160545677, 0.823281765, 0.798456132, -0.201499581, 0.567332089, 0.256973624, 0.966241658, -0.0184810348) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5069 | CFrame.new(-0.392649293, 0.920519292, -0.977094412, 0.403439909, -0.887421727, -0.222977459, -0.91384387, -0.378501445, -0.147058249, 0.0461054072, 0.263095737, -0.963667512) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5070 | CFrame.new(0.598512471, -1.89166105, 0.0173719227, 0.962250233, -0.061308533, -0.265171409, 0.0871564373, 0.992403805, 0.0868248865, 0.257834017, -0.106658652, 0.960284173) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5071 | CFrame.new(-0.598512232, -1.89166129, 0.0173728764, 0.962250233, 0.061308533, 0.265171409, -0.0871564373, 0.992403805, 0.0868248865, -0.257834017, -0.106658652, 0.960284173) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0) | |
| 5072 | }, 0.3, false) | |
| 5073 | end | |
| 5074 | end | |
| 5075 | Humanoid.WalkSpeed = 20 | |
| 5076 | attack = false | |
| 5077 | end | |
| 5078 | SHRA=false | |
| 5079 | ||
| 5080 | Check=false | |
| 5081 | dimension=workspace | |
| 5082 | Mouse.KeyUp:connect(function(k) | |
| 5083 | if k=='e' then | |
| 5084 | Long=false | |
| 5085 | end | |
| 5086 | end) | |
| 5087 | reload2=false | |
| 5088 | hand=true -- collect hands | |
| 5089 | Mouse.KeyDown:connect(function(k) | |
| 5090 | k = k:lower() | |
| 5091 | if k=='r' and dimension==workspace then | |
| 5092 | Meg=Instance.new('Part')
| |
| 5093 | Meg.Parent=Character | |
| 5094 | Meg.CFrame=Mouse.Hit | |
| 5095 | Meg.Transparency=1 | |
| 5096 | Meg.CanCollide=false | |
| 5097 | Meg.Touched:connect(function(h) | |
| 5098 | if h.Parent~=Character or h.Parent~=workspace or h.Parent~=AdvancingFortress then | |
| 5099 | if h.Parent:findFirstChild('Torso')~=nil and h.Parent:findFirstChild('Humanoid')~=nil then
| |
| 5100 | enem=h.Parent | |
| 5101 | ||
| 5102 | end | |
| 5103 | end | |
| 5104 | end) | |
| 5105 | wait(.1) | |
| 5106 | if enem~=nil then | |
| 5107 | eclone(enem.Torso) | |
| 5108 | ||
| 5109 | end | |
| 5110 | elseif k=='t' then | |
| 5111 | if dimension==workspace then | |
| 5112 | dimension=workspace.CurrentCamera | |
| 5113 | workspace.CurrentCamera.FieldOfView=180 | |
| 5114 | elseif dimension==workspace.CurrentCamera then | |
| 5115 | dimension=workspace | |
| 5116 | workspace.CurrentCamera.FieldOfView=70 | |
| 5117 | end | |
| 5118 | Character.Parent=dimension | |
| 5119 | elseif k=='y' then | |
| 5120 | if YOURCLONE~=nil then | |
| 5121 | Sav=YOURCLONE.Torso.CFrame | |
| 5122 | Sav2=YOURCLONE.Humanoid.Health | |
| 5123 | YOURCLONE.Torso.CFrame=Character.Torso.CFrame | |
| 5124 | Character.Torso.CFrame=Sav | |
| 5125 | YOURCLONE.Humanoid.Health=Character.Humanoid.Health | |
| 5126 | Character.Humanoid.Health=Sav2 | |
| 5127 | end | |
| 5128 | if YOURCLONE== nil then | |
| 5129 | yclone() | |
| 5130 | end | |
| 5131 | end | |
| 5132 | if dimension==workspace then | |
| 5133 | if k=='f' and IsWearingArmor == false and Invisible == false and reload2==false then | |
| 5134 | reload2=true | |
| 5135 | M=Instance.new('Part',Character)
| |
| 5136 | M.Shape='Ball' | |
| 5137 | M.Material='Glass' | |
| 5138 | M.BrickColor=BrickColor.new('Gold')
| |
| 5139 | M.Transparency=.5 | |
| 5140 | M.Position=Character.Torso.Position | |
| 5141 | M.Size=Vector3.new(10,10,10) | |
| 5142 | M.CanCollide=false | |
| 5143 | M.Touched:connect(function(h) | |
| 5144 | if h.Parent~=Character or h.Parent~=workspace or h.Parent~=AdvancingFortress or h.Parent~=MEF then | |
| 5145 | if h:IsA('Part') and h.Anchored==false then
| |
| 5146 | h.Velocity=Vector3.new(math.random(-70,70),math.random(40,50),math.random(-70,70)) | |
| 5147 | end | |
| 5148 | end | |
| 5149 | end) | |
| 5150 | W=Instance.new('Weld',Character)
| |
| 5151 | W.Part0=M | |
| 5152 | W.Part1=Character.Torso | |
| 5153 | wait(10) | |
| 5154 | M:remove() | |
| 5155 | wait(10) | |
| 5156 | reload2=false | |
| 5157 | end | |
| 5158 | if k=='e' and IsWearingArmor == false and Invisible == false then | |
| 5159 | Long=true | |
| 5160 | Lattack() | |
| 5161 | end | |
| 5162 | if attack == false and ora == false and k == "z" and IsWearingArmor == false and Invisible == false then | |
| 5163 | ora = true | |
| 5164 | ORA() | |
| 5165 | elseif attack == false and k == "x" and IsWearingArmor == false and Invisible == false then | |
| 5166 | GRABEMBOIGRABEM() | |
| 5167 | elseif attack == false and k=='g' then | |
| 5168 | -- FireProjectiles()--thats lame | |
| 5169 | if changeidle==1 then | |
| 5170 | changeidle=2 | |
| 5171 | else changeidle=1 | |
| 5172 | end | |
| 5173 | ||
| 5174 | end | |
| 5175 | end | |
| 5176 | ||
| 5177 | if attack == false and k == "q" and Invisible == false and IsWearingArmor == false then | |
| 5178 | Invisible = true | |
| 5179 | Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1)
| |
| 5180 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1, 1)
| |
| 5181 | Disappear() | |
| 5182 | elseif attack == false and k == "q" and Invisible == true and IsWearingArmor == false then | |
| 5183 | Invisible = false | |
| 5184 | Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.08)
| |
| 5185 | ||
| 5186 | for i = 1, 2 do | |
| 5187 | Effects.Block.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1, 1)
| |
| 5188 | end | |
| 5189 | for i = 1, 20 do | |
| 5190 | Effects.Break.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1)
| |
| 5191 | end | |
| 5192 | Reappear() | |
| 5193 | G=Instance.new('Sound',AdvancingFortress.FTorso)
| |
| 5194 | G.Name='FLEF' | |
| 5195 | G.SoundId='rbxassetid://1275713993' | |
| 5196 | G.Volume=3 | |
| 5197 | G:Play() | |
| 5198 | elseif attack == false and ShieldMode == false and k == "c" and IsWearingArmor == false and Invisible == false and dimension==workspace then | |
| 5199 | ShieldMode = true | |
| 5200 | HoloHexShield() | |
| 5201 | elseif attack == false and k == "v" and IsWearingArmor == false and Invisible == false and dimension==workspace then | |
| 5202 | CastleCrusherFist() | |
| 5203 | ||
| 5204 | end | |
| 5205 | --[[if k == "[" and IsWearingArmor == false and Invisible == false then | |
| 5206 | Armor("On")
| |
| 5207 | end | |
| 5208 | if k == "]" and IsWearingArmor == true and Invisible == false then | |
| 5209 | Armor("Off")
| |
| 5210 | end--]] | |
| 5211 | end) | |
| 5212 | ||
| 5213 | Mouse.KeyUp:connect(function(k) | |
| 5214 | k = k:lower() | |
| 5215 | if attack == true and ora == true and k == "z" and IsWearingArmor == false then | |
| 5216 | ora = false | |
| 5217 | elseif attack == true and ShieldMode == true and k == "c" and IsWearingArmor == false then | |
| 5218 | ShieldMode = false | |
| 5219 | end | |
| 5220 | end) | |
| 5221 | -- coroutine.resume(coroutine.create(function(Part, Part2) | |
| 5222 | -- while Part.Parent ~= nil do | |
| 5223 | -- swait(math.random(100, 150)) | |
| 5224 | -- for i = 0, 1, 0.2 do | |
| 5225 | -- wait() | |
| 5226 | -- Eye1.Mesh.Scale = Vector3.new(1, 0.7 - 1 * i, 1) | |
| 5227 | -- Eye2.Mesh.Scale = Vector3.new(1, 0.7 - 1 * i, 1) | |
| 5228 | -- end | |
| 5229 | -- for i = 0, 1, 0.2 do | |
| 5230 | -- swait() | |
| 5231 | -- Eye1.Mesh.Scale = Vector3.new(1, 0.7 + 0.3 * i, 1) | |
| 5232 | -- Eye2.Mesh.Scale = Vector3.new(1, 0.7 + 0.3 * i, 1) | |
| 5233 | -- end | |
| 5234 | -- end | |
| 5235 | -- end), Eye1, Eye2) | |
| 5236 | tfk=CFuncs.Sound.Create(1325068271, Character.Torso, 1.5, 1) | |
| 5237 | tfk.Name='THEME' | |
| 5238 | tfk.Looped=true | |
| 5239 | changeidle=1 | |
| 5240 | YOURCLONE=nil | |
| 5241 | candecide=true | |
| 5242 | Humanoid=Character.Humanoid | |
| 5243 | while true do | |
| 5244 | ||
| 5245 | ||
| 5246 | for _,v in pairs(AdvancingFortress.FTorso:GetChildren()) do | |
| 5247 | end | |
| 5248 | swait() | |
| 5249 | for i, v in pairs(Character:children()) do | |
| 5250 | if v:IsA("Part") and IsWearingArmor == true then
| |
| 5251 | v.Anchored = false | |
| 5252 | end | |
| 5253 | end | |
| 5254 | for i, v in pairs(AdvancingFortress:GetChildren()) do | |
| 5255 | if v:IsA("Part") then
| |
| 5256 | v.Material = "SmoothPlastic" | |
| 5257 | v.CanCollide = false | |
| 5258 | elseif v:IsA("Humanoid") then
| |
| 5259 | v:remove() | |
| 5260 | elseif v:IsA("Accessory") then
| |
| 5261 | v:remove() | |
| 5262 | elseif v:IsA("Shirt") then
| |
| 5263 | v:remove() | |
| 5264 | elseif v:IsA("Pants") then
| |
| 5265 | v:remove() | |
| 5266 | elseif v:IsA("Script") or v:IsA("LocalScript") then
| |
| 5267 | v:remove() | |
| 5268 | elseif v:IsA("BodyColors") then
| |
| 5269 | v:remove() | |
| 5270 | end | |
| 5271 | end | |
| 5272 | AHandleR.Transparency = 1 | |
| 5273 | AHandleL.Transparency = 1 | |
| 5274 | RootPart.Transparency = 1 | |
| 5275 | HitboxR.Transparency = 1 | |
| 5276 | HitboxL.Transparency = 1 | |
| 5277 | Head.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5278 | Torso.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5279 | RightArm.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5280 | LeftArm.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5281 | RightLeg.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5282 | LeftLeg.BrickColor = BrickColor.new("Pastel blue-green")
| |
| 5283 | RootPart.Anchored = true | |
| 5284 | Torsovelocity = (Character.HumanoidRootPart.Velocity * Vector3.new(1, 0, 1)).magnitude | |
| 5285 | velocity = Character.HumanoidRootPart.Velocity.y | |
| 5286 | sine = sine + change | |
| 5287 | Shield.Anchored = true | |
| 5288 | Shield.CFrame = Shield.CFrame:lerp(RootPart.CFrame * CFrame.new(0, 0, -3.2), 1) | |
| 5289 | local hit, pos = rayCast(Character.HumanoidRootPart.Position, CFrame.new(Character.HumanoidRootPart.Position, Character.HumanoidRootPart.Position - Vector3.new(0, 1, 0)).lookVector, 4, Character) | |
| 5290 | if Character.HumanoidRootPart.Velocity.y > 1 and hit == nil then | |
| 5291 | Anim = "Jump" | |
| 5292 | if attack == false then | |
| 5293 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5) | |
| 5294 | PlayAnimationFromTable({
| |
| 5295 | CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(.5, -1, 0), | |
| 5296 | CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, 1, 0), | |
| 5297 | CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5), | |
| 5298 | CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1), | |
| 5299 | CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5300 | CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0) | |
| 5301 | }, 0.3, false) | |
| 5302 | end | |
| 5303 | elseif Character.HumanoidRootPart.Velocity.y < -1 and hit == nil then | |
| 5304 | Anim = "Fall" | |
| 5305 | if attack == false then | |
| 5306 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5) | |
| 5307 | PlayAnimationFromTable({
| |
| 5308 | CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, -1, 1), | |
| 5309 | CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, 1, 0.5), | |
| 5310 | CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5), | |
| 5311 | CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1), | |
| 5312 | CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5313 | CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0) | |
| 5314 | }, 0.3, false) | |
| 5315 | end | |
| 5316 | elseif Torsovelocity < 1 and hit ~= nil then | |
| 5317 | Anim = "Idle" | |
| 5318 | if changeidle==1 then | |
| 5319 | if attack == false then | |
| 5320 | change = 1 | |
| 5321 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5) | |
| 5322 | PlayAnimationFromTable({
| |
| 5323 | CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, -1, 1), | |
| 5324 | CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, 1, 0.5), | |
| 5325 | CFrame.new(1.5,0,0) * CFrame.new(-1.2, 0, -.3) * CFrame.Angles(1.5, 0, -1.5), | |
| 5326 | CFrame.new(-1.5,0,0) * CFrame.new(1.5, 0.3, -.5) * CFrame.Angles(3, 0, 1), | |
| 5327 | CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5328 | CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0) | |
| 5329 | }, 0.3, false) | |
| 5330 | end | |
| 5331 | elseif changeidle==2 then | |
| 5332 | change = 1 | |
| 5333 | if not attack then | |
| 5334 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5) | |
| 5335 | PlayAnimationFromTable({
| |
| 5336 | CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5337 | CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5338 | CFrame.new(1.5,0,0) * CFrame.new(-1.5, 0.4, -.5) * CFrame.Angles(3, 0, -1), | |
| 5339 | CFrame.new(-1.5,0,0) * CFrame.new(1.5, 0.4, -.5) * CFrame.Angles(3, 0, 1), | |
| 5340 | CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5341 | CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0) | |
| 5342 | }, 0.3, false) | |
| 5343 | end | |
| 5344 | end | |
| 5345 | elseif Torsovelocity > 2 and hit ~= nil then | |
| 5346 | Anim = "Walk" | |
| 5347 | if attack == false then | |
| 5348 | RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5) | |
| 5349 | PlayAnimationFromTable({
| |
| 5350 | CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, -1, 0), | |
| 5351 | CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, 0, 0), | |
| 5352 | CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5), | |
| 5353 | CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1), | |
| 5354 | CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), | |
| 5355 | CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0) | |
| 5356 | }, 0.3, false) | |
| 5357 | end | |
| 5358 | end | |
| 5359 | if 0 < #Effects then | |
| 5360 | for e = 1, #Effects do | |
| 5361 | if Effects[e] ~= nil then | |
| 5362 | local Thing = Effects[e] | |
| 5363 | if Thing ~= nil then | |
| 5364 | local Part = Thing[1] | |
| 5365 | local Mode = Thing[2] | |
| 5366 | local Delay = Thing[3] | |
| 5367 | local IncX = Thing[4] | |
| 5368 | local IncY = Thing[5] | |
| 5369 | local IncZ = Thing[6] | |
| 5370 | if Thing[2] == "Shoot" then | |
| 5371 | local Look = Thing[1] | |
| 5372 | local move = 30 | |
| 5373 | if Thing[8] == 3 then | |
| 5374 | move = 10 | |
| 5375 | end | |
| 5376 | local hit, pos = rayCast(Thing[4], Thing[1], move, m) | |
| 5377 | if Thing[10] ~= nil then | |
| 5378 | da = pos | |
| 5379 | cf2 = CFrame.new(Thing[4], Thing[10].Position) | |
| 5380 | cfa = CFrame.new(Thing[4], pos) | |
| 5381 | tehCF = cfa:lerp(cf2, 0.2) | |
| 5382 | Thing[1] = tehCF.lookVector | |
| 5383 | end | |
| 5384 | local mag = (Thing[4] - pos).magnitude | |
| 5385 | Effects.Head.Create(Torso.BrickColor, CFrame.new((Thing[4] + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0), 1, mag * 5, 1, 0.5, 0, 0.5, 0.2) | |
| 5386 | if Thing[8] == 2 then | |
| 5387 | Effects.Ring.Create(Torso.BrickColor, CFrame.new((Thing[4] + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0) * CFrame.fromEulerAnglesXYZ(1.57, 0, 0), 1, 1, 0.1, 0.5, 0.5, 0.1, 0.1, 1) | |
| 5388 | end | |
| 5389 | Thing[4] = Thing[4] + Look * move | |
| 5390 | Thing[3] = Thing[3] - 1 | |
| 5391 | if 2 < Thing[5] then | |
| 5392 | Thing[5] = Thing[5] - 0.3 | |
| 5393 | Thing[6] = Thing[6] - 0.3 | |
| 5394 | end | |
| 5395 | if hit ~= nil then | |
| 5396 | Thing[3] = 0 | |
| 5397 | if Thing[8] == 1 or Thing[8] == 3 then | |
| 5398 | Damage(hit, hit, Thing[5], Thing[6], Thing[7], "Normal", RootPart, 0, "", 1) | |
| 5399 | elseif Thing[8] == 2 then | |
| 5400 | Damage(hit, hit, Thing[5], Thing[6], Thing[7], "Normal", RootPart, 0, "", 1) | |
| 5401 | if hit.Parent:findFirstChild("Humanoid") ~= nil or hit.Parent.Parent:findFirstChild("Humanoid") ~= nil then
| |
| 5402 | ref = CFuncs.Part.Create(workspace, "Neon", 0, 1, BrickColor.new("Pastel blue-green"), "Reference", Vector3.new())
| |
| 5403 | ref.Anchored = true | |
| 5404 | ref.CFrame = CFrame.new(pos) | |
| 5405 | CFuncs.Sound.Create("161006093", ref, 1, 1.2)
| |
| 5406 | game:GetService("Debris"):AddItem(ref, 0.2)
| |
| 5407 | Effects.Block.Create(Torso.BrickColor, CFrame.new(ref.Position) * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 1, 1, 10, 10, 10, 0.1, 2) | |
| 5408 | Effects.Ring.Create(BrickColor.new("Bright yellow"), CFrame.new(ref.Position) * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 1, 0.1, 4, 4, 0.1, 0.1)
| |
| 5409 | MagnitudeDamage(ref, 15, Thing[5] / 1.5, Thing[6] / 1.5, 0, "Normal", "", 1) | |
| 5410 | end | |
| 5411 | end | |
| 5412 | ref = CFuncs.Part.Create(workspace, "Neon", 0, 1, BrickColor.new("Pastel blue-green"), "Reference", Vector3.new())
| |
| 5413 | ref.Anchored = true | |
| 5414 | ref.CFrame = CFrame.new(pos) | |
| 5415 | Effects.Sphere.Create(Torso.BrickColor, CFrame.new(pos), 5, 5, 5, 1, 1, 1, 0.07) | |
| 5416 | game:GetService("Debris"):AddItem(ref, 1)
| |
| 5417 | end | |
| 5418 | if Thing[3] <= 0 then | |
| 5419 | table.remove(Effects, e) | |
| 5420 | end | |
| 5421 | end | |
| 5422 | if Thing[2] == "FireWave" then | |
| 5423 | if Thing[3] <= Thing[4] then | |
| 5424 | Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(0, 1, 0) | |
| 5425 | Thing[3] = Thing[3] + 1 | |
| 5426 | Thing[6].Scale = Thing[6].Scale + Vector3.new(Thing[5], 0, Thing[5]) | |
| 5427 | else | |
| 5428 | Part.Parent = nil | |
| 5429 | table.remove(Effects, e) | |
| 5430 | end | |
| 5431 | end | |
| 5432 | if Thing[2] ~= "Shoot" and Thing[2] ~= "Wave" and Thing[2] ~= "FireWave" then | |
| 5433 | if Thing[1].Transparency <= 1 then | |
| 5434 | if Thing[2] == "Block1" then | |
| 5435 | Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)) | |
| 5436 | Mesh = Thing[7] | |
| 5437 | Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6]) | |
| 5438 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5439 | elseif Thing[2] == "Block2" then | |
| 5440 | Thing[1].CFrame = Thing[1].CFrame | |
| 5441 | Mesh = Thing[7] | |
| 5442 | Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6]) | |
| 5443 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5444 | elseif Thing[2] == "Fire" then | |
| 5445 | Thing[1].CFrame = CFrame.new(Thing[1].Position) + Vector3.new(0, 0.2, 0) | |
| 5446 | Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)) | |
| 5447 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5448 | elseif Thing[2] == "Cylinder" then | |
| 5449 | Mesh = Thing[7] | |
| 5450 | Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6]) | |
| 5451 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5452 | elseif Thing[2] == "Blood" then | |
| 5453 | Mesh = Thing[7] | |
| 5454 | Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, 0.5, 0) | |
| 5455 | Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6]) | |
| 5456 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5457 | elseif Thing[2] == "Elec" then | |
| 5458 | Thing[1].Size = Thing[1].Size + Vector3.new(Thing[7], Thing[8], Thing[9]) | |
| 5459 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5460 | elseif Thing[2] == "Disappear" then | |
| 5461 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5462 | elseif Thing[2] == "Shatter" then | |
| 5463 | Thing[1].Transparency = Thing[1].Transparency + Thing[3] | |
| 5464 | Thing[4] = Thing[4] * CFrame.new(0, Thing[7], 0) | |
| 5465 | Thing[1].CFrame = Thing[4] * CFrame.fromEulerAnglesXYZ(Thing[6], 0, 0) | |
| 5466 | Thing[6] = Thing[6] + Thing[5] | |
| 5467 | end | |
| 5468 | else | |
| 5469 | Part.Parent = nil | |
| 5470 | table.remove(Effects, e) | |
| 5471 | end | |
| 5472 | end | |
| 5473 | end | |
| 5474 | end | |
| 5475 | end | |
| 5476 | end | |
| 5477 | end |