rendered paste bodyclass CEvent{ DWORD dwUnknown[ 5 ];public: const char * pszEvent;};typedef void ( * tBroadcastEvent )( DWORD dwEventID, const char * pszFmt ... );tBroadcastEvent oBroadcastEvent = 0;void BroadcastEvent( DWORD dwEventID, const char * pszFmt, const char * pszArgs ... ){ _asm pushad CEvent * pEvent = *(CEvent**)( *reinterpret_cast<DWORD*>( dwList[ "EventBase" ].Get() ) + dwEventID * 4 ); add_log( "%x %s %s", dwEventID, pEvent->pszEvent, pszFmt ); if( pszFmt && *pszFmt ) { va_list vaList; va_start( vaList, pszFmt ); if( dwEventID == 0x111 /* || !strcmp( pEvent->pszEvent, "CHAT_MSG_SAY" ) */ ) // CHAT_MSG_SAY { const char * pszMessage = va_arg( vaList, const char * ); const char * pszSender = va_arg( vaList, const char * ); const char * pszLanguage = va_arg( vaList, const char * ); add_log( "[%s] said: %s %s", pszSender, pszMessage, pszLanguage ); } va_end( vaList ); } _asm popad oBroadcastEvent( dwEventID, pszFmt, pszArgs );}