void RadarHackBlocker::RT_ProcessEntity ( SourceSdk::edict_t const * const pent ) { ClientRadarData * pData ( GetPlayerDataStructByIndex ( Helpers::IndexOfEdict ( pent ) ) ); static MRecipientFilter filter; filter.RemoveAll (); filter.SetReliable ( false ); if( pData->m_last_spotted_status == true ) { /* Entity is spotted -> send approximative data to all players */ filter.AddAllPlayers ( NczPlayerManager::GetInstance ()->GetMaxIndex () ); RT_SendApproximativeRadarUpdate ( filter, pData ); } else { /* Entity is not spotted -> send approximative data to teammates and spectators, random for others. */ filter.AddTeam ( pData->m_team ); filter.AddTeam ( TEAM_SPECTATOR ); filter.AddTeam ( TEAM_NONE ); filter.RemoveRecipient ( pData->m_origin_index ); RT_SendApproximativeRadarUpdate ( filter, pData ); filter.RemoveAll (); if( pData->m_team == TEAM_1 ) { filter.AddTeam ( TEAM_2 ); } else if( pData->m_team == TEAM_2 ) { filter.AddTeam ( TEAM_1 ); } else { return; } RT_SendRandomRadarUpdate ( filter, pData ); } }
//--------------------------------------------------------------------------------- // Purpose: Say string to all players in center of screen //--------------------------------------------------------------------------------- void CSayToAll ( const char *fmt, ... ) { va_list argptr; char tempString[1024]; va_start ( argptr, fmt ); vsnprintf( tempString, sizeof(tempString), fmt, argptr ); va_end ( argptr ); MRecipientFilter mrf; mrf.MakeReliable(); mrf.AddAllPlayers(max_players); #if defined ( GAME_CSGO ) CCSUsrMsg_TextMsg *msg = (CCSUsrMsg_TextMsg *)g_Cstrike15UsermessageHelpers.GetPrototype(CS_UM_TextMsg)->New(); // Show TextMsg type user message msg->set_msg_dst(4); // Center area // Client tries to read all 5 'params' and will crash if less msg->add_params(tempString); msg->add_params(""); msg->add_params(""); msg->add_params(""); msg->add_params(""); engine->SendUserMessage(mrf, CS_UM_TextMsg, *msg); delete msg; #else msg_buffer = engine->UserMessageBegin( &mrf, text_message_index ); // Show TextMsg type user message msg_buffer->WriteByte(4); // Center area msg_buffer->WriteString(tempString); engine->MessageEnd(); #endif }
//--------------------------------------------------------------------------------- // Purpose: Say admin string to all //--------------------------------------------------------------------------------- void AdminHSayToAll ( player_t *player, int anonymous, const char *fmt, ... ) { va_list argptr; char tempString[1024]; char admin_final_string[1024]; char non_admin_final_string[1024]; bool found_player = false; bool found_admin = false; va_start ( argptr, fmt ); vsnprintf( tempString, sizeof(tempString), fmt, argptr ); va_end ( argptr ); player_t server_player; if (!player) { snprintf(admin_final_string, sizeof (admin_final_string), "(CONSOLE) : %s", tempString); snprintf(non_admin_final_string, sizeof (non_admin_final_string), "(CONSOLE) %s", tempString); } else { snprintf(admin_final_string, sizeof (admin_final_string), "(ADMIN) %s: %s", player->name, tempString); snprintf(non_admin_final_string, sizeof (non_admin_final_string), "(ADMIN) %s", tempString); } OutputToConsole(NULL, "%s\n", admin_final_string); SplitHintString(admin_final_string, 34); SplitHintString(non_admin_final_string, 34); if (anonymous == 1) { MRecipientFilter mrfadmin; MRecipientFilter mrf; mrf.MakeReliable(); mrfadmin.MakeReliable(); for (int i = 1; i <= max_players; i++) { bool is_admin; is_admin = false; server_player.index = i; if (!FindPlayerByIndex(&server_player)) { continue; } if (server_player.is_bot) { continue; } is_admin = gpManiClient->HasAccess(server_player.index, ADMIN, ADMIN_BASIC_ADMIN); if (is_admin) { found_admin = true; mrfadmin.AddPlayer(i); // OutputToConsole(server_player.entity, "%s\n", admin_final_string); } else { found_player = true; mrf.AddPlayer(i); // OutputToConsole(server_player.entity, "%s\n", non_admin_final_string); } } if (found_player) { UTIL_SayHint(&mrf, non_admin_final_string); } if (found_admin) { UTIL_SayHint(&mrfadmin, admin_final_string); } } else { for (int i = 1; i <= max_players; i++) { server_player.index = i; if (!FindPlayerByIndex(&server_player)) { continue; } if (server_player.is_bot) { continue; } found_player = true; // OutputToConsole(server_player.entity, "%s\n", admin_final_string); } if (found_player) { MRecipientFilter mrf; mrf.MakeReliable(); mrf.AddAllPlayers(max_players); UTIL_SayHint(&mrf, admin_final_string); } } }
//--------------------------------------------------------------------------------- // Purpose: Say admin string to all //--------------------------------------------------------------------------------- void AdminCSayToAll ( player_t *player, int anonymous, const char *fmt, ... ) { va_list argptr; char tempString[1024]; char admin_final_string[2048]; char non_admin_final_string[2048]; bool found_player = false; bool found_admin = false; va_start ( argptr, fmt ); vsnprintf( tempString, sizeof(tempString), fmt, argptr ); va_end ( argptr ); player_t server_player; if (!player) { snprintf(admin_final_string, sizeof (admin_final_string), "(CONSOLE) : %s", tempString); snprintf(non_admin_final_string, sizeof (non_admin_final_string), "(CONSOLE) %s", tempString); } else { snprintf(admin_final_string, sizeof (admin_final_string), "(ADMIN) %s: %s", player->name, tempString); snprintf(non_admin_final_string, sizeof (non_admin_final_string), "(ADMIN) %s", tempString); } OutputToConsole(NULL, "%s\n", admin_final_string); if (anonymous == 1) { MRecipientFilter mrfadmin; MRecipientFilter mrf; mrf.MakeReliable(); mrfadmin.MakeReliable(); for (int i = 1; i <= max_players; i++) { bool is_admin; is_admin = false; server_player.index = i; if (!FindPlayerByIndex(&server_player)) { continue; } if (server_player.is_bot) { continue; } is_admin = gpManiClient->HasAccess(server_player.index, ADMIN, ADMIN_BASIC_ADMIN); if (is_admin) { found_admin = true; mrfadmin.AddPlayer(i); if (!(gpManiGameType->IsGameType(MANI_GAME_CSS) || gpManiGameType->IsGameType(MANI_GAME_CSGO))) { OutputToConsole(&server_player, "%s\n", admin_final_string); } } else { found_player = true; mrf.AddPlayer(i); if (!(gpManiGameType->IsGameType(MANI_GAME_CSS) || gpManiGameType->IsGameType(MANI_GAME_CSGO))) { OutputToConsole(&server_player, "%s\n", non_admin_final_string); } } } if (found_player) { #if defined ( GAME_CSGO ) CCSUsrMsg_TextMsg *msg = (CCSUsrMsg_TextMsg *)g_Cstrike15UsermessageHelpers.GetPrototype(CS_UM_TextMsg)->New(); // Show TextMsg type user message msg->set_msg_dst(4); // Center area // Client tries to read all 5 'params' and will crash if less msg->add_params(non_admin_final_string); msg->add_params(""); msg->add_params(""); msg->add_params(""); msg->add_params(""); engine->SendUserMessage(mrf, CS_UM_TextMsg, *msg); delete msg; #else msg_buffer = engine->UserMessageBegin( &mrf, text_message_index ); // Show TextMsg type user message msg_buffer->WriteByte(4); // Center area msg_buffer->WriteString(non_admin_final_string); engine->MessageEnd(); #endif } if (found_admin) { #if defined ( GAME_CSGO ) CCSUsrMsg_TextMsg *msg = (CCSUsrMsg_TextMsg *)g_Cstrike15UsermessageHelpers.GetPrototype(CS_UM_TextMsg)->New(); // Show TextMsg type user message msg->set_msg_dst(4); // Center area // Client tries to read all 5 'params' and will crash if less msg->add_params(admin_final_string); msg->add_params(""); msg->add_params(""); msg->add_params(""); msg->add_params(""); engine->SendUserMessage(mrfadmin, CS_UM_TextMsg, *msg); delete msg; #else msg_buffer = engine->UserMessageBegin( &mrfadmin, text_message_index ); // Show TextMsg type user message msg_buffer->WriteByte(4); // Center area msg_buffer->WriteString(admin_final_string); engine->MessageEnd(); #endif } } else { for (int i = 1; i <= max_players; i++) { server_player.index = i; if (!FindPlayerByIndex(&server_player)) { continue; } if (server_player.is_bot) { continue; } found_player = true; if (!(gpManiGameType->IsGameType(MANI_GAME_CSS) || gpManiGameType->IsGameType(MANI_GAME_CSGO))) { OutputToConsole(&server_player, "%s\n", admin_final_string); } } if (found_player) { MRecipientFilter mrf; mrf.MakeReliable(); mrf.AddAllPlayers(max_players); #if defined ( GAME_CSGO ) CCSUsrMsg_TextMsg *msg = (CCSUsrMsg_TextMsg *)g_Cstrike15UsermessageHelpers.GetPrototype(CS_UM_TextMsg)->New(); // Show TextMsg type user message msg->set_msg_dst(4); // Center area // Client tries to read all 5 'params' and will crash if less msg->add_params(admin_final_string); msg->add_params(""); msg->add_params(""); msg->add_params(""); msg->add_params(""); engine->SendUserMessage(mrf, CS_UM_TextMsg, *msg); delete msg; #else msg_buffer = engine->UserMessageBegin( &mrf, text_message_index ); // Show TextMsg type user message msg_buffer->WriteByte(4); // Center area msg_buffer->WriteString(admin_final_string); engine->MessageEnd(); #endif } } }