HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #7311  
Старый 01.07.2024, 13:12
Andrinall
Постоянный
Регистрация: 11.07.2019
Сообщений: 702
С нами: 3601315

Репутация: 148


По умолчанию

Цитата:
Сообщение от yoonost  

оооочень странно, не работают оба варианта, я думал оно не работает из-за того что в RsGlobal нулевые переменные но нет...
Бл попробуй
Код:
RwV2d*(__cdecl*)(CVector& out, CVector& in)
Чем чёрт не шутит
 
Ответить с цитированием

  #7312  
Старый 01.07.2024, 13:28
yoonost
Познающий
Регистрация: 21.01.2019
Сообщений: 62
С нами: 3847510

Репутация: 58
По умолчанию

Цитата:
Сообщение от Andrinall  

Бл попробуй
Код:
RwV2d*(__cdecl*)(CVector& out, CVector& in)
Чем чёрт не шутит
Нет -_-
 
Ответить с цитированием

  #7313  
Старый 01.07.2024, 14:12
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Че за ***ня, оригинал функции верни вместо этих rwssssGloball288, ты же не логику описываешь , а входные данные меняешь

Цитата:
Сообщение от yoonost  

Нет -_-
 
Ответить с цитированием

  #7314  
Старый 01.07.2024, 14:15
yoonost
Познающий
Регистрация: 21.01.2019
Сообщений: 62
С нами: 3847510

Репутация: 58
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

Че за ***ня, оригинал функции верни вместо этих rwssssGloball288, ты же не логику описываешь , а входные данные меняешь
не много не понял, можешь дать пример? если я верну ориг функции то как он тогда будет данные менять
 
Ответить с цитированием

  #7315  
Старый 01.07.2024, 14:29
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Цитата:
Сообщение от yoonost  

не много не понял, можешь дать пример? если я верну ориг функции то как он тогда будет данные менять
C++:





Код:
return
hook
.
get_trampoline
(
)
(
out
,
in
)
;
 
Ответить с цитированием

  #7316  
Старый 01.07.2024, 14:34
yoonost
Познающий
Регистрация: 21.01.2019
Сообщений: 62
С нами: 3847510

Репутация: 58
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

C++:





Код:
return
hook
.
get_trampoline
(
)
(
out
,
in
)
;

а, не допер сразу о чем ты говоришь

я пробовал это еще 5 часов назад но не работает
 
Ответить с цитированием

  #7317  
Старый 01.07.2024, 14:37
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

полный код кинь
 
Ответить с цитированием

  #7318  
Старый 01.07.2024, 14:42
yoonost
Познающий
Регистрация: 21.01.2019
Сообщений: 62
С нами: 3847510

Репутация: 58
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

полный код кинь
radar.cpp:





Код:
#include "radar.h"

void radar::initialize() {
    hookTransformPos.set_dest(0x583480);
    hookTransformPos.set_cb(std::bind(&radar::transformPos, this, _1, _2, _3));
    hookTransformPos.install();
}

RwV2d* __cdecl radar::transformPos(const decltype(hookTransformPos)& hook, CVector2D* out, CVector2D* in) {
    if (FrontEndMenuManager.drawRadarOrMap) {
        out->x = FrontEndMenuManager.m_fMapZoom * in->x + FrontEndMenuManager.m_fMapBaseX;
        out->y = FrontEndMenuManager.m_fMapBaseY - FrontEndMenuManager.m_fMapZoom * in->y;
    }
    else {
        out->x = 0.5 * (94.0 * (RsGlobal.maximumWidth * 0.0015625)) + RsGlobal.maximumWidth * 0.0015625 * 40.0 + 94.0 * (RsGlobal.maximumWidth * 0.0015625) * in->x * 0.5;
        out->y = RsGlobal.maximumHeight - 0.002232143 * RsGlobal.maximumHeight * 104.0 + 76.0 * (0.002232143 * RsGlobal.maximumHeight) * 0.5 - 76.0 * (0.002232143 * RsGlobal.maximumHeight) * in->y * 0.5;
    }
    return hook.get_trampoline()(out, in);
}


radar.h:





Код:
#pragma once

#include 

#include 
#include 
#include 
#include 
#include "CMenuManager.h"

using namespace plugin;
using namespace std::placeholders;

class radar {
public:
    void initialize();

private:
    kthook::kthook_simple hookTransformPos {};
    RwV2d* __cdecl transformPos(const decltype(hookTransformPos)& hook, CVector2D* out, CVector2D* in);
};

inline radar g_radar;
 
Ответить с цитированием

  #7319  
Старый 01.07.2024, 14:55
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Цитата:
Сообщение от yoonost  

radar.cpp:





Код:
#include "radar.h"

void radar::initialize() {
    hookTransformPos.set_dest(0x583480);
    hookTransformPos.set_cb(std::bind(&radar::transformPos, this, _1, _2, _3));
    hookTransformPos.install();
}

RwV2d* __cdecl radar::transformPos(const decltype(hookTransformPos)& hook, CVector2D* out, CVector2D* in) {
    if (FrontEndMenuManager.drawRadarOrMap) {
        out->x = FrontEndMenuManager.m_fMapZoom * in->x + FrontEndMenuManager.m_fMapBaseX;
        out->y = FrontEndMenuManager.m_fMapBaseY - FrontEndMenuManager.m_fMapZoom * in->y;
    }
    else {
        out->x = 0.5 * (94.0 * (RsGlobal.maximumWidth * 0.0015625)) + RsGlobal.maximumWidth * 0.0015625 * 40.0 + 94.0 * (RsGlobal.maximumWidth * 0.0015625) * in->x * 0.5;
        out->y = RsGlobal.maximumHeight - 0.002232143 * RsGlobal.maximumHeight * 104.0 + 76.0 * (0.002232143 * RsGlobal.maximumHeight) * 0.5 - 76.0 * (0.002232143 * RsGlobal.maximumHeight) * in->y * 0.5;
    }
    return hook.get_trampoline()(out, in);
}


