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

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)


Отправлено Napoleon321 11-05-2024 в 17:05:

Hello, I'm not sure if this is the correct place to ask, so I'll ask here, and this is not the correct place I'll open a thread instead.

I have a mapping question. I'm working on a map where I use few 3d models as props, and I would like those props to cast shadows... Obviously if I use cycler_sprite, the props will be pass trough.. so I have to clip/null them, but my question is what should I use to make them solid and to have the shadows?

I have seen maps that have compiled shadows for the 3d models used as props.

Thanks in advance.

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 11-05-2024 в 17:23:

Napoleon321 custom build version of VHLT by me with shadow casting support: https://hlfx.ru/forum/showthread.php?s=&threadid=5239

__________________
My Projects: download page

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

Цитата:

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


Отправлено Napoleon321 11-05-2024 в 18:05:

That's exactly what I was looking for!
Do you have an example map setup for the prop shadows?

I see it requires a command variable - zhlt_studioshadow 1, however it did nothing for my compile... So I guess I'm missing something...

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 11-05-2024 в 20:19:

Of course you should place map into <modfolder>\maps and make sure what all models that you wish for casting shadow from them is present in folder <modfolder>\models

zhlt_studioshadow 1 should be specified in supposed entity setting.
Probably thats all.

Добавлено 11-05-2024 в 23:19:

PS. check logfile about "Error: FS_Init: couldn't init game directory!\n" or something like. In this case compilation will be run as normal but shadows from studiomodels will be inactive.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Napoleon321 12-05-2024 в 15:16:

Interesting. Thanks for the hints, I still can't get it properly with those tools... I don't have no such error for the game directory.

I should have the .map file in the same location where the game is? That seems strange and counter intuitive, as I would normally put the finished map (.bsp) there and would not want to have all the rest of the compile files there...

Quick question, I'm using GUI to compile the map and not J.A.C.K. workflow itself, could that be the cause of the issue?

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 12-05-2024 в 15:41:

Цитата:
Napoleon321 писал:
I should have the .map file in the same location where the game is?

Yes

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 12-05-2024 в 16:47:

Цитата:
Napoleon321 писал:
Interesting. Thanks for the hints, I still can't get it properly with those tools... I don't have no such error for the game directory.

I should have the .map file in the same location where the game is?

Also try to put compiler executables in the game's root folder, "Half-Life" folder for example, so all map-related resources would be below the compiler in folder hierarchy.

Цитата:
Napoleon321 писал:

I should have the .map file in the same location where the game is? That seems strange and counter intuitive, as I would normally put the finished map (.bsp) there and would not want to have all the rest of the compile files there...

This seems like widespread habit among mappers, is there are tutorial or something out there that teaches this approach?


Отправлено Napoleon321 12-05-2024 в 18:53:

Compiling the .map file while it was in the gamedir folder did the trick.

I'm actually doing mapping since 2003 or 2004, not sure where I picked that one up that it needs to be separate structure, not the mod directory for the compiling on the .map files itself, still the output file does go automatically there, just not all the other junk files... I guess I'll just rewrite some of my scripts to clean up the not needed files after the compile is successful

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Crystallize 03-11-2024 в 16:10:

Цитата:
Crystallize писал:
В фитцквейке нельзя обновить r_refdef.vieworg через VectorAdd. Вот Мастер бы развонялся...


Цитата:
Дядя Миша писал:
Скорее расскажи ему об этом


Всё оказалось ещё интереснее. Сами VectorAdd и VectorCopy не виноваты. Но, в совершенно другой функции которая указана выше в том же файле, и которая даже не вызывается, есть объявление:

vec_t Length2D (vec3_t v);

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

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


Отправлено Дядя Миша 04-11-2024 в 07:35:

Ничего не понял.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 04-11-2024 в 09:47:

Дядя Миша Я говорю, в Си для декларации функции не существует понятия области видимости. Главное чтобы где-то в файле она была. Ее можно объявить в одной функции, а пользоваться ей совсем в другой.


Отправлено Crystallize 04-11-2024 в 15:44:

code:
// // allways dump the first two message, because it may contain leftover inputs // from the last level // if (++cl.movemessages <= 2) return;


Это такой у Кармака trigger_auto )))
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?


Отправлено Дядя Миша 04-11-2024 в 15:50:

Цитата:
Crystallize писал:
Ее можно объявить в одной функции, а пользоваться ей совсем в другой.

Так это и в С++ точто так же. Если не использован модификатор static.

Цитата:
Crystallize писал:
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?

Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 04-11-2024 в 16:13:

Цитата:
Дядя Миша писал:
Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?

Перепутал с шортом. Этот счетчик бежит по 100 мессаг в секунду, я поделил 65к на 100.


Отправлено Crystallize 05-11-2024 в 16:08:

Цитата:
Дядя Миша писал:
Так это и в С++ точто так же. Если не использован модификатор static.

Вот как раз такие вещи нужно записывать в категорию преднамеренного вредительства.


Отправлено Дядя Миша 06-11-2024 в 06:04:

Цитата:
Crystallize писал:
Вот как раз такие вещи нужно записывать в категорию преднамеренного вредительства.

