[ Warface ] как получить позицию игрока?

  • Автор темы Автор темы weird
  • Дата начала Дата начала
masta copypasta
Участник
Участник
Статус
Оффлайн
Регистрация
2 Июн 2017
Сообщения
730
Реакции
253
впервые работаю с этим движком, не совсем понимаю что к чему

как от актера( перебираю через ActorIterator->Next ), получить позицию?
втейбл функция GetProjectedWorldBBox( 23 ) и транслейт в ворлд не работает

вф x64

@Крайслер, @Dimedrol, на счет вф могу только на вас расчитывать;)
 
Последнее редактирование:
впервые работаю с этим движком, не совсем понимаю что к чему

как от актера( перебираю через ActorIterator->Next ), получить позицию?
втейбл функция GetProjectedWorldBBox( 23 ) и транслейт в ворлд не работает

вф x64

@Крайслер, @Dimedrol, на счет вф могу только на вас расчитывать;)
Код:
Expand Collapse Copy
Matrix34 pWorld = pEntit->GetWorldTM();
vPosition = pWorld.GetTranslation(); // You can use it only 1 string, it's only for example
 
Последнее редактирование модератором:
class IEntity:

Код:
Expand Collapse Copy
    Matrix34  worldTM; //0x0040
    Vec3      vPos; //0x0070

Код:
Expand Collapse Copy
Vec3       vPos= pIEntity->worldTM.GetTranslation();
Vec3       vPos= pIEntity->vPos;

Код:
Expand Collapse Copy
template <typename F> struct Matrix34_tpl
{
    F m00, m01, m02, m03;
    F m10, m11, m12, m13;
    F m20, m21, m22, m23;

    ILINE Vector_tpl<F> GetTranslation() const{
        return Vector_tpl<F>(m03, m13, m23);
    }
};
 
class IEntity:

Код:
Expand Collapse Copy
    Matrix34  worldTM; //0x0040
    Vec3      vPos; //0x0070

Код:
Expand Collapse Copy
Vec3       vPos= pIEntity->worldTM.GetTranslation();
Vec3       vPos= pIEntity->vPos;

Код:
Expand Collapse Copy
template <typename F> struct Matrix34_tpl
{
    F m00, m01, m02, m03;
    F m10, m11, m12, m13;
    F m20, m21, m22, m23;

    ILINE Vector_tpl<F> GetTranslation() const{
        return Vector_tpl<F>(m03, m13, m23);
    }
};
IEntity, а как понял от ActorIterator->Next я получаю IActor, как от актора получить ентити?
 
IEntity, а как понял от ActorIterator->Next я получаю IActor, как от актора получить ентити?
Код:
Expand Collapse Copy
class IActor 
{
public:
class IEntity* GetEntity() {
        return *(IEntity**)((uintptr_t)this + 16);
    }
};
 
Код:
Expand Collapse Copy
class IActor
{
public:
class IEntity* GetEntity() {
        return *(IEntity**)((uintptr_t)this + 16);
    }
};
вывожу позицию - на взгляд все верно, спасибо
оказалось что в2с не работает еще,
ProjectToScreen в ласт дампе - 101

screen.z - валид
x/y по нулям

upd: моя ошибочка, забыл вызвать функция GetViewport;)
вх на оригин плеера - работает

@Крайслер, ласт вопрос, хотя ты и так выручил
как тут получить позицию кости?
 
Последнее редактирование:
@@Крайслер, ласт вопрос, хотя ты и так выручил
как тут получить позицию кости?
Код:
Expand Collapse Copy
Vec3    vGetBone(Matrix34 m_pWorld, ISkeletonPose* m_pSkeleton, const char* szJointName) {
    if (!m_pSkeleton)
        return Vec3{ ZERO };
    __int16 BoneId = m_pSkeleton->GetJointIDByName(szJointName);
    Matrix34 mOut = m_pWorld * Matrix34(m_pSkeleton->GetAbsJointByID(BoneId));
    return mOut.GetTranslation();
}
Vec3    vGetBone(Matrix34 m_pWorld, ISkeletonPose* m_pSkeleton, __int16 BoneId) {
    if (!m_pSkeleton)
        return Vec3{ ZERO };
    Matrix34 mOut = m_pWorld * Matrix34(m_pSkeleton->GetAbsJointByID(BoneId));
    return mOut.GetTranslation();
}
 
it’s x86

92 / 8 = 11.5, not vtable index
92 / 4 = 23
Парень, если ты не понимаешь разницу в x86 и x64 зачем пишешь ?
92 и есть индекс ибо ида уже конвертировала его в псевдокоде, лучше думай прежде чем писать. Если уж не знаешь как проверитьб то сам понять должен, что если не делиться значит он такой и есть. Это старый скриншот
 
Парень, если ты не понимаешь разницу в x86 и x64 зачем пишешь ?
92 и есть индекс ибо ида уже конвертировала его в псевдокоде, лучше думай прежде чем писать. Если уж не знаешь как проверитьб то сам понять должен, что если не делиться значит он такой и есть. Это старый скриншот
вообще-то он все правильно привел, а вот тебе бы не следовало выступать там, где знаний нет....
 
Назад
Сверху Снизу