亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? aimbot.cpp

?? CS作弊器源代碼,用易語(yǔ)言編寫...簡(jiǎn)單適用,適合新人!~~~~
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{
	VectorCopy(_origin,vecDrawPoints[DrawPointsNextIndex].origin);
	vecDrawPoints[DrawPointsNextIndex].color_compiled = _color;
	vecDrawPoints[DrawPointsNextIndex].size = _size;
	vecDrawPoints[DrawPointsNextIndex].active = true;

	DrawPointsNextIndex++;
	if( DrawPointsNextIndex>=(int)vecDrawPoints.size() ) DrawPointsNextIndex=0;
}

// ======= DrawAllHudPoints
void DrawPoints::draw_all()
{
	typedef vector<ScheduledDrawPoint> vp;
	for( vp::iterator pos=vecDrawPoints.begin(); pos!=vecDrawPoints.end(); ++pos )
	{
		if( (*pos).active )
		{
			ScheduledDrawPoint& point = (*pos);
			point.active=false;
			gDrawFilledBoxAtLocation(point.origin,point.color_compiled,point.size);
		}
	}
}

// global DrawPoints
static DrawPoints gDrawPoints;

//===================================================================================
//===================================================================================
//===================================================================================
//===================================================================================
//===================================================================================
//===================================================================================
//===================================================================================

//==========================================================================================
void BoneAimbot::CalcTargetSpot(float* out)
{
	if( vPlayers[target].numTargetSpots && cvar.modelaim )
	{
		ModelBasedAim(out);
	} 
	else 
	{
		OriginAimbot::CalcTargetSpot(out);
	}
}

// ========================================================================
void BoneAimbot::ModelBasedAim(float* TargetVec)
{
	// try first spot:
	int i = firstaimspot;
	if( i<vPlayers[target].numTargetSpots && i>=0 )
	{
		//==========================
        //  copy+paste warning
		//==========================
		float* testvec = vPlayers[target].TargetSpots[i];
		if(pathFree(me.pmEyePos,testvec))
		{
			VectorCopy(testvec,TargetVec);
			return;
		}
	}

	for(int i=0;i<vPlayers[target].numTargetSpots;i++)
	{
		if(i==firstaimspot) continue; // already tested

		//==========================
        //  copy+paste warning
		//==========================
		float* testvec = vPlayers[target].TargetSpots[i];
		if(pathFree(me.pmEyePos,testvec))
		{
			VectorCopy(testvec,TargetVec);
			return;
		}
	}

	VectorCopy(vPlayers[target].TargetSpots[0], TargetVec );
}


//==========================================================================================
BoneAimbot::ModelInfo* BoneAimbot::getModelInfo(const char* arg_name)
{
	assert(arg_name);

	if(hashToInfo.size()>32) // prevent possible overflow
	{
		Con_Echo("&rerror: Model limit reached.");
		return NULL;
	}

	ModelInfo& info = hashToInfo[arg_name];
	info.name = arg_name;
	return &info;
}

//==========================================================================================
void BoneAimbot::draw()
{
	
	if(cvar.avdraw<=2) { OriginAimbot::draw(); return; };  // 1, 2

    
	gDrawPoints.draw_all();

}

//==============================================================================
void BoneAimbot::load(const char* filename)
{
	//ifstream ifs(filename);
	//if(!ifs) { Con_Echo( "&w%s&r read error.",filename); return; }

	//#define READ_DWORD(a)   { ifs.read((char*)&a,4); }
	//#define READ_BLOCK(a,n) { ifs.read((char*)a,n ); }

	//hashToInfo.clear();

	//int numModels;
	//READ_DWORD( numModels );


	//for(int i=0;i<numModels;i++)
	//{
	//	char tmp_name[64];
	//	int  tmp_length;
	//	READ_BLOCK( tmp_name,64 );
	//	READ_DWORD( tmp_length  );

	//	ModelInfo* pInfo = getModelInfo(tmp_name);
 //       
	//	int dummy;
	//	READ_DWORD( dummy ); // skip hash
	//	READ_DWORD( pInfo->team );
	//	READ_DWORD( pInfo->numAimspots );

	//	for( int k=0; k<pInfo->numAimspots; k++ )
	//	{
	//		ModelAimSpot& spot = pInfo->aimspots[k];
	//		READ_DWORD( spot.boneindex  );
	//		READ_DWORD( spot.boneindex2 );
	//		READ_DWORD( spot.factor2    );
	//	}
	//}

	//ifs.close();

}

