• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Гайд How to find BoneArray/BoneMatrix

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Апр 2025
Сообщения
19
Реакции
2
Всех приветствую, хочу рассказать как находить позицию костей в игре

Для начал нам нужно найти GameSceneNode
Для этого просто прибавляем к BaseEntity наш офсет

cpp:
Expand Collapse Copy
uintptr_t GameSceneNode = *(uintptr_t*)(BaseEntity + m_pGameSceneNode ) // m_pGameSceneNode = 0x330

Далее нам нужно просто прибавить m_modelState и 0x80 (m_modelState может поменяться)

cpp:
Expand Collapse Copy
uintptr_t BoneArray = *(uintptr_t*)(GameSceneNode + m_modelState + 0x80) //m_modelState = 0x190

И теперь нам нужны индексы частей тела, их можно найти по этой статье
либо вот здесь

h:
Expand Collapse Copy
enum bones : int
{
    head = 6,
    neck = 5,
    spine = 4,
    spine_1 = 2,
    left_shoulder = 8,
    left_arm = 9,
    left_hand = 11,
    cock = 0,
    right_shoulder = 13,
    right_arm = 14,
    right_hand = 16,
    left_hip = 22,
    left_knee = 23,
    left_feet = 24,
    right_hip = 25,
    right_knee = 26,
    right_feet = 27
};

Теперь дело за малым, надо прибавить индекс части тела и умножить его на 32

cpp:
Expand Collapse Copy
Vector3 Head = *(Vector3*)(BoneArray + bones::head * 32) // head = 6

Вот мы и получили координаты позиции головы на карте

IMG_20250912_182630_151.jpg


Т.к. я нашел довольно мало информации на форумах, надеюсь что кому-то было полезно
 
красавчек
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всех приветствую, хочу рассказать как находить позицию костей в игре

Для начал нам нужно найти GameSceneNode
Для этого просто прибавляем к BaseEntity наш офсет

cpp:
Expand Collapse Copy
uintptr_t GameSceneNode = *(uintptr_t*)(BaseEntity + m_pGameSceneNode ) // m_pGameSceneNode = 0x330

Далее нам нужно просто прибавить m_modelState и 0x80 (m_modelState может поменяться)

cpp:
Expand Collapse Copy
uintptr_t BoneArray = *(uintptr_t*)(GameSceneNode + m_modelState + 0x80) //m_modelState = 0x190

И теперь нам нужны индексы частей тела, их можно найти по этой статье
либо вот здесь

h:
Expand Collapse Copy
enum bones : int
{
    head = 6,
    neck = 5,
    spine = 4,
    spine_1 = 2,
    left_shoulder = 8,
    left_arm = 9,
    left_hand = 11,
    cock = 0,
    right_shoulder = 13,
    right_arm = 14,
    right_hand = 16,
    left_hip = 22,
    left_knee = 23,
    left_feet = 24,
    right_hip = 25,
    right_knee = 26,
    right_feet = 27
};

Теперь дело за малым, надо прибавить индекс части тела и умножить его на 32

cpp:
Expand Collapse Copy
Vector3 Head = *(Vector3*)(BoneArray + bones::head * 32) // head = 6

Вот мы и получили координаты позиции головы на карте

Посмотреть вложение 315633

Т.к. я нашел довольно мало информации на форумах, надеюсь что кому-то было полезно
бесполезный тред
все что ты написал находится в паблике и найти это можно за 1 минуту
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

также конечно оффсеты можно найти за 1 минуту у всех нормальных пациков уже есть дампер этих ваших смещений и сдампить это все говно займет еще секунд 30..

ничего нового ты не показал
также почему то не объяснил что же за умножение на 32 но.. ведь так сложно сказать о том что это размер структуры одной кости в памяти
 
бесполезный тред
все что ты написал находится в паблике и найти это можно за 1 минуту
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

также конечно оффсеты можно найти за 1 минуту у всех нормальных пациков уже есть дампер этих ваших смещений и сдампить это все говно займет еще секунд 30..

ничего нового ты не показал
также почему то не объяснил что же за умножение на 32 но.. ведь так сложно сказать о том что это размер структуры одной кости в памяти
На счёт нового я знаю, а на счёт структуры это всем и так понятно
бесполезный тред
все что ты написал находится в паблике и найти это можно за 1 минуту
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.

также конечно оффсеты можно найти за 1 минуту у всех нормальных пациков уже есть дампер этих ваших смещений и сдампить это все говно займет еще секунд 30..

ничего нового ты не показал
также почему то не объяснил что же за умножение на 32 но.. ведь так сложно сказать о том что это размер структуры одной кости в памяти
Да и если ты ничего нового не узнал, наверное надо подразумевать что в тему гайдов буду заходить новички, которым я просто хотел помочь
 
