HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Глобальное изменение масштаба
Уменьшение размеров всего
Страницы (16): « Первая ... « 10 11 12 13 [14] 15 16 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
Ku2zoff писал:
Перекомпилить карты,

кто ему карты рисовать будет?

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 166122

Старое сообщение 06-04-2017 09:47
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ku2zoff писал:
Взял код из римейка кваки. Игрок перестал нырять в стены и проваливаться в пол, при использовании правильного кода в GetHullBounds. Монстры ходят нормально и тоже не проваливаются в пол.

Полгода занимался непонятной ерундой, а потом "просто взял код из римейка кваки", ага.
Цитата:
Ku2zoff писал:
Только пушабли действительно застревают

Т.е. ты до последнего сомневался?

Цитата:
Ku2zoff писал:
Так вот, она то ли не работает, то ли работает неправильно. Функция из римейка кваки, CL_MergeHulls, делает то же самое что и эта, но работает

Сам себе противоречишь. Если обе функции делают одно и тоже, но при этом одна работает, а другая нет, значит они либо делают не одно и тоже, либо не в том месте. А чо, вейвленгтч разве работает?

Цитата:
~ X ~ писал:
Ku2zoff он уехавший.

Может поехавший? Или понаехавший?

Добавлено 06-04-2017 в 18:19:

Цитата:
~ X ~ писал:
забей уже на тэмпэнтити, запили себе RS и радуйся. Даже отсечение по VIS будет. Даже в софтваре.



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

C++ Source Code:
1
type = MSG_ReadByte( &buf );
2
 
3
switch( type )
4
{
5
case TE_BEAMPOINTS:
6
  case TE_BEAMENTPOINT:
7
    case TE_LIGHTNING:
8
      case TE_BEAMENTS:
9
        case TE_BEAM:
10
          case TE_BEAMSPRITE:
11
            case TE_BEAMTORUS:
12
              case TE_BEAMDISK:
13
                case TE_BEAMCYLINDER:
14
                  case TE_BEAMFOLLOW:
15
                    case TE_BEAMRING:
16
                      case TE_BEAMHOSE:
17
                        case TE_KILLBEAM:
18
                            CL_ParseViewBeam( &buf, type );
19
                          break;
20
                        case TE_GUNSHOT:
21
                            pos[0] = MSG_ReadCoord( &buf );
22
                          pos[1] = MSG_ReadCoord( &buf );
23
                          pos[2] = MSG_ReadCoord( &buf );
24
                          R_RicochetSound( pos );
25
                          R_RunParticleEffect( pos, vec3_origin, 0, 20 );
26
                          break;
27
                        case TE_EXPLOSION:
28
                            pos[0] = MSG_ReadCoord( &buf );
29
                          pos[1] = MSG_ReadCoord( &buf );
30
                          pos[2] = MSG_ReadCoord( &buf );
31
                          modelIndex = MSG_ReadShort( &buf );
32
                          scale = (float)(MSG_ReadByte( &buf ) * 0.1f);
33
                          frameRate = MSG_ReadByte( &buf );
34
                          flags = MSG_ReadByte( &buf );
35
                          R_Explosion( pos, modelIndex, scale, frameRate, flags );
36
                          break;

Дальше регаем на сервере новую мессагу, назовём её для удобства gmsgTempEntity. Заменяем все вызовы SVC_TEMPENTITY на gmsgTempEntity (больше делать ничего не надо). Ну может кроме TextMessage, которую движок тоже активно юзает. На клиенте регаем нашу мессагу и вставляем целиком ту функцию, отрывок из которой я привёл, попутно адаптируя к клиентке. Ну то есть понятно MSG_ReadCoord( &buf ); заменяем на READ_COORD(); итакдалее. R_Explosion меняем на gEngfuncs->pEfxAPI->R_Explosion. В этом API выведены практически все стандартные кейсы. А если что-то и не выведено - оно без проблем пишется как отдельная функция, которую можно надёргать из того же ксаша и это будет прекрасно работать. Ну что ищё? На сервере создаём новый WriteCoord на основе WriteShort, помноженного на джва. На клиенте, понятно делим на 2 или умножаем на 0.5, это уж как повизёт. Вся работает отнимает полчаса-час.
А если ты начнёшь копировать к себе RS, сперва выяснится что она тянет пол-XDM, потом окажется, что она всё равно не работает как надо, а потом в ходе совместных консультаций и попыток разобраться, Мастер внезапно заорёт "ааа, так вот почему она у меня глючила уже пять лет, а я отдебажить не мог", причём это будет только начало в длинной череде багов, которое сподвигнет Мастера удалить старый XDM и начать писать совершенно новый, более лучший =)
а ты останешься со старой и глючной RS.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 166133

Старое сообщение 06-04-2017 15:19
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Полгода занимался непонятной ерундой

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