radar.h:





Код:
#pragma once

#include 

#include 
#include 
#include 
#include 
#include "CMenuManager.h"

using namespace plugin;
using namespace std::placeholders;

class radar {
public:
    void initialize();

private:
    kthook::kthook_simple hookTransformPos {};
    RwV2d* __cdecl transformPos(const decltype(hookTransformPos)& hook, CVector2D* out, CVector2D* in);
};

inline radar g_radar;

C++:





Код:
class
radar
{
private
:
kthook
::
kthook_simple

TransformRadarPointToScreenSpaceHook
{
}
;
static
void
__cdecl
TransformRadarPointToScreenSpace_HOOKED
(
const
decltype
(
TransformRadarPointToScreenSpaceHook
)
&
hook
,
CVector2D
*
out
,
CVector2D
*
in
)
;
public
:
void
initialize
(
)
;
}
g_radar
;
void
radar
::
initialize
(
)
{
TransformRadarPointToScreenSpaceHook
.
set_dest
(
0x583480
)
;
TransformRadarPointToScreenSpaceHook
.
set_cb
(
&
TransformRadarPointToScreenSpace_HOOKED
)
;
TransformRadarPointToScreenSpaceHook
.
install
(
)
;
}
void
__cdecl radar
::
TransformRadarPointToScreenSpace_HOOKED
(
const
decltype
(
TransformRadarPointToScreenSpaceHook
)
&
hook
,
CVector2D
*
out
,
CVector2D
*
in
)
{
if
(
FrontEndMenuManager
.
drawRadarOrMap
)
{
out
->
x
=
FrontEndMenuManager
.
m_fMapZoom
*
in
->
x
+
FrontEndMenuManager
.
m_fMapBaseX
;
out
->
y
=
FrontEndMenuManager
.
m_fMapBaseY
-
FrontEndMenuManager
.
m_fMapZoom
*
in
->
y
;
}
else
{
out
->
x
=
0.5
*
(
94.0
*
(
RsGlobal
.
maximumWidth
*
0.0015625
)
)
+
RsGlobal
.
maximumWidth
*
0.0015625
*
40.0
+
94.0
*
(
RsGlobal
.
maximumWidth
*
0.0015625
)
*
in
->
x
*
0.5
;
out
->
y
=
RsGlobal
.
maximumHeight
-
0.002232143
*
RsGlobal
.
maximumHeight
*
104.0
+
76.0
*
(
0.002232143
*
RsGlobal
.
maximumHeight
)
*
0.5
-
76.0
*
(
0.002232143
*
RsGlobal
.
maximumHeight
)
*
in
->
y
*
0.5
;
}
//ты ведь в тупую логику переписал?? если так, то не нужно вообще ориг. функцию вызывать, т.к. все рассчеты будут тут
return
;
}


еще я не тестил эту лабуду
 
Ответить с цитированием

  #7320  
Старый 01.07.2024, 15:02
yoonost
Познающий
Регистрация: 21.01.2019
Сообщений: 62
С нами: 3847510

Репутация: 58
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

C++:





Код:
class
radar
{
private
:
kthook
::
kthook_simple

TransformRadarPointToScreenSpaceHook
{
}
;
static
void
__cdecl
TransformRadarPointToScreenSpace_HOOKED
(
const
decltype
(
TransformRadarPointToScreenSpaceHook
)
&
hook
,
CVector2D
*
out
,
CVector2D
*
in
)
;
public
:
void
initialize
(
)
;
}
g_radar
;
void
radar
::
initialize
(
)
{
TransformRadarPointToScreenSpaceHook
.
set_dest
(
0x583480
)
;
TransformRadarPointToScreenSpaceHook
.
set_cb
(
&
TransformRadarPointToScreenSpace_HOOKED
)
;
TransformRadarPointToScreenSpaceHook
.
install
(
)
;
}
void
__cdecl radar
::
TransformRadarPointToScreenSpace_HOOKED
(
const
decltype
(
TransformRadarPointToScreenSpaceHook
)
&
hook
,
CVector2D
*
out
,
CVector2D
*
in
)
{
if
(
FrontEndMenuManager
.
drawRadarOrMap
)
{
out
->
x
=
FrontEndMenuManager
.
m_fMapZoom
*
in
->
x
+
FrontEndMenuManager
.
m_fMapBaseX
;
out
->
y
=
FrontEndMenuManager
.
m_fMapBaseY
-
FrontEndMenuManager
.
m_fMapZoom
*
in
->
y
;
}
else
{
out
->
x
=
0.5
*
(
94.0
*
(
RsGlobal
.
maximumWidth
*
0.0015625
)
)
+
RsGlobal
.
maximumWidth
*
0.0015625
*
40.0
+
94.0
*
(
RsGlobal
.
maximumWidth
*
0.0015625
)
*
in
->
x
*
0.5
;
out
->
y
=
RsGlobal
.
maximumHeight
-
0.002232143
*
RsGlobal
.
maximumHeight
*
104.0
+
76.0
*
(
0.002232143
*
RsGlobal
.
maximumHeight
)
*
0.5
-
76.0
*
(
0.002232143
*
RsGlobal
.
maximumHeight
)
*
in
->
y
*
0.5
;
}
//ты ведь в тупую логику переписал?? если так, то не нужно вообще ориг. функцию вызывать, т.к. все рассчеты будут тут
return
;
}


еще я не тестил эту лабуду
не работает, проверь у себя

логику стандартную использую для теста хука, в будущем буду под плагин делать
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.