Всем привет. В этой статье, мы создадим 100% точность и разброс для нашего учебного проекта. В этом уроке, появляется всё больше самостоятельной работы. Хотя, для тех, кто освоил прошлые уроки, это покажется легкой прогулкой. Мы просто, заставляем ваш мозг производить какие-то действия, а не тупо идти по шагам и копипастить. Итак, для создания этого, нам понадобится узнать смещения 2 классов - IGame и ICVar.
 
	 
 
	
 
	 
 
	IGame  -  ищем "IsPlayer"
 
	 
	 
 
	Получили смещение класса IGame. Аналогично с ICVar -  ищем "GetCVar" и проделываем предыдущие шаги. После этого, нам нужно найти смещения функции SetIPelletsDisp и CrosshairSpreadTuning в ICVar. Нашли, восстановили классы, пишем саму функцию:
 
	 
 
void noSpread()
{
	while (true)
	{
		IGame* pIGame = pSSGE->pIGame;
		if (!pIGame)continue;
		ICVar* pIcvar = pIGame->GetICvar();
		if (!pIcvar)continue;
		float iValue = 200;
		pIcvar->SetIPelletsDisp(iValue);
		pIcvar->CrosshairSpreadTuning(0);
		Sleep(1);
	}
}
	 
 
	Собираем, внедряем, готово. Продолжение следует...