Перейти к содержанию

Matrix

Пользователи
  • Публикаций

    56
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3
  • Отзывы

    0%

Сообщения, опубликованные Matrix


  1. Одно время морочился с отрисовкой окон, прям в игре, на дальше пустого окна дела не сдвинулось) А так былобы неплохо: Тыкнул Ctrl+R - открылось окошко с выбором радиостанции, с громкостью + плейлист свой чтоб можно было делать)


  2. Хаха, а про такой вариант я даже и не думал)

    #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


  3.  

    а мутексы на что?

     

    у bass нету библиотеки для статической линковки?

    Можно и мутексами, но мне кажется лучше ловить нажатия в активном окне, нежели проверять текущее состояние клавиш!

    Про статическую линковку ничего не скажу, маны особо не читал, да и уже очень давно это делал. Этот код так, накидал побыстрому, когда наткнулся на темку про радио, здесь на форуме!


  4. index.php?app=downloads&module=display&section=screenshot&id=1116

     

    Название: 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.

     

     

    Нажмите здесь, чтобы скачать файл

    • Upvote 6

  5. Как добавить еще не сколько и сделать рандомную загрузку?

    Надо переделать эту строку:

    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: Код не проверял, но должно работать!


  6. Прикольно было бы реализовать так-же что-бы показывало картинку в правом углу. На данной картинке писать "Защищено Lameguard" или чем-нибуть еще:-)

    Ну какбы это вообще без проблем... Меняем строки:

    ptDst.x = (GetSystemMetrics(SM_CXFULLSCREEN) - pPNGMask->GetWidth()); //Правая часть экрана минус ширина картинки

    ptDst.y = 0; //Верх экрана

     

    А если надо чтобы было и лого и "защищено темто темто", можно всё это дело выполнить в виде класса, и создать два экземпляра, каждому указать свои координаты.

     

    P.S: В правилах использования ламы и смарта запрещено сообщать пользователям какая именно защита используется ;)

    • Upvote 1

  7. Полезная вещь, которая значительно упрощает работу с данными скринами. Спасибо большое!

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


  8. Как доберусь до компа, расшарю патчик для клиента, который отключает стандартные BMP сплеши, и подгружает простые PNG изображения вместо них (с прозрачностью, полупрозрачностью, вообщем любые) + не глючит на восьмёрке в хрониках хайфайф (дефолтный сплеш грузится 256 цветный, и висит пока не выключишь клиент).


  9. Параметр Animator был придуман в моей софтине, чтобы не нарушать структуру UTX пакета, а так как сделали патч для анриала, в котором параметр TotalFrameNum добавляется при построении пакета, то необходимость в аниматоре пропадает. Пруф: Открываем UTX пакет с анимацией ХЕКС редактором, и меняем Animator на AAAAAAAA (любое слово из 8 букв), сохраняем, пихаем в клиент и всё работает!


  10. Morello, проблему решили? Столкнулся с подобным "Serial size mismatch: Got 55, Expected 836" Клиент эпилог. Делаю всё по мануалу, а толку ноль, Ошибка и всё тут. Перепробовал кучу редакторов, разные l2encdec, l2decrypt, результат один и тотже( А порой клиент тупо падает с ошибкой длинной в 100500 символов или ругается что файл поврежден. Что может быть нетак? Проблема не в клиенте, потоумчто качаю чужие текстуры/модели, всё прекрасно работает! Хелпайте кто соображает!


  11. Ребятке, помогите плиз. Клиент эпилог, пробую создать свой пак с иконками, ничего не получается. Клиент падает с критом. Уже перепробовал кучу unreal editor-ов, нифига не получается. Перечитал горы мануалов, ничего не выходит( Пробовал и ддс и тга, результат везде одинаковый( Может есть всёже какието тонкости?


  12. ut2down (утилита от Gildor за 1000р)

    Еще от гилдора есть unreal editor который без этой утилиты сразу сохраняет UKX в понимаемый ладвой формат. А так сохраняем выложенным тут редактором, и конвертируем приложенной утилитой. И ладва больше не падает с критом (правда не канает с бронёй и оружием, модель сдвигается и болтается в воздухе почти независимо от персонажа, как побороть - пока не разобрался)

×
×
  • Создать...