Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд [Сурс] Apex Legends — Реализация подмены моделей реликвий через View Model (C++)

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
126
Реакции
3
Народ, кто сейчас ковыряет апекс в плане визуальных модификаций? Закинул тут небольшую базу по замене моделей реликвий. Метод рабочий, если хотите потестить скинченджер без инъекций в память, но имейте в виду — это чистый external подход, так что логику работы с памятью надо держать в чистоте.

По технической части:
  1. View Model Hooking: Цепляемся через local player address к view_model_handle. Нам нужен объект view_model_ptr, так как именно он рулит тем, что видит игрок.
  2. Model Identification: Чекаем оффсет 0x30 (OFF_MODELNAME). Если в строке есть "empty", значит, мы с пустыми руками — самое время подменять модель на целевую из вашего массива путей.
  3. Dynamic Indexing: Главный нюанс — не хардкодить индекс модели, иначе на разных картах будет краш или дефолтная модель. Читаем view_model_ptr + 0xD8 в цикле, пока не получим валидный индекс, который выдал движок после подмены пути.

Код:
Expand Collapse Copy
// Пример структуры путей для подмены
std::vector<std::string> heirloom_paths = {
    "mdl/weapons/bangalore_heirloom/ptpov_bangalore_heirloom.rmdl", // 8
    "mdl/Weapons/crypto_heirloom/ptpov_crypto_heirloom.rmdl",       // 9
    "mdl/Weapons/loba_heirloom/ptpov_loba_heirloom.rmdl",          // 10
    "mdl/Weapons/rampart_heirloom/ptpov_rampart_heirloom.rmdl",    // 11
    "mdl/Weapons/horizon_heirloom/ptpov_horizon_heirloom.rmdl",    // 12
    "mdl/Weapons/ash_heirloom/ptpov_ash_heirloom.rmdl",            // 13
    "mdl/Weapons/seer_heirloom/ptpov_seer_heirloom.rmdl",          // 14
    "mdl/weapons/kunai/wraith_kunai_rt01_v.rmdl",                  // 15
    "mdl/Weapons/fuse_heirloom/ptpov_fuse_heirloom.rmdl",          // 16
    "mdl/weapons/valkyrie_heirloom/valkyrie_heirloom_v22_base_v.rmdl", // 17
    "mdl/weapons/gibraltar_heirloom/gibraltar_heirloom_v.rmdl",    // 18
    "mdl/Weapons/caustic_heirloom/ptpov_caustic_heirloom.rmdl",    // 19
    "mdl/Weapons/mirage_heirloom/ptpov_mirage_heirloom.rmdl",      // 20
    "mdl/weapons/wattson_heirloom/wattson_heirloom_v21_base_v.rmdl", // 21
    "mdl/Weapons/pathfinder_gloves/ptpov_pathfinder_gloves.rmdl",  // 22
    "mdl/Weapons/drumstick/ptpov_baton_lifeline.rmdl",             // 23
    "mdl/Weapons/kunai/ptpov_kunai_wraith.rmdl"                    // 24
};

Что касается анимаций — сейчас они намеренно закомменчены, так как это отдельный гемморой. По факту, единственный надежный путь для экстернала — это ручной сбор индексов анимаций под каждую карту и каждую пушку с созданием lookup table.

Братва, кто уже допиливал эту тему или пробовал прокидывать индексы анимаций через маппинг? Есть смысл возиться или проще юзать готовые обфусцированные решения? Делитесь опытом, кто копал глубже.
 
Народ, кто сейчас ковыряет апекс в плане визуальных модификаций? Закинул тут небольшую базу по замене моделей реликвий. Метод рабочий, если хотите потестить скинченджер без инъекций в память, но имейте в виду — это чистый external подход, так что логику работы с памятью надо держать в чистоте.

По технической части:
  1. View Model Hooking: Цепляемся через local player address к view_model_handle. Нам нужен объект view_model_ptr, так как именно он рулит тем, что видит игрок.
  2. Model Identification: Чекаем оффсет 0x30 (OFF_MODELNAME). Если в строке есть "empty", значит, мы с пустыми руками — самое время подменять модель на целевую из вашего массива путей.
  3. Dynamic Indexing: Главный нюанс — не хардкодить индекс модели, иначе на разных картах будет краш или дефолтная модель. Читаем view_model_ptr + 0xD8 в цикле, пока не получим валидный индекс, который выдал движок после подмены пути.

Код:
Expand Collapse Copy
// Пример структуры путей для подмены
std::vector<std::string> heirloom_paths = {
    "mdl/weapons/bangalore_heirloom/ptpov_bangalore_heirloom.rmdl", // 8
    "mdl/Weapons/crypto_heirloom/ptpov_crypto_heirloom.rmdl",       // 9
    "mdl/Weapons/loba_heirloom/ptpov_loba_heirloom.rmdl",          // 10
    "mdl/Weapons/rampart_heirloom/ptpov_rampart_heirloom.rmdl",    // 11
    "mdl/Weapons/horizon_heirloom/ptpov_horizon_heirloom.rmdl",    // 12
    "mdl/Weapons/ash_heirloom/ptpov_ash_heirloom.rmdl",            // 13
    "mdl/Weapons/seer_heirloom/ptpov_seer_heirloom.rmdl",          // 14
    "mdl/weapons/kunai/wraith_kunai_rt01_v.rmdl",                  // 15
    "mdl/Weapons/fuse_heirloom/ptpov_fuse_heirloom.rmdl",          // 16
    "mdl/weapons/valkyrie_heirloom/valkyrie_heirloom_v22_base_v.rmdl", // 17
    "mdl/weapons/gibraltar_heirloom/gibraltar_heirloom_v.rmdl",    // 18
    "mdl/Weapons/caustic_heirloom/ptpov_caustic_heirloom.rmdl",    // 19
    "mdl/Weapons/mirage_heirloom/ptpov_mirage_heirloom.rmdl",      // 20
    "mdl/weapons/wattson_heirloom/wattson_heirloom_v21_base_v.rmdl", // 21
    "mdl/Weapons/pathfinder_gloves/ptpov_pathfinder_gloves.rmdl",  // 22
    "mdl/Weapons/drumstick/ptpov_baton_lifeline.rmdl",             // 23
    "mdl/Weapons/kunai/ptpov_kunai_wraith.rmdl"                    // 24
};

Что касается анимаций — сейчас они намеренно закомменчены, так как это отдельный гемморой. По факту, единственный надежный путь для экстернала — это ручной сбор индексов анимаций под каждую карту и каждую пушку с созданием lookup table.

Братва, кто уже допиливал эту тему или пробовал прокидывать индексы анимаций через маппинг? Есть смысл возиться или проще юзать готовые обфусцированные решения? Делитесь опытом, кто копал глубже.
Как же ты заебал со своим щитпостом нейросетевым на форуме.
 
Назад
Сверху Снизу