//==============================================================================
void BoneAimbot::save(const char* filename)
{
	ofstream ofs(filename);
	if(!ofs) { Con_Echo( "&w%s&r write error.",filename); return; }
	else     { Con_Echo( "&w%s&g saved."      ,filename); }

	ofs<<"// this file is generated automatically. do not edit!"<<endl;
	ofs<<"mdl clear_models"<<endl;

	for( iterator pos = hashToInfo.begin(); pos!=hashToInfo.end(); ++pos )
	{
		ModelInfo& info = (*pos).second;
		ofs<<endl<<"mdl new "<<info.name<<endl;

		for(int i=0;i<info.numAimspots;i++)
		{
			ModelAimSpot& spot = info.aimspots[i];
			if(spot.boneindex)
				ofs<<"mdl add_spot "<<spot.boneindex<<" "<<spot.boneindex2<<" "<<spot.factor2<<endl;
			else
				ofs<<"mdl add_spot "<<spot.boneindex<<endl;
		}
	}
	ofs<<endl<<"mdl ov "<<offset_first.h<<" "<<offset_first.f<<" "<<offset_first.r<<endl;
}

// ==================================================================
static void calcPredictDelta(cl_entity_s* ent, float *delta)
{
	if (cvar.pred)
	{
			int  historyIndex = (ent->current_position+HISTORY_MAX-cvar.predback)%HISTORY_MAX;
			
			float* vFromOrigin = ent->ph[historyIndex].origin;
			float* vToOrigin   = ent->ph[ent->current_position].origin;
			
			delta[0] = vToOrigin[0] - vFromOrigin[0];
			delta[1] = vToOrigin[1] - vFromOrigin[1];
			delta[2] = vToOrigin[2] - vFromOrigin[2];

			delta[0] *= cvar.predahead;
			delta[1] *= cvar.predahead;
			delta[2] *= cvar.predahead;
	}
	else 
	{
        delta[0]=delta[1]=delta[2]=0;
	}
}

