Engine-klasse
Humanoid
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Eigenschappen
Methoden
Evenementen
Codevoorbeelden
Wandelende Camera Bobble Effect
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Loopt het personage?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Schaal de CameraOffset naar beneden zodat deze terugschuift naar zijn reguliere positie.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)API-referentie
Eigenschappen
AutoJumpEnabled
Codevoorbeelden
Auto-Jump Toggle
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- Werk de knoptekst bij
if player.AutoJumpEnabled then
button.Text = "Auto-Jump is AAN"
else
button.Text = "Auto-Jump is UIT"
end
-- Reflecteer de eigenschap in het karakter van de speler, als ze er een hebben
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- Schakel auto-jump in of uit
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- Werk alles bij
update()
end
button.Activated:Connect(onActivated)
update()AutoRotate
Codevoorbeelden
AutoRotate Knop
local button = script.Parent
local enabled = true
local ON_COLOR = BrickColor.Green()
local OFF_COLOR = BrickColor.Red()
local function touchButton(humanoid)
if enabled then
enabled = false
button.BrickColor = OFF_COLOR
if humanoid.AutoRotate then
print(humanoid:GetFullName() .. " kan niet langer automatisch draaien!")
humanoid.AutoRotate = false
else
print(humanoid:GetFullName() .. " kan nu automatisch draaien!")
humanoid.AutoRotate = true
end
task.wait(1)
button.BrickColor = ON_COLOR
enabled = true
end
end
local function onTouched(hit)
local char = hit:FindFirstAncestorWhichIsA("Model")
if char then
local humanoid = char:FindFirstChildOfClass("Humanoid")
if humanoid then
touchButton(humanoid)
end
end
end
button.Touched:Connect(onTouched)
button.BrickColor = ON_COLORCameraOffset
Codevoorbeelden
Wandelende Camera Bobble Effect
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Loopt het personage?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Schaal de CameraOffset naar beneden zodat deze terugschuift naar zijn reguliere positie.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)CollisionType
DisplayDistanceType
Codevoorbeelden
Het weergeven van de gezondheid en naam van een Humanoid
local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100LeftLeg
maxHealth
MaxSlopeAngle
Codevoorbeelden
Beperken van de helling waar een Humanoid op kan lopen
local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30MoveDirection
Codevoorbeelden
Wandelende Camera Bobble Effect
local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Loopt het personage?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Schaal de CameraOffset naar beneden zodat deze terugschuift naar zijn reguliere positie.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)NameOcclusion
Codevoorbeelden
Verberg Speler Namen
local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.NameOcclusion = Enum.NameOcclusion.OccludeAll
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)RightLeg
Torso
Methoden
AddAccessory
Parameters
Teruggaves
()
Codevoorbeelden
[Humanoid] Voorbeeld van AddAccessory
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local clockworksShades = Instance.new("Accessory")
clockworksShades.Name = "ClockworksShades"
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1.6, 1)
handle.Parent = clockworksShades
local faceFrontAttachment = Instance.new("Attachment")
faceFrontAttachment.Name = "FaceFrontAttachment"
faceFrontAttachment.Position = Vector3.new(0, -0.24, -0.45)
faceFrontAttachment.Parent = handle
local mesh = Instance.new("SpecialMesh")
mesh.Name = "Mesh"
mesh.Scale = Vector3.new(1, 1.3, 1)
mesh.MeshId = "rbxassetid://1577360"
mesh.TextureId = "rbxassetid://1577349"
mesh.Parent = handle
humanoid:AddAccessory(clockworksShades)AddCustomStatus
AddStatus
ApplyDescription
ApplyDescriptionAsync
Humanoid:ApplyDescriptionAsync(
):()
Parameters
| Standaardwaarde: Default |
Teruggaves
()
ApplyDescriptionReset
ApplyDescriptionResetAsync
Humanoid:ApplyDescriptionResetAsync(
):()
Parameters
| Standaardwaarde: Default |
Teruggaves
()
BuildRigFromAttachments
Humanoid:BuildRigFromAttachments():()
Teruggaves
()
Codevoorbeelden
Lua-poort van BuildRigFromAttachments
local function createJoint(jointName, att0, att1)
local partForJoint = att1.Parent
while partForJoint and not partForJoint:IsA("BasePart") do
partForJoint = partForJoint.Parent
end
local oldJoint = partForJoint:FindFirstChild(jointName)
if oldJoint and oldJoint:IsA("AnimationConstraint") then
oldJoint.Attachment0 = att0
oldJoint.Attachment1 = att1
oldJoint.Parent = partForJoint
else
local ac = Instance.new("AnimationConstraint")
ac.Name = jointName
ac.IsKinematic = true
ac.Attachment0 = att0
ac.Attachment1 = att1
ac.Parent = partForJoint
end
end
local function collectRigAttachments(part)
local rigAttachments = {}
for _, child in pairs(part:GetChildren()) do
if child:IsA("Attachment") and child.Name:find("RigAttachment$") then
rigAttachments[child.Name] = child
end
end
-- Botten kunnen diepere RigAttachments bevatten die de part-niveau
-- overschrijven (Geavanceerd R15 uitgebreid skelet).
for _, child in pairs(part:GetChildren()) do
if child:IsA("Bone") then
for _, descendant in pairs(child:GetDescendants()) do
if descendant:IsA("Attachment") and descendant.Name:find("RigAttachment$") then
rigAttachments[descendant.Name] = descendant
end
end
end
end
return rigAttachments
end
local function buildJointsFromAttachments(part, characterParts, visitedParts)
if not part or visitedParts[part] then
return
end
visitedParts[part] = true
local rigAttachments = collectRigAttachments(part)
for attachmentName, attachment in pairs(rigAttachments) do
local jointName = attachmentName:sub(1, #attachmentName - #"RigAttachment")
if not part:FindFirstChild(jointName) then
for _, characterPart in pairs(characterParts) do
if not visitedParts[characterPart] then
local matchingAttachment = characterPart:FindFirstChild(attachmentName)
if matchingAttachment and matchingAttachment:IsA("Attachment") then
createJoint(jointName, attachment, matchingAttachment)
buildJointsFromAttachments(characterPart, characterParts, visitedParts)
break
end
end
end
end
end
end
local function buildRigFromAttachments(humanoid)
local rootPart = humanoid.RootPart
assert(rootPart, "Humanoid heeft geen HumanoidRootPart.")
local characterParts = {}
for _, descendant in ipairs(humanoid.Parent:GetDescendants()) do
if descendant:IsA("BasePart") then
table.insert(characterParts, descendant)
end
end
local visitedParts = {}
buildJointsFromAttachments(rootPart, characterParts, visitedParts)
end
local humanoid = script.Parent:WaitForChild("Humanoid")
buildRigFromAttachments(humanoid)R15 Pakket Importeur
local AssetService = game:GetService("AssetService")
local InsertService = game:GetService("InsertService")
local MarketplaceService = game:GetService("MarketplaceService")
local PACKAGE_ASSET_ID = 193700907 -- Circuit Breaker
local function addAttachment(part, name, position, orientation)
local attachment = Instance.new("Attachment")
attachment.Name = name
attachment.Parent = part
if position then
attachment.Position = position
end
if orientation then
attachment.Orientation = orientation
end
return attachment
end
local function createBaseCharacter()
local character = Instance.new("Model")
local humanoid = Instance.new("Humanoid")
humanoid.Parent = character
local rootPart = Instance.new("Part")
rootPart.Name = "HumanoidRootPart"
rootPart.Size = Vector3.new(2, 2, 1)
rootPart.Transparency = 1
rootPart.Parent = character
addAttachment(rootPart, "RootRigAttachment")
local head = Instance.new("Part")
head.Name = "Head"
head.Size = Vector3.new(2, 1, 1)
head.Parent = character
local headMesh = Instance.new("SpecialMesh")
headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
headMesh.MeshType = Enum.MeshType.Head
headMesh.Parent = head
local face = Instance.new("Decal")
face.Name = "face"
face.Texture = "rbxasset://textures/face.png"
face.Parent = head
addAttachment(head, "FaceCenterAttachment")
addAttachment(head, "FaceFrontAttachment", Vector3.new(0, 0, -0.6))
addAttachment(head, "HairAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "HatAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "NeckRigAttachment", Vector3.new(0, -0.5, 0))
return character, humanoid
end
local function createR15Package(packageAssetId)
local packageAssetInfo = MarketplaceService:GetProductInfoAsync(packageAssetId)
local character, humanoid = createBaseCharacter()
character.Name = packageAssetInfo.Name
local assetIds = AssetService:GetAssetIdsForPackageAsync(packageAssetId)
for _, assetId in pairs(assetIds) do
local limb = InsertService:LoadAsset(assetId)
local r15 = limb:FindFirstChild("R15")
if r15 then
for _, part in pairs(r15:GetChildren()) do
part.Parent = character
end
else
for _, child in pairs(limb:GetChildren()) do
child.Parent = character
end
end
end
humanoid:BuildRigFromAttachments()
return character
end
local r15Package = createR15Package(PACKAGE_ASSET_ID)
r15Package.Parent = workspaceChangeState
Parameters
| Standaardwaarde: None |
Teruggaves
()
Codevoorbeelden
Dubbele Sprong
local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)GetAccessories
Teruggaves
Codevoorbeelden
Verwijder Accessoires Na Laden
local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- Alle accessoires zijn op dit punt geladen
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Verwijderen van %d accessoires voor %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Zorg ervoor dat we onze verbinding met de speler verbreken nadat ze vertrekken
-- om de speler te laten opruimen
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)GetAppliedDescription
GetBodyPartR15
Parameters
Teruggaves
GetLimb
Parameters
Teruggaves
Codevoorbeelden
De Ledematen van een Humanoid Krijgen
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
for _, child in pairs(character:GetChildren()) do
local limb = humanoid:GetLimb(child)
if limb ~= Enum.Limb.Unknown then
print(child.Name .. " is onderdeel van limb " .. limb.Name)
end
endGetPlayingAnimationTracks
GetState
Teruggaves
Codevoorbeelden
Dubbele Sprong
local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)GetStateEnabled
Parameters
Teruggaves
Codevoorbeelden
Instellingen en Verkrijgen van Humanoid Staten
local humanoid = script.Parent:WaitForChild("Humanoid")
-- Stel toestand in
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Verkrijg toestand
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- falseGetStatuses
HasCustomStatus
HasStatus
LoadAnimation
loadAnimation
Move
Teruggaves
()
Codevoorbeelden
Een Humanoid Vooruit Bewegen
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
RunService:BindToRenderStep("move", Enum.RenderPriority.Character.Value + 1, function()
if player.Character then
local humanoid = player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:Move(Vector3.new(0, 0, -1), true)
end
end
end)MoveTo
Teruggaves
()
Codevoorbeelden
Humanoid Bewegen Zonder Tijdslimiet
local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- luister naar de humanoïde die zijn doel bereikt
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- begin met lopen
humanoid:MoveTo(targetPoint)
-- voer uit in een nieuwe thread zodat de functie niet yield
task.spawn(function()
while not targetReached do
-- bestaat de humanoïde nog?
if not (humanoid and humanoid.Parent) then
break
end
-- is het doel veranderd?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- vernieuw de tijdslimiet
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- verbreek de verbinding als deze nog steeds verbonden is
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Bestemming bereikt!") or "Mislukt om bestemming te bereiken!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)PlayEmote
PlayEmoteAsync
RemoveAccessories
Humanoid:RemoveAccessories():()
Teruggaves
()
Codevoorbeelden
Verwijder Accessoires Na Laden
local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- Alle accessoires zijn op dit punt geladen
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Verwijderen van %d accessoires voor %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Zorg ervoor dat we onze verbinding met de speler verbreken nadat ze vertrekken
-- om de speler te laten opruimen
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)RemoveCustomStatus
RemoveStatus
ReplaceBodyPartR15
Parameters
Teruggaves
SetStateEnabled
Parameters
Teruggaves
()
Codevoorbeelden
Spring Cooldown
local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)TakeDamage
Parameters
Teruggaves
()
Codevoorbeelden
Schade toebrengen aan een Humanoid
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid:TakeDamage(99)takeDamage
UnequipTools
Humanoid:UnequipTools():()
Teruggaves
()
Evenementen
AnimationPlayed
ApplyDescriptionFinished
Parameters
Climbing
Parameters
Codevoorbeelden
Humanoid.Climbing
local Players = game:GetService("Players")
local function onCharacterClimbing(character, speed)
print(character.Name, "is aan het klimmen met een snelheid van", speed, "studs / seconde.")
end
local function onCharacterAdded(character)
character.Humanoid.Climbing:Connect(function(speed)
onCharacterClimbing(character, speed)
end)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)CustomStatusAdded
CustomStatusRemoved
Died
Codevoorbeelden
Humanoid.Died
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local function onDied()
print(player.Name, "is overleden!")
end
humanoid.Died:Connect(onDied)
end
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)HealthChanged
Parameters
Codevoorbeelden
Humanoid.HealthChanged
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local currentHealth = humanoid.Health
local function onHealthChanged(health)
local change = math.abs(currentHealth - health)
print("De gezondheid van de humanoïde", (currentHealth > health and "is afgenomen met" of "is toegenomen met"), change)
currentHealth = health
end
humanoid.HealthChanged:Connect(onHealthChanged)
end
player.CharacterAdded:Connect(onCharacterAdded)Gezondheidsbalk
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Plak script in een LocalScript dat is
-- gekoppeld aan een Frame binnen een Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- zwart
-- Deze functie wordt aangeroepen wanneer de gezondheid van de humanoïde verandert
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Verander de grootte van de binnenste balk
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Verander de kleur van de gezondheidsbalk
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- zwart
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- geel
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- groen
end
end
-- Deze functie wordt aangeroepen wanneer de speler spawnt
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Patroon: update één keer nu, en dan elke keer als de gezondheid verandert
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Verbind onze spawn listener; roep het aan als het al is gespawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
endMoveToFinished
Parameters
Codevoorbeelden
Humanoid Bewegen Zonder Tijdslimiet
local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- luister naar de humanoïde die zijn doel bereikt
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- begin met lopen
humanoid:MoveTo(targetPoint)
-- voer uit in een nieuwe thread zodat de functie niet yield
task.spawn(function()
while not targetReached do
-- bestaat de humanoïde nog?
if not (humanoid and humanoid.Parent) then
break
end
-- is het doel veranderd?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- vernieuw de tijdslimiet
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- verbreek de verbinding als deze nog steeds verbonden is
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Bestemming bereikt!") or "Mislukt om bestemming te bereiken!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)Running
Parameters
Codevoorbeelden
Humanoid Rennen
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onRunning(speed: number)
if speed > 0 then
print(`{localPlayer.Name} is aan het rennen`)
else
print(`{localPlayer.Name} is gestopt`)
end
end
humanoid.Running:Connect(function(speed: number)
onRunning(speed)
end)Seated
Codevoorbeelden
Een Speler's Zitplaats Vinden
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local function onSeated(isSeated, seat)
if isSeated then
print("Ik zit nu op: " .. seat.Name .. "!")
else
print("Ik zit op niets")
end
end
humanoid.Seated:Connect(onSeated)StateChanged
Parameters
Codevoorbeelden
Springende Deeltjes
local character = script.Parent
local primaryPart = character.PrimaryPart
-- maak deeltjes
local particles = Instance.new("ParticleEmitter")
particles.Size = NumberSequence.new(1)
particles.Transparency = NumberSequence.new(0, 1)
particles.Acceleration = Vector3.new(0, -10, 0)
particles.Lifetime = NumberRange.new(1)
particles.Rate = 20
particles.EmissionDirection = Enum.NormalId.Back
particles.Enabled = false
particles.Parent = primaryPart
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
-- luister naar humanoïde status
local function onStateChanged(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
particles.Enabled = true
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
particles.Enabled = false
end
end
end
humanoid.StateChanged:Connect(onStateChanged)Spring Cooldown
local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)StateEnabledChanged
Parameters
Codevoorbeelden
Humanoid Toestand Verander Detector
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onStateEnabledChanged(state, enabled)
if enabled then
print(state.Name .. " is ingeschakeld")
else
print(state.Name .. " is uitgeschakeld")
end
end
humanoid.StateEnabledChanged:Connect(onStateEnabledChanged)StatusAdded
StatusRemoved
Touched
Codevoorbeelden
Midas Aanraking
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local partInfo = {}
local debounce = false
local function onHumanoidTouched(hit, _limb)
if debounce then
return
end
if not hit.CanCollide or hit.Transparency ~= 0 then
return
end
if not partInfo[hit] then
partInfo[hit] = {
BrickColor = hit.BrickColor,
Material = hit.Material,
}
hit.BrickColor = BrickColor.new("Goud")
hit.Material = Enum.Material.Ice
debounce = true
task.wait(0.2)
debounce = false
end
end
local touchedConnection = humanoid.Touched:Connect(onHumanoidTouched)
local function onHumanoidDied()
if touchedConnection then
touchedConnection:Disconnect()
end
-- maak al het goud ongedaan
for part, info in pairs(partInfo) do
if part and part.Parent then
part.BrickColor = info.BrickColor
part.Material = info.Material
end
end
end
humanoid.Died:Connect(onHumanoidDied)