Hallöchen,
da mir Google und die SuFu nicht weiter helfen, frage ich nun hier.
Wie füge ich für ein bestimmtes Object eine Option im Context Menu (C-Menu) ein?
Danke im Voraus.
Gruß,
Neo. :)
Druckbare Version
Hallöchen,
da mir Google und die SuFu nicht weiter helfen, frage ich nun hier.
Wie füge ich für ein bestimmtes Object eine Option im Context Menu (C-Menu) ein?
Danke im Voraus.
Gruß,
Neo. :)
nimm dir beispiele aus den dateien in garrysmod\lua\autorun\properties
Code:properties.Add("objektname in lua",{
MenuLabel="name des eintrags",
Order=999,--damit es automatisch eingereiht wird.. 1 wäre dauerhaft ganz oben
MenuIcon="icon16/icon.png", -- das icon materials/icon16/icon.png
Filter = function--prop protection und prüfungen ob das entity ok ist
Action=function--wird auf dem Client ausgeführt
Receive=function --wird auf dem Server ausgeführt.
end,
})
Hallöchen,
erstmal vielen Dank für deine Antwort.
Wie ist das, wenn ich nun eine neue Option hinzufügen möchte?
Muss ich dann im Autorun unter Properties ein neues .Lua Dokument erstellen, und es dort dann (ähnlich) machen wie in den "Beispielen"? Falls ja: Ist die Namensgebung der Datei an sich wichtig?
Sind Action und Receive im Prinzip das gleiche wie cl_init und init?
Welche Dateiendungen darf man bei dem Icon verwenden, und in welcher größe?
Gruß,
Neo. :)
Die lua kannst du benennen wie du willst, am besten wäre es wenn du die den lua objektnamen deines eintrags verpasst
einfach eine im properties ordner erstellen
Action & Receive sind ungefähr das gleiche, wie init und cl_init bei einem Scripted Entity.. wird beides auch aufgerufen beim spawnen
.vtf (.vmt muss dabei sein) oder png
8x8 16x16 32x32 64x64 ...
Hallo,
So sieht mein Filter derzeit aus. Aber die Option wird mir dann im Spiel nicht angezeigt. Im Printer steht bei Init: self.IsSpecMoneyPrinter = trueCode:Filter = function( self, ent, ply ) -- A function that determines whether an entity is valid for this property
if ( !IsValid( ent ) ) then return false end
if ( ent:IsPlayer() ) then return false end
if ( !ent.IsSpecMoneyPrinter ) then return false end
return true
end,
Gruß,
Neo. :)
pack hinter die "then" ein print debug
wie zb. "print("IsSpecMoneyPrinter is false")
schonmal ingame die lua file aufgerufen, ob errors kommen?
lua_openscript und lua_openscript_cl
Hallo,
habe hinter jede Abfrage mal testweise ein Print gesetzt. Aber keines wird geprintet.
Die Datei via lua_openscript zu laden funktioniert nicht. (lua_openscript /autorun/properties/test.lua .. lua_openscript test.lua .. lua_openscript autorun/properties/test.lua). Jedesmal bekomme ich die Meldung, dass die angegebene Datei nicht zu finden sei.
€dit:
Editiere gerade einfach das Ignite um, da es ja mit meinem ja nicht gehen will. Habe es auf folgende weise jetzt gemacht:
ent:GetClass() != "my_money_printer"
€dit2:
Okay, habe es hin bekommen. Jetzt jedoch die Frage, wieso es nicht funktioniert, wenn ich da eins hinzufüge?