////==============================================================================
void BoneAimbot::PostStudioDrawPlayer( int flags, struct entity_state_s *pplayer )
{
	int ax = pplayer->number;
	//if (ax!=target) return; 
	if(!vPlayers[ax].getPVS()) return; 
	
	// non visible players return wrong bones!
	// also avoid storing bone positions for too many players
	if(GetAimingFov(ax) < (40.0-180.0)/-180.0) return; 
	
	cl_entity_s* ent = vPlayers[ax].getEnt();

	model_s* pModel = pIEngineStudio->SetupPlayerModel(ax-1);
	studiohdr_t* pStudioHeader = (studiohdr_t*)pIEngineStudio->Mod_Extradata( pModel );

	// get bone transform 
	typedef float TransformMatrix[ MAXSTUDIOBONES ][ 3 ][ 4 ];
	TransformMatrix*  pbonetransform = (TransformMatrix*)pIEngineStudio->StudioGetBoneTransform();

	// get model info
	if(cvar.avdraw==3) gSetHudMessage(pStudioHeader->name);
	ModelInfo* l_modelInfo = getModelInfo(pStudioHeader->name);
	if(!l_modelInfo) return;

	// grab target spots:
	vec3_t predictDelta; 
	calcPredictDelta(ent, predictDelta );

	for( int i=0;i<l_modelInfo->numAimspots;i++ )
	{
		ModelAimSpot& spot = l_modelInfo->aimspots[i];
		vec3_t&       pos  = vPlayers[ax].TargetSpots[i];

		pos [ 0 ] = (*pbonetransform)[ spot.boneindex  ][ 0 ][ 3 ];
		pos [ 1 ] = (*pbonetransform)[ spot.boneindex  ][ 1 ][ 3 ];
		pos [ 2 ] = (*pbonetransform)[ spot.boneindex  ][ 2 ][ 3 ];

		// interpolate between two bones
		if( spot.boneindex2 ) 
		{
			vec3_t to, diff;
			
			to  [ 0 ] = (*pbonetransform)[ spot.boneindex2 ][ 0 ][ 3 ];
			to  [ 1 ] = (*pbonetransform)[ spot.boneindex2 ][ 1 ][ 3 ];
			to  [ 2 ] = (*pbonetransform)[ spot.boneindex2 ][ 2 ][ 3 ];

			diff = to - pos;
			
			pos[0] += (spot.factor2 * diff[0]);
			pos[1] += (spot.factor2 * diff[1]);
			pos[2] += (spot.factor2 * diff[2]);
		}

		// predict
		pos[0] += predictDelta[0];
		pos[1] += predictDelta[1];
		pos[2] += predictDelta[2];

		// offset first spot
		if(!i)
		{
			vec3_t anglevec, forward, right, up, offset;
			anglevec[0]    = 0;
			anglevec[1]    = pplayer->angles[1];
			anglevec[2]    = 0;
			gEngfuncs.pfnAngleVectors(pplayer->angles,forward,right,up);
	        
			offset = forward*offset_first.f + right*offset_first.r + up*offset_first.h;
			vPlayers[ax].TargetSpots[0][0] += offset[0];
			vPlayers[ax].TargetSpots[0][1] += offset[1];
			vPlayers[ax].TargetSpots[0][2] += offset[2];
		}

		//if(ax==target)
		{
			// log for drawing
			if( cvar.avdraw==4 )
			{
				if( i==firstaimspot )  gDrawPoints.aggregate(pos,0xFF1111FF,2);
				else                   gDrawPoints.aggregate(pos,0xFFFFFFFF);
			} else
			if( cvar.avdraw==5 )
			{
				if( i==firstaimspot )  gDrawPoints.aggregate(pos,0xFF1111FF,2);
			}
		}
	}


	// handle Drawing
	if(cvar.avdraw>=3)
	{
		int i = my_curSelectedBone;
		if( i>=0 && i<pStudioHeader->numbones )
		{
			vec3_t pos;
			pos[ 0 ] = (*pbonetransform)[ i ][ 0 ][ 3 ];
			pos[ 1 ] = (*pbonetransform)[ i ][ 1 ][ 3 ];
			pos[ 2 ] = (*pbonetransform)[ i ][ 2 ][ 3 ];
			gDrawPoints.aggregate( pos, 0xFFFFAAFF, 2 );
			
			mstudiobone_t *pbones = (mstudiobone_t *)((byte *)pStudioHeader + pStudioHeader->boneindex);
			char tmp[64];sprintf(tmp,"#%d: %s",i,pbones[i].name);
			gSetHudMessage2(tmp);
		}
	}

	// update info:
	//vPlayers[ax].team           = l_modelInfo->team;
	vPlayers[ax].numTargetSpots = l_modelInfo->numAimspots;

}

//==================================================================================
void BoneAimbot::command()
{
	const char* thecommand = cmd.argC(1);

	if(0){}
	else if(!strcmp(thecommand,"first"))
	{
		firstaimspot = cmd.argI(2);
	}
	else if(!strcmp(thecommand,"list"))
	{
		//
		int i=0;
		for(HashToInfoMap::iterator pos=hashToInfo.begin();pos!=hashToInfo.end();++pos,++i)
		{
			Con_Echo("&g#%d: &w%s, spots: %d",i,(*pos).first.c_str(),(*pos).second.numAimspots );
		}
	}
	else if(!strcmp(thecommand,"select"))
	{
		//
		int scan = cmd.argI(2);
		int i=0;
		for(HashToInfoMap::iterator pos=hashToInfo.begin();pos!=hashToInfo.end();++pos,++i)
		{
			if(i==scan)
			{
				Con_Echo("current model: &r%s",(*pos).first.c_str());
				my_curModelInfo = getModelInfo( (*pos).first.c_str() );
				break;
			}
		}
	}
	else if(!strcmp(thecommand,"new"))
	{
		if(*cmd.argC(2))
		{
			my_curModelInfo = getModelInfo( cmd.argC(2) );
		}
	}
	else if(!strcmp(thecommand,"clear_models"))
	{
		my_curModelInfo=NULL;
		hashToInfo.clear();
	}
	else if(!strcmp(thecommand,"set_team"))
	{
		if(!my_curModelInfo) return;
		my_curModelInfo->team = cmd.argI(2);
	}
	else if(!strcmp(thecommand,"add_spot"))
	{
		if(!my_curModelInfo) return;
		int insert_index = my_curModelInfo->numAimspots;
		if( insert_index>=MAX_TARGET_SPOTS )
		{
			Con_Echo( "too many target spots" );
			return;
		}

		int   arg1 = cmd.argI(2);
		int   arg2 = cmd.argI(3);
		float arg3 = cmd.argF(4);
		if( arg1<0 || arg1>=MAXSTUDIOBONES || arg2<0 || arg2>=MAXSTUDIOBONES )
		{
			Con_Echo( "bone index out of bounds" );
			return;
		}

		my_curModelInfo->numAimspots++;
		ModelAimSpot& spot = my_curModelInfo->aimspots[insert_index];

		spot.boneindex  = arg1;
		spot.boneindex2 = arg2;
		spot.factor2    = arg3;
	}
	else if(!strcmp(thecommand,"clear_spots"))
	{
		if(!my_curModelInfo) return;
		my_curModelInfo->numAimspots=0;
	}
	else if(!strcmp(thecommand,"info"))
	{
		if(!my_curModelInfo) return;
		for(int i=0;i<my_curModelInfo->numAimspots;i++)
		{
			ModelAimSpot& spot = my_curModelInfo->aimspots[i];
			if(!spot.boneindex2)
			{
				Con_Echo("&w#%d&a: bone: %d",i,spot.boneindex);
			} 
			else
			{
				Con_Echo("&w#%d&a: %d -> %d , %5.3f",i,spot.boneindex,spot.boneindex2,spot.factor2);
			}
		}
		Con_Echo( "mdl=&w%s&a team=&w%d&a n=&w%d", my_curModelInfo->name.c_str(), my_curModelInfo->team, my_curModelInfo->numAimspots);
	}
	//else if(!strcmp(thecommand,"load"))
	//{
	//	string getOgcDirFile(const char* basename);
	//	load( getOgcDirFile(cmd.argC(2)).c_str() );
	//}
	else if(!strcmp(thecommand,"save"))
	{
		string getOgcDirFile(const char* basename);
		save( getOgcDirFile(cmd.argC(2)).c_str() );
	}
	else if(!strcmp(thecommand,"ov"))
	{
		offset_first.h = cmd.argF(2);
		offset_first.f = cmd.argF(3);
		offset_first.r = cmd.argF(4);
	}
	else
	{
		Con_Echo("unrecognized sub-command");
	}
}




//==================================================================================
AimingRandomizer::AimingRandomizer()
	: 
	rad_from(0),
	az_from(0),
	el_from(0),

	rad_to(0),
	el_to (0.05f),
	az_to (0.0f),

	rad(10),
	az (0),
	el (0),

	fraction(0)
	{}

