Warum bleibt der Char beim falschen Part stehen?
Ich habe ein Skript in Roblox Studio geschrieben, mit dem sich ein Char zu einem Part bewegt und immer wieder zurück. Dann habe ich hinzugefügt, dass er, wenn er einen bestimmten Part berührt, stehen bleibt. Aber er bleibt beim falschen Part stehen. Und bei dem, das ich bestimmt habe, nicht.
local CH = script.Parent
local HM = CH.Humanoid
local ICH = game.Workspace:FindFirstChild("Onkel")
HM.WalkSpeed = 9
task.wait(5)
local function StehenBleiben(Part)
HM.WalkSpeed = 0
end
while true do
for i, v in game.Workspace.Path:GetChildren() do
HM:MoveTo(v.Position)
HM.MoveToFinished:Wait()
if ICH.Touched then
StehenBleiben(ICH)
else
HM.WalkSpeed = 9
end
end
end
Ich kann nicht so gut skripten, also bitte kein Hate.
2 Antworten
Bei Touched handelt es sich um ein Event, kein Property. Du kannst darüber also keinen Zustand abfragen. Stattdessen musst du einen Event Handler daran binden, welcher bestimmt, was passieren soll, wenn es getriggert wird.
local function stop()
HM.WalkSpeed = 0
end
if ICH and ICH:IsA("BasePart") then
ICH.Touched:Connect(function(hit) -- Event handler
stop()
end)
end
while true do
for i, v in game.Workspace.Path:GetChildren() do
HM:MoveTo(v.Position)
HM.MoveToFinished:Wait()
end
end
Diese Logik fokussiert sich aber noch nicht einzig auf eine Kollision zwischen beiden Spielobjekten, falls du das beabsichtigt hast. Das Touched-Event wird immer gefeuert, wenn ICH mit irgendeinem BasePart (außer sich selbst) kollidiert.
Sollte HM also nur stehenbleiben, wenn er mit ICH kollidiert, bräuchtest du im Event Handler noch eine Abfrage, ob hit (BasePart) auch HM entspricht.
Ungefähr so:
local character = hit:FindFirstAncestorOfClass("Model")
if character == CH then
local touchedHumanoid = character:FindFirstChildOfClass("Humanoid")
if touchedHumanoid == HM then
stop()
end
end
Mit dem TouchEnded-Event wiederum kannst du dafür sorgen, dass HM seine Patrouille später wieder aufnimmt.
Dankeschön hab ich kurz bevor ich diese Nachricht gelesen hab mit gekriegt deswegen hab ich es schon gemacht trotzdem danke.
Es ist möglich durch eine Funktion alle berührenden Teile von einem Teil zu sehen. Habe leider vergessenw ie es hieß.