// oppositeFlag.cpp : Defines the entry point for the DLL application. // #include "bzfsAPI.h" BZ_GET_PLUGIN_VERSION class oppositeFlagHandler : public bz_EventHandler { public: virtual void process( bz_EventData *eventData ); }; oppositeFlagHandler oppositeFlagHandler; BZF_PLUGIN_CALL int bz_Load ( const char* /*commandLine*/ ) { bz_debugMessage(4,"oppositeFlag plugin loaded"); bz_registerEvent( bz_eFlagGrabbedEvent, &oppositeFlagHandler ); return 0; } BZF_PLUGIN_CALL int bz_Unload ( void ) { bz_removeEvent( bz_eFlagGrabbedEvent, &oppositeFlagHandler ); bz_debugMessage(4,"oppositeFlag plugin unloaded"); return 0; } void FlagOnSpawnHandler::process( bz_EventData *eventData ) { bz_FlagGrabbedEventData *grabData = (bz_FlagGrabbedEventData*) eventData; int grabFlag = grabData->flagType; int grabber = grabData->playerID; int bef = grabber - 1; int aft = grabber + 1; if( grabFlag == "Guided Missile" ) { while(bef > 0) { bz_givePlayerFlag( bef, "ST", true ); bef = bef-1; } while(bz_PlayerRecord *myPlayer = bz_getPlayerByIndex( aft ); my Player->callsign != NULL) { bz_freePlayerRecord( myPlayer ); bz_givePlayerFlag( aft, "ST", true ); aft = aft+1; } } } // Local Variables: *** // mode:C++ *** // tab-width: 8 *** // c-basic-offset: 2 *** // indent-tabs-mode: t *** // End: *** // ex: shiftwidth=2 tabstop=8