Графика и вывод своей информации - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming

Программирование / Programming
Ищете помощи в написании программы, есть сложность в выполнении задания (в институте и т.д.), пожалуйста, спросите у нас в данном форуме и мы обязательно вам поможем.

Ответ
Опции темы
Непрочитано 26.06.2017, 07:52   #1
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Графика и вывод своей информации

Собственно появилась гигантская мотивация освоить графику и прочие интересности (вывод информации на экран).

Прочитал тему http://coderx.ru/showthread.php?t=1077 и решил попробовать, однако все закончилось печально: крит и GTFO.

Так же видел пример работы в ргварде, но там какой-то ужас и садамия. Вопрос вот в чем: нет ли у кого-нибудь нормального работающего примера с графикой. На том же астериосе выводят онлайн, я вот тоже хочу что-то выводить

Добавлено через 42 секунды
struct TFontDrawInfo
{
	int font;
	unsigned int color, u1, u2, u3, u4;
};
 
unsigned int Canvas;
unsigned int mainThread;
 
typedef void(_fastcall *MasterProcessPreRender) (unsigned int This, unsigned int EDX, unsigned int UCanvas);
MasterProcessPreRender true_MasterProcessPreRender;
 
typedef int(_fastcall *DrawTextTTFToCanvas) (unsigned int This, unsigned int EDX, int X, int Y, wchar_t *text, TFontDrawInfo *FontDrawInfo, unsigned char, int, int, unsigned int FontDrawInfoSection);
DrawTextTTFToCanvas true_DrawTextTTFToCanvas;
 
typedef void(_fastcall *Render) (unsigned int This, unsigned int EDX, unsigned int FRenderInterface);
Render true_Render;
 
void _fastcall new_MasterProcessPreRender(unsigned int This, unsigned int EDX, unsigned int UCanvas)
{
	Canvas = UCanvas;
	true_MasterProcessPreRender(This, EDX, UCanvas);
}
 
void _fastcall new_Render(unsigned int This, unsigned int EDX, unsigned int FRenderInterface)
{
	mainThread = GetCurrentThreadId();
 
	RECT L2Rect;
	auto L2hWND = (HWND*)GetProcAddress(LoadLibraryA("core.dll"), "?GTopWnd@@3PAUHWND__@@A");
 
	true_Render(This, EDX, FRenderInterface);
 
	GetClientRect(*L2hWND, &L2Rect);
	time_t rawtime;
	struct tm timeinfo;
	wchar_t exstr[16], newstr[64];
 
	time(&rawtime);
	localtime_s(&timeinfo, &rawtime);
	wcsftime(exstr, 15, L"%H:%M", &timeinfo);
	wcscpy_s(newstr, L"Test");
	wcscat_s(newstr, exstr);
 
	long x = 100;
	long y = 100;
	auto font = new TFontDrawInfo();
	font->color = 0x00FF00;
	font->font = 1;
	font->u1 = 1;
	font->u2 = 2;
	font->u3 = 3;
	font->u4 = 4;
 
	true_DrawTextTTFToCanvas(Canvas, 0, L2Rect.right - x, L2Rect.top + y, newstr, font, 0xFF, 0, 0, 0);
}
 
void ExtRender(HMODULE hEngine)
{
	true_DrawTextTTFToCanvas = (DrawTextTTFToCanvas)GetProcAddress(hEngine, "?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z");
	true_MasterProcessPreRender = (MasterProcessPreRender)((int)GetProcAddress(hEngine, "?MasterProcessPreRender@UInteractionMaster@@QAEXPAVUCanvas@@@Z") + 5);
	true_Render = (Render)((int)GetProcAddress(hEngine, "?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@@@Z")+5);
	HookHelper::BeginRedirect(GetProcAddress(hEngine, "?MasterProcessPreRender@UInteractionMaster@@QAEXPAVUCanvas@@@Z"), new_MasterProcessPreRender);
	HookHelper::BeginRedirect(GetProcAddress(hEngine, "?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@@@Z"), new_Render);
}
Code: C++
Код, который я переписал выглядит вот так.
__________________

Последний раз редактировалось Zubastic; 26.06.2017 в 07:53. Причина: Добавлено сообщение
Zubastic вне форума Ответить с цитированием
Непрочитано 26.06.2017, 12:10   #2
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Re: Графика и вывод своей информации

Вообще хотелось бы реализовать что-то типа такого:
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 29.06.2017, 03:04   #3
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Re: Графика и вывод своей информации

Up!
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 29.06.2017, 13:12   #4
Аватар для ALF.
Герой

По умолчанию Re: Графика и вывод своей информации

Посмотри в исходниках RGuard, правда там тоже не совсем правильно. Там хардкод на некоторые адреса в engine.dll, которые можно получить динамически почти независимо от хроник. Я если доберусь до своего компа, где занимался л2, может зашарю. Там и защита с шифрованием и GUIятинка.
ALF. вне форума Отправить сообщение для ALF. с помощью ICQ Отправить сообщение для ALF. с помощью Skype™ Ответить с цитированием
Непрочитано 29.06.2017, 22:34   #5
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Re: Графика и вывод своей информации

