HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Музыка в Half-Life (mp3) (https://hlfx.ru/forum/showthread.php?threadid=2440)
Отправлено Дядя Миша 05-11-2010 в 18:13:
Музыка в Half-Life (mp3)
Хотите чтобы ксаш играл оригинальные треки к игре, которые в виде мп3 сделаны?
Нужна ваша помощь - составьте список, какому треку соответствует какое имя мп3 файла.
Ну к примеру:
track 0 - Half-Life01.mp3
track 1 - Suspense02.mp3
возиться, и.т.д.
Халфа похоже юзает встроенную табличку соответствия номера треков и названия файлов, поэтому быстро выявить не удасться, к сожалению.
Если хотите помочь проекту - составьте такую табличку, а я вас в кредитсы включю 
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 05-11-2010 в 18:34:
Уже давно сделал хак для fmod в своих старых исходниках:
C++ Source Code:
1 | else if ( iTrack == 2 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life01.mp3\n"); |
2 | else if ( iTrack == 3 ) CLIENT_COMMAND ( pClient, "playaudio Prospero01.mp3\n"); |
3 | else if ( iTrack == 4 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life12.mp3\n"); |
4 | else if ( iTrack == 5 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life07.mp3\n"); |
5 | else if ( iTrack == 6 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life10.mp3\n"); |
6 | else if ( iTrack == 7 ) CLIENT_COMMAND ( pClient, "playaudio Suspense01.mp3\n"); |
7 | else if ( iTrack == 8 ) CLIENT_COMMAND ( pClient, "playaudio Suspense03.mp3\n"); |
8 | else if ( iTrack == 9 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life09.mp3\n"); |
9 | else if ( iTrack == 10 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life02.mp3\n"); |
10 | else if ( iTrack == 11 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life13.mp3\n"); |
11 | else if ( iTrack == 12 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life04.mp3\n"); |
12 | else if ( iTrack == 13 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life15.mp3\n"); |
13 | else if ( iTrack == 14 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life14.mp3\n"); |
14 | else if ( iTrack == 15 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life16.mp3\n"); |
15 | else if ( iTrack == 16 ) CLIENT_COMMAND ( pClient, "playaudio Suspense02.mp3\n"); |
16 | else if ( iTrack == 17 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life03.mp3\n"); |
17 | else if ( iTrack == 18 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life08.mp3\n"); |
18 | else if ( iTrack == 19 ) CLIENT_COMMAND ( pClient, "playaudio Prospero02.mp3\n"); |
19 | else if ( iTrack == 20 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life05.mp3\n"); |
20 | else if ( iTrack == 21 ) CLIENT_COMMAND ( pClient, "playaudio Prospero04.mp3\n"); |
21 | else if ( iTrack == 22 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life11.mp3\n"); |
22 | else if ( iTrack == 23 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life06.mp3\n"); |
23 | else if ( iTrack == 24 ) CLIENT_COMMAND ( pClient, "playaudio Prospero03.mp3\n"); |
24 | else if ( iTrack == 25 ) CLIENT_COMMAND ( pClient, "playaudio Half-Life17.mp3\n"); |
25 | else if ( iTrack == 26 ) CLIENT_COMMAND ( pClient, "playaudio Prospero05.mp3\n"); |
26 | else if ( iTrack == 27 ) CLIENT_COMMAND ( pClient, "playaudio Suspense05.mp3\n"); |
27 | else if ( iTrack == 28 ) CLIENT_COMMAND ( pClient, "playaudio Suspense07.mp3\n"); |
28 | else if ( iTrack == 29 ) CLIENT_COMMAND ( pClient, "playaudio gamestartup.mp3\n"); |
Вроде всё правильно. Проверял давно, не помню.
Добавлено 06-11-2010 в 00:34:
>>поэтому быстро выявить не удасться, к сожалению.
Я около часа парился. Работал в Стим-версии. Там игра в консоли пишет номер трека, который играет и имя mp3 файла вроде, забыл уже. Помню, что ещё на слух проверял.
Отправлено Дядя Миша 05-11-2010 в 18:37:
Ku2zoff ат спасибачъке. Держы голос.
Добавлено 05-11-2010 в 21:37:
Ku2zoff а треки ноль и один?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 05-11-2010 в 19:00:
Дядя Миша а таковых номеров в оригинале не обнаружено. Ни на одной карте. А самому лень было маппить коробку с trigger_cdaudio и проверять, что халфа захочет играть. Если мне память не изменяет, с этими номерами вообще ничего не играется или повторяется какой-то из треков, ХЗ короче. Да и зачем ещё треки? В папке media 27 файлов. В моём списке 28 - все из медиа + геймстартуп. В любом случае можно потестить кому-нибудь дать. Я уже не помню, но вроде во всех местах музыка играла через fmod, я бы не оставил недоделанным это дело.
Отправлено XaeroX 05-11-2010 в 19:04:
по данным фгд, трека 0 не существует, а первый - есть.
__________________
Отправлено Дядя Миша 05-11-2010 в 19:20:
Ku2zoff тот код, что ты мне дал начинается с else if, следовательно там чего-то недостает 
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 06-11-2010 в 06:12:
Дядя Миша недостаёт вот чего:
C++ Source Code:
3 | CLIENT_COMMAND ( pClient, "stopaudio\n"); |
4 | CLIENT_COMMAND ( pClient, "cd pause\n" ); |
ну а после ранее выложенного кода следует:
C++ Source Code:
5 | if(iSong) sprintf( string, "playaudio %s\n", STRING(iSong) ); |
6 | else sprintf( string, "cd play %3d\n", iTrack ); |
8 | CLIENT_COMMAND ( pClient, string); |
Только сейчас проверил. На номерах треков 0 и 1 тишина. И ничего не пытается грузить. Открыл notepad'ом ++ файл swds.dll В нём таблица треков, строка 10160. Никаких лишних треков нет. А имеющиеся располагаются в таком же порядке, как в моём коде.
Отправлено Дядя Миша 06-11-2010 в 09:23:
Нуясно, спасибо. Место в кредитсах ты себе уже заработал.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'