Решил рисовать с помощью игры и наткнулся на класс IPersistantDebug.

Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Я сразу пошел восстанавливать данный класс, для этого мне понадобился еще один класс CCryAction
Код:
class CCryAction
{
public:
    IPersistantDebug* GetIPersistantDebug()
    {
        return VIRTUAL<IPersistantDebug* (__fastcall*)(PVOID)>(this, 98)(this);
    }

    static CCryAction* Singleton()
    {
        return *(CCryAction**)0x141F2B4C0;
    }
}

class IPersistantDebug
{
public:
    void Begin(const char* name, bool clear)
    {
        return VIRTUAL<void(__fastcall*)(PVOID, const char*, bool)>(this, 1)(this, name, clear);
    }

    void Add2DText(const char* text, float size, ColorF clr, float timeout)
    {
        return VIRTUAL<void(__fastcall*)(PVOID, const char*, float, ColorF, float)>(this, 9)(this, text, size, clr, timeout);
    }

    void AddLine(const Vec3& pos1, const Vec3& pos2, ColorF clr, float timeout)
    {
        return VIRTUAL<void(__fastcall*)(PVOID, const Vec3&, const Vec3&, ColorF, float)>(this, 4)(this, pos1, pos2, clr, timeout);
    }
};
;
Вот как я нашел абсолютный адресс класса CCryAction и указатель на класс IPersistantDebug + функции begin() и addline():
persistant2dtext.png

line.png

9 строка 141F2B4C0 - это адресс класса CCryAction;
784 / 8 = 98 индекс функции в классе CCryAction->GetIPersistantDebug();
v10+8; 8 / 8 = 1 - индекс функции Begin(const char* name, bool clear);
v12+ 32; 32 / 8 = 4 - индекс функции AddLine(const Vec3& pos1, const Vec3& pos2,
Пожалуйста, авторизуйтесь для просмотра ссылки.
clr, float timeout);

Когда я пытаюс сделать проверки на то валидные ли я получаю указатель то на этом моменте он не верный - if (CCryAction::Singleton()->GetIPersistantDebug()).
GetIPersistantDebug() - функция возвращает что то не то походу, но восстановлено вроде все правильно, кто знает в чем может быть проблема?
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мб лучше IRenderer drawing? Ибо это бесполезно
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Мб лучше IRenderer drawing? Ибо это бесполезно
Ммм, а чем в irender можно рисовать, я там не увидел всяких рисовок текстов и тд и тп, или я слепой. А почему бесполезно не понимаю?
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А почему бесполезно использовать то как я делал ?
Всё вернётся к одному и тому же, будет использоваться IRenderer, это я так думаю, так что могу ошибся, но всё же рисовка идёт вся от туда.
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Всё вернётся к одному и тому же, будет использоваться IRenderer, это я так думаю, так что могу ошибся, но всё же рисовка идёт вся от туда.
Да вроде нет.
Код:
void CPersistantDebug::Add2DText(const char* text, float size, ColorF clr, float timeout)
{
    if (text == 0 || *text == '\0')
        return;

    STextObj2D obj;
    obj.clr = clr;
    obj.text = text;
    obj.size = size;
    obj.timeRemaining = timeout <= 0.0f ? kUnlimitedTime : timeout;
    obj.totalTime = obj.timeRemaining;
    m_2DTexts.push_front(obj);
}
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да вроде нет.
Код:
void CPersistantDebug::Add2DText(const char* text, float size, ColorF clr, float timeout)
{
    if (text == 0 || *text == '\0')
        return;

    STextObj2D obj;
    obj.clr = clr;
    obj.text = text;
    obj.size = size;
    obj.timeRemaining = timeout <= 0.0f ? kUnlimitedTime : timeout;
    obj.totalTime = obj.timeRemaining;
    m_2DTexts.push_front(obj);
}
У тебя вообще получилось что-то отрисовать? Или крашит
IPersistantDebug* GetIPersistantDebug() ?
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
У тебя вообще получилось что-то отрисовать? Или крашит
IPersistantDebug* GetIPersistantDebug() ?
GetIPersistantDebug() -данная функция возвращает какое-то говно, ибо проверка с этой фукнцией не проходит
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
GetIPersistantDebug() -данная функция возвращает какое-то говно, ибо проверка с этой фукнцией не проходит
попробуй if (CCryAction::Singleton()->GetIPersistantDebug()) { /*Code drawing*/} хз, ибо так IPersistantDebug* pPersistantDebug = iCCryAction::Singleton()->GetIPersistantDebug(); if (!pPersistantDebug) return; вообще не знаю даже как ты использовал
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
попробуй if (CCryAction::Singleton()->GetIPersistantDebug()) { /*Code drawing*/} хз, ибо так IPersistantDebug* pPersistantDebug = iCCryAction::Singleton()->GetIPersistantDebug(); if (!pPersistantDebug) return; вообще не знаю даже как ты использовал
в варфейсе очередь 11к - заебися
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
ofk client

запусти с папки GameDX11.exe и всё
а я рисую линий там 3d координаты указываються)
ofk client

запусти с папки GameDX11.exe и всё
я функцию для рисовки текста восстановил, правда странно, что там нельзя указатель экранные координаты
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а я рисую линий там 3d координаты указываються)

я функцию для рисовки текста восстановил, правда странно, что там нельзя указатель экранные координаты
Пошли дискорд, или же можешь показать тут как вывелась рисовка твоя
а я рисую линий там 3d координаты указываються)

я функцию для рисовки текста восстановил, правда странно, что там нельзя указатель экранные координаты
И наверное лучше использовать игровые координаты
 
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции[?]
18
Поинты[?]
0
Пошли дискорд, или же можешь показать тут как вывелась рисовка твоя

И наверное лучше использовать игровые координаты
пошли в дс - Pikacchg#2761, сорри отходил
Пошли дискорд, или же можешь показать тут как вывелась рисовка твоя

И наверное лучше использовать игровые координаты
Я И взял координаты игроков и свои
 
Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу