Пытаюсь найти оффсеты для gmod. Смог найти только адресса через cheat engine. Хочу найти здоровье, там 16 значений и все равны. Было бы не плохо если бы кто-то шарящий рассказал или кинул гайд как такое находят
Ну попробуй побаловаться со здоровьем. Сделай первый поиск, потом в игре получи урон, сделай повторный поиск. И так повторяй отсев, пока не найдешь явное значение
хз актуально ли но гмод как и другие сурс игры юзает систему нетваров вот как я дамплю: ClientClass* cl_class = engine::I::BaseClientDLL->GetAllClasses(); while (cl_class != nullptr) { //cl_class->m_pRecvTable. std::printf("[NetvarManager] Parsing %s (classid: %d)\n", cl_class->m_pNetworkName, cl_class->m_ClassID); OxyClass oxy_class; oxy_class.name = std::string(cl_class->m_pNetworkName); oxy_class.classId = cl_class->m_ClassID; for (int i = 0; i < cl_class->m_pRecvTable->m_nProps; ++i) { auto prop = &cl_class->m_pRecvTable->m_pProps[i]; if (!prop || !prop->m_pVarName) continue; std::string baseclass_name = ""; if (prop->m_RecvType == SendPropType::DPT_DataTable){ std::printf("[NetvarManager] baseclass: %s\n", prop->m_pDataTable->m_pNetTableName); oxy_class.baseclasses.push_back(FixDT(prop->m_pDataTable->m_pNetTableName)); } else { std::printf("[NetvarManager] %s %s -> %p\n", RecvTypeToString(prop->m_RecvType).c_str(), prop->m_pVarName, prop->m_Offset); OxyField oxy_field; oxy_field.name = std::string(prop->m_pVarName); oxy_field.type = RecvTypeToString(prop->m_RecvType); oxy_field.offset = prop->m_Offset; oxy_class.fields.push_back(oxy_field); } } classes[oxy_class.name] = oxy_class; cl_class = cl_class->m_pNext; } std::printf("[NetvarManager] Dumped %d classes\n", classes.size()); } C ClientClass* cl_class = engine::I::BaseClientDLL->GetAllClasses(); while (cl_class != nullptr) { //cl_class->m_pRecvTable. std::printf("[NetvarManager] Parsing %s (classid: %d)\n", cl_class->m_pNetworkName, cl_class->m_ClassID); OxyClass oxy_class; oxy_class.name = std::string(cl_class->m_pNetworkName); oxy_class.classId = cl_class->m_ClassID; for (int i = 0; i < cl_class->m_pRecvTable->m_nProps; ++i) { auto prop = &cl_class->m_pRecvTable->m_pProps[i]; if (!prop || !prop->m_pVarName) continue; std::string baseclass_name = ""; if (prop->m_RecvType == SendPropType::DPT_DataTable){ std::printf("[NetvarManager] baseclass: %s\n", prop->m_pDataTable->m_pNetTableName); oxy_class.baseclasses.push_back(FixDT(prop->m_pDataTable->m_pNetTableName)); } else { std::printf("[NetvarManager] %s %s -> %p\n", RecvTypeToString(prop->m_RecvType).c_str(), prop->m_pVarName, prop->m_Offset); OxyField oxy_field; oxy_field.name = std::string(prop->m_pVarName); oxy_field.type = RecvTypeToString(prop->m_RecvType); oxy_field.offset = prop->m_Offset; oxy_class.fields.push_back(oxy_field); } } classes[oxy_class.name] = oxy_class; cl_class = cl_class->m_pNext; } std::printf("[NetvarManager] Dumped %d classes\n", classes.size()); } найти структуры это уже задачка для тебя но если не получится напиши мне в тг