HLFX.Ru Forum Страницы (2): « 1 [2]
Показать все 4030 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено FreeSlave 09-07-2025 в 00:30:

Цитата:
Ku2zoff писал:
Нафига вам эти дискорды и телеграмы? Сегодня работает - завтра не работает. Послезавтра вообще кончилось как аська или скайп. Есть же гитхаб и моддб, там и обсуждайте свои работы. Всё от лени современной молодёжи, не хотят регаться на ресурсах, проще по ссылочке с мобильного перейти.

То есть дискорды и телеграмы в любой момент могут "отвалиться" (на самом деле с самими сервисами всё в порядке, это вас благожелательная родина может от них отлучить, давайте уж выражаться корректно), а гитхаб и моддб - нет?

Цитата:
Ku2zoff писал:
Где тогда будет скапливаться бОльшая часть комьюнити?

Если большая часть коммьюнити не в России, то она останется там, где сейчас.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Ku2zoff 09-07-2025 в 02:24:

Цитата:
FreeSlave писал:
То есть дискорды и телеграмы в любой момент могут "отвалиться" (на самом деле с самими сервисами всё в порядке, это вас благожелательная родина может от них отлучить, давайте уж выражаться корректно), а гитхаб и моддб - нет?

Дискорды и телеграмы имеют изначально другую направленность, нежели гитхаб и моддб. Если вторые - площадки для размещения и обсуждения работ, грубо говоря, то первые - мессенджеры/чятики. Соответственно, у первых шире тематический охват и в сотни, если не тысячи раз большая аудитория. И попасть под какие угодно ограничения на чьей угодно родине, дудос атаки, прочие акции, у них шанс более высокий.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.


Добавлено 09-07-2025 в 09:24:

Цитата:
FreeSlave писал:
Если большая часть коммьюнити не в России

А они Дяде Мише донат за поддержку заносят? Или по традиции воруют код без указания в кредитсах и кричат о нарушении лицензий? Не припомню, чтобы буржуи когда-то нормально относились к ксаш-движку.


Отправлено XaeroX 09-07-2025 в 03:26:

Цитата:
FreeSlave писал:
это вас благожелательная родина может от них отлучить

А вас?
Цитата:
FreeSlave писал:
а гитхаб и моддб - нет?

Хлфх.ру точно может отвалиться. Он и на вражеском западе хостится, и CloudFlare стоит - полный набор.
Цитата:
Ku2zoff писал:
Дискорды и телеграмы имеют изначально другую направленность, нежели гитхаб и моддб

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

Добавлено 08-07-2025 в 22:26:

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 07:02:

Цитата:
Ku2zoff писал:
гитхаб и моддб. Если вторые - площадки для размещения и обсуждения работ

Гитхаб совершенно не подходит для обсуждения имхо, это площадка для размещения кода и репорта туда всяких багов. Явно не моды туда заливать.
Телеграм так себе, система комментариев неудобная - если ты где-то отписал, то потом ты его не найдешь, если только кто-то не ответил на коммент.
А дискорд вполне себе отличная замена форумов.

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

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 12:54:

Цитата:
Aynekko писал:
крутые программисты с многолетним стажем жалуются, что у них дискорд не работает

А что ты предлагаешь? Написать свой дискорд?

Добавлено 09-07-2025 в 07:54:

Цитата:
Aynekko писал:
интереса нет уже вариться в ксашевской тусовке, свои дела туда-сюда.

Меня полностью устраивает тусовка на этом форуме.

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 13:48:

Да если желания нет, то и предлагать нечего, ищущий всегда найдет.

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 13:53:

Цитата:
Aynekko писал:
ищущий всегда найдет.

Да никто в нашем мире тиктока ничего не ищет. Если что-то не работает, или на настройку надо потратить больше 10 секунд - это удаляется. Я думаешь от хорошей жизни в стим-версии Джека автоконфигуратор делал?

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 13:59:

Тут стоит выбор - отрезать себя от многотысячного комьюнити или потратить минуту на доступ к дискорду. У меня выбор был очевиден, у вас - тоже

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 14:28:

Цитата:
Aynekko писал:
потратить минуту на доступ к дискорду

Я потратил значительно больше, чем минуту. Часа два наверное гуглил, пытался разобраться, что не так.
Цитата:
Aynekko писал:
отрезать себя от многотысячного комьюнити

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

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 14:30:

Цитата:
XaeroX писал:
То с одним пообщался, то с другим - глядь, и жизнь прошла.

Могу понять. Чуть что не так завалили бы вопросами по джеку. А так, кому реально надо - зайдут сюда.

__________________
Мой мод на Xash


Отправлено Crystallize 09-07-2025 в 20:23:

Цитата:
XaeroX писал:
Меня этот ваш дискорд уже много лет не пускает с десктопа. Не может присоединиться, и всё. Только веб-интерфейс работает, но оно мне надо - постоянно браузер открытым держать?

Дискорд удобнее всего с телефона юзать.

Добавлено 10-07-2025 в 03:23:

Цитата:
XaeroX писал:
миллениал - на форуме

Миллениалы в дискорде сидят и нормально себя чувствуют. Вот уже из Анталии даже стали возвращаться


Отправлено XaeroX 09-07-2025 в 20:31:

Цитата:
Crystallize писал:
Дискорд удобнее всего с телефона юзать.

Неужели удобнее, чем тикток? Не верю.

__________________

xaerox on Vivino


Отправлено Ku2zoff 09-07-2025 в 21:26:

Цитата:
Crystallize писал:
Дискорд удобнее всего с телефона юзать.

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

Добавлено 10-07-2025 в 03:56:

Цитата:
Дядя Миша писал:
Я бы сказал там в последний год довольно тухло всё.

Добавлено 08-07-2025 в 13:23:

Да и в целом - каких-то значимых перемен и прорывных новинок я от вас так и не увидел.

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

Добавлено 10-07-2025 в 04:26:

Зашёл в этот ваш дискорд. С августа прошлого года не был. Посмотрел сервер по моддингу. Вроде норм, читаемо, в отличие от телеграма. Посмотрим, если окончательно не задушат, можно читать там новости.


Отправлено Дядя Миша 10-07-2025 в 06:55:

Цитата:
Aynekko писал:
Тут стоит выбор - отрезать себя от многотысячного комьюнити или потратить минуту на доступ к дискорду

Я бы не сказал, что там многотысячное коммунити. К тому же оно сильно подсдулось за посл. время.

Да чего-то прям прорывного там не делается, сидят вяло обсуждают, скрины кидают и всё.

Добавлено 10-07-2025 в 09:55:

Цитата:
Ku2zoff писал:
Видимо потому, что в этом дискорде невозможно развёрнуто что-то изложить

как музыке идти? Ведь вы не так сидите!

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 10-07-2025 в 16:32:

Цитата:
XaeroX писал:
Неужели удобнее, чем тикток? Не верю.

При чём тут тикток? Ты пытаешься перевести все в шутку?

Цитата:
Ku2zoff писал:
Тогда нафиг он нужен для чего-то кроме чятиков и звонков между тиммейтами во время игры?

Ну так суть дискорда и есть в чатиках и постинге новостных ссылок из твиттера того же. Ещё общение голосом, но тут телефонная обходилка уже не справляется.

Цитата:
Ku2zoff писал:
С телефона невозможно нормально печатать большие и средние тексты.

Я в 2009 написал на кнопочном Сименсе МЕ75 рассказ на 9 килобайт. Это где-то полтора-два экрана компьютерных.


Отправлено XaeroX 10-07-2025 в 22:55:

Цитата:
Crystallize писал:
При чём тут тикток?

Ну я слышал, что все сидят в своих телефонах в тиктоке и непрерывно свайпают ролики. Сам я этот ваш тикток в глаза не видел.

Цитата:
Crystallize писал:
Ты пытаешься перевести все в шутку?

А ты всерьёз пишешь, что с телефона удобно сидеть в чате?

Цитата:
Crystallize писал:
новостных ссылок из твиттера

ну вот, сам же шутишь непрерывно...

Цитата:
Crystallize писал:
Я в 2009 написал на кнопочном Сименсе МЕ75 рассказ на 9 килобайт.

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

__________________

xaerox on Vivino


Отправлено (_-=ZhekA=-_) 11-07-2025 в 06:26:

Цитата:
XaeroX писал:
Не понимаю, чего вы жалуетесь на шестизначные коды в моде Жэки, это ж не миллион цифр, это пара пустяков запомнить.

Трехзначные, а еще найденные коды запоминаются их можно посмотреть на таб

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Crystallize 11-07-2025 в 16:46:

Цитата:
XaeroX писал:
А ты всерьёз пишешь, что с телефона удобно сидеть в чате?

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

Цитата:
XaeroX писал:
ну вот, сам же шутишь непрерывно...

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


Отправлено XaeroX 11-07-2025 в 17:38:

Цитата:
Crystallize писал:
Ты сделай удвоение шрифтов для мобильных юзеров форума тоже будет удобно.

Как удвоение шрифтов сделает экранную клавиатуру удобной?
Цитата:
Crystallize писал:
ты же знаешь я не сильно большой шутник

Хм, я сколько с тобой общаюсь, мне кажется, что ты шутишь как минимум в половине постов. может быть, я ошибался все эти долгие годы

__________________

xaerox on Vivino


Отправлено Shapirlic 18-07-2025 в 14:59:

Привет, ребят. У меня технический вопрос
Если я ворую лайтмапы для поверхностей, который обычно рисуются без лайтмап (вода мировая) таким образом:

C++ Source Code:
1
ExtraLightMaps.clear();
2
 
3
for (int i = 0; i < world->numsurfaces; i++)
4
{
5
  if (world->surfaces[i].flags & SURF_DRAWTURB || world->surfaces[i].flags & SURF_DRAWTILED)
6
  {
7
    int smax = (world->surfaces[i].extents[0] >> 4) + 1;
8
    int tmax = (world->surfaces[i].extents[1] >> 4) + 1;
9
 
10
    color24* lightmap = world->surfaces[i].samples;
11
 
12
    GLuint lightmapID = current_ext_texture_id;
13
    current_ext_texture_id++;
14
 
15
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
16
 
17
    glGenTextures(1, &lightmapID);
18
    glBindTexture(GL_TEXTURE_2D, lightmapID);
19
 
20
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
21
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
22
    glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_FALSE);
23
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
24
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
25
 
26
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, smax, tmax, 0, GL_RGB, GL_UNSIGNED_BYTE, lightmap);
27
    glBindTexture(GL_TEXTURE_2D, 0);
28
 
29
    ExtraLightMaps[&world->surfaces[i]] = lightmapID;
30
  }
31
}

Затем рисую эту например мировую воду стандартно как в ксаше (DRAWTURB, r_turbsin, и вся эта штука), то как мне обработать v[5] и v[6] чтобы получить валидные текстурные координаты для лайтмапы?
Методом тыка я обранужил, что умножение v[5] и v[6] на квадрат Пи даёт околопохжие результаты, но множитель явно не этот и ещё нужна обработка при повернутой текстуре.


Отправлено Дядя Миша 18-07-2025 в 17:18:

Цитата:
Shapirlic писал:
Если я ворую лайтмапы для поверхностей, который обычно рисуются без лайтмап

А у кого ты воруешь лайтмапы?
лайтмапы знаешь ли уникальны для каждой поверхности, их воровать не имеет смысла, они просто не подойдут, да и всё.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Shapirlic 18-07-2025 в 19:36:

Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать. Генерю из world->surfaces[i].samples текстуры, сохраняю их индексы в мапу std::map <msurface_t*, int> чтобы по сурфу потом нужный индекс лайтмапы взять. Только s t координат не могу выдумать для них откуда брать

Лайтмапы то у сурфоф воды, которые потом метятся как DRAWTURB есть в BSP, но двигло ХЛ решило рисовать мировую воду без лайтмапы


Отправлено Shapirlic 19-07-2025 в 15:31:

v[5] v[6] из surf->polys->verts содержат что то похожее на координаты лайтмапы, но их надо как то обработать. На вид они в 9-10 раз меньше чем нужно


Отправлено Дядя Миша 20-07-2025 в 07:53:

Цитата:
Shapirlic писал:
Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать.

ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

Добавлено 20-07-2025 в 10:53:

C++ Source Code:
1
// for speed reasons
2
  if( !FBitSet( warpface->flags, SURF_DRAWTURB ))