Добавлено 07-04-2017 в 00:00:

Цитата:
Дядя Миша писал:
значит они либо делают не одно и тоже, либо не в том месте.

Значит не в том месте.
Цитата:
Дядя Миша писал:
А чо, вейвленгтч разве работает

До сих пор можно статьи на нём читать. Удивительно, что до сих пор не сдох.

Сообщить модератору | | IP: Записан
Сообщение: 166141

Старое сообщение 06-04-2017 17:00
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ku2zoff писал:
Эта непонятная ерунда поможет заставить работать пушабли с уменьшенными хуллами

Я себе плохо представляю каким это образом пушабли являются элементом геймплея, но если бы я делал эти пушабли, я бы просто их поменьшы сделал, чёб не застревали.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 166149

Старое сообщение 06-04-2017 19:20
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Дядя Миша компенсируешь отсутствие ООП табами?
И опять несёшь каую-то хрень. Отсечение по VIS происходит на клиенте. Иначе у половины игроков какой-нибудь спрайт или фонтан будет на карте, а у другой половины - не будет. Никогда.

А в RS ещё отсутствуют лимиты на количество объектов, есть загрузка из текстовиков, синхронизация по серверу, есть цепляние ко всему что движется, модульность, возможность дописать всё что только вздумается. Ну и оно просто кастомизируется как угодно. Те, кто портировал к себе, не жаловались. Хотя больше смысла перенести какой-то код в XDM, чем из XDM.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 166153

Старое сообщение 06-04-2017 19:52
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
~ X ~ писал:
Иначе у половины игроков какой-нибудь спрайт или фонтан будет на карте, а у другой половины - не будет. Никогда.

Не "никогда", а в данном снапшоте, где этот спрайт или фонтан отсёкся по PVS.
Если в следующем он попадает в PVS игрока - то не отсечётся, придёт на клиент, и тот его благополучно увидит.
Цитата:
~ X ~ писал:
синхронизация по серверу

Это как?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 166157

Старое сообщение 06-04-2017 20:02
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ X ~ писал:
И опять несёшь каую-то хрень.

Ты эта. Если чего не знаешь - не стесняйся, спрашивай

Цитата:
~ X ~ писал:
Отсечение по VIS происходит на клиенте. Иначе у половины игроков какой-нибудь спрайт или фонтан будет на карте, а у другой половины - не будет. Никогда.

Ну дураку же понятно, что для каждого игрока на сервере строится индивидуальный виз. И по нему отсекаются энтити, которые надо передать на клиент. Видел в client.cpp вызов ENGINE_SET_PVS ? Вот это оно.
В противном случае (в случае неотвиженной карты), на клиент передаются ВСЕ энтити на карте и трафик выростает до космических размеров. Не веришь - поставь неотвиженную карту на сервер и вспаиграй.

А на клиенте энтити не отсекаются по визу, смысл, если их сервер уже и так отсёк? Вот темпэнтити локальные, они клиентским визом отсекаются.

Добавлено 07-04-2017 в 01:11:

Чтобы было понятнее, вот проверка на виз на клиенте:
C++ Source Code:
if( ent->curstate.messagenum != r_currentMessageNum )
  return false;	// already culled by server

где r_currentMessageNum - это номер мессаги локального игрока. Подобная проверка может быть полезна, если вы просто перебираете весь массив энтить на клиенте, на предмет их видимости. Если мессага не совпадает - значит обновление для этой энтити не пришло в текущем пакете, а почему не пришло? А потому что энтить отсеклась визом на сервере и в дельту не попала. Что за удивительная привычка человеку, который не написал ни одного движка спорить с человеком, который написал.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 166162

Старое сообщение 06-04-2017 22:11
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Дядя Миша ты будешь мне рассказывать как я RS написал или что?
Я сделал так, что, когда создается долговременный эффект (спрайт, дождь, куски говна), он посылается всем. Когда кто-то присоединяется, эффект создается и у него. Если происходит включение/выключение, оно шлётся всем. Иначе будет полный рассинхрон.
Зачем ты мне про виз рассказываешь? Я и так в курсе что там и как работает. Ещё лекцию про MSG_PVS напиши
Что за удивительная привычка человеку, который не написал RS, спорить с человеком, который написал.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 166167

Старое сообщение 07-04-2017 05:41
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
я бы просто их поменьшы сделал, чёб не застревали.

Ты как всегда не договариваешь. А потом через неделю пишешь, что форумчане занимаются непонятной ерундой.

Неважно, какого размера пушабля. Важно её правильно расположить, чтобы она не успела упасть на пол после спавна, пока не изменятся размеры хуллов. Я поднял все пушабли на тестовой карте на 24 юнита над полом, и они не застревают в полу и прекрасно катаются. Единственное, пушабли с размерами больше 16 по осям х и у, ныряют в стены в направлениях 0 и 90 градусов, когда их толкаешь. Но не застревают. Я такое поведение встречал и в обычной халфе, в нескольких модах ящики со сторонами больше 64 тоже ныряли в стены.