в чём вредительство?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 06-11-2024 в 11:58:

Дядя Миша То что внезапно игнорируется концепция области видимости. Нету цельности.


Отправлено Дядя Миша 06-11-2024 в 18:24:

Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 07-11-2024 в 13:17:

currentorigin в кваке отстаёт от origin на целый кадр. Снова Мастер moment.

Цитата:
Дядя Миша писал:
Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.

Я не в курсе про Дельфи и модули.
Я просто жду что правила для переменных будут распространяться также и на остальные части языка. Та самая интуитивная понятность.


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

Цитата:
Crystallize писал:
Я просто жду что правила для переменных будут распространяться также и на остальные части языка

а кто мешает объявить переменную в одном файле и использовать в другом?

Цитата:
Crystallize писал:
currentorigin в кваке отстаёт от origin на целый кадр

А я ведь писал об этом. Да кто бы читал.

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
а кто мешает объявить переменную в одном файле и использовать в другом?

Никто не мешает, но и проблема совершенно обратная.

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

А я столкнулся с тем, что ненайденная декларация не вызывает никаких сообщений даже на Level 4, просто фича не работает. А если она найдена, она без моего ведома растекается на весь файл, опять же мне не сообщая. А прикинь работать над одним проектом командой, кто-то убрал декларацию а у тебя по-тихому что-то сломалось.


Отправлено Дядя Миша 07-11-2024 в 16:57:

extern - это просто подсказка такая. Оно в любом случае "растекается" как ты изящно выразился, потому что объявлено в глобальном скоупе.
Файлы видимость НЕ ОГРАНИЧИВАЮТ и не ограничивали её вообще никогда.
Видимость ограничивают скоупы. Но можно принудительно ограничить видимость текущим файлом через модификатор static.

То есть ты опять сам себе там что-то нафантазировал.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 07-11-2024 в 21:56:

Цитата:
Дядя Миша писал:
можно принудительно ограничить видимость текущим файлом через модификатор static

Главное не путать этот static со static-переменными в теле функции. Они ваааще про другое.


Отправлено Дядя Миша 08-11-2024 в 05:52:

Цитата:
nemyax писал:
Главное не путать этот static со static-переменными в теле функции. Они ваааще про другое.

Абсолютно про то же самое. Ты её таким образом выносишь на ружу.
Кстати в Шоте это тоже работает. Просто скоуп меняется на глобальный, да и всё. Это если с точки зрения компилятора смотреть.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 08-11-2024 в 08:03:

Цитата:
Дядя Миша писал:
Ты её таким образом выносишь на ружу.

Но видишь её только из объявившей и инициализировавшей её функции.


Отправлено Дядя Миша 08-11-2024 в 08:41:

Цитата:
nemyax писал:
Но видишь её только из объявившей и инициализировавшей её функции.

Инициализация технически всё равно в cinit. А вот насчёт видимости - это конечно интересный вопрос.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 26-12-2024 в 14:23:

Может, кто-нибудь подробно описать логику работы энтити - мульти_манагер, как она работает?

__________________
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


Отправлено Дядя Миша 26-12-2024 в 15:55:

(_-=ZhekA=-_) мне кажется принцип её работы понятен уже из тех параметров, что ты в неё прописываешь.
При активации она создаёт отдельный поток и в нём проверяет прошедшее время. Вот допустим ты задал цели сработать через 4 секунды, значит спустя четыре секунды эта цель будет вызвана и помечена, как вызванная.
Когда все цели будут активированы, поток уничтожится.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 26-12-2024 в 16:10:

Цитата:
Дядя Миша писал:
При активации она создаёт отдельный поток и в нём проверяет прошедшее время.

Это я не понял, можно этот момент подробнее обьяснить, плиз, что такое поток и как он проверяет время?
Цитата:
Дядя Миша писал:
Вот допустим ты задал цели сработать через 4 секунды, значит спустя четыре секунды эта цель будет вызвана и помечена, как вызванная.

То есть если в нем будет, допустим, 6 целей, то создадутся 6 потоков?

__________________
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


Отправлено Дядя Миша 27-12-2024 в 06:35:

Цитата:
(_-=ZhekA=-_) писал:
Это я не понял, можно этот момент подробнее обьяснить, плиз, что такое поток и как он проверяет время?

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

Цитата:
(_-=ZhekA=-_) писал:
То есть если в нем будет, допустим, 6 целей, то создадутся 6 потоков?

Да нет, одного достаточно. Второй поток может быть создан, если ты активировал мульти_менеджер повторно. В самой халфе для этого как ты помнишь была галка Multi-Threaded.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 27-12-2024 в 06:49:

Дядя Миша
Если не трудно, то можешь расписать его полную работу, по этапам, что происходит на каждом этапе, а то пока я не особо понимаю, что там у него происходит, когда вызывается мульти_манагер (

__________________
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


Отправлено FiEctro 27-12-2024 в 07:40:

(_-=ZhekA=-_)
Это секвенсер который вызывает по таймеру разные события.

https://twhl.info/wiki/page/Tutorial%3A_Multi_manager

Активируется как и всякие двери по имени.

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


Отправлено Дядя Миша 27-12-2024 в 10:50:

Цитата:
(_-=ZhekA=-_) писал:
а то пока я не особо понимаю, что там у него происходит, когда вызывается мульти_манагер (

Как же ты программируешь если такую элементарную вещь не можешь представить?

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 27-12-2024 в 11:47:

Дядя Миша
Так ты обьясни, что такое поток и что в нем происходит

__________________
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


Отправлено Дядя Миша 27-12-2024 в 14:58:

https://ru.wikipedia.org/wiki/%D0%9...%BD%D0%B8%D1%8F

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 27-12-2024 в 16:30:

Дядя Миша
В 98м процы уже умели в многопочность? Или уже добавили позже?

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


Отправлено XaeroX 27-12-2024 в 17:00:

FiEctro
Многопоточность реализуется в ОС.
Даже на одноядерных процессорах 90х потоки давали выигрыш в скорости за счёт, например, того, что проц не простаивал при внешних операциях, например дисковых.

__________________

xaerox on Vivino


Отправлено Дядя Миша 28-12-2024 в 05:53:

Цитата:
FiEctro писал:
В 98м процы уже умели в многопочность?

многоядерные системы-то были. Несколько физических процессоров.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 28-12-2024 в 06:41:

Цитата:
Дядя Миша писал:
многоядерные системы-то были. Несколько физических процессоров.

Кстати да, были dual-processor motherboards. Но это больше экзотика. Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.

__________________

xaerox on Vivino


Отправлено FiEctro 28-12-2024 в 07:43:

Цитата:
XaeroX писал:
Кстати да, были dual-processor motherboards. Но это больше экзотика. Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.


Тогда и графические станции были с весьма фантастическими характеристиками для домашних компьютеров того времени. Но это очень малосерийные компьютеры.

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


Отправлено Дядя Миша 28-12-2024 в 13:32:

Цитата:
XaeroX писал:
Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.

А у меня же сервак двухпроцовый был, кажется на Intel 440BX. На нём жы hlfx хостился изначально

__________________
My Projects: download page

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

Цитата:

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


Отправлено Camblu_Buildovich 29-12-2024 в 22:51:

Тут вроде обо всем и про всё. Поэтому, думаю, оставлю свой вопрос тут.
Я уже писал, что я сам не настоящий кодер, и что слился даже на попытках собрать стандартный код для модов на сорс до сорса 2013.
Сейчас я пишу пытаюсь писать код на Squirrel в рамках Source Vscript под местный аналог SOHL
И т.к. я не учил си, и прочее - у меня мб платиновый вопрос.
Может где-то есть что-то типа таблицы о том, что можно создавать и делать на сервере, а что на клиенте, и почему именно так а не иначе? Как это все различать?
Например, почему энтити создаются на сервере, а вгуй на клиенте?
Собственно повод к этому вопросу - ответ в дискорде мапбазы:

Цитата:
Yes you need to make entities on the server. The server is in charge of all gameplay and logic, the client just does visuals and UI. There are some clientside-only entities that you could conceivably have an API to spawn, but those are all things like gibs, particles etc - temporary visual effects with no functionality.

__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.


Отправлено Ku2zoff 30-12-2024 в 00:48:

Camblu_Buildovich если бы ты кодил под первую кваку, то знал бы, что изначально не было клиентских энтить в виде именно как привычных нам энтить серверных. Всё, что требовало упаковки в сейв, создавалось на сервере. А всё временное создавалось мессагами с сервера на клиент. Партикли, спрайты, звуки. Пусть более знающие меня поправят, если я ошибся. Это ответ на твой вопрос как это различать. Однако, в хл2 есть клиентский сейв. И в хл1 его можно сделать, я с помощью одного товарища научился сохранять спрайтовые декали из мода Invasion.
Почему так и не иначе? Нужно изучить API движка, какие функции предоставляет сервер, а какие клиент. Исходя из своих потребностей делать одни объекты на серверной, а другие на клиентской стороне.
Тебе в цитате дан ответ: сервер - логика и физика, геймплей, клиент - визуал. Никогда не забывай о мультиплеере: всё, что создаётся на клиенте, видит только локальный игрок, другие игроки об этом понятия не имеют.


Отправлено Crystallize 30-12-2024 в 08:15:

Camblu_Buildovich если ты не кодер, может тебе вообще не трогать соурс? Он же сложный.


Отправлено FiEctro 30-12-2024 в 09:32:

Цитата:
Crystallize писал:
Camblu_Buildovich если ты не кодер, может тебе вообще не трогать соурс? Он же сложный.


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

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


Отправлено Дядя Миша 30-12-2024 в 15:03:

Цитата:
Camblu_Buildovich писала:
Может где-то есть что-то типа таблицы о том, что можно создавать и делать на сервере, а что на клиенте, и почему именно так а не иначе?

Сервер - это общее для всех игроков, там находится мир. Клиент - это игрок, подключенный к миру. То что на клиенте - существует только для него.
Зачем иметь вгуй на сервере? Это твоё персональное меню.

Цитата:
Ku2zoff писал:
Однако, в хл2 есть клиентский сейв

Да и в хл1 тоже есть. Там декали хранятся. Да зачастую нет смысла сохранять те же партиклы, с временем жизни 0.1 секунды, ну вот зачем?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Camblu_Buildovich 30-12-2024 в 21:10:

Цитата:
Ku2zoff писал:
Camblu_Buildovich если ты жыл возле меня ты получил паморде

Я не хотел бы сильно связываться с хл1, и если честно, что там меня не сильно интересует, хотя ты затронул пару животрепещущих меня вопросов.
Цитата:
Ku2zoff писал:
Нужно изучить API движка, какие функции предоставляет сервер, а какие клиент.

Проблема в том, что они на си/плюсах/завернутых в плюсах си. Мне сложно такое читать. Может в будущем смогу, но сейчас нет.
Цитата:
Ku2zoff писал:
ебе в цитате дан ответ: сервер - логика и физика, геймплей, клиент - визуал

А почему именно так? Почему все сразу не строится сервере?
Цитата:
Ku2zoff писал:
Никогда не забывай о мультиплеере

Для чтения сырцов правило хорошее, но мне оно слава б-гу не грозит.
Цитата:
Crystallize писал:
Camblu_Buildovich если ты не автомеханик - зачем тебе водить? Автомобили же сложные

Цитата:
Crystallize писал:
Camblu_Buildovich если ты не строитель - зачем тебе жить в доме? Строительство же сложное

Ну ты понел. Я не считаю себя кодером, ибо кодю бегло, и не на нативных для сорса ЯП. Считай - я не ДМ, не Ксер, не Кутузов, не Айнекко, и даже не Мастер.
Вообще я связался с вскриптом только потому что это позволяет:
1)Вызывать полноценный вгуй без кода
2)заменить примерно 20-30 энтить логики на 1 скрипт, где они будут создаваться и удаляться налиту.
Цитата:
Дядя Миша писал:
Зачем иметь вгуй на сервере? Это твоё персональное меню

