From BZFlagWiki
Revision as of 22:20, 17 February 2007 by Joevano (Talk | contribs)

Jump to: navigation, search

The BZFS API is used to create plugins for BZFS.

Here is a general overview, miserably copied with permission of JeffM2501.

Team Info Functions

BZF_API unsigned int bz_getTeamPlayerLimit ( bz_eTeamType team )

Returns the player limit for the specified team. If an invalid team is used, 0 will be returned.

This function is in both 2.0.x CVS and 2.1 as of now.

Server Reset / Map Mangement

BZF_API bool bz_restart ( void );

This function will do the following things. 1) kick all players 2) stop any countdowns 3) stop any recordings 4) unload the world 5) reload the world ( calling the bz_eGetWorldEvent that allows for a map file override ) 6) resets all flags. 7) accept new connections.

This will basically let you do a map reload, with out a full shutdown of the server. none of the plug ins are unloaded, the server is not desisted, none of that ). There may be some additional things we need to reset, we will add them as we find them ( like reload the command line options, or let the plug-in set them ).

BZF_API void bz_setClientWorldDowloadURL( const char* URL );

This function sets the current URL used to download a cached world file. It will be sent to clients that connect giving them the option of using that file. This is helpful if you have changed the map file during a reload.

BZF_API const bzApiString bz_getClientWorldDowloadURL( void );

Returns the current world URL.

BZF_API bool bz_saveWorldCacheFile( const char* file );

Forces the server to save out a world cache file into the specified file. Returns false on failure.

These commands are in CVS for both 2.0.x and 2.1 as of now.

I'm sure the Restart function will need some work but any help testing it will be greatly appreciated.

Flag Drop Messages


it is called whenever the server gets a dropped flag. The event will contain a bz_FlagDroppedEvenData_V1 object. it has the playerID, the flagID, the flag droped, and the position the flag was dropped at.

Shot Type Control

2.1 now has messages and functions that let you modify the shot type of a tank. The shot type is now independent of the flag you carry. When the shot type is changed, the client will pick up on that change and it will start shoting shots of that type. Once changed, you do NOT have to change the shot type of every shot fired. And yes, the shoting client WILL see the modified shot type, so the entire state will be in sync.

Code: BZF_API bool bz_setPlayerShotType( int playerId, bz_eShotType shotType );

This will set the current shot type for the player. Any shots fired after the shot type is sent will be of this new type.

you can also set the shotType field in the bz_eGrabFlagEvent event, and the shot type will be sent with the flag pickup ( this is the best way to do it ).

Any time a player spawns or drops a flag, there shot type will be reset to the standard shot type, and should be reset, if you want to change the default shots.