Problem mit script in Roblox Studio?
Hallo Leute, ich habe heute mein eigenes Spiel erstellt und ich habe bisschen was in den Scripts rumgetüftelt, und dann habe ich versucht den Script zu runnen also um zu gucken ob es geklappt hat, hat es leider nicht es zeigt folgenden Fehler an :
ReplicatedStorage.Modules.PlotHandler:41: attempt to index nil with 'DisplayName'
1 Antwort
Deine Fehlermeldung ist:
PlotHandler:41: attempt to index nil with 'DisplayName'
Und die Zeile lautet offenbar:
lua
KopierenBearbeiten
updatePlotUI(playerPlot, player.DisplayName)
Was passiert da?
player.DisplayName
→ Du willst auf den Namen des Spielers zugreifen.
Aber
player
ist
nil
, also leer. Und wenn du versuchst, bei etwas Leeren auf
.DisplayName
zuzugreifen, kracht’s.
Warum istplayer
nil?
Weil du in der Funktion
AssignPlot(player)
das
player
-Objekt gar nicht richtig benutzt oder übergibst.
Und/oder – der Spieler ist vielleicht falsch geschrieben oder wurde nicht korrekt erkannt, z. B. durch einen fehlerhaften Zugriff oder falschen Namen.
So fixst du’sMach das in
AssignPlot(player)
:
lua
KopierenBearbeiten
function PlotHandler.AssignPlot(player)
local playerPlot = PlotHandler.VerfügbarePlots[math.random(1, #PlotHandler.VerfügbarePlots)]
table.remove(PlotHandler.VerfügbarePlots, table.find(PlotHandler.VerfügbarePlots, playerPlot))
local ownerValue = playerPlot:FindFirstChild('Besitzer') or Instance.new('ObjectValue')
ownerValue.Name = "Besitzer"
ownerValue.Parent = playerPlot
ownerValue.Value = player
-- Hier wichtig: Sicherstellen, dass `player` nicht nil ist
if player then
updatePlotUI(playerPlot, player.DisplayName)
else
warn("PlotHandler: AssignPlot – Spieler ist nil!")
end
PlotHandler.TeleportToPlot(player)
end
Bonus: Fehler vorher abfangen
Am Anfang der Funktion kannst du das auch reinschreiben:
lua
KopierenBearbeiten
if not player then
warn("AssignPlot aufgerufen ohne gültigen Spieler!")
return
end
Fazit
Du hast den Fehler, weil
player
leer ist – du musst also prüfen, ob
player
wirklich übergeben wurde, bevor du darauf zugreifst.
Ja, Bruder. Einfach die komplette Funktion, wie sie ist, einfügen.
Okay, ich habe es gemacht und es hat schonmal funktioniert, ich bin aber dadurch auf einen neuen fehler gestoßen, könntest du mir dabei nochmal helfen?😅, der Fehler lautet: ReplicatedStorage.Modules.PlotHandler:27: attempt to index nil with 'Sign'
Sign ist nicht definiert. Bzw. hat ownerSign kein Sign.
soll ich den Script nochmal neu schreiben und die sache die sie geschrieben rein kopieren oder wie?
Ich formuliere dass nochmal anders, soll ich genau den Script einfügen bei function, denn sie geschrieben haben oder soll ich noch etwas abändern?