Advertisement
SxScripting

Shadow Sneak[Server]

Dec 4th, 2022
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. local RS = game:GetService("ReplicatedStorage");
  2. local Debris = game:GetService("Debris")
  3. local RunService = game:GetService("RunService")
  4. local Debounce = {};
  5. local Trash = {};
  6. local Trash2 = {}
  7. local TransData = {}
  8. local Duration = 4;
  9. local COOLDOWN = 1
  10.  
  11.  
  12. local function invis(Character: Model)
  13. for i,v in pairs(Character:GetDescendants()) do
  14. if TransData[v] then continue end
  15. if not v:IsA("BasePart") then continue end
  16. TransData[v] = v.Transparency
  17. v.Transparency = 1;
  18.  
  19. end
  20. end
  21.  
  22. local function vis(Character: Model)
  23. for i,v in pairs(Character:GetDescendants()) do
  24. if not TransData[v] then continue end
  25. v.Transparency = TransData[v]
  26. TransData[v] = nil
  27. end
  28. end
  29.  
  30. local function changeJump(Humanoid: Humanoid, JumpPower: IntValue)
  31. Humanoid.JumpPower = JumpPower;
  32. Humanoid.UseJumpPower = true
  33. end
  34.  
  35. RS.Event.SahdowSneak.OnServerEvent:Connect(function(Player, Input, hitPlayer)
  36. if Debounce[Player] then return end
  37. local Character = Player.Character
  38. local Humanoid = Character:WaitForChild("Humanoid")
  39. local Params = OverlapParams.new();
  40. local Saved = tick()
  41. Params.MaxParts = math.huge
  42. Params.FilterDescendantsInstances = {Character,game.Workspace.Baseplate}
  43. Params.FilterType = Enum.RaycastFilterType.Blacklist;
  44.  
  45. if Input and not hitPlayer then
  46. changeJump(Humanoid,0)
  47. Trash[Player] = RS.Effect.ShadowPart.DarkStep:Clone()
  48. Trash[Player].Parent = Character.HumanoidRootPart;
  49. invis(Character)
  50. elseif not Input and hitPlayer then
  51. if Trash[Player] then
  52. Trash[Player]:Destroy();
  53. Trash[Player] = nil;
  54. end
  55. Trash2[Player]:Disconnect();
  56.  
  57. vis(Character)
  58. changeJump(Humanoid, 50);
  59.  
  60. for Index,Value in pairs(workspace:GetPartBoundsInRadius((Character.HumanoidRootPart.CFrame).Position,10,Params)) do
  61. if (Value.Parent:FindFirstChild("Humanoid")) then
  62. local finishEffect = RS.Effect.ShadowPart:Clone();
  63. finishEffect.DarkStep.Rate = 1000
  64. finishEffect.DarkStep.Speed = NumberRange.new(200, 200)
  65. finishEffect.Parent = Value.Parent:FindFirstChild("HumanoidRootPart")
  66. finishEffect.Position = Value.Parent:FindFirstChild("HumanoidRootPart").Position + Vector3.new(0,1,0)
  67. Value.Parent:FindFirstChild("Humanoid"):TakeDamage(5);
  68.  
  69. Debris:AddItem(finishEffect, 2)
  70. end
  71. end
  72. Debounce[Player] = true
  73. task.delay(COOLDOWN, function()
  74. Debounce[Player] = nil
  75. end)
  76. else
  77. if Trash[Player] then
  78. Trash[Player]:Destroy();
  79. Trash[Player] = nil;
  80. end
  81. changeJump(Humanoid, 50)
  82. Trash2[Player]:Disconnect();
  83. vis(Character)
  84. Debounce[Player] = true
  85. task.delay(COOLDOWN, function()
  86. Debounce[Player] = nil
  87. end)
  88. end
  89.  
  90. Trash2[Player] = RunService.Heartbeat:Connect(function()
  91. if not Input then return end;
  92. if not Trash[Player] then return end;
  93.  
  94. if (tick() - Saved >= Duration) and Trash[Player] then
  95. vis(Character)
  96. RS.Event.SahdowSneak:FireClient(Player);
  97. Trash2[Player]:Disconnect();
  98. changeJump(Humanoid, 50)
  99.  
  100. if Trash[Player] then
  101. Trash[Player]:Destroy();
  102. Trash[Player] = nil;
  103. end
  104. Saved = tick()
  105. end
  106. end)
  107.  
  108. end)
  109.  
  110. RS.Event.isShadowSneakCooldown.OnServerInvoke = function(Player: Player)
  111. return Debounce[Player];
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement