As usual, I got bored one night and came up with an interesting concept. Instead of having to edit various functions and files to add code you found or to write in a new, complex feature, you can hook and include files to add functionality.
Stormeus'
Extensible
Scripts (SES) has two types of "objects" (which is just stuff it can load):
Includes are useful for adding functions that can be used by any other hooks or includes. They should contain functions, such as getting the speed of a vehicle.
Hooks add functionality to an event, like onServerStart or onPlayerMove. Instead of having to manually edit these functions in whatever file they may be, you can hook them by adding a line to an XML file.
A typical SES XML file will look like this:
<ses>
<hook>DemoHook</hook>
<hook>BasicAnticheat</hook>
<hook>JoinMessages</hook>
<include>GetVehicleVelocity</include>
</ses>
Includes are regular Squirrel files. However, hook files are different. If a function named
SES_Init() is found in a hook file, it will be called. You can then use different hooking functions, like
hook_onServerStart( functionPointer ), to add functionality to a server. Not only that, but each hook function will return an ID which can be used to unhook later. For example:
function myOnServerStart() { print( "good" ); }
function SES_Init()
{
local hookID = hook_onServerStart( myOnServerStart );
if( hooked_onServerStart( hookID ) )
unhook_onServerStart( hookID );
}
Downloadhttp://stormeus.vicelegends.com/ses.zip