Цитата:
Сообщение от ALF. Посмотреть сообщение
Посмотри в исходниках RGuard, правда там тоже не совсем правильно. Там хардкод на некоторые адреса в engine.dll, которые можно получить динамически почти независимо от хроник. Я если доберусь до своего компа, где занимался л2, может зашарю. Там и защита с шифрованием и GUIятинка.
Смотрел. Код в первом посте от него же

У тебя GUI с помощью канваса или же через D3D?
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 30.06.2017, 10:33   #6
Аватар для ALF.
Герой

По умолчанию Re: Графика и вывод своей информации

Цитата:
Сообщение от Zubastic Посмотреть сообщение
Смотрел. Код в первом посте от него же

У тебя GUI с помощью канваса или же через D3D?
С помошью канваса.

У р-гуарда код на 80% правильный, они правильным путем пошли.
Через Д3Д мне не понравилось, ибо там графика не адаптированная под л2.
Шрифты не л2-шные, теней нету, и вообще как-то не красиво)
А что бы сделать красиво через д3д - надо неплохо заморочится.
ALF. вне форума Отправить сообщение для ALF. с помощью ICQ Отправить сообщение для ALF. с помощью Skype™ Ответить с цитированием
Непрочитано 03.07.2017, 01:58   #7
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Re: Графика и вывод своей информации

Цитата:
Сообщение от ALF. Посмотреть сообщение
С помошью канваса.

У р-гуарда код на 80% правильный, они правильным путем пошли.
Через Д3Д мне не понравилось, ибо там графика не адаптированная под л2.
Шрифты не л2-шные, теней нету, и вообще как-то не красиво)
А что бы сделать красиво через д3д - надо неплохо заморочится.
Ну я сделал кое что, но всеравно есть косяки .

Например при сворачивании окна, ловлю такие криты:
Цитата:
2017.7.3 01:57:50
OS : Windows7(32) 6.1 (Build: 7601)
CPU : GenuineIntel Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz @ 3605 MHz 4095MB RAM
Video : NVIDIA GeForce GTX 960 (8253)
PosCode : LS1(273) 0:0:0 8/0 [390]

General protection fault!

History: UD3DRenderDevice::HoldBackBuffer <- UD3DRenderDevice::Present <- PresentLastFrame <- UGameEngine:raw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop
Цитата:
2017.7.3 01:58:44
OS : Windows7(32) 6.1 (Build: 7601)
CPU : GenuineIntel Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz @ 3605 MHz 4095MB RAM
Video : NVIDIA GeForce GTX 960 (8253)
PosCode : LS1(273) 0:0:0 8/0 [390]

General protection fault!

History: UD3DRenderDevice::SetRes <- UWindowsViewport::EndFullscreen <- UWindowsViewport::ToggleFullscreen <- WM_KEYUP <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 006F28D6 261 <- MessagePump <- MainLoop
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 04.07.2017, 15:48   #8
Аватар для Awiion

По умолчанию Re: Графика и вывод своей информации

Zubastic,
Ну так вы пишете в буффер, дальше когда вы делаете альт+таб, у вас он очищается, и по стеку получается крашь





Цитата:
Сообщение от ALF. Посмотреть сообщение
Шрифты не л2-шные, теней нету, и вообще как-то не красиво)
А что бы сделать красиво через д3д - надо неплохо заморочится.
Извините, а что там сложного?

Клац:
Свернуть ↑Развернуть ↓
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 04.07.2017, 17:12   #9
Аватар для Zubastic
ZG troll squad

Автор темы (Топик Стартер) Re: Графика и вывод своей информации

Цитата:
Сообщение от Awiion Посмотреть сообщение
Zubastic,
Ну так вы пишете в буффер, дальше когда вы делаете альт+таб, у вас он очищается, и по стеку получается крашь
Да я посмотрел, там вообще выгрузка идет и загрузка обратно. Другое дело, что я понятия не имею как с моим кодом это сделать. Можно в личку кинуть какой-нибудь месседжер? А то уже все работает (почти) кроме 1го но с этой фигней
__________________
Zubastic вне форума Ответить с цитированием
Непрочитано 04.07.2017, 23:46   #10
Аватар для Awiion

По умолчанию Re: Графика и вывод своей информации

Вот пример, накидал на dx9, (dx8, opengl) можно использовать
Простенький хук, ЕндСцена, Текст и Драв бокс.

Вложения
Тип файла: rar DrawWrite.rar (5.2 Кб, 54 просмотров)
Тип файла: rar SDK(х86).rar (1.34 Мб, 44 просмотров)
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Ответ


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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется админ со своей сборкой deathmad Рынок / Marketplace 2 30.09.2015 12:09
Вывод информации по GET запросу foxovsky PHP 6 11.08.2014 15:04
Неточность информации Elegia Leather Breastplate Auri Lineage II 26 01.10.2013 12:40
Нужен человек со своей сборкой LA2 crystalake Рынок / Marketplace 1 04.04.2011 18:20
Скрипты для создания своей [web]-статистики MMd Работа со скриптами 0 26.12.2009 14:49


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 01:47. Часовой пояс GMT +3.

Вверх