Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktion in einem Addon überschreiben



Tockra
20.11.2011, 10:57
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:

function resource.addfile()

end


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.

isch
20.11.2011, 11:10
Ja man kann Standard GMod Lua Funktionen überschreiben.
Wie das funktioniert ist hier im Facepunch (http://www.facepunch.com/threads/1091387) 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.

Tockra
20.11.2011, 13:46
Kann ich die Funktion dann nicht local überschreiben, oder bezieht sich das local dann auf innerhalb einer .lua Datei und nicht innerhalb eines Addons?:

local function resource.addfile()
end


Aber was ist mit meiner ersten Frage`? Welche Funktion müsste ich überschreiben? "resource.addfile" oder "addfile" ?

minifisch
20.11.2011, 14:05
Du müsstest die "resource.AddFile()" überschreiben ;)

Wird aber nicht wirklich dein Problem lösen, eher mehr Probleme verursachen.

isch
20.11.2011, 14:14
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?