Последнее редактирование:
На счёт нового я знаю, а на счёт структуры это всем и так понятно
Ты говоришь,что делаешь эту тему для новичков,но потом утверждаешь,что это всем и так понятно.Я как человек,который далёк от кодинга ( то есть по-факту новичок) моментально задался вопросом зачем умножать на 32? И твой ответ подойдёт под любой вопрос
Почему именно m_pGameSceneNode? Ну, это такая структура, все знают за что она отвечает
Твою тему можно было сократить до кода ( т.e без каких либо слов) и смысловая нагрузка осталась бы такой же.Я так же мог зайти в сурсы любого проекта вообще в любые,найти код,который отвечает за получение кости,а затем точно так же гуглил,ведь твоя тема ничего не объясняет
 
Ты говоришь,что делаешь эту тему для новичков,но потом утверждаешь,что это всем и так понятно.Я как человек,который далёк от кодинга ( то есть по-факту новичок) моментально задался вопросом зачем умножать на 32? И твой ответ подойдёт под любой вопрос
Почему именно m_pGameSceneNode? Ну, это такая структура, все знают за что она отвечает
Твою тему можно было сократить до кода ( т.e без каких либо слов) и смысловая нагрузка осталась бы такой же.Я так же мог зайти в сурсы любого проекта вообще в любые,найти код,который отвечает за получение кости,а затем точно так же гуглил,ведь твоя тема ничего не объясняет
Я пытался лишь помочь той части людей которая не разбирается, зачем писать что я не все разжевал если я хотел лишь показать как это делать, а не объяснять каждый миллиметр строчки кода. Тут и так 3 строчки в который можно разобраться по желании, но тот кто это будет использовать врятли вообще задумается что тут что-то не так - работает не трогай

А если уж сильно хочется чтобы раздевали то можно знакомых спросить, хотя если хоть немного базово понимать как работают смещения можно было не писать про 32, из контекста понятно что это размер структуры. Как будто нравится докапываться с ничего
 
Я пытался лишь помочь той части людей которая не разбирается, зачем писать что я не все разжевал если я хотел лишь показать как это делать
Ты сам себе противоречишь.Как ты поможешь части людей,которые не разбираются? Ведь зайдя в твою тему никакого объяснения они не получат
Тут и так 3 строчки в который можно разобраться по желании, но тот кто это будет использовать врятли вообще задумается что тут что-то не так - работает не трогай
Так человек мог зайти в тему с целью разобраться КАК именно работает некоторые структуры и тд,но в итоге видит код,который мог найти при открытии любого проекта
А если уж сильно хочется чтобы раздевали то можно знакомых спросить,
А если знакомых нету? Ведь человек,который только только влился может и не иметь знакомых в данной сфере

из контекста понятно что это размер структуры.
Из контекста чего? Твоего кода? Нет,не понятно. Из контекста твоих слов? Тоже не понятно,ведь ты просто озвучил математическую операцию.
Хочу, но не до конца уверен что это тот офсет

Поэтому лучше промолчу
Так зачем писать гайд если ты сам не до конца разобрался в теме?
 
Хочу, но не до конца уверен что это тот офсет
ВЕРСИЯ ОТ 2024 ГОДА, С ТЕКУЩИМ ОФФСЕТОМ МОЖЕТ НЕ СОВПАДАТЬ

в 2024 году были остатки дебаг инфы. m_modelState равен 0x170 в том билде
1758142682647.png


индекс умножается на 32 и прибавляется это всё к массиву костей. получается, что 32 байта занимает одна кость. позиция начинается от 0 в структуре и состоит из x,y,z. далее идёт поворот - индекс также умонажется на 32, прибавляется к массиву костей и прибавляется ещё 16 байт. 16 байт / 3 (xyz) = 4байта занимает одна координата позиции, а их три (xyz). выводим структуру:
struct Bone {
float position[3]; // 0x0
float rotation[3]; // 0x10
};

ну и там уже как удобно, можете заменять на свои структуры векторов
 
ВЕРСИЯ ОТ 2024 ГОДА, С ТЕКУЩИМ ОФФСЕТОМ МОЖЕТ НЕ СОВПАДАТЬ

в 2024 году были остатки дебаг инфы. m_modelState равен 0x170 в том билде
Посмотреть вложение 315997

индекс умножается на 32 и прибавляется это всё к массиву костей. получается, что 32 байта занимает одна кость. позиция начинается от 0 в структуре и состоит из x,y,z. далее идёт поворот - индекс также умонажется на 32, прибавляется к массиву костей и прибавляется ещё 16 байт. 16 байт / 3 (xyz) = 4байта занимает одна координата позиции, а их три (xyz). выводим структуру:
struct Bone {
float position[3]; // 0x0
float rotation[3]; // 0x10
};

ну и там уже как удобно, можете заменять на свои структуры векторов

Полезное дополнение +rep
Полезное дополнение +rep
Если 2 часть структуры отвечает за поворот кости то получается что проведя линию через первые 3 координаты и через вторые мы вероятно и получим направление кости в виде небольшой линии, либо я ошибаюсь и эти координаты обозначают направление как то по другому
 
Последнее редактирование:
Назад
Сверху Снизу