rendered paste body#include "bzfsAPI.h"#include <math.h>BZ_GET_PLUGIN_VERSIONclass takeFlag : public bz_EventHandler { public: virtual void process(bz_EventData *eventData);};takeFlag tf;BZF_PLUGIN_CALL int bz_Load (const char*) { bz_registerEvent(bz_eShotFiredEvent, &tf); bz_debugMessage(0, "takeFlag Plug-in: Loaded"); return 0;}BZF_PLUGIN_CALL int bz_Unload (void) { bz_removeEvent(bz_eShotFiredEvent, &tf); bz_debugMessage(0, "takeFlag Plug-in: Unloaded"); return 0;}void takeFlag::process(bz_EventData *eventData) { if (eventData->eventType == bz_eShotFiredEvent) { bz_ShotFiredEventData *shotData = (bz_ShotFiredEventData*)eventData; if ((shotData->pos[2] < 68 && (shotData->type == "GM" || shotData->type == "L")) || (shotData->pos[2] < 23 && shotData->type == "WG")) { bzAPIIntList *pl = bz_newIntList(); bz_getPlayerIndexList(pl); for (unsigned int i = 0; i < pl->size(); i++) { bz_PlayerRecord *pr = bz_getPlayerByIndex(i); if (abs((int)pr->pos[0] - (int)shotData->pos[0]) < 2 && abs((int)pr->pos[1] - (int)shotData->pos[1]) < 2 && abs((int)pr->pos[2] - (int)shotData->pos[2]) < 2) { bz_removePlayerFlag(i); bz_sendTextMessage(BZ_SERVER, i, "No Laser, GM, or WG on the ground!"); } bz_freePlayerRecord(pr); } bz_deleteIntList(playerList); } } else { // WTF? }}