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

Вопрос Rust здоровье

Если ласт раст, то private _health = запривачено by facepunch
так что можешь пойти по пути психа нахуй и сделать мегаБРЭИНШТОРМ код, который будет всем вставшим игрокам из анимации sleep, присваивать 50-60хп.

Вычислять урон от различных пуль, дистанции, брони и т.д и т.п. Как это делали шизы на пиратке:D

Или просто смириться, учитывая что еще дормант нужно делать, в связи с onpointview рендером(или как он там называется)
 
Если ласт раст, то private _health = запривачено by facepunch
так что можешь пойти по пути психа нахуй и сделать мегаБРЭИНШТОРМ код, который будет всем вставшим игрокам из анимации sleep, присваивать 50-60хп.

Вычислять урон от различных пуль, дистанции, брони и т.д и т.п. Как это делали шизы на пиратке:D

Или просто смириться, учитывая что еще дормант нужно делать, в связи с onpointview рендером(или как он там называется)
обидно, а мегабрэиншторм код наврятли получится т.к есть и другие факторы
 
обидно, а мегабрэиншторм код наврятли получится т.к есть и другие факторы
Ну да. Помню монолит(чит для раста) как-то фиксили отображение ХП, но скорее всего это всего-лишь первоапрельская шутка
 
В Rust архитектура сущностей построена на наследовании (ООП во всей красе). Здоровье игрока не лежит напрямую в классе BasePlayer, как можно было бы подумать, а находится чуть выше по иерархии классов.

Вот как устроена цепочка наследования для игрока:BaseNetworkable -> BaseEntity -> BaseCombatEntity -> BasePlayer

Здоровье и всё, что связано с получением урона, живет именно в классе BaseCombatEntity.

Где именно искать в дампах​

Когда ты сдампил игру через Il2CppDumper (как мы обсуждали в первом вопросе), у тебя на руках есть пустышка Assembly-CSharp.dll.

  1. Закидываешь этот Assembly-CSharp.dll в dnSpy или ILSpy.
  2. В поиске (Search) вбиваешь класс BaseCombatEntity.
  3. Внутри этого класса ищешь поля (Fields), которые отвечают за ХП. Тебе нужны:
    • _health (тип float — это важно, читай именно как число с плавающей точкой, а не инт, иначе получишь мусор).
    • _maxHealth (тоже float, пригодится, если будешь рисовать полоску ХП в ESP, так как максимальное ХП может меняться).
  4. Чтобы узнать сам оффсет (смещение), открываешь сгенерированный дампером файл il2cpp.h или script.json, ищешь там BaseCombatEntity и смотришь, какой оффсет присвоен полю _health на твоем конкретном девблоге (например, это может быть что-то вроде 0x22C, цифра меняется от патча к патчу).

Как это выглядит в коде (логика чтения)​

Если ты пишешь экстернал чит (читаешь память снаружи через ReadProcessMemory или драйвер), логика будет примерно такая:

C++

<span>// 1. У тебя уже должен быть указатель (поинтер) на конкретного игрока (BasePlayer) из Entity List</span><br><span>uintptr_t</span> player_ptr = ...; <br><br><span>// 2. Оффсет ХП, который ты достал из дампа</span><br><span>uintptr_t</span> health_offset = <span>0x214</span>; <span>// Пример оффсета! На твоем девблоге он другой.</span><br><br><span>// 3. Читаем float по адресу: указатель на игрока + оффсет здоровья</span><br><span>float</span> current_health = driver-&gt;read&lt;<span>float</span>&gt;(player_ptr + health_offset);<br>
Пара важных нюансов для раста:

  • Мертвые игроки и слиперы: У спящих игроков (слиперов) тоже есть ХП. Если хочешь отсеивать трупы в своем ESP, проверяй флаги игрока (класс BasePlayer, поле playerFlags) или просто смотри: если _health &lt;= 0.0f — чувак труп (или в стадии ранения/нокдауна, там есть отдельный флаг HasFlag(PlayerFlags.Wounded)).
  • Сетевая синхронизация: Локальное ХП (LocalPlayer) обновляется моментально, а ХП других игроков обновляется сервером с небольшой задержкой (тикрейт). Поэтому при попадании ХП в твоем ESP может отбавиться через долю секунды, это нормально для раста.
 
_startHealth есть вроде
Да, но какой псих, реально будет сидеть и блять писать таблицу для каждого оружия, пули, брони и прописывать функцию для просчёта дистанции до цели + учитывать сплэш урон от всяких эфок... Крч дохуя условностей
 
Да, но какой псих, реально будет сидеть и блять писать таблицу для каждого оружия, пули, брони и прописывать функцию для просчёта дистанции до цели + учитывать сплэш урон от всяких эфок... Крч дохуя условностей
конченные
 
Назад
Сверху Снизу