IGameEventManager: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 31: | Line 31: | ||
if( FStrEq( eventName, "player_say") ) { | if( FStrEq( eventName, "player_say") ) { | ||
int userId = event->GetInt( "userid"); | int userId = event->GetInt( "userid"); | ||
const char* text = event->GetString( "text"); | |||
Msg( "Got player_say event: userid=%i text=%s\n", userId, text | Msg( "Got player_say event: userid=%i text=%s\n", userId, text); | ||
} | } | ||
} | } |
Revision as of 13:09, 16 August 2006
Note on IGameEventManager2
With the release of the updated SDK for Ep1 the IGameEventManager was upgraded to version 2. This version allows for registering for only the events that are explicitly desired instead of registering for all events. Beware of changes in the API for this version.
Getting an Instance if the IGameEventManager2
bool Plugin::Load( CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory ) { IGameEventManager2* gameeventmanager = (IGameEventManager2*) interfaceFactory( INTERFACEVERSION_GAMEEVENTSMANAGER2, NULL); }
Subscribing for Events
void Plugin::LevelInit( char const* pMapName ) { Msg( "Level \"%s\" has been loaded\n", pMapName ); gameeventmanager->AddListener( this, "player_say", true ); }
Checking for Events
class Plugin : public IGameEventListener2 { virtual void FireGameEvent( IGameEvent* event ) { const char* eventName = event->GetName(); if( FStrEq( eventName, "player_say") ) { int userId = event->GetInt( "userid"); const char* text = event->GetString( "text"); Msg( "Got player_say event: userid=%i text=%s\n", userId, text); } } }