当前位置: 首页>>代码示例>>C++>>正文


C++ IPlayer::isBot方法代码示例

本文整理汇总了C++中IPlayer::isBot方法的典型用法代码示例。如果您正苦于以下问题:C++ IPlayer::isBot方法的具体用法?C++ IPlayer::isBot怎么用?C++ IPlayer::isBot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IPlayer的用法示例。


在下文中一共展示了IPlayer::isBot方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onFrame

void CAntiAimbot::onFrame() {
	if( !isEnabled() )
		return;

	for( short i = 1; i <= m_pPlayerManager->getMaxClients(); i++ ) {
		IPlayer *pPlayer = m_pPlayerManager->getPlayer(i);
		if( pPlayer == NULL || pPlayer->isBot() || pPlayer->isHLTV() )
			continue;

		if( !pPlayer->isAlive() ) {
			m_Aims[i].clear();
			continue;
		}

		CVecAim& Aim = m_Aims[i];

		for( int i = NUM_DATA-1; i > 0; i-- ) {
			Aim.vecAim[i] = Aim.vecAim[i-1];
			Aim.vecVelocity[i] = Aim.vecVelocity[i-1];
			Aim.flDegree[i] = Aim.flDegree[i-1];
			Aim.flDegreeVel[i] = Aim.flDegreeVel[i-1];
			Aim.flDegreeVelProjected[i] = Aim.flDegreeVelProjected[i-1];
		}

		Aim.vecAim[0] = pPlayer->getVecAngle();
		Aim.vecVelocity[0] = Aim.vecAim[0] - Aim.vecAim[1];
		if( Aim.vecAim[0] != Aim.vecAim[1] )
			Aim.flDegree[0] = 180/M_PI * acos((Aim.vecAim[0] * Aim.vecAim[1])/(Aim.vecAim[0].len() * Aim.vecAim[1].len()));
		else
			Aim.flDegree[0] = 0.0;
		if( Aim.vecVelocity[0] != CVector() && Aim.vecVelocity[1] != CVector() )
			Aim.flDegreeVel[0] = 180/M_PI * acos((Aim.vecVelocity[0] * Aim.vecVelocity[1])/(Aim.vecVelocity[0].len() * Aim.vecVelocity[1].len()));
		else
			Aim.flDegreeVel[0] = 0.0;

		CVector vecVel0 = Aim.vecVelocity[0];
		CVector vecVel1 = Aim.vecVelocity[1];
		CVector& vecNorm = Aim.vecAim[0];

		// project vecVel0 to plane
		float t = -(vecVel0 * vecNorm)/(vecNorm * vecNorm);
		vecVel0 = vecVel0 + t*vecNorm;

		t = -(vecVel1 * vecNorm)/(vecNorm * vecNorm);
		vecVel1 = vecVel1 + t*vecNorm;

		vecVel0.normalize();
		vecVel1.normalize();

		if( vecVel0 != CVector() && vecVel1 != CVector() )
			Aim.flDegreeVelProjected[0] = 180.0/M_PI * acos((vecVel0 * vecVel1));
		else
			Aim.flDegreeVelProjected[0] = 0.0;

		/*
		// ignore recently spawned/joined player
		if( Aim.vecAim[NUM_DATA-1] == CVector() || Aim.vecVelocity[1] == CVector() )
			continue;

		if( Aim.vecAim[0] != Aim.vecAim[1] ) {
			// m_pEngine->printHud(CStr::format("%s: %f° %f° VelLastLen: %f VelNewLen: %f\n", pPlayer->getNick(), Aim.flDegree[0], Aim.flDegreeVel[0], Aim.vecVelocity[1].len(), Aim.vecVelocity[0].len()));
			printf(CStr::format("%s: %f° %f° VelLastLen: %f VelNewLen: %f\n", pPlayer->getNick(), Aim.flDegree[0], Aim.flDegreeVel[0], Aim.vecVelocity[1].len(), Aim.vecVelocity[0].len()));
			if( Aim.flDegreeVel[0] > 120 && Aim.flDegree[0] >= Aim.flDegree[1]*0.9 && Aim.flDegree[0] > 8.0 && Aim.flDegreeVel[1] < 45.0 ) {
				Aim.bCheat = true;
				m_pEngine->printHud(CStr::format("[SBG]: %s is using an aimbot!\n", pPlayer->getNick()));
			}
		}
		*/

	}
}
开发者ID:live141,项目名称:SBGuardian,代码行数:71,代码来源:AntiAimbot.cpp


注:本文中的IPlayer::isBot方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。