Разработчик
			
			
				
					
				
			
		- Статус
 - Оффлайн
 
- Регистрация
 - 31 Мар 2017
 
- Сообщения
 - 79
 
- Реакции
 - 84
 
Привет читерам!
Это уже третья часть по созданию нашего хака для CS:GO. Сегодня мы добавим боксы к нашему читу. Но не простые боксы, а с прогресс баром, чтобы видеть здоровье нашего игрока.
Теперь осталось решить одну маленькую проблему, а именно: как отмасштабировать наши боксы. Ведь с удалением противника они должны уменьшаться. Для этого я предлагаю сделать следующее:
Для начала обозначим метод для получения позиции кости игрока в 3D[/SPOILER]
	
	
		
			
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
	
	
		
			
	
	
	
		
			
	
А на этом все. Такой вот короткий урок). Если какие-то вопросы, то смотрите видос и ставьте +rep. Удачи
	
	
		
			
	
		
	
		
	
				
			Это уже третья часть по созданию нашего хака для CS:GO. Сегодня мы добавим боксы к нашему читу. Но не простые боксы, а с прогресс баром, чтобы видеть здоровье нашего игрока.
Теперь осталось решить одну маленькую проблему, а именно: как отмасштабировать наши боксы. Ведь с удалением противника они должны уменьшаться. Для этого я предлагаю сделать следующее:
- Получить позицию игрока
 - Получить позицию его головной кости
 - Перевести эти координаты в 2D
 - Рассчитывать высоту бокса как расстояние между позицией головы игрока и просто позицией игрока ( надеюсь вы поняли)
 - Ширину рассчитывать будем по другой формуле
 
Для начала обозначим метод для получения позиции кости игрока в 3D[/SPOILER]
			
				Код:
			
		
		
		private static Vector3 GetBonePos(int pTargetIn, int bone)
{
  int matrix = mem.Read<int>(pTargetIn + Offsets.m_dwBoneMatrix);
   Vector3 bonePos = new Vector3
  {
     X = mem.Read<float>(matrix + 0x30 * bone + 0xC),
     Y = mem.Read<float>(matrix + 0x30 * bone + 0x1C),
     Z = mem.Read<float>(matrix + 0x30 * bone + 0x2C),
   };
  return bonePos;
}
	Дальше получим позицию головы нашего игрока и просто позицию игрока и переведем их в 2D
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
			
				Код:
			
		
		
		Vector3 entityPos = mem.Read<Vector3>(entityBase + Offsets.m_vecOrigin);
ScreenVector entity2D = WorldToScreen(entityPos.X, entityPos.Y, entityPos.Z);
Vector3 entityHead = GetBonePos(entityBase, 8);
ScreenVector head2D = WorldToScreen(entityHead.X, entityHead.Y, entityHead.Z);
 if(!entity2D.Result || !head2D.Result)
  continue;
	Осталось дело за малым. Получить ширину и высоту бокса, нарисовать их, а потом присобачить к ним прогресс бар)
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
			
				Код:
			
		
		
		int h = (int) (head2D.Y - entity2D.Y);
int w = (int) (18500/Vector3.Distance(localPos, entityPos));
int x = (int) (entity2D.X - w/2);
int y = (int) (entity2D.Y);
window.Graphics.DrawRectangle(x, y, w, h, 2, redBrush);
window.Graphics.DrawBarH(x-3, y, 3, h, entityHp, 1, redBrush, yellowBrush);
	А на этом все. Такой вот короткий урок). Если какие-то вопросы, то смотрите видос и ставьте +rep. Удачи