Маленькие ящечки и бочки со стульями ведут себя хорошо, и этого достаточно.

Отредактировано Ku2zoff 07-04-2017 в 06:34

Сообщить модератору | | IP: Записан
Сообщение: 166169

Старое сообщение 07-04-2017 06:22
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
~ X ~ писал:
Когда кто-то присоединяется, эффект создается и у него.

Для таких целей Аллах изобрёл MSG_INIT.
Цитата:
~ X ~ писал:
Если происходит включение/выключение, оно шлётся всем.

Если что-то нужно включать-выключать на сервере, то это уже не темпэнтитя, а самая обычная энтитя.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 166171

Старое сообщение 07-04-2017 06:36
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ X ~ писал:
ты будешь мне рассказывать как я RS написал или что?

Ну если ты настаиваешь:
1. нашёл тутор на thewavelength про particle engine в четырёх частях
2. скопировал в XDM
3. переименовал в Render System
4. выдал за своё

Цитата:
~ X ~ писал:
Я сделал так, что, когда создается долговременный эффект (спрайт, дождь, куски говна), он посылается всем.

Ради интереса задумайся как статичные декали посылаются игрокам, которые вошли в игру позже. И безо всякой рендер-систем.

Цитата:
~ X ~ писал:
Я и так в курсе что там и как работает

Я вижу

Цитата:
~ X ~ писал:
Что за удивительная привычка человеку, который не написал RS, спорить с человеком, который написал.

RenderSystem, который партиклевый движок, я за свою жизнь написал несколько штук и не вижу в этом ровным счётом никакого достижения. Эти парт-движки пишет каждый новичок, который хочет себя попробовать в 3д графике. очень подозрительно, что за 17 лет это единственное чем ты можешь похвастаться.

Цитата:
Ku2zoff писал:
Ты как всегда не договариваешь

Радость самостоятельных открытий никто не отменял же.

Цитата:
Ku2zoff писал:
чтобы она не успела упасть на пол после спавна,

Можно отложить DROP_TO_FLOOR на 0.1-0.2 секунды к примеру.
Это же касается и монстров.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 166181

Старое сообщение 07-04-2017 15:07
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Радость самостоятельных открытий никто не отменял же.

Это верно. Чем больше изучаешь и додумываешь сам - тем меньше копипасты.
Цитата:
Дядя Миша писал:
Можно отложить DROP_TO_FLOOR на 0.1-0.2 секунды к примеру.

Как вариант, если пушабля или монстр расположены в вентиляции или другом месте с низким потолком. Монстров кстати как бы выталкивает из пола, если их располагать точно на полу. А пушабли застревают. На текущий момент это не критично. Гораздо сложнее проблема с motion extraction - монстры бегают с той же скоростью, что и при обычном размере моделей. Ну может быть чуть медленнее. Но учёные легко догоняют игрока. Можно переделать анимации или попробовать сменить интервал при вызове StudioFrameAdvance, попробую прокатит ли.

Сообщить модератору | | IP: Записан
Сообщение: 166191

Старое сообщение 08-04-2017 04:45
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



pseqdesc->fps * 0.5

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 166193

Старое сообщение 08-04-2017 13:46
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Я сделал так:

C++ Source Code:
1
DispatchAnimEvents( flInterval );
2
#ifdef _HALFSCALE
3
flInterval *= 0.55;
4
#endif
5
if ( !MovementIsComplete() )
6
{
7
  Move( flInterval );
8
}

Вроде чуть быстрее, чем должно быть. Но теперь учёные хотя бы не так сильно отстают от игрока.

Сообщить модератору | | IP: Записан
Сообщение: 166197

Старое сообщение 08-04-2017 14:37
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Видимо, в мультиплеере до вызова CL_CreateMove проходит слишком много времени, и пушабли успевают застрять. Пришлось изобрести хак: в CPushable::Spawn ставим MOVETYPE_NONE, чтобы пушабля не упала на пол. И делаем один единственный тчинк, в котором меняем мувтип через n секунд после спавна. Можно спокойно располагать пушабли прям на полу. С монстрами тоже придётся что-то подобное проделать, т.к. в мультиплеере они тоже успевают провалиться. Но если монстр начнёт двигаться, он "вылезет" из пола.

Сообщить модератору | | IP: Записан
Сообщение: 166205

Старое сообщение 09-04-2017 09:59
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 08:41. Новая тема    Ответить
Страницы (16): « Первая ... « 10 11 12 13 [14] 15 16 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Глобальное изменение масштаба
Уменьшение размеров всего
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024