3
  {
4
    // lightmap texture coordinates
5
    s = DotProduct( verts, warpinfo->lmvecs[0] ) + warpinfo->lmvecs[0][3];
6
    s -= warpinfo->lightmapmins[0];
7
    s += warpface->light_s * sample_size;
8
    s += sample_size * 0.5;
9
    s /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->width;
10
 
11
  t = DotProduct( verts, warpinfo->lmvecs[1] ) + warpinfo->lmvecs[1][3];
12
  t -= warpinfo->lightmapmins[1];
13
  t += warpface->light_t * sample_size;
14
  t += sample_size * 0.5;
15
  t /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->height;
16
 
17
  poly->verts[i][5] = s;
18
  poly->verts[i][6] = t;
19
}

Если проставлен DRAWTURB, то ксаш не рассчитывает координаты лайтмапы. Хотя и может, конечно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 20-07-2025 в 08:56:

Цитата:
Дядя Миша писал:
ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

У китайца, кажись был какой-то флаг для расчёта лайтмап на стёклах и прочих поверхностях с kRenderTransTexture. Помню, что после компиляции старым zhlt стёкла светились в темноте, будто параметр _minlight не равен нулю. Это оно?

Добавлено 20-07-2025 в 15:56:

А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.


Отправлено Shapirlic 20-07-2025 в 11:11:

Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife. Это легко проверить, если открыть .bsp утилитой BSPGUY.
Lambda_bunker:


Отправлено Shapirlic 20-07-2025 в 12:02:

Я получаю приблизительные результаты если беру такие коодинаты для лайтмапы

C++ Source Code:
gl.glMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[5] * 3.f * M_PI, v[6] * 3.f * M_PI);

Но в местах со сложным освещением видно, что лайтмапы плохо стыкуются.
Нужно как то иначе обработать v[5] и v[6], с этим вопросом я сюда и пришёл к вам )


Отправлено Дядя Миша 20-07-2025 в 16:56:

Цитата:
Ku2zoff писал:
А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.

Всё верно. Освещение полупрозрачных поверхностей нетривиальная задача, поэтому либо через мультипроходность (как в Quake3), либо через копию экрана (как в Paranoia 2:Savior), либо предумножить лайтмапу на диффузку и сохранить результат в особую диффузку, вкомпиленную прямо внутрь карты и используемую только на этой поверхности (как в VHLT).

Цитата:
Shapirlic писал:
Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Shapirlic 20-07-2025 в 18:50:

Окай, в ZHLT экономили, оригинальный компилятор и Vluzacn_s_ZHLT на воде лайтмапы делают, у меня вопрос с самого начала по текстурным координатам этих лайтмап. BSPGUY и BSPViewer могут мировую воду рендерить с лайтмапой, я в их сорцах покопался, но так и не понял как они высчитывают текстурные координаты для лайтмап мировой воды. И с этим пришёл к вам, у вас есть идеи или догадки? Как я уже писал выше v[5] и v[6] в verts сурфов воды похожи на текстурные координаты лайтмапы, но деленные на 9-10. Есть догадки какая математика там скрывается?


Отправлено Ku2zoff 21-07-2025 в 16:22:

Цитата:
Дядя Миша писал:
предумножить лайтмапу на диффузку и сохранить результат в особую диффузку, вкомпиленную прямо внутрь карты и используемую только на этой поверхности (как в VHLT).

В паранойевских тулзах это вырезано? Смутно припоминаю, что когда-то давно, году в 2020-м, видел разницу после китайца. После этого долго не мапал места, где такое всплывает, поэтому спрашиваю.


Отправлено Crystallize 25-07-2025 в 17:49:

Цитата:
XaeroX писал:
Хм, я сколько с тобой общаюсь, мне кажется, что ты шутишь как минимум в половине постов. может быть, я ошибался все эти долгие годы

Я не знаю о чем именно речь... Я попытался адаптировать под себя ваши с ДМ перестроечные и еврейские шутки чтобы выстроить некую минимальную психологическую оборону чтобы не было так больно когда я вам проигрываю, а проигрываю я каждый раз когда кто-то не согласен со мной по вопросу типа светотекстура это лазер или нет, то есть в подавляющем большинстве постов. И это на глазах у всего форума (хотя тут уже и нет столько народу).
До сих пор помню друган прокомментировал что меня "раскатали в комментариях" под моими статьями 2015 года про графику, хотя сейчас уже никто не вспомнит и не найдет их без меня.
Может это эгоизм или нарциссизм или хз что вообще. В принципе это началось ещё с 2014 когда у тебя и половины форума внезапно обнаружились политические суждения, появился Мастер (о существовании которого я и не подозревал) и вся эта политика начала нападать на мои установки заложенные ещё где-то в дошкольном возрасте, о том что кооперация лучше конкуренции и о том что любой человек тебя полюбит если ты хороший мальчик.


