Revision Difference
hook.Call#511604
<function name="Call" parent="hook" type="libraryfunc">⤶
<description>⤶
Calls all hooks associated with the given event until one returns something other than nil, and then returns that data.⤶
⤶
In almost all cases, you should use <page>hook.Run</page> instead - it calls hook.Call internally but supplies the gamemode table by itself, making your code neater.⤶
</description>⤶
<realm>Shared and Menu</realm>⤶
<file line="62-L125">lua/includes/modules/hook.lua</file>⤶
<args>⤶
<arg name="eventName" type="string">The event to call hooks for</arg>⤶
<arg name="gamemodeTable" type="table">If the gamemode is specified, the gamemode hook within will be called, otherwise not</arg>⤶
<arg name="args" type="vararg">The arguments to be passed to the hooks</arg>⤶
</args>⤶
<rets>⤶
<ret name="" type="vararg">Return data from called hooks. Limited to 6 return values</ret>⤶
</rets>⤶
</function>⤶
⤶
<example>⤶
<description>Runs function DoSomething, which eventually calls the event "DoneDoingSomething", triggering the hooked function DoSomethingElse.</description>⤶
<code>⤶
function DoSomething()⤶
--Does something⤶
hook.Call("DoneDoingSomething")⤶
end⤶
⤶
function DoSomethingElse()⤶
--Does something else, once the hook DoneDoingSomething is called.⤶
print("Done!")⤶
end⤶
hook.Add( "DoneDoingSomething", "Does something else", DoSomethingElse )⤶
⤶
DoSomething()⤶
</code>⤶
<output>Done!</output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>You can also make custom functions controllable via hooks.</description>⤶
<code>⤶
function MakeCheese()⤶
local shouldMakeCheese = hook.Call("MakeCheezPleez")⤶
⤶
if shouldMakeCheese then⤶
print("yay")⤶
else⤶
print("nay")⤶
end⤶
end⤶
⤶
function MakeCheeseOrNot()⤶
if #player.GetAll() &gt;= 1 then⤶
return true⤶
else⤶
return false⤶
end⤶
end⤶
hook.Add( "MakeCheezPleez", "Does something else", MakeCheeseOrNot )⤶
⤶
MakeCheese()⤶
</code>⤶
<output>If there is players in the server, we print "yay". If there isn't, we print "nay"</output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Calls the event "DoneDoingSomething" with args</description>⤶
<code>⤶
hook.Add("DoneDoingSomething", "Does something else", function(a, b)⤶
print(a)⤶
print(b)⤶
end)⤶
⤶
⤶
hook.Call("DoneDoingSomething", nil, "Hello", "Hey")⤶
</code>⤶
<output>⤶
Hello⤶
Hey⤶
</output>⤶
⤶
</example>