-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет всем кто это читает.
Все адреса обновлены под DirectX 11, от 22.05.21
У меня нету времени тестировать данный функционал, в общем через него можно сделать FakeDuck, и фейковые лаги а может быть ещё что-то интересное, дерзайте.
Использование простое, в первый аргумент передаём указатель нашего персонажа, во второй структуру SMovementCmd, в третий SPlayerMovementState, в четвёртый ничего не нужно передавать.
Все адреса обновлены под DirectX 11, от 22.05.21
У меня нету времени тестировать данный функционал, в общем через него можно сделать FakeDuck, и фейковые лаги а может быть ещё что-то интересное, дерзайте.
Код:
namespace MovementCore {
struct SMovementCmd {
unsigned int N;
unsigned __int8 physCounter;
Vec3_tpl<float> lookDir;
Vec3_tpl<float> slideDir;
Vec3_tpl<float> moveDir;
bool haste;
bool slide;
bool jump;
bool use;
bool zoom;
bool simulate;
char stance;
unsigned int stateChecksum;
bool generated;
};
struct SMovementCmdBucket {
unsigned int N;
unsigned __int8 physCounter;
unsigned int stateChecksum;
std::vector< MovementCore::SMovementCmd, std::allocator< MovementCore::SMovementCmd > > commands;
};
struct SPlayerMovementState {
unsigned int cmdN;
unsigned __int8 physCounter;
bool hasData;
unsigned int standingOn;
Vec3_tpl<float> pos;
Vec3_tpl<float> vel;
Vec3_tpl<float> slideDir;
float slideTimer;
char stance;
bool inHaste;
bool inSlide;
bool inJump;
bool inZoom;
bool simulate;
bool isRemotePlayer;
bool isExtrapolated;
float stamina;
float groundTimer;
Vec3_tpl<float> filteredMove;
Vec3_tpl<float> groundNormal;
Vec3_tpl<float> lookDirection;
float latency;
float pseudoSpeed;
bool isStuck;
Vec3_tpl<float> moveDir;
};
using fnMove = void(__fastcall*)(CActor*, MovementCore::SMovementCmd*, MovementCore::SPlayerMovementState*, MovementCore::SPlayerMovementState*);
void Move(/* CPlayer */ CActor* player, MovementCore::SMovementCmd* cmd, MovementCore::SPlayerMovementState* in_state, MovementCore::SPlayerMovementState* out_state) {
fnMove(0x1413E74D0)(player, cmd, in_state, out_state); // Find -> ClientMove
}
}
Использование простое, в первый аргумент передаём указатель нашего персонажа, во второй структуру SMovementCmd, в третий SPlayerMovementState, в четвёртый ничего не нужно передавать.