bz eCaptureEvent

From BZFlagWiki
Revision as of 06:48, 15 June 2013 by Allejo (Talk | contribs) (oops... typo)

Jump to: navigation, search
BZFS API Documentation This page contains part of the BZFS API documentation for use by Plug-ins on the BZFS server.

BZFS Event. This page documents a BZFS event that is called by the game server to notify plug-ins of various actions and state changes in the game world.


Overview

The bz_eCaptureEvent is an API event that is called each time a team's flag has been captured.

Data

bz_eCaptureEvent returns the bz_CTFCaptureEventData_V1 data class.

name type value description
eventType bz_eEventType bz_eCaptureEvent
teamCapped bz_eTeamType The team whose flag was captured.
teamCapping bz_eTeamType The team who did the capturing.
playerCapping int The player who captured the flag.
pos float[3] The world position(X,Y,Z) where the flag has been captured
rot float The rotational orientation of the capturing player
time double The time on which the flag was captured

Uses

This event is a notification-only event, none of the data returned can be changed.

Example Code

void sampleDocPlugin::Event(bz_EventData* eventData)
{
   switch (eventData->eventType)
   {
       case bz_eCaptureEvent: // A tank captures the flag
       {
           // Get the data about what just happened and store it in the 'capData' variable
           bz_CTFCaptureEventData_V1* capData = (bz_CTFCaptureEventData_V1*)eventData;

           // Create a player record in order to access the player's callsign
           bz_BasePlayerRecord* myPlayerRecord = bz_getPlayerByIndex(capData->playerCapping);

           bz_sendTextMessagef(BZ_SERVER, BZ_ALLUSERS, "%s captured the flag!", myPlayerRecord->callsign.c_str()); // Announce who captured the flag

           bz_freePlayerRecord(myPlayerRecord); // Free the player record to avoid a memory leak
       }
       break;

       default: break;
   }
}