game_shared/teamplay_gamerules.cpp
373839404142
// Copy over the team from the server config
m_szTeamList[0] = 0;
RecountTeams();
}
37383940414243
// Copy over the team from the server config
m_szTeamList[0] = 0;
m_szGameDescription[0] = '\0';
RecountTeams();
}
291292293294295296297298299300301302303304305306307308309310311312313314315316317318
if ( m_DisableDeathMessages )
return;
CBaseEntity *pKiller = info.GetAttacker();
if ( pVictim && pKiller && pKiller->IsPlayer() )
{
CBasePlayer *pk = (CBasePlayer*)pKiller;
if ( pk )
{
if ( (pk != pVictim) && (PlayerRelationship( pVictim, pk ) == GR_TEAMMATE) )
{
IGameEvent * event = gameeventmanager->CreateEvent( "player_death" );
if ( event )
{
event->SetInt("killer", pk->GetUserID() );
event->SetInt("victim", pVictim->GetUserID() );
event->SetInt("priority", 7 ); // HLTV event priority, not transmitted
gameeventmanager->FireEvent( event );
}
return;
}
}
}
BaseClass::DeathNotice( pVictim, info );
}
292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
if ( m_DisableDeathMessages )
return;
//CBaseEntity *pKiller = info.GetAttacker();
//if ( pVictim && pKiller && pKiller->IsPlayer() )
//{
// CBasePlayer *pk = (CBasePlayer*)pKiller;
// if ( pk )
// {
// if ( (pk != pVictim) && (PlayerRelationship( pVictim, pk ) == GR_TEAMMATE) )
// {
// IGameEvent * event = gameeventmanager->CreateEvent( "player_death" );
// if ( event )
// {
// event->SetInt( "userid", pVictim->GetUserID() );
// event->SetInt( "attacker", pk->GetUserID() );
// event->SetString( "weapon", "teammate" );
// event->SetInt( "priority", 10 );
// //event->SetInt("killer", pk->GetUserID() );
// //event->SetInt("victim", pVictim->GetUserID() );
// //event->SetInt("priority", 7 ); // HLTV event priority, not transmitted
//
// gameeventmanager->FireEvent( event );
// }
// return;
// }
// }
//}
BaseClass::DeathNotice( pVictim, info );
}
337338339340341342343344345346347348349350351352353354355
return true;
}
bool CTeamplayRules::FPlayerCanTakeDamage( CBasePlayer *pPlayer, CBaseEntity *pAttacker )
{
if ( pAttacker && PlayerRelationship( pPlayer, pAttacker ) == GR_TEAMMATE )
{
// my teammate hit me.
if ( (friendlyfire.GetInt() == 0) && (pAttacker != pPlayer) )
{
// friendly fire is off, and this hit came from someone other than myself, then don't get hurt
return false;
}
}
return BaseClass::FPlayerCanTakeDamage( pPlayer, pAttacker );
}
//=========================================================
342343344345346347348349350351352353354355356357358359
return true;
}
bool CTeamplayRules::FCanTakeDamage( CBaseEntity *pVictim, CBaseEntity *pAttacker )
{
if(( pAttacker ) && ( PlayerRelationship( pVictim, pAttacker ) == GR_TEAMMATE ))
{
// If friendly fire is off and I'm not attacking myself, then
// someone else on my team/an ally is attacking me - don't
// take damage
if(( friendlyfire.GetInt( ) == 0 ) && ( pVictim != pAttacker ))
return false;
}
return BaseClass::FCanTakeDamage( pVictim, pAttacker );
}
//=========================================================