-
Автор темы
- #1
Привет читерам!
Это уже третья часть по созданию нашего хака для 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. Удачи