Funktion in einem Addon überschreiben
Hallo Leute,
Ich möchte, dass die Funktion : "resource.addfile" in einem bestimmten Gmod Addon nicht mehr funktioniert. Da ich aber nicht den Weg nehmen möchte, die Funktion in jeder Datei raus zu editieren, wollte ich den Weg gehen die entsprechende Funktion zu überschreiben.
Nun stehe ich aber schon vor dem ersten Problem:
Was ist in diesem Fall die Funktion? Da ich nicht weiß, ob wir uns hier mit Objektorientierter Programmierung beschäftigen oder nicht, weiß ich nicht, ob die Funktion "addfile" oder "resource.addfile" lautet.
Aber wie dem auch sei, ich schreibe mal das wie ich letzteres überschreiben würde:
Soweit so gut, jetzt sollte nach meiner Logik nichts geschehen, wenn die Funktion resource.addfile aufgerufen wird.
Jetzt möchte ich das aber in einer neuen .lua Datei in der Resource einfügen und füge diese in /addons/addoname/lua ein. Jetzt frag ich mich, ob die Datei aus einer anderen Lua Datei angesteuert werden muss, oder in irgendeine Liste muss, um zum Addon zu gehören, oder ob sie automatisch erkannt wird und beim Serverstart ausgeführt wird?
Gruß T.
AW: Funktion in einem Addon überschreiben
Ja man kann Standard GMod Lua Funktionen überschreiben.
Wie das funktioniert ist hier im Facepunch beschrieben.
Du solltest dies jedoch auf KEINEN FALL machen, die Funktion würde dann ja auch in anderen Addons nicht mehr funktionieren und du würdest viel mehr zerstören als du gut machst.
AW: Funktion in einem Addon überschreiben
Kann ich die Funktion dann nicht local überschreiben, oder bezieht sich das local dann auf innerhalb einer .lua Datei und nicht innerhalb eines Addons?:
Aber was ist mit meiner ersten Frage`? Welche Funktion müsste ich überschreiben? "resource.addfile" oder "addfile" ?
AW: Funktion in einem Addon überschreiben
Du müsstest die "resource.AddFile()" überschreiben ;)
Wird aber nicht wirklich dein Problem lösen, eher mehr Probleme verursachen.
AW: Funktion in einem Addon überschreiben
Wenn du eine Funktion local definierst ist sie nur in dieser Lua Datei verfügbar, du müsstest also wieder alle Dateien bearbeiten.
Um welches Addon geht es den überhaupt? Vielleicht gibt es ja eine andere/bessere Lösung für dein Problem?