мистер аче видностьчит определяет куда и от кого был брошен нейд, потом рисует линию куда будет брошен нейд
но тогда, если это объясняет, как большинство читов предсказывают, где взорвется гранат, при этом нужно ли вам использовать трассировку?чит определяет куда и от кого был брошен нейд, потом рисует линию куда будет брошен нейд
Суть предсказания гранаты в том чтобы симулировать ее полет, и по мере этой симуляции запоминать точки где она находилась, а уже после по ним отрисовать линию.когда враг гранату кидает
код, который вы имеете в виду, уже находится в lv grenadepredictionСуть предсказания гранаты в том чтобы симулировать ее полет, и по мере этой симуляции запоминать точки где она находилась, а уже после по ним отрисовать линию.
Код симуляции раньше вырезали реверсив из server.dll,теперь есть исходники игры и можно наиболее точно предсказывать гранаты вырезав оттуда все что нужно.
Первым делом при смене карты тебе нужно загружать список разрушаемых сущностей, затем вести их учет, какие из них разрушены, чтобы предикт работал сквозь уже разрушенные объекты, это делается через парсинг BSP.
Затем есть два варианта:
- Когда гранату бросили (см CBaseCSGrenade::ThrowGrenade), там рассчитывается угол блоска, его скорость и уже из них вектор броска, и затем вызывается отпускание гранаты (см ниже).
- Когда гранату отпустили (см C<Name>Grenade::EmitGrenade, C<Name>Projectile::Create), там выставляется начальное состояние полета (сбрасывается), выставляются параметры на основе типа гранаты.
Дальше начинается код симуляции полета гранаты, ее суть заключается в том, что ты симулируешь кадры полета как бы это делал сервер в реальном времени, но только той части что нужно и при этом периодически запоминаешь координаты гранаты.
У сущности есть метод PhysicsSimulate, он выполняется каждый кадр на сервере для всех сущностей, сам метод определяет поведение физики сущности за один кадр.
В одном тике PhysicsSimulate будет вызываться:
- CBaseEntity::PhysicsRunThink, там для гранаты решается когда она будет взорвана (см. C<Name>Projectile::Think_Detonate) смок/декой раскрывается когда почти остановились, флешка/обычная/молотов/зажигательная как вышло время, причем они замедляются в два раза когда в воде, обновляется раз в 0.2 секунды.
- CBaseEntity::PhysicsAddGravityMove, там рассчитывается влияние гравитации на гранату
- CBaseEntity::PhysicsPushEntity, там рассчитается движение гранаты, а так же столкновения
- если столкновение произошло то в PerformFlyCollisionResolution обрабатывается отскок (после 20 граната в любом случае взрывается), там же нужно сделать проверку на ломаемые объекты
- CBaseEntity::PhysicsCheckWaterTransition, там обрабатывается взаимодействие с водой.
Так ты крутишь симуляцию кадр за кадром до определенных условий остановки (взорвалась или слишком долго крутится).
В общем, все это можно посмотреть в сорсах игры, и надеюсь текст выше поможет тебе понять что именно там происходит.
Если вы про легендвар мне вообще не нравится как он написан, это что-то с чем-то.уже находится в lv grenadeprediction
я согласен.Если вы про легендвар мне вообще не нравится как он написан, это что-то с чем-то.
Поэтому при написании своего предикта лучше обратиться к сорсам игры нежели к сорсу какого-то чита.
Вообще-то в:physics_main.cpp
я на пальцах объяснил челику. ок дамистер аче видность
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz