 |
|

29.03.2024, 10:30
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от why ega
в таком случае получаю подобную шнягу
#pragma once мб поможет
или просто добавь перед классом нетворк
class Plugin;
или
struct Plugin;
(хз что это там у тебя но наверное это и не имеет особо значения)
|
|
|

29.03.2024, 12:27
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от F0RQU1N and
#pragma once мб поможет
или просто добавь перед классом нетворк
class Plugin;
или
struct Plugin;
(хз что это там у тебя но наверное это и не имеет особо значения)
теперь линкер решил немного дать пиздов

|
|
|

29.03.2024, 16:03
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от why ega
теперь линкер решил немного дать пиздов
странно, сначало он говорил что не видит определение,теперь видит 2 определение, попробуй в настройках линкера поставить

/FORCE:MULTIPLE
|
|
|

30.03.2024, 15:53
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
как хукать MODELS\FONTS.TXD для подгрузки своих шрифтов
|
|
|

30.03.2024, 15:57
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от skrrt
как хукать MODELS\FONTS.TXD для подгрузки своих шрифтов
CFont::Initialise 0x5BA690 Тут подгружается fonts.txd через CTxdStore, можешь просто переписать функцию и инджектнуть её, либо просто хукнуть CSprite2d::SetTexture внутри неё. для font2 - 0x5BA6CC, для font1 - 0x5BA6E0.
Ещё можешь просто после подгрузки игровых шрифтов подгрузить свои вместо них в массив CSprite2d CFont::Sprite[2] - 0xC71AD0
|
|
|

31.03.2024, 11:00
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
каким образом происходит подгрузка своих шрифтов для чата типа ttf
|
|
|

31.03.2024, 21:16
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от skrrt
каким образом происходит подгрузка своих шрифтов для чата типа ttf
Для чата подгрузка происходит через CFonts::Reset(), для диалогов и т.д используется CDXUTDialog::InitFont(). Сами методы просто используют D3DXCreateFontA
|
|
|

01.04.2024, 22:27
|
|
Познающий
Регистрация: 08.11.2023
Сообщений: 65
С нами:
1324882
Репутация:
23
|
|
C++:
Код:
void loooooooool::rakhookSetup() {
rakhook::on_receive_rpc += [&] (unsigned char &id, RakNet::BitStream *bitStream) {
if (!enabled)
return true;
if (id != 215)
return true;
bitStream->ResetReadPointer();
char test[5]{0};
bitStream->Read(test, 5);
uint16_t test2;
bitStream->Read(test2);
sendResponse(test, test2, 0, 0);
// тут надо подождать 20 секунд
sendResponse(test, test2, 0, 0);
return true;
};
}
У нас есть лямбда, функция loooooooool::rakhookSetup() вызывается 1 раз после инициализации. Вопрос вот в чем, как мне вызвать функцию sendResponse два раза с интервалом в 20 секунд? Переменные test и test2 не хочу выносить за пределы лямбды, выносить битстрим - бяка, создавать поток не хочу, использовать ktcoro - научите). Суть просто в том, что мне надо вызвать функцию sendResponse несколько раз, передав в аргументы те самые test и test2, так же, вызывать с интервалом. Подскажите нормальные способы
Сообщение от yorenov
C++:
Код:
void loooooooool::rakhookSetup() {
rakhook::on_receive_rpc += [&] (unsigned char &id, RakNet::BitStream *bitStream) {
if (!enabled)
return true;
if (id != 215)
return true;
bitStream->ResetReadPointer();
char test[5]{0};
bitStream->Read(test, 5);
uint16_t test2;
bitStream->Read(test2);
sendResponse(test, test2, 0, 0);
// тут надо подождать 20 секунд
sendResponse(test, test2, 0, 0);
return true;
};
}
У нас есть лямбда, функция loooooooool::rakhookSetup() вызывается 1 раз после инициализации. Вопрос вот в чем, как мне вызвать функцию sendResponse два раза с интервалом в 20 секунд? Переменные test и test2 не хочу выносить за пределы лямбды, выносить битстрим - бяка, создавать поток не хочу, использовать ktcoro - научите). Суть просто в том, что мне надо вызвать функцию sendResponse несколько раз, передав в аргументы те самые test и test2, так же, вызывать с интервалом. Подскажите нормальные способы
upd: Нашел решение
С++:
Код:
tasklist
.
add_task
(
[
]
(
int
_test
,
int
_test2
)
->
ktwait
{
looooooool
::
sendResponse
(
_test
,
_test2
,
"1"
,
false
)
;
co_await
16000
;
looooooool
::
sendResponse
(
_test
,
_test2
,
"2"
,
true
)
;
}
,
test
,
test2
)
;
|
|
|

02.04.2024, 20:34
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
как можно реализовать привязку сервера, например если подключаешься на IP 127.0.0.1:7777, то будет выводиться определенная функция, а если на другой IP то ничего не будет
|
|
|

02.04.2024, 20:57
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от skrrt
как можно реализовать привязку сервера, например если подключаешься на IP 127.0.0.1:7777, то будет выводиться определенная функция, а если на другой IP то ничего не будет
Получать адрес и порт из CNetGame и проверять их
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|