Вот мне тоже не понятно такое разделение. Я не отрицаю того, что я тупенький в силу своего очень скромного опыта, и что все эти вопросы обсуждались еще в 2001-м году на хл.ру, а затем на хлфх.ру году так в 2005-м, но:
Почему бы не сделать - все есть сервер, а на клиент отправляются уже результаты.
Вот к примеру, ты говоришь, что вгуй для клиента, ибо это то что рисуется каждому игроку. А как тогда в каэсиках и прочих tf2 рисуется менюшка? Я может чего-то не понимаю, но разве не проще от серверного вгуя передавать на клиента, допустим тот же счет в каэсике, и MOTD - сообщение дня сервера?
Цитата:
FiEctro писал:
сорсовские энтитии позволяют делать довольно многое без кодинга вообще

Вот бы реализовать там полноценный массив

__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.


Отправлено Дядя Миша 31-12-2024 в 08:46:

Цитата:
Camblu_Buildovich писала:
А почему именно так? Почему все сразу не строится сервере?

Потому что игра поддерживает геймплей по сети, очевидно же.
Или надо два движка - один для сингла, другой для мульта?

Цитата:
Camblu_Buildovich писала:
Почему бы не сделать - все есть сервер, а на клиент отправляются уже результаты.

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

Форум-то один, но разные люди одновременно смотрят разные темы. Так же как и на одной карте люди могут находится в разных местах локации. Но карта-то одна и сервер один. Надеюсь теперь понятно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено илья2 12-01-2025 в 10:28:

здравствуйте. Может кто нибудь знает, как активировать оружие Sun of God в моде Tyrian Ground Assault ?

__________________
илья


Отправлено Crystallize 14-03-2025 в 15:37:

Цитата:
Дядя Миша писал:
А я ведь писал об этом. Да кто бы читал.

Где ты писал? Я читаю такие вещи, но не помню.

Кстати, выяснил ещё что currentorigin-previousorigin точнее чем origin-currentorigin (в последнем случае при аутическом беге по кругу персонажа уводит, то же самое с cl.velocity).


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

Он не точнее. Он просто тебе в данном случае больше подходит.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Alexander Pafos 31-03-2025 в 18:08:

как в воспроизвести звук с определенной секунды? на клиенте. я знаю про функцию playsound но она принимает только путь до файла и громкость.
я хотел сделать радио у которого счетчик времени шел бы независимо от того играет ли звук.

__________________
И по программам их узнаете их...

пржект
https://www.moddb.com/games/silent-vilage


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

Цитата:
Alexander Pafos писал:
как в воспроизвести звук с определенной секунды?

Это через сентенции можно. Там как раз есть параметры,
v - volume
t - timecompress
p - pitch
s - start in percents
e - end in percents

Вот буковка s это то что тебе нужно. Допусти у тебя файл 10 секунд, а ты хочешь начать воспроизведение с пятой секунды. То есть ровно 50 процентов. Вот и пишешь s50 перед твоим файлом в объявлении секвенции или после файла, я не помню уже, путаюсь вечно. Посмотри как устроены оригинальные секвенции. Так же есть консольная команда spk для их воспроизведения и отладки.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 03-04-2025 в 09:45:

