Интернет-радио, которое можно настроить и использовать через интерфейс.

Можете сказать как установить
Просто через cff explorer добавляете dll к fire.dll и все.
Как это сделать есть в yt, да и здесь есть.
Остальное в интерфейс добавляете и компилируете с заменой interface.u, interface.xdat
 

Как и обещал сделал парсер станций в .ini с функцией проверки корректности данных радиостанции:
  • если в INI-файле данные:
    • Отсутствуют
    • Имеют неверный формат (нет запятой между URL и названием)
    • Имеют некорректный URL (не начинается с http:// или https://)
    • Имеют пустое название
  • Для этой функции радиостанции будет использоваться стандартное значение GetDefaultRadioData().
 

Вложения

  • Radio.rar
    Radio.rar
    178,4 КБ · Просмотры: 12
ох ничего себе! вы че творите, я аж немного возбудился!
куда нам пенсионерам без радио, то! спасибо!

Sarcasm:

вот еще телевизор прикрутить чтоб новости смотреть и можно на покой!
 
ох ничего себе! вы че творите, я аж немного возбудился!
куда нам пенсионерам без радио, то! спасибо!

Sarcasm:

вот еще телевизор прикрутить чтоб новости смотреть и можно на покой!
хм надо подумать :)
 
ага, чтоб ютубчик смотреть паралельно качу)
Да не, лучше уж через браузер вывести отдельное окно. Все же лучше будет, если обработка видео будет в отдельном потоке) (Даже если кто - то захочет сделать нечто подобное, что уже хз, получится ли)
 
Да не, лучше уж через браузер вывести отдельное окно. Все же лучше будет, если обработка видео будет в отдельном потоке) (Даже если кто - то захочет сделать нечто подобное, что уже хз, получится ли)

через внутриигровой браузер, или через обычный? если второе, то можно ли настроить, чтобы окно было поверх других окон всегда. и как это воспримет линейка? не пробовал...
 
через внутриигровой браузер, или через обычный? если второе, то можно ли настроить, чтобы окно было поверх других окон всегда. и как это воспримет линейка? не пробовал...
Через обычный. Есть программки, которые позволяют закреплять определенные окна поверх других. Название не помню, но с С4 клиентом нормально дружили, думаю, что и с другими тоже. Но вообще, в той же опере можно выводить видео поверх окон, это базовый функционал
 
через внутриигровой браузер, или через обычный? если второе, то можно ли настроить, чтобы окно было поверх других окон всегда. и как это воспримет линейка? не пробовал...
если для хрома то уже давно использую плагин "Picture-in-Picture mode - floating video" (разраб. Sylvia Stair)

не знаю можно ли публиковать тут ссылки на сторонние ресурсы, потому по названию можете найти в каталоге расширений.
 
Можно так или через хук d3d9 вывести chrome в окне и отрисовать например в Imgui отдельно.
Открытие страниц нужных реализовать через dll аргументы и добавить в интерфейс или свою кастомную защиту, тогда можно будет и на стороне сервера отправлять пакет с нужной ссылкой из html диалога.
Либо хукнуть функцию которая уже встроена на открытие ссылки внешней и сделать открытие браузера прям из диалога html в cb.
К примеру в aion там браузер встроен, можно подгружать страницы по ссылке и тут можно в c1 по hf таким вариантом, на более высоких хрониках браузер встроен из коробки.
 
Обновил парсер станций сейчас можно добовлять их без ограничения.
Описание радиоприемника
Добро пожаловать в мир музыки и развлечений с нашим радиоприемником! Этот интуитивно понятный интерфейс позволяет вам легко наслаждаться любимыми радиостанциями, находясь в любом месте. Вот что он умеет:

Основные функции:
Выбор радиостанций:

Легко переключайтесь между несколькими радиостанциями с помощью кнопок "Предыдущая" и "Следующая". Вы всегда сможете найти что-то новое и интересное для прослушивания.
Воспроизведение и остановка:

Просто нажмите кнопку "Play/Stop", чтобы начать или остановить воспроизведение. При первом запуске воспроизведение начнется автоматически, что делает его удобным для быстрого доступа к музыке.
Регулировка громкости:

Используйте ползунок громкости для настройки уровня звука по вашему вкусу. Изменения сохраняются, чтобы вы могли наслаждаться комфортным звучанием каждый раз, когда запускаете радиоприемник.
Отображение информации о радиостанции:

На экране всегда отображается название текущей радиостанции, что позволяет вам легко ориентироваться в своем выборе и находить любимые треки.
Сохранение настроек:

Все ваши настройки, включая выбранную станцию и уровень громкости, сохраняются в конфигурационном файле. Это обеспечивает удобство и позволяет вам продолжать с того места, на котором вы остановились.
Поддержка потокового воспроизведения:

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

Скрипт гарантирует, что воспроизводятся только действительные URL, проверяя данные радиостанций перед их загрузкой. Это обеспечивает безупречное качество воспроизведения.
Уникальные особенности:
Данные по умолчанию: Если вы еще не настроили свои радиостанции, не переживайте! Радиоприемник предлагает заранее определенный набор радиостанций, которые всегда доступны для прослушивания. Вы можете легко начать с таких популярных станций, как "Radio Record", "Energy FM" и многих других.

Гибкость настройки: Вы можете добавлять свои радиостанции и изменять их настройки в конфигурационном файле. Это позволяет вам создать идеальный плейлист, который будет соответствовать вашим музыкальным предпочтениям.

Заключение
Наш радиоприемник — это идеальный спутник для любителей музыки, который сочетает в себе простоту использования и мощные функции. Наслаждайтесь любимыми радиостанциями, регулируйте громкость, переключайтесь между треками и сохраняйте свои настройки — все это с легкостью и комфортом. Погружайтесь в мир музыки и открывайте для себя новые звуки с нашим радиоприемником!
 

Вложения

  • Radio.rar
    Radio.rar
    178,6 КБ · Просмотры: 13
Обновил парсер станций сейчас можно добовлять их без ограничения.
Очень круто) Не сочтите за наглость (и оффтоп), а можно ли добавить поддержку хоткеев?
(Например: Ctrl+R: Play, Ctrl+S: Stop, Ctrl+N: Next, Ctrl+↑↓: Громкость ↑↓)
*желательно чтоб хоткеи ловились исключительно в активном окне

зачем? очень нравится Ваше решение, но к сожалению нельзя использовать в отрыве от interface.U\XDAT
(например на сервере где этот файл под защитой)

Данная функция поможет закрыть тему радио раз и навсегда)
 
Ну вы даете.

Всегда когда раньше играл ловил себя на станции, что хорошо бы радио включить :D
Спасибо за вариант реализации.
 
Пока мне не удалось вернуть текст в скрипт., мне удалось только получить его в DLL, непонятным для мне способом, что я писал в предыдущей теме.

C++:
// Нативная функция
void __stdcall functionUC(struct FFrame& Stack, RESULT_DECL)
    Stack.Code++;

    TCHAR* str = *(TCHAR**)Result;  // Получаем из UnrealScript
    MessageBox(nullptr, str, L"hook", MB_OK)
}
C-подобный:
native(1247) static final function string functionUC();;


function OnClickButton(string strID)
{
    switch(strID)
    {
    case "btnNewAccount" :

TestStringDll("Hello world");

        break;
    }
}

function TestStringDll(string URL){ // Прокладка
    URL = functionUC(); // Отправляем текст в dll (не спрашивайте как это работает я сам не знаю)
    }
You must look deeper into UE2 headers file. The file Core\UnScript.h contains neccesary macroses, explained in UDN Two documentation.

Did you try it?
 
You must look deeper into UE2 headers file. The file Core\UnScript.h contains neccesary macroses, explained in UDN Two documentation.

Did you try it?
We all try it, but now possible only send to dll string, int, float but get from dll value not possible.
Yeah there hardcoded functions, need reverse under ida or ghidra.
 
We all try it, but now possible only send to dll string, int, float but get from dll value not possible.
Yeah there hardcoded functions, need reverse under ida or ghidra.
вызов OnEvent скриптов интерфейса? или я чет не понял?
 
вызов OnEvent скриптов интерфейса? или я чет не понял?
Речь идёт о том, что мы не можем получить и отправить обратно в скрипт текстовую строку. В настоящее время мы можем только отправлять текст в DLL из скрипта, но даже это работает не совсем понятно.
 
Речь идёт о том, что мы не можем получить и отправить обратно в скрипт текстовую строку. В настоящее время мы можем только отправлять текст в DLL из скрипта, но даже это работает не совсем понятно.
- в .dll хук "?eventOnEvent@UUIScript@@QAEXHABVFString@@@Z" и получаем OnEvent(int Event_ID, string param) скриптов в dll.
- потом в скриптах .uc через RegisterEvent регистрируем своё событие (свободное число).
- из .dll вызываем перехваченный метод OnEvent(int Event_ID, string param) сос своими параметрами.
- который сработает в скрипте.
 
- в .dll хук "?eventOnEvent@UUIScript@@QAEXHABVFString@@@Z" и получаем OnEvent(int Event_ID, string param) скриптов в dll.
- потом в скриптах .uc через RegisterEvent регистрируем своё событие (свободное число).
- из .dll вызываем перехваченный метод OnEvent(int Event_ID, string param) сос своими параметрами.
- который сработает в скрипте.
Как читать string param в с++ у тебя там FString значит ты подключил какую то библиотеку Unreal, а мы тут пытаемся сделать на чистом c++))
 

Вложения

  • 2024-11-07_20-51-10.webp
    2024-11-07_20-51-10.webp
    25,9 КБ · Просмотры: 41
Назад
Сверху Снизу