This wiki is archived and useful information is being migrated to the main bzflag.org website

Difference between revisions of "Bz eCaptureEvent"

From BZFlagWiki
Jump to: navigation, search
m (fixed time to eventTime)
 
(6 intermediate revisions by 3 users not shown)
Line 6: Line 6:
  
 
==Data==
 
==Data==
'''bz_eCaptureEvent''' returns the '''bz_CTFCaptureEventData''' data class.
+
'''bz_eCaptureEvent''' returns the '''bz_CTFCaptureEventData_V1''' data class.
  
 
   {| border="1" cellpadding="20" cellspacing="0"
 
   {| border="1" cellpadding="20" cellspacing="0"
Line 19: Line 19:
 
   |teamCapped
 
   |teamCapped
 
   |[[bz_eTeamType]]
 
   |[[bz_eTeamType]]
   |The team whose flag has been captured
+
   |The team whose flag was captured.
 
   |-
 
   |-
 
   |teamCapping
 
   |teamCapping
 
   |[[bz_eTeamType]]
 
   |[[bz_eTeamType]]
   |The team who has captured a flag
+
   |The team who did the capturing.
 
   |-
 
   |-
 
   |playerCapping
 
   |playerCapping
 
   |int
 
   |int
   |The player who captured the flag
+
   |The player who captured the flag.
 
   |-
 
   |-
 
   |pos
 
   |pos
 
   |float[3]
 
   |float[3]
   |Position where the flag has been captured
+
   |The world position(X,Y,Z) where the flag has been captured
 
   |-
 
   |-
 
   |rot
 
   |rot
 
   |float
 
   |float
   |Rotation of the capturing player
+
   |The rotational orientation of the capturing player
 
   |-
 
   |-
   |time
+
   |eventTime
 
   |double
 
   |double
   |The time on which the flag was captured
+
   |The server time at which the event occurred (in seconds).
 
   |}
 
   |}
 +
 
==Uses==
 
==Uses==
This event is a notification only event, none of the data returned can be changed.
+
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;
 +
    }
 +
}
  
 
[[Category:BZFS_API_Docs]]
 
[[Category:BZFS_API_Docs]]
 
[[Category:BZFS_API_Events]]
 
[[Category:BZFS_API_Events]]

Latest revision as of 07:45, 1 May 2014

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[edit]

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

Data[edit]

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
eventTime double The server time at which the event occurred (in seconds).

Uses[edit]

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

Example Code[edit]

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;
   }
}