-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHoverboardSystem.lua
More file actions
60 lines (53 loc) · 1.84 KB
/
HoverboardSystem.lua
File metadata and controls
60 lines (53 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
-- Configuration Variables
local hoverboardSpeed = 32 -- Double sprint speed
local energyDrainRate = 1 -- Energy drained per second while riding
local energyRegenRate = 0.5 -- Energy regenerated per second when not riding
local maxEnergy = 100 -- Maximum energy
local currentEnergy = maxEnergy -- Current energy
-- Hoverboard Management
local function onPlayerJoin(player)
-- Initialize player settings and visuals
setupHoverboard(player)
end
local function setupHoverboard(player)
-- Create visual hoverboard model under player
local hoverboard = Instance.new('Part')
hoverboard.Size = Vector3.new(2, 0.5, 1)
hoverboard.Position = player.Character.HumanoidRootPart.Position - Vector3.new(0, 1, 0)
hoverboard.Anchored = true
hoverboard.Parent = workspace
-- More hoverboard setup code...
end
local function onRiderMove(player)
-- Manage player movement
if isRiding(player) then
if currentEnergy > 0 then
player.Character.Humanoid.WalkSpeed = hoverboardSpeed
drainEnergy()
else
-- Unable to ride due to insufficient energy
stopRiding(player)
end
end
end
local function drainEnergy()
currentEnergy = math.max(currentEnergy - energyDrainRate, 0)
end
local function regenerateEnergy()
currentEnergy = math.min(currentEnergy + energyRegenRate, maxEnergy)
end
local function onTokenCollected(token)
-- Handle token collection
currentEnergy = math.min(currentEnergy + 10, maxEnergy) -- Example token value
token:Destroy() -- Remove token from game
end
-- Main Loop
game.Players.PlayerAdded:Connect(onPlayerJoin)
game:GetService('RunService').Heartbeat:Connect(function()
for _, player in pairs(game.Players:GetPlayers()) do
onRiderMove(player)
if not isRiding(player) then
regenerateEnergy()
end
end
end)