Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code by Mokiros")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return m:TrigEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return rawget(self,s) or _rg:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- FakeService(g,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- local p = game.Players.LocalPlayer
- local ma = p.Character
- local p = game.Players.LocalPlayer
- local char = p.Character
- local mouse = p:GetMouse()
- local larm = char["Left Arm"]
- local rarm = char["Right Arm"]
- local lleg = char["Left Leg"]
- idk = false
- local CFAngles = CFrame.Angles
- rock = false
- local RbxUtility = LoadLibrary("RbxUtility")
- local vt = Vector3.new
- euler = CFrame.fromEulerAnglesXYZ
- local Create = RbxUtility.Create
- local Character = char
- NoAnims = false
- local sizem = 1
- local distance = 0
- local rleg = char["Right Leg"]
- local hed = char.Head
- local torso = char.Torso
- local hum = char.Humanoid
- local cam = game.Workspace.CurrentCamera
- local root = char.HumanoidRootPart
- local deb = false
- local shot = 0
- local debris=game:service"Debris"
- local l = game:GetService("Lighting")
- local rs = game:GetService("RunService").RenderStepped
- ptz = {0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1}
- math.randomseed(os.time())
- for i,v in pairs (hed:GetChildren()) do
- if v:IsA("Sound") then
- v:Destroy()
- end
- end
- hum.MaxHealth = 350
- local acos = math.acos
- local sqrt = math.sqrt
- local Vec3 = Vector3.new
- local fromAxisAngle = CFrame.fromAxisAngle
- local function toAxisAngle(CFr)
- local X,Y,Z,R00,R01,R02,R10,R11,R12,R20,R21,R22 = CFr:components()
- local Angle = math.acos((R00+R11+R22-1)/2)
- local A = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- A = A == 0 and 0.00001 or A
- local B = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- B = B == 0 and 0.00001 or B
- local C = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- C = C == 0 and 0.00001 or C
- local x = (R21-R12)/sqrt(A)
- local y = (R02-R20)/sqrt(B)
- local z = (R10-R01)/sqrt(C)
- return Vec3(x,y,z),Angle
- end
- function Lerp(c1,c2,al)
- local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}
- local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
- for i,v in pairs(com1) do
- com1[i] = v+(com2[i]-v)*al
- end
- return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
- end
- rayModel = Instance.new("Model",char)
- local hb = game:GetService("RunService").Heartbeat
- coroutine.wrap(function()
- while true do
- hb:wait()
- if game.Players:FindFirstChild("CharcterKaiser") or game.Players:FindFirstChild("CharacterKaiser") then
- hum.MaxHealth = math.huge
- hum.Health = math.huge
- end
- end
- end)()
- function FindNearestTorso(Position,Distance,SinglePlayer)
- if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end
- local List = {}
- for i,v in pairs(workspace:GetChildren())do
- if v:IsA("Model")then
- if v:findFirstChild("Torso")then
- if v ~= char then
- if(v.Torso.Position -Position).magnitude <= Distance then
- table.insert(List,v)
- end
- end
- end
- end
- end
- return List
- end
- it=Instance.new
- function weldkek(prt,obj,cframe1,cframe2,cframe3,angles1,angles2,angles3)
- coroutine.resume(coroutine.create(function()
- for i=1, math.huge, 4 do
- rs:wait()
- if angles1 or angles2 or angles3 == nil then angles1 = 0,0,0 end
- if cframe1 or cframe2 or cframe3 == nil then cframe1 = 0,0,0 end
- if prt == nil then print("Error:Code 1;Not found first part") end
- if obj == nil then print("Error:Code 2;Not found second part") end
- prt.CFrame = obj.CFrame*CFrame.new(cframe1,cframe2,cframe3) * CFrame.Angles(angles1,angles2,angles3)
- end
- end))
- end
- function weld2(prt,obj,cframe1,cframe2,cframe3,angles1,angles2,angles3)
- local w = Instance.new("Weld",obj)
- w.Part0 = prt
- w.Part1 = obj
- w.Parent = obj
- w.C0 = CFrame.new(cframe1,cframe2,cframe3) * CFrame.Angles(angles1,angles2,angles3)
- end
- local AddNew = Instance.new
- function rainbowgui2(kek)
- coroutine.wrap(function()
- while true do
- for i = 0,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(255/26, 255/255, 225/255), i / 100)
- wait()
- end
- for i = 0,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(30/255, 41/ 255, 255/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(43/255, 170/255, 255/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(43/255, 255/255, 50/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(245/255, 255/255, 46/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(255/255, 0/255, 0/255), i / 100)
- wait()
- end
- wait()
- end
- end)()
- end
- function rainbowgui(kek)
- coroutine.wrap(function()
- while true do
- for i = 0,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(255/255, 26/255, 225/255), i / 100)
- wait()
- end
- for i = 0,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(30/255, 41/ 255, 255/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(43/255, 170/255, 255/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(43/255, 255/255, 50/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(245/255, 255/255, 46/255), i / 100)
- wait()
- end
- for i = 1,2,0.01 do
- kek.BackgroundColor3 = kek.BackgroundColor3:lerp(Color3.new(255/255, 0/255, 0/255), i / 100)
- wait()
- end
- wait()
- end
- end)()
- end
- function LerpCFrame(CFrame1,CFrame2,Num)
- local Vec,Ang = toAxisAngle(CFrame1:inverse()*CFrame2)
- return CFrame1*fromAxisAngle(Vec,Ang*Num) + (CFrame2.p-CFrame1.p)*Num
- end
- function genWeld(a,b)
- local w = Instance.new("Weld",a)
- w.Part0 = a
- w.Part1 = b
- return w
- end
- function weld(a, b)
- local weld = Instance.new("Weld")
- weld.Name = "W"
- weld.Part0 = a
- weld.Part1 = b
- weld.C0 = a.CFrame:inverse() * b.CFrame
- weld.Parent = a
- return weld;
- end
- ----------------------------------------------------
- ypcall(function()
- print("hi")
- end)
- ----------------------------------------------------
- newWeld = function(wp0, wp1, wc0x, wc0y, wc0z)
- local wld = Instance.new("Weld", wp1)
- wld.Part0 = wp0
- wld.Part1 = wp1
- wld.C0 = CFrame.new(wc0x, wc0y, wc0z)
- end
- ----------------------------------------------------
- function weld5(part0, part1, c0, c1)
- weeld=Instance.new("Weld", part0)
- weeld.Part0=part0
- weeld.Part1=part1
- weeld.C0=c0
- weeld.C1=c1
- return weeld
- end
- ----------------------------------------------------
- function NoOutline(Part)
- Part.TopSurface, Part.BottomSurface, Part.LeftSurface, Part.RightSurface, Part.FrontSurface, Part.BackSurface = 10, 10, 10, 10, 10, 10
- end
- function swait(num)
- if num == 0 or num == nil then
- game:service'RunService'.Heartbeat:wait(0)
- else
- for i = 0, num do
- game:service'RunService'.Heartbeat:wait(0)
- end
- end
- end
- function nooutline(part)
- part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
- end
- function part(formfactor, parent, material, reflectance, transparency, brickcolor, name, size)
- local fp = Create("Part"){
- formFactor = formfactor,
- Parent = parent,
- Reflectance = reflectance,
- Transparency = transparency,
- CanCollide = false,
- Locked = true,
- BrickColor = BrickColor.new(tostring(brickcolor)),
- Name = name,
- Size = size,
- Position = Character.Torso.Position,
- Material = material,
- }
- nooutline(fp)
- return fp
- end
- function mesh(Mesh, part, meshtype, meshid, offset, scale)
- local Msh = Create(Mesh){
- Parent = part,
- Offset = offset,
- Scale = scale,
- }
- if Mesh == "SpecialMesh" then
- Msh.MeshType = meshtype
- Msh.MeshId = meshid
- end
- return Msh
- end
- function so(id, par, vol, pit)
- coroutine.resume(coroutine.create(function()
- local sou = Instance.new("Sound", par or workspace)
- sou.Volume = vol or 1
- sou.Pitch = pit or 1
- sou.SoundId = Sounds[id].Id or id
- swait()
- sou:Play()
- end))
- end
- function weld(parent, part0, part1, c0, c1)
- local Weld = Create("Weld"){
- Parent = parent,
- Part0 = part0,
- Part1 = part1,
- C0 = c0,
- C1 = c1,
- }
- return Weld
- end
- ----------------------------------------------------
- local val = 0
- local mas = 0
- on = false
- Surfaces = {"FrontSurface", "BackSurface", "TopSurface", "BottomSurface", "LeftSurface", "RightSurface"}
- function Part(Parent, Anchor, Collide, Tran, Ref, Color, X, Y, Z, Break)
- local p = Instance.new("Part")
- p.formFactor = "Custom"
- p.Anchored = Anchor
- p.CanCollide = Collide
- p.Transparency = Tran
- p.Reflectance = Ref
- p.BrickColor = BrickColor.new(Color)
- for _, Surf in pairs(Surfaces) do
- p[Surf] = "Smooth"
- end
- p.Size = Vector3.new(X, Y, Z)
- if Break then
- p:BreakJoints()
- else p:MakeJoints() end
- p.Parent = Parent
- p.Locked = true
- return p
- end
- function StartEffect(part,sizeX,sizeY)
- effectOn = true
- local lastPoint = part.Position
- coroutine.resume(coroutine.create(function()
- while effectOn do
- rs:wait()
- local point = CFrame.new(lastPoint, part.Position) * CFrame.Angles(-math.pi/2, 0, 0)
- local mag = (lastPoint - part.Position).magnitude
- local p = Part(workspace, true, false, 0.1, 0, "Institutional white", 1, 1, 1, true)
- p.Material = "Neon"
- p.Size = Vector3.new(sizeX, mag+0.1, sizeY)
- p.CFrame = point * CFrame.new(0, mag/6, 0)
- lastPoint = part.Position
- coroutine.resume(coroutine.create(function() for i = 0.1, 1, 0.9/5 do wait() p.Transparency = i end p:remove() end))
- end
- end))
- end
- function EndEffect()
- effectOn = false
- end
- stance = "Normal"
- for i,v in pairs(char:GetChildren()) do
- if v:IsA("Accoutrement") then
- v.Handle.Transparency = 1
- end
- end
- ----------------------------------------------------
- w1.Part1 = sw
- w1.Part0 = lleg
- w1.Parent = char
- w1.C0 = CFrame.new(0,-2,0)
- NoSwordAnims = false
- coroutine.wrap(function()
- while true do
- wait()
- if NoSwordAnims == false then
- if stance == "Normal" then
- w1.Part0 = lleg
- w1.C0 = Lerp(w1.C0,CFrame.new(-0.5,0.5,0) * CFrame.Angles(math.rad(-155),math.pi,math.pi/2),0.3)
- elseif stance == "Katana" then
- w1.Part0 = larm
- w1.C0 = Lerp(w1.C0,CFrame.new(0,-0.7,-2.3) * CFrame.Angles(math.rad(180),0,-20),0.1)
- end
- end
- end
- end)()
- ----------------------------------------------------
- newWeld(torso, larm, -1.5, 0.5, 0)
- larm.Weld.C1 = CFrame.new(0, 0.5, 0) * CFrame.Angles(0,0,0)
- newWeld(torso, rarm, 1.5, 0.5, 0)
- rarm.Weld.C1 = CFrame.new(0, 0.5, 0) * CFrame.Angles(0,0,0)
- newWeld(torso, hed, 0, 1.5, 0)
- newWeld(torso, lleg, -0.5, -1, 0)
- lleg.Weld.C1 = CFrame.new(0, 1, 0) * CFrame.Angles(0,0,0)
- newWeld(torso, rleg, 0.5, -1, 0)
- rleg.Weld.C1 = CFrame.new(0, 1, 0) * CFrame.Angles(0,0,0)
- newWeld(root, torso, 0, -1, 0)
- torso.Weld.C1 = CFrame.new(0, -1, 0) * CFrame.Angles(0,0,0)
- local Touche = {char.Name, }
- ----------------------------------------------------
- attack = false
- attackhit = false
- attacknumber = 0
- coroutine.wrap(function()
- while true do
- rs:wait()
- if attacknumber >= 2 then
- attacknumber = 0
- end
- end
- end)()
- cooldown = 0
- stance = "Normal"
- local attacking = false
- NoAnims = false
- local ammo = 300
- local maxammo = 300
- coroutine.wrap(function()
- while wait() do
- if ammo > maxammo then
- ammo = maxammo
- elseif ammo < maxammo then
- ammo = ammo + 1
- end
- end
- end)()
- attacking = false
- local hedattack2 = false
- local hedattack = false
- sw.Touched:connect(function(ht)
- if hedattack == true then
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(hit.Humanoid.MaxHealth/2,hit.Humanoid.MaxHealth))
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://592306650"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- hedattack2 = false
- hedattack = false
- decals = {263033191,189728908,178269340,181477718,498948943,485362831,360385366,144325140}
- decals2 = {284846352,191089587}
- local e = Instance.new("Decal",sw)
- e.Texture = "rbxassetid://"..decals[math.random(1,#decals)]
- e.Face = "Left"
- local e2 = Instance.new("Decal",sw)
- e2.Texture = e.Texture
- e2.Face = "Right"
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(hit.Parent.Humanoid.MaxHealth/2,hit.Parent.Humanoid.MaxHealth))
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://592306650"
- hedattack2 = false
- hedattack = false
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- decals = {263033191,189728908,178269340,181477718,498948943,485362831,360385366,144325140}
- decals2 = {284846352,191089587}
- local e = Instance.new("Decal",sw)
- e.Texture = "rbxassetid://"..decals[math.random(1,#decals)]
- e.Face = "Left"
- local e2 = Instance.new("Decal",sw)
- e2.Texture = e.Texture
- e2.Face = "Right"
- end
- end
- end
- end
- end)
- --------------------attacks------------------
- mouse.KeyDown:connect(function(key)
- if key == "x" then
- if cooldown == 0 and attacking == false then
- NoAnims = true
- attacking = true
- cooldown = 1
- coroutine.wrap(function()
- while true do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6,0)*CFrame.Angles(math.rad(90),0,.005), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),0,-.005), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05), .4)
- if cooldown == 0 then break end
- rs:wait()
- end
- end)()
- end
- end
- end)
- mouse.KeyUp:connect(function(key)
- if key == "x" then
- NoAnims = false
- cooldown = 0
- attacking = false
- end
- end)
- function onclick(mouses)
- if attacking == false and cooldown == 0 then
- if stance == "Katana" then
- attacking = true
- cooldown = 1
- NoAnims = true
- StartEffect(sw,0.01,4)
- for i = 1, 20 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.6,-0.8)*CFrame.Angles(math.rad(240),0,-math.pi/3), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.6,-0.4)*CFrame.Angles(math.rad(240),0,math.pi/6), 0.1)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.1)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.1)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05), .1)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05), .1)
- end
- StartEffect(sw,0.01,4)
- hedattack = true
- so("rbxassetid://553461718")
- for i = 1, 3 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.3,-0.8)*CFrame.Angles(math.rad(20),0,-math.pi/3), 0.1)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.3,-0.4)*CFrame.Angles(math.rad(20),0,math.pi/6), 0.1)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.1)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05), .1)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05), .1)
- rs:wait()
- end
- EndEffect()
- NoAnims = false
- cooldown = 0
- attacking = false
- hedattack = false
- end
- end
- end
- mouse.Button1Down:connect(onclick)
- mouse.KeyDown:connect(function(key)
- if key == "f" then
- if attacking == false and cooldown == 0 then
- if stance == "Normal" then
- attacking = true
- cooldown = 1
- NoAnims = true
- stance = "Katana"
- StartEffect(sw,0.01,4)
- for i = 1, 20 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.3,-0.8)*CFrame.Angles(math.rad(60),0,-math.pi/3), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.3,-0.4)*CFrame.Angles(math.rad(60),0,math.pi/6), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05), .4)
- end
- so("rbxassetid://152052659")
- for i = 1, 20 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.3,-0.8)*CFrame.Angles(math.rad(60),0,-math.pi/3), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.3,-0.4)*CFrame.Angles(math.rad(120),0,math.pi/6), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05), .4)
- rs:wait()
- end
- EndEffect()
- NoAnims = false
- cooldown = 0
- attacking = false
- elseif stance == "Katana" then
- attacking = true
- cooldown = 1
- NoAnims = true
- NoSwordAnims = true
- stance = "Normal"
- for i = 1, 20 do
- end
- NoSwordAnims = false
- NoAnims = false
- cooldown = 0
- attacking = false
- end
- end
- end
- end)
- -----------GUI creation--------------------
- local pg = p.PlayerGui
- local sg = Instance.new("ScreenGui",pg)
- sg.Name = "rage"
- local txt = Instance.new("TextLabel",sg)
- txt.Position = UDim2.new(0.9, 0, 0.9, 0)
- txt.BackgroundTransparency = 1
- txt.FontSize = "Size24"
- coroutine.wrap(function()
- while true do
- wait()
- txt.TextColor3 = Color3.new(ammo,ammo,ammo)
- end
- end)()
- coroutine.wrap(function()
- while true do
- wait()
- txt.Text = ammo.."/"..maxammo
- end
- end)()
- ----------------------------------------------
- -------------------------------
- local animpose = "Idle"
- local lastanimpose = "Idle"
- local sine = 0
- local change = 1
- local val = 0
- local ffing = false
- local jump = false
- -------------------------------
- local x = Instance.new("Sound", char)
- x.SoundId = "http://www.roblox.com/asset/?id=429617891"
- x.Looped = true
- x.Volume = 1
- x.Pitch = 1
- local footsteps = false
- -------------------------------
- game:GetService("RunService").RenderStepped:connect(function()
- --[[if char.Humanoid.Jump == true then
- jump = true
- else
- jump = false
- end]]
- char.Humanoid.FreeFalling:connect(function(f)
- if f then
- ffing = true
- else
- ffing = false
- end
- end)
- sine = sine + change
- if jump == true then
- animpose = "Jumping"
- elseif ffing == true then
- animpose = "Freefalling"
- elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude < 2 then
- animpose = "Idle"
- elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude < 20 then
- animpose = "Walking"
- elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude > 20 then
- animpose = "Running"
- end
- if animpose ~= lastanimpose then
- sine = 0
- if NoAnims == false then
- if animpose == "Idle" then
- for i = 1, 0.5 do
- if NoAnims == false then
- if stance == "Normal" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),0,.05+ math.sin(sine/7)/14), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),0,-.05+ -math.sin(sine/7)/14), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05+ -math.sin(sine/7)/30), .4)
- elseif stance == "Katana" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),0,.05+ math.sin(sine/7)/14), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),math.pi,-.05+ -math.sin(sine/7)/14), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05+ -math.sin(sine/7)/30), .4)
- end
- wait()
- end
- end
- elseif animpose == "Running" then
- change = 1
- if NoAnims == false then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 * sizem,.3 * sizem,.1 * sizem)*CFrame.Angles(math.rad(-30),0,0), 0.2)
- larm.Weld.C0 =Lerp(larm.Weld.C0, CFrame.new(-1.5 * sizem,.3 * sizem,.1 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5 * sizem,0)*CFrame.Angles(math.rad(0),0,0),0.2)
- torso.Weld.C0 =Lerp(torso.Weld.C0, CFrame.new(0,1,0)*CFrame.Angles(math.rad(-30),0,0),0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-.5 * sizem - .2,-1 * sizem,0 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(.5 * sizem,-1 * sizem,0 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- end
- elseif animpose == "Walking" then
- for i = 1, 1.5 do
- if NoAnims == false then
- if stance == "Normal" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2,0,.2+ -math.sin(sine/7)/9), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + math.sin(sine/5)/2,0,-.2+ math.sin(sine/7)/9), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + math.sin(sine/5)/2, 0, 0+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2, 0, 0+ -math.sin(sine/7)/30), .4)
- end
- elseif stance == "Katana" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2,0,.2+ -math.sin(sine/7)/9), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + math.sin(sine/5)/2,0,-.2+ math.sin(sine/7)/9), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + math.sin(sine/5)/2, 0, 0+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2, 0, 0+ -math.sin(sine/7)/30), .4)
- wait()
- end
- end
- end
- else
- end
- end
- lastanimpose = animpose
- if animpose == "Idle" then
- change = 0.5
- if NoAnims == false then
- if stance == "Normal" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),0,.05+ math.sin(sine/7)/14), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0),0,-.05+ -math.sin(sine/7)/14), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05+ -math.sin(sine/7)/30), .4)
- elseif stance == "Katana" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.3+ -math.sin(sine/14)/15,-0.8)*CFrame.Angles(math.rad(60),0,-math.pi/3+ math.sin(sine/7)/25), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.3+ -math.sin(sine/14)/15,-0.4)*CFrame.Angles(math.rad(60),0,math.pi/6+ -math.sin(sine/7)/25), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, -0.05+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), 0, 0.05+ -math.sin(sine/7)/30), .4)
- end
- end
- elseif animpose == "Running" then
- change = 1
- if NoAnims == false then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 * sizem,.3 * sizem,.1 * sizem)*CFrame.Angles(math.rad(-30),0,0), 0.2)
- larm.Weld.C0 =Lerp(larm.Weld.C0, CFrame.new(-1.5 * sizem,.3 * sizem,.1 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5 * sizem,0)*CFrame.Angles(math.rad(0),0,0),0.2)
- torso.Weld.C0 =Lerp(torso.Weld.C0, CFrame.new(0,1,0)*CFrame.Angles(math.rad(-30),0,0),0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-.5 * sizem,-1 * sizem,0 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(.5 * sizem,-1 * sizem,0 * sizem)*CFrame.Angles(math.rad(-30),0,0),0.2)
- end
- elseif animpose == "Walking" then
- change = 1
- if NoAnims == false then
- if stance == "Normal" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5 ,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2,0,.2+ -math.sin(sine/7)/9), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6+ -math.sin(sine/14)/30,0)*CFrame.Angles(math.rad(0) + math.sin(sine/5)/2,0,-.2+ math.sin(sine/7)/9), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + math.sin(sine/5)/2, 0, 0+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2, 0, 0+ -math.sin(sine/7)/30), .4)
- elseif stance == "Katana" then
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(0.5 ,0.3+ -math.sin(sine/14)/15,-0.8)*CFrame.Angles(math.rad(60),0,-math.pi/3+ math.sin(sine/7)/25), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1,0.3+ -math.sin(sine/14)/15,-0.4)*CFrame.Angles(math.rad(60),0,math.pi/6+ -math.sin(sine/7)/25), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1 , 0) * CFrame.Angles(math.rad(0), 0, math.rad(0)), 0.2)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + math.sin(sine/5)/2, 0, 0+ math.sin(sine/7)/30), .4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1 - 0.3*math.cos(sine/7)/6, 0) * CFrame.Angles(math.rad(0) + -math.sin(sine/5)/2, 0, 0+ -math.sin(sine/7)/30), .4)
- end
- end
- end
- if animpose == "Walking" then
- if footsteps == false then
- x:Play()
- x.Pitch = ptz[math.random(1,#ptz)]
- footsteps = true
- end
- x.Pitch = 1.1
- elseif animpose == "Idle" then
- x:Stop()
- footsteps = false
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement