Проблемы с переменной IEntity->SetPos;

Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Я хочу телепортировать по всей карте и для этого я восстановил все что надо.
Нашел в иде смещение игрового поля position в классе IEntity.
На данный момент оно равняется 0xB8;
Восстановил данную переменную.
Код:
class IEntity

{

public:

void SetPos(Vec3 pos)

    {

        *(Vec3*)((DWORD64)this + 0xB8) = pos;

    }

}

Использую так->

IActor* m_pActor = nullptr;

if (IGameFramework* g_pGame = IGameFramework::Singleton()) {

if (g_pGame->GetClientActor(&m_pActor))

                        {

       m_pActor->m_pEntity->SetPos(Vec3{ 0,0,0 });

               }

}
Проблема в том что если я передаю в аргумент своей функции что-то кроме Vec3{0,0,0}, происходит краш. А если я передам в аргумент Vec3{0,0,0} то моя позиция (или позиция камеры) поменяется, пока не разобрался что у меня там телепортируется или камера или игрок.
 
Energy Reload
Забаненный
Статус
Оффлайн
Регистрация
20 Авг 2017
Сообщения
1,206
Реакции[?]
330
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это так не работает.
Да и ТП не получится, назад будет откидывать.
И вызывать надо в системном хуке.
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Это так не работает.
Да и ТП не получится, назад будет откидывать.
И вызывать надо в системном хуке.
А вы не знаете как обновить?
Класс IWeaponSpecific {}; в классе IWeapon{};
и в классе IWeaponSpecific{}; Обновить указатель на класс IWeaponExtraTwo{};
С данным методом
BOOL GetStat(uint32_t id, FLOAT* value)
{
if (uint32_t* stat = FindStat(id))
{
*(uint32_t*)value = stat[0] ^ stat[1];
return TRUE;
}
return FALSE;
}
BOOL SetStat(uint32_t id, FLOAT value)
{
if (uint32_t* stat = FindStat(id))
{
stat[0] = *(uint32_t*)&value ^ stat[1];
return TRUE;
}
return FALSE;
}
Я В ИНТЕРНЕТЕ ВООБЩЕ НЕ НАШЕЛ ИНФЫ ПРО ЭТИ КЛАССЫ И как их обновлять(.
Так же я поискал в github по исходникам cryengine. Тоже нету таких классов(
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
происходит краш. А если я передам
Скорее всего неверные смещения, но даже если ты найдешь именно те координаты что используются клиентом игры для отображения тебя это скорее всего ничего не даст, т.к. у сервера свои координаты и измененные координаты лишь будут визуально у тебя, либо они перепишутся в следующий же момент после изменения.
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А вы не знаете как обновить?
Класс IWeaponSpecific {}; в классе IWeapon{};
и в классе IWeaponSpecific{}; Обновить указатель на класс IWeaponExtraTwo{};
С данным методом
BOOL GetStat(uint32_t id, FLOAT* value)
{
if (uint32_t* stat = FindStat(id))
{
*(uint32_t*)value = stat[0] ^ stat[1];
return TRUE;
}
return FALSE;
}
BOOL SetStat(uint32_t id, FLOAT value)
{
if (uint32_t* stat = FindStat(id))
{
stat[0] = *(uint32_t*)&value ^ stat[1];
return TRUE;
}
return FALSE;
}
Я В ИНТЕРНЕТЕ ВООБЩЕ НЕ НАШЕЛ ИНФЫ ПРО ЭТИ КЛАССЫ И как их обновлять(.
Так же я поискал в github по исходникам cryengine. Тоже нету таких классов(
Это CWeaponParameters* pWeaponParameters = pWeaponGeneral->GetParameters();
 
Сверху Снизу