-
Публикаций
56 -
Зарегистрирован
-
Посещение
-
Победитель дней
3 -
Отзывы
0%
Сообщения, опубликованные Matrix
-
-
А если попробовать простое немодальное диалоговое окно, координаты ограничить рабочим окном ладвы, замутить дизайн под ладву и на момент открытия окна, запрещать снижение нагрузку окна в фоне (чтоб не лагало)???
-
Одно время морочился с отрисовкой окон, прям в игре, на дальше пустого окна дела не сдвинулось) А так былобы неплохо: Тыкнул Ctrl+R - открылось окошко с выбором радиостанции, с громкостью + плейлист свой чтоб можно было делать)
-
Ну тогда уж вероятней будет вот так:
if(HIBYTE(GetKeyState(VK_LCONTROL)) > 0 && HIBYTE(GetKeyState('R')) > 0 && !isPressed)
>> If the high-order bit is 1, the key is down; otherwise, it is up.
-
Хаха, а про такой вариант я даже и не думал)
#include "bass.h" #pragma comment(lib, "bass.lib") const char modern_rock[] = "http://ep128.streamr.ru"; //URL аудиопотока HSTREAM stream; bool isPlaying = false; bool isPressed = false; void play() { isPlaying = true; stream = BASS_StreamCreateURL(modern_rock, 0, 0, NULL, 0); if (!stream) return; BASS_ChannelPlay(stream,TRUE); } void stop() { isPlaying = false; BASS_ChannelStop(stream); BASS_StreamFree(stream); } DWORD WINAPI RadioControl(LPVOID) { if (HIWORD(BASS_GetVersion())!=BASSVERSION) return 1; if (!BASS_Init (-1, 22050, BASS_DEVICE_3D , 0, NULL)) return 1; while(true) { if(GetKeyState(VK_LCONTROL) < 0 && GetKeyState('R') < 0 && !isPressed) { HWND h = GetForegroundWindow(); if(h) { DWORD pId(0); GetWindowThreadProcessId(h, &pId); if(pId == GetCurrentProcessId()) { if(!isPlaying) play(); else stop(); } } } isPressed = GetKeyState('R') < 0; Sleep(10); } BASS_Free(); return 0; } void Radio(void) { CreateThread (0, 0, RadioControl, 0, 0, 0); }
Спойлер не нашел чтоб код свернуть. Вообщем запихал предложенный выше код + сделал чтобы включалось и выключалось радио по Ctrl+R
-
а мутексы на что?
у bass нету библиотеки для статической линковки?
Можно и мутексами, но мне кажется лучше ловить нажатия в активном окне, нежели проверять текущее состояние клавиш!
Про статическую линковку ничего не скажу, маны особо не читал, да и уже очень давно это делал. Этот код так, накидал побыстрому, когда наткнулся на темку про радио, здесь на форуме!
-
Название: InGame Radio
Добавил: Matrix
Добавлен: 24 Mar 2015
Категория: Клиентские дополнения
Автор: MatrixХроники: Все
Патчик добавляет в клиент возможность воспроизведение аудиопотока. Адрес потока можно поменять в исходниках.
Установка: закинуть файлы radio.dll, bass.dll и ogg.dll в папку system. (чтобы не менять файл ogg.dll можно добавить в l2.exe импорт Anchor из файла radio.dll).
Управление: Ctrl+R - начать воспроизведение. Ctrl+S - остановить воспроизведение.
Для гуру: Надо допиливать управление (например сделать перехват клавишь в активном окне). Сейчас если включить 10 окон ладвы - все 10 начнут играть, со смещением изза буфферизации - звук превратится в кашу.
Курите маны и примеры по BASS.DLL. Страница библиотеки www.un4seen.com/bass.html (библиотека бесплатная!)
Также реально сделать управление громкостью (читаем мануалы).
Можно воспроизводить локальные MP3 файлы. (у себя на сервере делал инициацию воспроизведения серверным пакетом)
P.S: Проверил на клиентах Epilogue, High Five, Ertheia.
-
6
-
-
-
Делал такую приколюху для своего сервера. Если кому интересно - обратите внимание на библиотеку BASS.DLL. Она отлично подходит для этой фишки
-
Как добавить еще не сколько и сделать рандомную загрузку?
Надо переделать эту строку:
pPNGMask = new Image(PNGLogo);
Примерно на такое:
srand(time(NULL));
int nomer = rand() % 5;
wchar_t rndPNGLogo[128];
swprintf(rndPNGLogo, 128, L"%ls%d.png", L"logo_", nomer);
pPNGMask = new Image(rndPNGLogo);
В папку system вкинь 6 файлов с именами:
logo_0.png
logo_1.png
logo_2.png
logo_3.png
logo_4.png
logo_5.png
P.S: Код не проверял, но должно работать!
-
Прикольно было бы реализовать так-же что-бы показывало картинку в правом углу. На данной картинке писать "Защищено Lameguard" или чем-нибуть еще:-)
Ну какбы это вообще без проблем... Меняем строки:
ptDst.x = (GetSystemMetrics(SM_CXFULLSCREEN) - pPNGMask->GetWidth()); //Правая часть экрана минус ширина картинки
ptDst.y = 0; //Верх экрана
А если надо чтобы было и лого и "защищено темто темто", можно всё это дело выполнить в виде класса, и создать два экземпляра, каждому указать свои координаты.
P.S: В правилах использования ламы и смарта запрещено сообщать пользователям какая именно защита используется
-
1
-
-
Полезная вещь, которая значительно упрощает работу с данными скринами. Спасибо большое!
Стараюсь
Есть еще идейки для реализации, но времени нехватает всё успеть! (кстати уже сделал чтобы лого плавно появлялось, но это другая история да и кто в плюсах шарит - сам сделает это без проблем))
-
-
Название: PNG SplashScreen
Добавил: Matrix
Добавлен: 18 Mar 2015
Категория: Клиентские дополнения
Автор: MatrixХроники: Все
Патчик запрещает клиенту грузить родные BMP сплеши, вместо них грузит свой PNG файл, с прозрачностью. никаких больше танцов с бубнами (ненадо марочиться с альфаканалом, ненадо криптовать файл, не глючит на восьмёрке в клиенте ХФ). В комплекте скомпиленый файл, который отображает лого 7 секунд, а также исходники.
Установка: закинуть файлы logo.png, logo.dll и ogg.dll в папку system. (чтобы не менять файл ogg.dll можно добавить в l2.exe импорт Anchor из файла logo.dll).
Для гуру: чтобы лого исчезало не по таймеру, а в момент когда клиент загрузился, добавьте строку ShowSplash = false; в отрисовку сцены (лого исчезнит как только отрисуется окно клиента).
Файлы PNG можно заныкать в ресурсы logo.dll.
Также можно напихать кучу сплешек, и сделать их рандомную загрузку.
P.S: Проверил на клиентах Epilogue, High Five, Ertheia.
-
18
-
-
Как доберусь до компа, расшарю патчик для клиента, который отключает стандартные BMP сплеши, и подгружает простые PNG изображения вместо них (с прозрачностью, полупрозрачностью, вообщем любые) + не глючит на восьмёрке в хрониках хайфайф (дефолтный сплеш грузится 256 цветный, и висит пока не выключишь клиент).
-
Параметр Animator был придуман в моей софтине, чтобы не нарушать структуру UTX пакета, а так как сделали патч для анриала, в котором параметр TotalFrameNum добавляется при построении пакета, то необходимость в аниматоре пропадает. Пруф: Открываем UTX пакет с анимацией ХЕКС редактором, и меняем Animator на AAAAAAAA (любое слово из 8 букв), сохраняем, пихаем в клиент и всё работает!
-
del
-
Народ, кто знает какую функцию и в какой dll-ке хукает entry.dll для расшифровки файлов?
-
Может он и лежал в Postal2ED, но главное что утилита работает! И делает файлы понимаемыми ладвой!ut2down помоему в Postal2ED лежал
-
Вот тут вам могут сделать анимацию на кнопках, на иконках предметов, в комунке, в диалогах, и всё без лагов! Утилита с помощью которой это делается в продаже появится только в следующем году. -
Спасибо за ответ, сегодня как буду дома, сразу постучусь в скайп!
-
Morello, проблему решили? Столкнулся с подобным "Serial size mismatch: Got 55, Expected 836" Клиент эпилог. Делаю всё по мануалу, а толку ноль, Ошибка и всё тут. Перепробовал кучу редакторов, разные l2encdec, l2decrypt, результат один и тотже( А порой клиент тупо падает с ошибкой длинной в 100500 символов или ругается что файл поврежден. Что может быть нетак? Проблема не в клиенте, потоумчто качаю чужие текстуры/модели, всё прекрасно работает! Хелпайте кто соображает!
-
Ребятке, помогите плиз. Клиент эпилог, пробую создать свой пак с иконками, ничего не получается. Клиент падает с критом. Уже перепробовал кучу unreal editor-ов, нифига не получается. Перечитал горы мануалов, ничего не выходит( Пробовал и ддс и тга, результат везде одинаковый( Может есть всёже какието тонкости?
-
ut2down (утилита от Gildor за 1000р)
Еще от гилдора есть unreal editor который без этой утилиты сразу сохраняет UKX в понимаемый ладвой формат. А так сохраняем выложенным тут редактором, и конвертируем приложенной утилитой. И ладва больше не падает с критом (правда не канает с бронёй и оружием, модель сдвигается и болтается в воздухе почти независимо от персонажа, как побороть - пока не разобрался)
-
InGame Radio
в Дополнения клиента игры
Опубликовано
Предложи вариант отрисовки окна в ладве, а как залить начинку помозгуем вместе