Отправлено XaeroX 26-07-2025 в 04:34:

Цитата:
Crystallize писал:
чтобы не было так больно когда я вам проигрываю, а проигрываю я каждый раз когда кто-то не согласен со мной по вопросу типа светотекстура это лазер или нет, то есть в подавляющем большинстве постов.

Ну вот опять - ты же это в шутку пишешь, не всерьёз? Какие ещё проигрыши? Ты же вроде к нам учиться приходишь, а не в интеллектуальные игры играть?
Цитата:
Crystallize писал:
у тебя и половины форума внезапно обнаружились политические суждения

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

Мастер, опять же, был ещё на хлру. Тогда он писал исключительно транслитом и косил под эмигранта. Я тогда был уверен, что Мастер живёт где-нибудь в Штатах. Каково же было моё изумление, когда я узнал, что он из Москвы? Но мы в итоге его таки отучили транслитом писать.
Цитата:
Crystallize писал:
кооперация лучше конкуренции

Это как? Когда все товарищи в едином порыве - пятилетку в четыре года?
Цитата:
Crystallize писал:
любой человек тебя полюбит если ты хороший мальчик

Не хороший мальчик, а червонец!

__________________

xaerox on Vivino


Отправлено Дядя Миша 26-07-2025 в 07:14:

Цитата:
Ku2zoff писал:
В паранойевских тулзах это вырезано?

Параноевские тулзы основаны на оригинальном вальвовском коде компиляторов. Там этого не было. Как можно вырезать то, чего не было изначально?

Цитата:
Crystallize писал:
когда кто-то не согласен со мной по вопросу типа светотекстура это лазер или нет

Ну была такая текстура "laser" действительно. Но она не использовалась.

Цитата:
Crystallize писал:
До сих пор помню друган прокомментировал что меня "раскатали в комментариях" под моими статьями 2015 года про графику

а что за статьи?

__________________
My Projects: download page

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

Цитата:

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


Отправлено JPEG 15-08-2025 в 12:37:

Такой нубский вопрос. Вот код, каждую 0.1 секунду субмодель сменяется на следующую по порядку. И нужно это зациклить

if (m_flChangeBodyTime && gpGlobals->time > m_flChangeBodyTime)
{
pev->body = pev->body + 1; //следующая субмодель
m_flChangeBodyTime = gpGlobals->time + 0.1;

if (pev->body == Количество Субмоделей)
pev->body = 0; //начинаем сначала
}

А как на сервере узнать количество субмоделей в модели? Что вставить в "Количество Субмоделей"?

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Ku2zoff 15-08-2025 в 15:43:

C++ Source Code:
1
// body part index
2
typedef struct
3
{
4
  char				name[64];
5
  int					nummodels;
6
  int					base;
7
  int					modelindex; // index into models array
8
} mstudiobodyparts_t;

Предполагаю, что nummodels. Пример использования в SetBodygroup/GetBodygroup.


Отправлено Дядя Миша 16-08-2025 в 05:55:

Цитата:
Ku2zoff писал:
Предполагаю, что nummodels.

Если кол-во всех вариаций, то по формуле вычисляется.
Есть функция MODEL_FRAMES или чёт такое. Вот она возвращает.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 16-08-2025 в 18:36:

Дядя Миша точно. MODEL_FRAMES не только для спрайтов работает. Совсем об этом забыл.
JPEG глянь код цыклер_спрайта. Он же как раз анимируется нужным тебе образом. Весь твой код там уже есть, только в другой форме.

Добавлено 17-08-2025 в 01:36:

Не знаю, как оно будет работать с моделями, в которых несколько бодигрупп, возможно, придётся считать по формуле из SetBodygroup. Для моделей с одной бодигруппой всё работает, цыклеру можно подсовывать не только спрайты, но и студиомодели. Такое я и сам делал, и в кс много раз делали мапперы. Цыклеры анимируются.


Отправлено Дядя Миша 17-08-2025 в 06:26:

Цитата:
Ku2zoff писал:
Не знаю, как оно будет работать с моделями, в которых несколько бодигрупп

Вернёт общее кол-во всех вариаций для всех бодигрупп.