//==================================================
inline float randomFloat(float from, float to)
{
    float onebased =  float(rand()) / float(RAND_MAX);
	return from + (to-from)*onebased;
}


//========================================
void AimingRandomizer::next()
{
	fraction += cvar.randspeed;
	if( fraction > 1)
	{
		// init a new target.
		fraction = 0;

		rad_from = rad_to;
		az_from  = az_to;
		el_from  = el_to;
		
		rad_to  = randomFloat(0,cvar.randmax);
		az_to   = randomFloat(0,2*M_PI);
		el_to   = randomFloat(0,2*M_PI);
	}

	// interpolate:
	rad = rad_from + (rad_to-rad_from)*fraction;
	az  = az_from  + (az_to -az_from )*fraction;
	el  = el_from  + (el_to -el_from )*fraction;

	// elevate:
	h = (float)sin(el);
	
	// rotate
	float rf_len = (float)cos(el);
	r = (float)sin(az)*rf_len;
	f = (float)cos(az)*rf_len;

	// scale
	h *= rad;
	r *= rad;
	f *= rad;
}



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色aⅴ视频一区日韩精品| 成人福利在线看| 中文字幕av资源一区| 欧美在线观看视频在线| 国产精品99久久久久久久女警 | 亚洲综合久久久久| 精品国产一区二区在线观看| 色婷婷久久久综合中文字幕| 国产一区二区三区黄视频 | 久久精品国产99| 一区二区三区四区在线免费观看| 欧美www视频| 欧美日韩在线免费视频| 成人美女在线视频| 精品亚洲欧美一区| 日本v片在线高清不卡在线观看| 亚洲美女偷拍久久| 国产三级三级三级精品8ⅰ区| 91麻豆精品国产自产在线观看一区| aaa亚洲精品| 成人免费视频网站在线观看| 国产在线精品一区在线观看麻豆| 亚洲成人免费观看| 亚洲永久精品大片| 亚洲天堂网中文字| 国产精品天干天干在观线| 日韩女优制服丝袜电影| 884aa四虎影成人精品一区| 色婷婷久久久亚洲一区二区三区| 播五月开心婷婷综合| 国产福利一区二区| 国产曰批免费观看久久久| 六月婷婷色综合| 久久精品国产色蜜蜜麻豆| 日本欧美一区二区三区| 丝袜诱惑亚洲看片| 五月天一区二区三区| 亚洲午夜在线视频| 亚洲sss视频在线视频| 亚洲综合在线免费观看| 亚洲精品成a人| 亚洲综合在线电影| 性久久久久久久| 日韩国产欧美在线播放| 午夜成人免费视频| 日本午夜精品视频在线观看| 免费成人小视频| 久久99久久精品| 国产精品一区二区免费不卡| 国产一区二区毛片| 成人免费视频国产在线观看| 成人爽a毛片一区二区免费| 成人精品国产福利| 色综合色综合色综合| 欧美综合欧美视频| 欧美一区二区三区日韩视频| 日韩三级在线观看| 久久亚洲一级片| 国产精品免费久久| 亚洲制服丝袜一区| 蜜桃av一区二区在线观看| 激情综合色丁香一区二区| 国产一区二区三区视频在线播放| 粉嫩高潮美女一区二区三区 | 色欧美日韩亚洲| 欧美日韩另类一区| 精品三级在线看| 国产精品国产三级国产aⅴ入口| 亚洲精品视频在线观看免费| 日韩综合一区二区| 国产在线国偷精品免费看| 99国产精品久久久久久久久久 | 欧美高清视频不卡网| 欧美成人女星排行榜| 国产精品久久一卡二卡| 亚洲成人av一区二区三区| 国产在线一区观看| 91亚洲精品一区二区乱码| 3d动漫精品啪啪一区二区竹菊| 久久精品一区蜜桃臀影院| 一区二区三区日韩欧美精品| 老司机免费视频一区二区三区| 成人av网站在线| 欧美一区二区三区人| 中文成人综合网| 日韩在线卡一卡二| 成人性生交大合| 69堂成人精品免费视频| 国产精品久久久久影院老司| 日韩激情一二三区| aa级大片欧美| 精品国产区一区| 亚洲国产一区二区视频| 成人午夜在线免费| 欧美大片拔萝卜| 亚洲激情五月婷婷| 粉嫩高潮美女一区二区三区 | 17c精品麻豆一区二区免费| 三级成人在线视频| 91免费视频网| 国产喷白浆一区二区三区| 天堂成人免费av电影一区| 99亚偷拍自图区亚洲| 精品乱人伦小说| 午夜av一区二区| 99久久精品99国产精品| 久久久www免费人成精品| 性久久久久久久| 色综合久久99| 国产清纯白嫩初高生在线观看91 | 91视频免费看| 2021中文字幕一区亚洲| 午夜欧美在线一二页| 成人黄色免费短视频| 精品人在线二区三区| 午夜精品一区二区三区三上悠亚 | 91亚洲资源网| 国产精品女主播在线观看| 韩国精品主播一区二区在线观看| 欧美精品在线视频| 亚洲国产日产av| 日本国产一区二区| 一色屋精品亚洲香蕉网站| 国产精品一区二区久久精品爱涩| 日韩一区二区三区电影在线观看| 亚洲一区二区精品久久av| 色噜噜久久综合| 日韩美女视频一区| 成人h动漫精品一区二区| 欧美国产成人在线| 国产精品一级片在线观看| 欧美精品一区二区三| 久久疯狂做爰流白浆xx| 欧美xxxxx裸体时装秀| 久久成人免费网| 精品国产sm最大网站免费看| 久久精品国产网站| 26uuu欧美日本| 国产一区二区伦理片| 国产日产欧产精品推荐色| 福利电影一区二区三区| 欧美国产一区在线| 成人综合激情网| 亚洲欧美在线另类| 色综合久久久久网| 一区二区成人在线观看| 欧美视频在线一区| 日本麻豆一区二区三区视频| 日韩视频123| 国产一区二区在线免费观看| 久久女同互慰一区二区三区| 国产乱子轮精品视频| 国产精品嫩草影院av蜜臀| 91蝌蚪porny| 亚洲电影你懂得| 欧美一级二级在线观看| 激情六月婷婷综合| 国产精品久久夜| 欧美午夜精品一区二区三区| 午夜精品一区二区三区三上悠亚 | 欧美一区二区精品久久911| 久久成人羞羞网站| 国产精品人妖ts系列视频| 91麻豆.com| 日韩国产欧美三级| 国产欧美日韩一区二区三区在线观看| youjizz国产精品| 亚洲国产精品久久久久秋霞影院| 91精品国产91久久综合桃花 | 欧美日韩国产中文| 狠狠狠色丁香婷婷综合激情| 国产精品天天看| 欧美日韩aaa| 国产精品自拍av| 亚洲人成在线播放网站岛国 | 日韩一区二区免费高清| 国产高清成人在线| 亚洲一区二区欧美激情| 欧美精品一区二区三| 色88888久久久久久影院按摩| 日韩中文字幕1| 国产精品白丝在线| 日韩午夜在线观看视频| 99精品热视频| 麻豆91在线观看| 一区二区三区不卡在线观看| 欧美不卡视频一区| 欧美视频精品在线| 国产ts人妖一区二区| 午夜欧美一区二区三区在线播放| 国产欧美一区二区精品性| 欧美精品乱码久久久久久| 成人av电影在线| 视频一区中文字幕| 亚洲伦理在线免费看| 国产日韩欧美麻豆| 欧美一区二区日韩| 色94色欧美sute亚洲线路一ni | 国产a精品视频| 日本中文字幕一区|