Цитата:
Дядя Миша писал:
Это через сентенции можно. Там как раз есть параметры

Кстати да. Очень удобная вещь. Самое на мой взгляд важное то, что прекэшить звуки не надо. Количество сентенций очень большое, в юбилейном обновлении лимит увеличили до 2048.


Отправлено Sigurth 22-04-2025 в 15:25:

Цитата:
Alexander Pafos писал:
я хотел сделать радио у которого счетчик времени шел бы независимо от того играет ли звук

Не уверен, что такое сработает, но попробовать можно. Просто включи звук с самого начала с громкостью 0 и задай канал CHAN_STREAM (это вроде как не сбрасывает loop-звук в начало если далеко отойти). Затем, когда надо "включить", выставляй громкость 1, когда выключить - 0.
Цитата:
Ku2zoff писал:
прекэшить звуки не надо

На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу. Прекеш нужен лишь лишь (помимо предзагрузки) для выдачи индекса, чтобы передавать его мессагой с сервера. Иначе с сервера без прекеша звук не проиграть.

__________________
Никогда не поздно сделать мод под хл1


Отправлено Ku2zoff 23-04-2025 в 01:50:

Цитата:
Sigurth писал:
На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу.

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


Отправлено Sigurth 23-04-2025 в 05:08:

Цитата:
Ku2zoff писал:
Маааленький такой лаг перед проигрыванием звука

У меня на HDD такое было. Я в свое время таким костылем "увеличил" себе лимит звуков. Можно еще более костыльным костылем предзагрузить такие звуки на клиенте. Где-нибудь в CHud::Init() воспроизвести все необходимые звуки разом с нулевой громкостью и на одном канале. Тогда никаких микрофризов во время игры не будет. Правда сейчас уже не так актуально с новыми лимитами.

А теперь у меня так вообще целая система саундскриптов, как в хл2, все в блокнотике настраивается, и все звуки на клиенте играются. И все это появилось из-за лимита в 512 звуков) А еще из-за того, что конструкции switch/case или if/else, которые выбирают рандомно один звук из нескольких, занимают слишком много места и времени для внесения туда изменений.

То есть вместо какого-нибудь:
C++ Source Code:
1
float flVolume = RANDOM_FLOAT ( 0.25 , 0.75 ) * 0.4;//random volume range
2
switch ( (int)(RANDOM_FLOAT(0,1) * 6) )
3
{
4
  case 0: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark1.wav", flVolume, ATTN_NORM);	break;
5
  case 1: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark2.wav", flVolume, ATTN_NORM);	break;
6
  case 2: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark3.wav", flVolume, ATTN_NORM);	break;
7
  case 3: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark4.wav", flVolume, ATTN_NORM);	break;
8
  case 4: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark5.wav", flVolume, ATTN_NORM);	break;
9
  case 5: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark6.wav", flVolume, ATTN_NORM);	break;
10
}


У меня просто:
C++ Source Code:
EmitSound("Spark");


А все параметры в блокнотике в таком виде:

code:
"Spark" { $chan CHAN_VOICE $vol RANDOM( 0.1 0.3 ) "ambient/electro/spark1.wav" "ambient/electro/spark2.wav" "ambient/electro/spark3.wav" "ambient/electro/spark4.wav" "ambient/electro/spark5.wav" "ambient/electro/spark6.wav" "ambient/electro/spark7.wav" "ambient/electro/spark8.wav" }

__________________
Никогда не поздно сделать мод под хл1


Отправлено Дядя Миша 23-04-2025 в 11:38:

Цитата:
Sigurth писал:
А все параметры в блокнотике в таком виде:

у меня для описания эффектов нечто похожее

C++ Source Code:
1
soundDef "ricochet_sound"
2
{
3
  sound		"weapons/ric1.wav"
4
  sound		"weapons/ric2.wav"
5
  sound		"weapons/ric3.wav"
6
  sound		"weapons/ric4.wav"
7
  sound		"weapons/ric5.wav"
8
  volume		"0.7f..0.9f"
9
  channel		"auto"
10
  attenuation	"1.0"
11
  pitch		"90..105"
12
}

Рандом через двойную точку задаётся.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Sigurth 14-05-2025 в 11:15:

Задам наверное очень нубский вопрос. Возможно это тема уже обсуждалась, но честно я не нашел, да и особо не искал. В общем, можно ли что-то где-то подкрутить, чтобы при компиляции карты текстуры с масштабом меньше 1.0 имели так же и меньшее количество лайтмап. Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах. Особенно вырвиглазно смотрится, когда х1.0 текстуры успешно освещаются, а х0.5 детали на них "не дотягиваются" до света. (Пример на скрине: стены х1, вентиляция и коробки х.5)

В общем, можно ли такое просто включить при компиляции (если да - то как), или надо лезть в код компиляторов (если да, то может кто-то уже лазил и поделится результатом)

__________________
Никогда не поздно сделать мод под хл1