__________________
My Projects: download page

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

Цитата:

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


Отправлено JPEG 17-08-2025 в 10:16:

ещё у Гарга в TASK_DIE похожий код нашёл, попробую приспособить

Добавлено 17-08-2025 в 13:16:

да, всё отлично, спасибо. Использовал m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1; от сайклер спрайта

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено JPEG 18-08-2025 в 10:07:

Допустим, на примере зомби. Как сделать, чтобы после того, как он нанёс удары, он на несколько секунд переключался на отступление (а не ударял игрока до победного)? К примеру, чтобы для этого проигралась заранее готовая анимация ходьбы инвертированная в обратную сторону (чтобы пятился) или чтобы он сам осуществил движение в случайную/противоположенную сторону (но тут уже автоматом развернётся в сторону движения)

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Дядя Миша 19-08-2025 в 05:10:

Цитата:
JPEG писал:
К примеру, чтобы для этого проигралась заранее готовая анимация ходьбы инвертированная в обратную сторону (чтобы пятился) или чтобы он сам осуществил движение в случайную/противоположенную сторону (но тут уже автоматом развернётся в сторону движения)

Сложна-сложна.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 19-08-2025 в 16:31:

Цитата:
Дядя Миша писал:
Сложна-сложна.

Самый простой вариант - сделать это одной длинной анимацией. А вот если кодить, то придётся заморочиться. Проще перейти на сорс, там NPC умеют пятиться и даже одновременно атаковать. Собсно, неделю назад я принял такое решение на основе того, что на моём железе игры на сорс 2013 летают. Оригинальные компиляторы собирают карты для сорса раза в 3 дольше, чем Дядьмишины паранойевские для голдсорса (кастомные для сорса пока не пробовал), но это ещё и мой косяк, просто перенёс карты без причёсывания. Впечатления пока положительные, хл2 еп2 вполне знает многие энтити для первой халфы: функ_валлы, функ_доры, монстер_генерик, лайты. Буду попробовать, может что из этого выйдет.


Отправлено JPEG 20-08-2025 в 08:17:

Цитата:
Ku2zoff писал:
Самый простой вариант - сделать это одной длинной анимацией

не додумывался до этого, надо будет попробовать)

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено JPEG 23-08-2025 в 20:42:

в принципе рабочий вариант https://youtu.be/AwWeHXn8gVY
Из минусов: нпс проходят сквозь друг-друга и стены, но иногда можно применить

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено FiEctro 26-08-2025 в 07:01:

Смотришь вектор куда игрок смотрит, отслеживаешь удар, если удар нанесён то отбрасываешь монстра назад по вектору взгляда игрока (задаешь велосити или импульс на время проигрывания анимации) и включаешь собственно саму анимацию. Можно ещё развернуть самого монстра мордой в направлении игрока, чтобы он потом не тупил когда сам разворачивался. Так же можно кинуть трассу из спины монстра чтобы считать дистанцию насколько далеко он должен отойти, чтобы не пятился в стенки.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено JPEG 26-08-2025 в 14:51:

Цитата:
FiEctro писал:
Смотришь вектор куда игрок смотрит, отслеживаешь удар, если удар нанесён то отбрасываешь монстра назад по вектору взгляда игрока (задаешь велосити или импульс на время проигрывания анимации) и включаешь собственно саму анимацию. Можно ещё развернуть самого монстра мордой в направлении игрока, чтобы он потом не тупил когда сам разворачивался. Так же можно кинуть трассу из спины монстра чтобы считать дистанцию насколько далеко он должен отойти, чтобы не пятился в стенки.


хм, попробую сколхозить в упрощённом виде, после удара просто вызвать импульс назад, и в анимации удара добавить анимацию движения ног назад без передвижения рут-кости

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено ZGreen 26-08-2025 в 15:25:

Почему бы не сделать анимацию удара с подшагом и последующим отскоком? Вроде, когда дерешься несподручно нос в нос стоять. Теоретически. Сам не дерусь, я только на форуме смелый.


Отправлено JPEG 26-08-2025 в 15:35:

Цитата:
ZGreen писал:
Почему бы не сделать анимацию удара с подшагом и последующим отскоком? Вроде, когда дерешься несподручно нос в нос стоять. Теоретически. Сам не дерусь, я только на форуме смелый.


