Roblox Studio: Wie kann ich den Fehler "attempt to compare number < string - Client - LocalScript:2" beheben?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

1) Ein Text lässt sich genauso wenig sinnvoll mit einer Zahl vergleichen, wie ein Buchstabe mit einem Elefant. Du brauchst eine Konversion, die die Zahlenwerte aus dem Text parst.

Beispiel:

local numberInText = "12"
local number = tonumber(numberInText)

2) Noch eine Bemerkung zu deinem restlichen Code: Deine ewig langen Punktverkettungen sind gar nicht gut.

Zum einen sind sie nicht gut lesbar und steigern das Fehlerrisiko. Du brauchst dich ja nur einmal bei einem .Parent verzählen. Nutze daher Variablen.

local parent = script.Parent

parent.MouseButton1Click:Connect(function()
  local root = script.Parent.Parent.Parent.Parent
  local counter = root.counter.Frame.Counter
  local counterValue = tonumber(counter.Text)
    
  if 100 < counterValue then
    counter.Text = counterValue - tonumber(parent.Text)
    root.Rebirth.Frame.Counter.Text = tonumber(root.Rebirth.Frame.Counter.Text) + 1
  end
end)

Zum anderen kann sich doch sicherlich schnell einmal die Struktur ändern, sodass der gesamte Ausdruck ins Leere läuft. Da wäre es wohl besser, sich eine Art GetAncestor-Methode zu schreiben. Wenn ich das richtig sehe, gibt es so etwas auch schon: FindFirstAncestor.