void CCrywolfUtil::SendAllUserAnyMsg(int iType, LPSTR lpszMsg, ...) { if ( !lpszMsg ) return; char szBuffer[512] = ""; va_list pArguments; va_start(pArguments, lpszMsg); vsprintf(szBuffer, lpszMsg, pArguments); va_end(pArguments); PMSG_NOTICE pNotice; switch ( iType ) { case 1: TNotice::MakeNoticeMsg(&pNotice, 0, szBuffer); TNotice::SetNoticeProperty(&pNotice, 10, _ARGB(255, 255, 200, 80), 1, 0, 20); TNotice::SendNoticeToAllUser(&pNotice); break; case 2: TNotice::MakeNoticeMsg(&pNotice, 0, szBuffer); TNotice::SendNoticeToAllUser(&pNotice); break; } }
// ------------------------------------------------------------------------------------------------------------------------------------------------------- CNotice::CNotice() { this->m_Notice.btCount = 1; this->m_Notice.btSpeed = 20; this->m_Notice.dwColor = _ARGB(255, 255, 200, 80); this->m_Notice.wDelay = 0; }
TNotice::TNotice(BYTE btType) { this->m_Notice.btCount = 1; this->m_Notice.btSpeed = 20; this->m_Notice.dwColor = _ARGB(255, 255, 200, 80 ); this->m_Notice.wDelay = 0; this->m_Notice.type = btType; }
void CCrywolfUtil::SendCrywolfUserAnyMsg(int iType, LPSTR lpszMsg, ...) { if ( !lpszMsg ) return; char szBuffer[512] = ""; va_list pArguments; va_start(pArguments, lpszMsg); vsprintf(szBuffer, lpszMsg, pArguments); va_end(pArguments); PMSG_NOTICE pNotice; switch ( iType ) { case 1: TNotice::MakeNoticeMsg(&pNotice, 0, szBuffer); TNotice::SetNoticeProperty(&pNotice, 10, _ARGB(255, 255, 200, 80), 1, 0, 20); break; case 2: TNotice::MakeNoticeMsg(&pNotice, 0, szBuffer); break; } for ( int i=OBJ_STARTUSERINDEX;i<OBJMAX;i++) { if ( gObj[i].Connected == PLAYER_PLAYING ) { if ( gObj[i].Type == OBJ_USER ) { if ( gObj[i].MapNumber == MAP_INDEX_CRYWOLF_FIRSTZONE ) { DataSend(i, (LPBYTE)&pNotice, pNotice.h.size); } } } } }
void UserNoticeRecv( SDHP_USER_NOTICE * lpMsg) { char szNotice[101]; char szId[11]; szNotice[100]=0; szId[10]=0; memcpy(szNotice, lpMsg->Notice , sizeof(lpMsg->Notice)-1); memcpy(szId, lpMsg->szId , sizeof(lpMsg->szId)); LogAddTD("[Mu Manager][Notice Log][Type:USER] (%s) %s", szId, szNotice); if ( strlen(szNotice) > 1 ) { if ( strlen(szId) > 1 ) { for ( int n = OBJ_STARTUSERINDEX;n<OBJMAX; n++) { if ( gObj[n].Connected >= PLAYER_LOGGED ) { if ( gObj[n].AccountID[0] == szId[0] ) { if ( gObj[n].AccountID[1] == szId[1] ) { if ( strcmp( gObj[n].AccountID , szId) == 0 ) { PMSG_NOTICE pNotice; TNotice::MakeNoticeMsg(&pNotice, 0, szNotice); TNotice::SetNoticeProperty(&pNotice, 10, _ARGB(255, 254, 81, 81), 1, 0, 20); TNotice::SendNoticeToUser(n, &pNotice); break; } } } } } // For } } }