Attaches the Lua function "func" to the hook "hook". CS2D will always call that Lua function when the event related to that hook occurs.
You can add an unlimited amount of different functions to each hook - but bear in mind that this might affect the performance in a negative way. Especially for hooks which are called frequently.
Click here for a list of all available hook
CS2D will pass parameters to most hooked Lua functions. Those parameters depend on the used hook and contain information about the hook event that just occurred. If you want to use the values of these parameters you have to define them in the function you add to the hook. Otherwise they won't be available in your script. You only have to add the parameters you actually use but they have to be in the same order as defined in the hook. So if you only need the last one you also have to define all other ones.
Hook Return Value
Some of the hook-functions can also have a return value. This return value influences the way CS2D reacts. Returning nothing is like returning 0, "" or nil.
When returning nothing CS2D will react in the normal way (as if no Lua script was executed).
In many cases you can skip the actual action in CS2D by returning 1 (return 1) in a hooked Lua function.
Read the description of the hook you want to use to learn more about possible return values.
Hook Priority (Optional)
Priority is only important if there is more than one function attached to the same hook!
Default is 0, higher numbers = higher priority, lower numbers (also negative) = lower priority.
The attached function with the HIGHEST priority is the function which will be executed LAST. CS2D will take the return value of this last function (if there is any) only. All other return values will be ignored. This is because CS2D can only react in ONE way at a time and therefore it can only process ONE return value even though there are multiple hooked functions.
In most cases you will just omit the priority parameter (it is [optional]).
Example: Show a custom message if a player says something. Return 1 suppresses the normal chat output.
msg(player(playerId,"name").." just said "..chatMessage)
The "hook" and the "func" parameters must be strings! Do not forget the " or ' around them!
Please only use the plain hook and function names. Do not add any function parameters or anything else in the addhook-call.
Attention: "func" can be either a simple function in the Lua main table (aka a global function) e.g. "helloWorld" or a function nested in a table e.g. "foo.bar" or even multiple tables e.g. "this.is.nested". Table accessors like  are NOT supported here. So instead of "foo['bar']" you have to write "foo.bar".