Отправлено ZGreen 14-05-2025 в 13:07:

Наверное, тебе поможет параметр -notexscale у hlrad.


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

Цитата:
Sigurth писал:
Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах

Разумеется можно, но только для Ксаша и компилировать надо P2ST.

В настройках ворлдспавна указываешь zhlt_worldluxels 2 и готово.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 14-05-2025 в 17:24:

Цитата:
ZGreen писал:
Наверное, тебе поможет параметр -notexscale у hlrad.

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


Отправлено ZGreen 15-05-2025 в 02:31:

Действительно, скомпилировал коробочку с этим параметром и без него, разницы никакой.


Отправлено Sigurth 15-05-2025 в 06:27:

Цитата:
ZGreen писал:
скомпилировал коробочку с этим параметром и без него, разницы никакой

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

__________________
Никогда не поздно сделать мод под хл1


Отправлено Crystallize 15-05-2025 в 07:55:

Цитата:
Дядя Миша писал:
Разумеется можно, но только для Ксаша и компилировать надо P2ST.

Праймом тогда уж, раз в P2ST отваливается рефлективность текстур.


Отправлено ZGreen 15-05-2025 в 13:03:

Цитата:
Sigurth писал:
Да, я с ним уже пытался компилить. Видимо реально придется переходить на ксаш.

Странно, что ключ вообще никакого эффекта не оказывает. Ни на растянутых текстурах, ни при скукоженых.

Добавлено 15-05-2025 в 20:03:

Толи я неправильно понимаю инструкцию, толи не работает.


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

Цитата:
Crystallize писал:
раз в P2ST отваливается рефлективность текстур.

она там наоборот физически корректная, а не вырвиглазная.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 16-05-2025 в 01:39:

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

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


Отправлено Crystallize 23-06-2025 в 04:57:

Цитата:
Laurie: I think your experience matches a lot of people's. :-) I suck at writing docs, apparently - people didn't really start to use it until I showed one guy (the-middleman) a simple example, and he built a tutorial to explain it to everyone else.

For a start, the locus system is full of poorly named things. It's basically a simple programming language that understands four types of data: entities (LE), positions (LP), vectors (LV) and numbers (LR).

For example, an env_explosion has a field called "Position [LP]". The [LP] tag indicates that this is a locus position, which means there are three options for what to write there:

1) The name of the entity where the explosion should happen.

2) The name of a calc_position entity that will calculate where the explosion should happen.

3) *locus, meaning "the specified entity". When the explosion gets triggered, whatever triggered it also specifies an entity. For example, if your explosion is being triggered by a trigger_once, the specified entity will be whatever just walked into the trigger_once.

When you trigger something yourself, you can override the specified entity by writing a different one in brackets: e.g. if you have an explosion set to trigger at *locus, then you could trigger it by writing "explosion(victim)" instead of just "explosion". (Where victim is the name of an entity).

Ага, значит всё-таки это не мои фантазии что там в одной строке можно было одновременно указать и объект и куда он должен стрелять.


Отправлено Дядя Миша 23-06-2025 в 05:11:

Две трети локусов прекрасно заменяются парент-системой.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 24-06-2025 в 06:01:

Не очень понимаю, а откуда Лаури вообще взял эту систему? Там очень интересная логика, неужели он всё сам придумал?

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


Отправлено (_-=ZhekA=-_) 24-06-2025 в 06:39:

Дядя Миша
А можешь подробно описать\рассказать, что это за локусы такие, что это за система и как она вообще работает?

__________________
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


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

Цитата:
FiEctro писал:
Там очень интересная логика, неужели он всё сам придумал?

Ну что ты. Конечно же нет, не сам. Где это такое видано, чтобы вдруг простой обычный человек мог сам что-то придумать? Никогда такого не было, это вообще невозможно.

Цитата:
(_-=ZhekA=-_) писал:
А можешь подробно описать\рассказать, что это за локусы такие, что это за система и как она вообще работает?

Я уже и сам толком не помню всех тонкостей. Но в тех версиях спирита, которые делал я, была документация на русском языке. И там всё это подробно описано. Так что скачай на моддб какой-нибудь спирит 1.3 или 1.7 и прочитай.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 24-06-2025 в 23:27:

Цитата:
FiEctro писал:
Там очень интересная логика, неужели он всё сам придумал?

А ты думал, мы ему на форуме подсказали?

__________________

xaerox on Vivino


Отправлено FiEctro 25-06-2025 в 08:39:

Ну может это ещё где то использовалось?

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


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

Подскажите мне насчёт одного дела. Делать скалы и имитировать неровные ландшафты (кочки, ямки) в Джеке я научился, это несложно. Дошло дело до туннелей в скалах. Нашёл несколько туторов на ютубе, где разными способами нарезают и вертят торусы. Получается дичь. Поворачиваю сегменты на фиксированный угол, кратный 5 или 15, состыковать нормально не могу, крайние вершины съезжают с сетки. Помогает carve - обрезаются нормально, но после компиляции вылазиет всякое нехорошее, например выборочно пропадают некоторые фейсы. Пробовал и компиляторы от п2 и китайские, результат немного отличается. Есть какая-нибудь хитрость, чтобы не мучиться с этим?


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

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 07-07-2025 в 04:47:

Дядя Миша дело в том, что сейчас в очередной раз cкомпилил карту компиляторами от п2 - проблема ушла. Помимо мировых фейсов (которые исчезали рандомно при новой компиляции) была ещё проблема с одной конкретной func_wall (один фейс исчезал всегда стабильно).
Наверное, дело не в компиляторах, а в Джеке: бета в стиме обновилась 3 июля, 4 дня назад, а открывал я его и экспортировал карту последний раз 29 июня. В чейнджлоге Джека от 3 июля есть пункт "Исправлена ошибка: неверная точность координат при экспорте, приводившая к проблемам на больших картах."
Думаю, это оно и есть. Карта больше 8192х8192х8192. И помимо пропадающих фейсов была ещё проблема с невесть откуда взявшимися Bad Surface Extents из-за маленького скейла текстур на нескольких брашах. Последнее я просто посчитал следствием импорта из map файла, т.к. присоединил к недавно сделанной части карты старую (jmf потерялся, остался только map), которую в последний раз открывал в июле 2021.
В общем, буду посмотреть. Если компиляторы от прайма совместимы с оригинальной халфой - попробую их тоже, всё-таки они будут обновляться и правиться в отличие от паранойевских.

Добавлено 07-07-2025 в 11:47:

Что ещё наталкивает на мысль о том, что проблема была в экспорте из редактора, это то, что в одном месте была проблема с коллизией: игрок скользил по полу туннеля вдоль невидимой стенки. Сейчас там можно бегать без проблем. Опять же, я списал это на свою криворукость, поскольку наговнял стыки секций по-быстрому под разными углами, мало ли, что движку в этом не нравится


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

Старые версии Джека портили .map совершенно точно, я с этим уже сталкивался. Вроде бы визуально в порядке, а компилируешь - там дырки лезут.

__________________
My Projects: download page

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

Цитата:

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


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

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

Совместимы, но для всех четырёх компиляторов надо приписать ключ "-compat goldsrc" в батнике. Ну либо в самом хаммере.

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

Цитата:
Ku2zoff писал:
всё-таки они будут обновляться и правиться в отличие от паранойевских

ncuxonaT там какие-то просто сумашедшие улучшения провёл. В дискорде по ссылке в моей подписи можно зайти и подробнее почитать.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


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

Цитата:
SNMetamorph писал:
ncuxonaT там какие-то просто сумашедшие улучшения провёл

В этот дискорд ещё хрен попадешь. Ну просто выложи сюда скринов.

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
SNMetamorph писал:
В дискорде

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


Отправлено Aynekko 07-07-2025 в 16:51:

Цитата:
Ku2zoff писал:
Нафига вам эти дискорды и телеграмы?

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

__________________
Мой мод на Xash


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

Aynekko в данный момент дискорд официально заблокирован на территории России и почти ни у кого не работает без плясок с бубном. Комьюнити само себе устроило проблему на ровном месте, не создав популярных дубликатов на других платформах.
Рано или поздно дискорд задушат совсем, и он даже с компа не будет работать. Где тогда будет скапливаться бОльшая часть комьюнити?


Отправлено SNMetamorph 07-07-2025 в 20:28:

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

VK есть группа и чат, но никто там не сидит практически. Весь актив в дискорде, уже лет как пять.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


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

SNMetamorph в телеграме тогдауш


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

Цитата:
Aynekko писал:
скопилась бОльшая часть Xash-комьюнити

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

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

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено 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. Тайминги можно задавать прям в массиве тасков, поставив вместо нуля другое число.


Отправлено JPEG 09-09-2025 в 09:32:

Пытаюсь перенести TE_BREAKMODEL на клиент, пока в упрощённом виде, чтобы хотя бы что-то появлялось. В чём тут ошибка?

