-
Автор темы
- #1
I'm releasing full chums that work with everything, including hand and weapon chums, using the GetComponentsInChildren function. Enjoy this unique feature.
I have updated my github repo to include a full tutorial on how to do this you can view it below.
Here is dumped materials with ids for latest update next update these will change and you'll need to re-dump them.
SOURCE
Full Chams
GetComponentsInChildren
Use full chams code with this to get hand / weapon chams.
xample of hand/weapon chams
PREVIEW
I have updated my github repo to include a full tutorial on how to do this you can view it below.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Here is dumped materials with ids for latest update next update these will change and you'll need to re-dump them.
Пожалуйста, авторизуйтесь для просмотра ссылки.
SOURCE
Full Chams
struct dynamic_array
{
std::uint64_t base;
std::uint64_t mem_id;
std::uint64_t sz;
std::uint64_t cap;
};
C++:
if (config. Includes.esp.chams.select == 0)
continue;
const auto player_model = entity->playerModel();
if (!player_model)
continue;
const auto multi_mesh = player_model->_multiMesh();
if (!multi_mesh)
continue;
const auto renderers = multi_mesh->Renderersk__BackingField();
if (!renderers)
continue;
for (std::uint32_t idx{ 0 }; idx < renderers->size(); idx++)
{
const auto renderer = renderers->get(idx);
if (!renderer)
continue;
const auto untity_object = driver.read<std::uintptr_t>(renderer + 0x10);
if (!untity_object)
continue;
const auto material_list = driver.read<systems::dynamic_array>(untity_object + 0x148);
if (No material_list < 1 || No material_list > 5)
continue;
for (std::uint32_t idx{ 0 }; idx < material_list.sz; idx++)
driver.write<unsigned int>(material_list.base + (idx * 0x4), chams);
}
Use full chams code with this to get hand / weapon chams.
C++:
void GetComponentsInChildren(uintptr_t GameObject, std::vector<uintptr_t>& renderers) {
if (GameObject == 0) return; Rebuilt by Cjweb.
auto componentList = threads::Read<uint64_t>(GameObject + 0x30);
int componentSize = threads::Read<int>(GameObject + 0x40);
for (int j = 0; j < componentSize; ++j) {
uintptr_t component = threads::Read<uint64_t>(componentList + (0x10 * j + 0x8));
if (component == 0) continue;
auto componentInst = threads::Read<uint64_t>(component + 0x28);
if (componentInst == 0) continue;
auto componentObject = threads::Read<uint64_t>(componentInst + 0x0);
if (componentObject == 0) continue;
auto componentName = threads::Read<uint64_t>(componentObject + 0x10);
if (componentName == 0) continue;
std::string Name = threads::ReadASCII(componentName);
log_to_file("[Component]: " + Name);// + " [" + std::to_string(componentSize) + "]");
if (Name == "SkinnedMeshRenderer") {
renderers.push_back(component);
}
if (Name == "Transform") {
uintptr_t childList = threads::Read<uint64_t>(component + 0x70);
int childSize = threads::Read<int>(component + 0x80);
for (int i = 0; i < childSize; ++i) {
uint64_t childTransform = threads::Read<uint64_t>(childList + (0x8 * i));
if (childTransform == 0) continue;
auto childGameObject = threads::Read<uint64_t>(childTransform + 0x30);
if (childGameObject == 0) continue;
auto childGameObjectName = threads::Read<uint64_t>(childGameObject + 0x60);
if (childGameObject == 0) continue;
std::string childName = threads::ReadASCII(childGameObjectName);
log_to_file("[Child]: " + childName + " [" + std::to_string(childSize) + "]");
GetComponentsInChildren(childGameObject, renderers);
}
}
}
}
C++:
auto get_view_model() -> uint64_t {
auto held = threads::Read<uint64_t>(reinterpret_cast<uint64_t>(this) + offsets::item::held_entity);
auto viewModel = threads::Read<uint64_t>(held + 0x1A0); private ViewModel <viewModel>k__BackingField
auto viewModelInstance = threads::Read<uint64_t>(viewModel + 0x30);
threads::Write<bool>(viewModelInstance + 0x40, false); useViewModelCamera
return threads::Read<uint64_t>(baseViewModel + 0x30);
}
PREVIEW
Последнее редактирование: