#11
10 марта 2008 в 19:00
Че то непонятки какие-то ??? , тут ссылка на 7z-архив, а на офсайте лежит от 7 марта финальная версия q2xp 1.25 - и exe-шники не совпадают. Тут об этом походу ваще не упоминается
#12
11 марта 2008 в 11:08
а тут тухлячооокккккк ;D<br />свежак был для западенцев и активных тестеров
#13
13 марта 2008 в 00:43
Начиная с q2xp 1.25 point release 4 появилась маленькая бага: при смене модели игрока звуки остаются от предыдущего. То есть я например поменял модель на female - а звуки остались от male. Помогает только snd_restart
#14
13 марта 2008 в 08:55
D1maxa<br />"...некоторые из внесенных вами изменений вступят в силу только после перезагрузки приложения."<br /> ;D<br />хотя Willow скорей всего так этого не оставит. ;)
#15
13 марта 2008 в 10:43
Это небольшая недоработка, думаю, willow пофиксит её за 10 минут. :-Это небольшая недоработка, думаю, willow пофиксит её за 10 минут. :-[
#16
13 марта 2008 в 12:19
[quote author=D1maxa link=topic=325.msg8092#msg8092 date=1205369014]<br />Начиная с q2xp 1.25 point release 4 появилась маленькая бага: при смене модели игрока звуки остаются от предыдущего. То есть я например поменял модель на female - а звуки остались от male. Помогает только snd_restart<br />[/quote]<br />Звуковой движок никто не предупредил о смене пола игрока. Сделать это нельзя никак, только рестарт звуковой системы. Бага нет, Quake 2 это один слошной баг.<br /><br />@tex, KRIGSSVIN<br />Проблема, к сожалению, серьёзная и присутствует аж с самого рождения Q2. Виноват не звуковой код, а движок игры. Необходимо чётко разделить звуки, male\female - без вопросов, две альтернативных озвучки есть. Пока нет проблем. Но далее во всём движке присутсвует некий бесполый индивид, - вы вдумайтесь - например, при инициализации звуковой подсистемы игра требует кэшировать звуки игрока, при этом сам игрок ещё не инициализирован ??? Короче говоря, Ху из Хе должно быть предельно понятно изначально, ИЗ ПОД НИЗКОУРОВНЕВОЙ СИСТЕМЫ типа звуковой выяснять такие принципиальные вещи как пол игрока это.. хм.. по ламерски как-то. Оно обязано глючить и исправлять этот баг значит плодить бесконечные хаки - вон Barnes уже плакался не раз какое всё косяковое.<br />Что нужно сделать:<br />Вырезать к ядрёной фене вообще "половой" вопрос из всех подсистем и регистрировать ресурсы по прямым ссылкам. Вот, смотрите что за бредятину делает звуковой код:<br /><br />
<br />SND_DMA.C:<br /><br />ALuint S_RegisterSound(char *name)<br />{<br /> if (name[0] == '*')<br /> return S_RegisterSexedSound(&cl_entities[cl.playernum + 1].current,<br /> name);<br /> else<br /> return S_FindName(name, s_openal_numChannels);<br />}<br /><br />ALuint S_RegisterSexedSound(entity_state_t * ent, char *base)<br />{<br /> int n;<br /> char *p;<br /> char model[MAX_QPATH];<br /> char sexedFilename[MAX_QPATH];<br /><br /> // determine what model the client is using<br /> model[0] = 0;<br /> n = CS_PLAYERSKINS + ent->number - 1;<br /> if (cl.configstrings[n][0]) {<br /> p = strchr(cl.configstrings[n], '\\');<br /> if (p) {<br /> p += 1;<br /> strcpy(model, p);<br /> p = strchr(model, '/');<br /> if (p)<br /> *p = 0;<br /> }<br /> }<br /> // if we can't figure it out, they're male<br /> if (!model[0])<br /> strcpy(model, "male");<br /><br /> // see if we already know of the model specific sound<br /> Com_sprintf(sexedFilename, sizeof(sexedFilename), "#players/%s/%s",<br /> model, base + 1);<br /><br /> return S_FindName(sexedFilename, true);<br />}<br />
<br />Вы меня извините, но это полный абзац!!!<br /><br /><br />EDIT:<br />Идея со звуком в общем-то такая, чтобы разнести по этапам S_fastsound (проигрывание звука) и S_FindName (кэширование). Сначала на этапе инициализации определяем какой именно звук нам нужен, потом во время основных циклов звоним только S_fastsound передавая в качестве параметра дескриптор который выдал S_FindName. Ускорение существенное, карты креатив с X-RAM уходят просто в стратосферу над прочими. В S_FindName сидят текстовые парсеры, таблицы соответсвий и прочая муть что держит цепкой рукой всё хозяйство. Если не знаешь наперёд путь до звука, то логично звонить так:<br />S_fastsound(vec3_t origin, int entnum, int entchannel, S_FindName(name, true), ALfloat gain, ALfloat rolloff_factor);<br />где name = male ? male_name.wav : female_name.wav;<br /><br />Но никаких S_RegisterSexedSound не должно быть как класса, эта сексуально озабоченная процедура делает половую жизнь персонажей крайне непростой и запутанной.<br />S_RegisterSound это устаревший интерфейс, в котором проверяется "кривая" ли ссылка или прямая, т.е. требуется ли этот самый гинеколог или нет.
#17
13 марта 2008 в 16:40
willow<br />все!харэ!мне уже старшно! ;D<br />вот муть.стоит ли нам ожидать полной и окончательной расправы над этим, кхм, багом?хотя я догадываюсь ,что это вероятнее всего будет уже в "версии 2",известной среди тут как 1.26.
#18
13 марта 2008 в 20:36
а мы ничего никому и не и обещаем ;D<br />ибо как человеку не чуждому латыни, повторюсь<br />Ave Inferus Beta!<br />HAIL BETA!<br />AVE SATANAS!<br />
#19
13 марта 2008 в 22:42
willow, я еще не упоминал про AvP ;D Их жизнь уж точно не проста. В этом моде просто скины игроков меняются постоянно (убиваешь хищника - становишься им, хищник становится человеком или чужим и тому подобное).<br />P.S. Откачу клиента на предыдущую версию
#20
14 марта 2008 в 10:50
willow пишет:<br />
Звуковой движок никто не предупредил о смене пола игрока. Сделать это нельзя никак, только рестарт звуковой системы. Бага нет, Quake 2 это один слошной баг.Я что-то не понимаю, звуковой движок это же тупой исполнитель - ему дали файл, показали как и где его играть - на этом его роль заканчивается. Зачем давать ему разные звуки под одним и тем же именем?