так я так делал, при анимации нпс может сквозь стены проходить

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Ku2zoff 26-08-2025 в 17:50:

Цитата:
ZGreen писал:
Почему бы не сделать анимацию удара с подшагом и последующим отскоком?

Мудрить с анимациями не надо (если только хочется сделать быстро и просто), у ИИ в халфе есть система щедъюлей, где можно переключать активности, типа: шаг вперёд, удар, шаг назад, тремя разными анимациями. Оно не работает как хочется по двум причинам: первая - затупы при переключении активностей, из-за того, что серверный фпс плавает и эвенты плохо отлавливаются (привет ковыряния с DispatchAnimEvents), вторая - монстры не умеют ходить назад, им надо повернуться лицом по направлению движения. И если второе можно победить, невозбранно модифицировав код перемещения с оглядкой на летающих монстров, то первое очень геморно, и корень проблемы сидит в движке, как объяснял Дядя Миша, ЕМНИП.

Добавлено 27-08-2025 в 00:34:

Там даже в коде flInterval фиксированный - 0.1, чтобы срабатывания DispatchAnimEvents совпадали с интервалами тчинка монстра gpGlobals->time + 0.1. Я уже точно не помню, но вроде это нужно для того, чтобы клиентский и серверный эвенты срабатывали одновременно. В этой теме я экспериментировал, и в разных вариациях было так, что либо клиентский эвент опаздывает на один pev->frame за серверным, либо серверный не срабатывает. ДМ в этой же теме упоминал, что интервал в IEngineStudio.ClientEvents - сотые доли секунды, а в CBaseAnimating::DispatchAnimEvents - десятые. Соответственно, клиент в любом случае воспроизведёт эвент, например маззлфлеш при стрельбе. А вот сервер может пропустить. Отсюда все затупы со сменой активностей, например, при попытках монстра выйти из боя и найти укрытие. Мой вариант в теме вполне рабочий, но не на моделях, где эвент стоит на последнем кадре. Я забил на это всё, не стал дальше копаться в теме. Хотя очень хотел сделать НПС подвижнее. Если анимаций нет, незачем и код для них писать.

Добавлено 27-08-2025 в 00:50:

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


Отправлено JPEG 27-08-2025 в 00:02:

ну в общем получилось так. Говнокот, но по-крайней мере работает

void CZombie :: HandleAnimEvent( MonsterEvent_t *pEvent )
{
switch( pEvent->event )
{
case ZOMBIE_AE_ATTACK_RIGHT:
{
//в момент удара запускаются таймеры на включении отступления и его выключение
m_flFallbackOn = gpGlobals->time + 0.5; //задержка перед отступлением
m_flFallbackOff = gpGlobals->time + 1.5; //то, сколько бежит назад



int CZombie::IgnoreConditions ( void )
{
int iIgnore = CBaseMonster::IgnoreConditions();

if (m_flFallbackOn && gpGlobals->time >= m_flFallbackOn)
m_fFallback = 1; //разрешить отступать

if (m_flFallbackOff && gpGlobals->time >= m_flFallbackOff)
m_fFallback = 0;

if (m_fFallback == 1)
pev->velocity = pev->velocity - gpGlobals->v_forward * 100; //отступление

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Ku2zoff 28-08-2025 в 14:38:

JPEG ну конечно говнокод. По-хорошему должно быть что-то такое:

C++ Source Code:
1
// primary melee attack
2
Task_t	tlPrimaryMeleeAttack1[] =
3
{
4
  { TASK_STOP_MOVING,	0		},
5
  { TASK_FACE_ENEMY,	(float)0	},
6
  { TASK_MELEE_ATTACK1,	(float)0	},
7
  { TASK_FALL_BACK,           (float)0	}, // грамотнее будет TASK_RETREAT
8
};
9
 
10
case TASK_FALL_BACK:
11
{
12
  m_IdealActivity = ACT_WALK_BACK;
13
  break;
14
}

Хотя, если работает, то почему не использовать?

Добавлено 28-08-2025 в 21:38:

Почему таски с щедъюлями лучше? Потому что не надо заводить какие-то сомнительные переменные типа m_fFallback. Тайминги можно задавать прям в массиве тасков, поставив вместо нуля другое число.


Временная зона GMT. Текущее время 01:22. Страницы (2): « 1 [2]
Показать все 4030 сообщений этой темы на одной странице

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