code:
extern int gmsgImpact; int CZombie :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType ) { int iModel; iModel = PRECACHE_MODEL( "models/agibs2.mdl" ); MESSAGE_BEGIN(MSG_ALL, gmsgImpact); WRITE_COORD( pev->origin.x ); WRITE_COORD( pev->origin.y ); WRITE_COORD( pev->origin.z ); WRITE_COORD( pev->velocity.x ); WRITE_COORD( pev->velocity.y ); WRITE_COORD( pev->velocity.z ); WRITE_SHORT( iModel ); //model id# MESSAGE_END(); ------------------------------------------------------------ extern void EV_HLDM_Particles(vec3_t pos, vec3_t dir, int modelIndex ); int CHud :: MsgFunc_Impact( const char *pszName, int iSize, void *pbuf ) { BEGIN_READ( pbuf, iSize ); vec3_t pos, ang; int modelIndex; pos[0] = READ_COORD(); pos[1] = READ_COORD(); pos[2] = READ_COORD(); ang[0] = READ_COORD(); ang[1] = READ_COORD(); ang[2] = READ_COORD(); modelIndex = READ_SHORT(); EV_HLDM_Particles( pos, ang, modelIndex ); return 1; } ---------------------------------------------------------- void EV_HLDM_Particles(vec3_t pos, vec3_t dir, int modelIndex) { model_t *pmodel; float random = 30; vec3_t vecSpot; vecSpot[0] = pos[0] + gEngfuncs.pfnRandomFloat( -0.5f, 0.5f ); vecSpot[1] = pos[1] + gEngfuncs.pfnRandomFloat( -0.5f, 0.5f ); vecSpot[2] = pos[2] + gEngfuncs.pfnRandomFloat( -0.5f, 0.5f ); TEMPENTITY *pTemp = gEngfuncs.pEfxAPI->CL_TempEntAlloc( (float*)&vecSpot, pmodel ); if( !pTemp ) return; pTemp->entity.curstate.body = gEngfuncs.pfnRandomLong( 0, pTemp->frameMax ); pTemp->entity.curstate.rendermode = kRenderTransTexture; pTemp->entity.curstate.renderamt = pTemp->entity.baseline.renderamt = 128; pTemp->flags |= FTENT_COLLIDEWORLD | FTENT_FADEOUT | FTENT_SLOWGRAVITY; pTemp->entity.baseline.origin[0] = dir[0] + gEngfuncs.pfnRandomFloat( -random, random ); pTemp->entity.baseline.origin[1] = dir[1] + gEngfuncs.pfnRandomFloat( -random, random ); pTemp->entity.baseline.origin[2] = dir[2] + gEngfuncs.pfnRandomFloat( 0, random ); }

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


Отправлено Ku2zoff 09-09-2025 в 16:43:

JPEG используй pEfxAPI, там уже есть нужная функция спавна кусков для мессаги TE_BREAKMODEL, которая аллочит темпэнтитю и задаёт ей все параметры, вот код из ксаш-движка:

C++ Source Code:
1
case TE_BREAKMODEL:
2
  pos[0] = READ_COORD();
3
pos[1] = READ_COORD();
4
pos[2] = READ_COORD();
5
pos2[0] = READ_COORD();
6
pos2[1] = READ_COORD();
7
pos2[2] = READ_COORD();
8
ang[0] = READ_COORD();
9
ang[1] = READ_COORD();
10
ang[2] = READ_COORD();
11
random = (float)READ_BYTE() * 10.0f;
12
modelIndex = READ_SHORT();
13
count = READ_BYTE();
14
life = (float)(READ_BYTE() * 0.1f);
15
flags = READ_BYTE();
16
gEngfuncs.pEfxAPI->R_BreakModel(pos, pos2, ang, random, life, count, modelIndex, (char)flags);
17
break;

А зачем переносишь? Хочешь добавить какие-то новые параметры? Мессага с сервера вполне справляется с задачей, незачем копипастить код на клиент.


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

Цитата:
JPEG писал:
Пытаюсь перенести TE_BREAKMODEL на клиент, пока в упрощённом виде

Не парь на мозг, ты же на годот перешёл, у тебя и в подписи было.

__________________
My Projects: download page

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

Цитата:

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


Отправлено JPEG 10-09-2025 в 10:52:

Цитата:
Ku2zoff писал:
JPEG используй pEfxAPI, там уже есть нужная функция спавна кусков для мессаги TE_BREAKMODEL, которая аллочит темпэнтитю и задаёт ей все параметры, вот код из ксаш-движка:
C++ Source Code:
1
case TE_BREAKMODEL:
2
  pos[0] = READ_COORD();
3
pos[1] = READ_COORD();
4
pos[2] = READ_COORD();
5
pos2[0] = READ_COORD();
6
pos2[1] = READ_COORD();
7
pos2[2] = READ_COORD();
8
ang[0] = READ_COORD();
9
ang[1] = READ_COORD();
10
ang[2] = READ_COORD();
11
random = (float)READ_BYTE() * 10.0f;
12
modelIndex = READ_SHORT();
13
count = READ_BYTE();
14
life = (float)(READ_BYTE() * 0.1f);
15
flags = READ_BYTE();
16
gEngfuncs.pEfxAPI->R_BreakModel(pos, pos2, ang, random, life, count, modelIndex, (char)flags);
17
break;

А зачем переносишь? Хочешь добавить какие-то новые параметры? Мессага с сервера вполне справляется с задачей, незачем копипастить код на клиент.


я хочу задействовать kRenderTransTexture у TE_BREAKMODEL. Вроде ж в коде нет такого параметра

Добавлено 10-09-2025 в 13:52:

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

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

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


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

Цитата:
JPEG писал:
Сейчас хотя бы есть смысл выпускать мод - в него поиграют

Вот дожили

__________________
My Projects: download page

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

Цитата:

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


Отправлено JPEG 11-09-2025 в 10:50:

точнее даже видимо kRenderTransAdd, а не kRenderTransTexture, последнее это ж для стекла, оно в TE_BREAKMODEL есть. Ну в общем решил костылем, задействовав режим Additive в самой модели и продублировав нормали 8 раз, чтобы было постоянно светлым https://youtu.be/KvayyRJNaAc

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


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

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