![]() |
Страницы (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)
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!
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'
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!
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'
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!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
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!
Ничего не понял.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша Я говорю, в Си для декларации функции не существует понятия области видимости. Главное чтобы где-то в файле она была. Ее можно объявить в одной функции, а пользоваться ей совсем в другой.
code:
// // allways dump the first two message, because it may contain leftover inputs // from the last level // if (++cl.movemessages <= 2) return;
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша То что внезапно игнорируется концепция области видимости. Нету цельности.
Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
currentorigin в кваке отстаёт от origin на целый кадр. Снова Мастер moment.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
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'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Может, кто-нибудь подробно описать логику работы энтити - мульти_манагер, как она работает?
__________________
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
(_-=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'
__________________
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
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Если не трудно, то можешь расписать его полную работу, по этапам, что происходит на каждом этапе, а то пока я не особо понимаю, что там у него происходит, когда вызывается мульти_манагер (
__________________
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
(_-=ZhekA=-_)
Это секвенсер который вызывает по таймеру разные события.
https://twhl.info/wiki/page/Tutorial%3A_Multi_manager
Активируется как и всякие двери по имени.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Так ты обьясни, что такое поток и что в нем происходит
__________________
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
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'
Дядя Миша
В 98м процы уже умели в многопочность? Или уже добавили позже?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
Многопоточность реализуется в ОС.
Даже на одноядерных процессорах 90х потоки давали выигрыш в скорости за счёт, например, того, что проц не простаивал при внешних операциях, например дисковых.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Тут вроде обо всем и про всё. Поэтому, думаю, оставлю свой вопрос тут.
Я уже писал, что я сам не настоящий кодер, и что слился даже на попытках собрать стандартный код для модов на сорс до сорса 2013.
Сейчас я пишу пытаюсь писать код на Squirrel в рамках Source Vscript под местный аналог SOHL
И т.к. я не учил си, и прочее - у меня мб платиновый вопрос.
Может где-то есть что-то типа таблицы о том, что можно создавать и делать на сервере, а что на клиенте, и почему именно так а не иначе? Как это все различать?
Например, почему энтити создаются на сервере, а вгуй на клиенте?
Собственно повод к этому вопросу - ответ в дискорде мапбазы:
__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.
Camblu_Buildovich если бы ты кодил под первую кваку, то знал бы, что изначально не было клиентских энтить в виде именно как привычных нам энтить серверных. Всё, что требовало упаковки в сейв, создавалось на сервере. А всё временное создавалось мессагами с сервера на клиент. Партикли, спрайты, звуки. Пусть более знающие меня поправят, если я ошибся. Это ответ на твой вопрос как это различать. Однако, в хл2 есть клиентский сейв. И в хл1 его можно сделать, я с помощью одного товарища научился сохранять спрайтовые декали из мода Invasion.
Почему так и не иначе? Нужно изучить API движка, какие функции предоставляет сервер, а какие клиент. Исходя из своих потребностей делать одни объекты на серверной, а другие на клиентской стороне.
Тебе в цитате дан ответ: сервер - логика и физика, геймплей, клиент - визуал. Никогда не забывай о мультиплеере: всё, что создаётся на клиенте, видит только локальный игрок, другие игроки об этом понятия не имеют.
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'
__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
здравствуйте. Может кто нибудь знает, как активировать оружие Sun of God в моде Tyrian Ground Assault ?
__________________
илья
Он не точнее. Он просто тебе в данном случае больше подходит.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
как в воспроизвести звук с определенной секунды? на клиенте. я знаю про функцию playsound но она принимает только путь до файла и громкость.
я хотел сделать радио у которого счетчик времени шел бы независимо от того играет ли звук.
__________________
И по программам их узнаете их...
пржект
https://www.moddb.com/games/silent-vilage
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Никогда не поздно сделать мод под хл1
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 | } |
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
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'
Задам наверное очень нубский вопрос. Возможно это тема уже обсуждалась, но честно я не нашел, да и особо не искал. В общем, можно ли что-то где-то подкрутить, чтобы при компиляции карты текстуры с масштабом меньше 1.0 имели так же и меньшее количество лайтмап. Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах. Особенно вырвиглазно смотрится, когда х1.0 текстуры успешно освещаются, а х0.5 детали на них "не дотягиваются" до света. (Пример на скрине: стены х1, вентиляция и коробки х.5)
В общем, можно ли такое просто включить при компиляции (если да - то как), или надо лезть в код компиляторов (если да, то может кто-то уже лазил и поделится результатом)
__________________
Никогда не поздно сделать мод под хл1
Наверное, тебе поможет параметр -notexscale у hlrad.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Действительно, скомпилировал коробочку с этим параметром и без него, разницы никакой.
__________________
Никогда не поздно сделать мод под хл1
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Две трети локусов прекрасно заменяются парент-системой.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Не очень понимаю, а откуда Лаури вообще взял эту систему? Там очень интересная логика, неужели он всё сам придумал?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша
А можешь подробно описать\рассказать, что это за локусы такие, что это за система и как она вообще работает?
__________________
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
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Ну может это ещё где то использовалось?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Подскажите мне насчёт одного дела. Делать скалы и имитировать неровные ландшафты (кочки, ямки) в Джеке я научился, это несложно. Дошло дело до туннелей в скалах. Нашёл несколько туторов на ютубе, где разными способами нарезают и вертят торусы. Получается дичь. Поворачиваю сегменты на фиксированный угол, кратный 5 или 15, состыковать нормально не могу, крайние вершины съезжают с сетки. Помогает carve - обрезаются нормально, но после компиляции вылазиет всякое нехорошее, например выборочно пропадают некоторые фейсы. Пробовал и компиляторы от п2 и китайские, результат немного отличается. Есть какая-нибудь хитрость, чтобы не мучиться с этим?
Ku2zoff попробуй от прайма, я им там делал некоторые критичные исправления, чтобы фейсы не пропадали.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша дело в том, что сейчас в очередной раз cкомпилил карту компиляторами от п2 - проблема ушла. Помимо мировых фейсов (которые исчезали рандомно при новой компиляции) была ещё проблема с одной конкретной func_wall (один фейс исчезал всегда стабильно).
Наверное, дело не в компиляторах, а в Джеке: бета в стиме обновилась 3 июля, 4 дня назад, а открывал я его и экспортировал карту последний раз 29 июня. В чейнджлоге Джека от 3 июля есть пункт "Исправлена ошибка: неверная точность координат при экспорте, приводившая к проблемам на больших картах."
Думаю, это оно и есть. Карта больше 8192х8192х8192. И помимо пропадающих фейсов была ещё проблема с невесть откуда взявшимися Bad Surface Extents из-за маленького скейла текстур на нескольких брашах. Последнее я просто посчитал следствием импорта из map файла, т.к. присоединил к недавно сделанной части карты старую (jmf потерялся, остался только map), которую в последний раз открывал в июле 2021.
В общем, буду посмотреть. Если компиляторы от прайма совместимы с оригинальной халфой - попробую их тоже, всё-таки они будут обновляться и правиться в отличие от паранойевских.
Добавлено 07-07-2025 в 11:47:
Что ещё наталкивает на мысль о том, что проблема была в экспорте из редактора, это то, что в одном месте была проблема с коллизией: игрок скользил по полу туннеля вдоль невидимой стенки. Сейчас там можно бегать без проблем. Опять же, я списал это на свою криворукость, поскольку наговнял стыки секций по-быстрому под разными углами, мало ли, что движку в этом не нравится
Старые версии Джека портили .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's Personal Blog
Xash3D Modding Discord
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Мой мод на Xash
Aynekko в данный момент дискорд официально заблокирован на территории России и почти ни у кого не работает без плясок с бубном. Комьюнити само себе устроило проблему на ровном месте, не создав популярных дубликатов на других платформах.
Рано или поздно дискорд задушат совсем, и он даже с компа не будет работать. Где тогда будет скапливаться бОльшая часть комьюнити?
__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord
SNMetamorph в телеграме тогдауш
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
I'm on github
I'm on opendesktop.org
__________________
__________________
Мой мод на Xash
__________________
Да если желания нет, то и предлагать нечего, ищущий всегда найдет.
__________________
Мой мод на Xash
__________________
Тут стоит выбор - отрезать себя от многотысячного комьюнити или потратить минуту на доступ к дискорду. У меня выбор был очевиден, у вас - тоже
__________________
Мой мод на Xash
__________________
__________________
Мой мод на Xash
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
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
__________________
Привет, ребят. У меня технический вопрос
Если я ворую лайтмапы для поверхностей, который обычно рисуются без лайтмап (вода мировая) таким образом:
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 | } |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать. Генерю из world->surfaces[i].samples текстуры, сохраняю их индексы в мапу std::map <msurface_t*, int> чтобы по сурфу потом нужный индекс лайтмапы взять. Только s t координат не могу выдумать для них откуда брать
Лайтмапы то у сурфоф воды, которые потом метятся как DRAWTURB есть в BSP, но двигло ХЛ решило рисовать мировую воду без лайтмапы
v[5] v[6] из surf->polys->verts содержат что то похожее на координаты лайтмапы, но их надо как то обработать. На вид они в 9-10 раз меньше чем нужно
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 | } |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife. Это легко проверить, если открыть .bsp утилитой BSPGUY.
Lambda_bunker:
Я получаю приблизительные результаты если беру такие коодинаты для лайтмапы
gl.glMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[5] * 3.f * M_PI, v[6] * 3.f * M_PI); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Окай, в ZHLT экономили, оригинальный компилятор и Vluzacn_s_ZHLT на воде лайтмапы делают, у меня вопрос с самого начала по текстурным координатам этих лайтмап. BSPGUY и BSPViewer могут мировую воду рендерить с лайтмапой, я в их сорцах покопался, но так и не понял как они высчитывают текстурные координаты для лайтмап мировой воды. И с этим пришёл к вам, у вас есть идеи или догадки? Как я уже писал выше v[5] и v[6] в verts сурфов воды похожи на текстурные координаты лайтмапы, но деленные на 9-10. Есть догадки какая математика там скрывается?
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Такой нубский вопрос. Вот код, каждую 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; //начинаем сначала
}
А как на сервере узнать количество субмоделей в модели? Что вставить в "Количество Субмоделей"?
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
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; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша точно. MODEL_FRAMES не только для спрайтов работает. Совсем об этом забыл.
JPEG глянь код цыклер_спрайта. Он же как раз анимируется нужным тебе образом. Весь твой код там уже есть, только в другой форме.
Добавлено 17-08-2025 в 01:36:
Не знаю, как оно будет работать с моделями, в которых несколько бодигрупп, возможно, придётся считать по формуле из SetBodygroup. Для моделей с одной бодигруппой всё работает, цыклеру можно подсовывать не только спрайты, но и студиомодели. Такое я и сам делал, и в кс много раз делали мапперы. Цыклеры анимируются.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
ещё у Гарга в TASK_DIE похожий код нашёл, попробую приспособить
Добавлено 17-08-2025 в 13:16:
да, всё отлично, спасибо. Использовал m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1; от сайклер спрайта
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Допустим, на примере зомби. Как сделать, чтобы после того, как он нанёс удары, он на несколько секунд переключался на отступление (а не ударял игрока до победного)? К примеру, чтобы для этого проигралась заранее готовая анимация ходьбы инвертированная в обратную сторону (чтобы пятился) или чтобы он сам осуществил движение в случайную/противоположенную сторону (но тут уже автоматом развернётся в сторону движения)
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
в принципе рабочий вариант https://youtu.be/AwWeHXn8gVY
Из минусов: нпс проходят сквозь друг-друга и стены, но иногда можно применить
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Смотришь вектор куда игрок смотрит, отслеживаешь удар, если удар нанесён то отбрасываешь монстра назад по вектору взгляда игрока (задаешь велосити или импульс на время проигрывания анимации) и включаешь собственно саму анимацию. Можно ещё развернуть самого монстра мордой в направлении игрока, чтобы он потом не тупил когда сам разворачивался. Так же можно кинуть трассу из спины монстра чтобы считать дистанцию насколько далеко он должен отойти, чтобы не пятился в стенки.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Почему бы не сделать анимацию удара с подшагом и последующим отскоком? Вроде, когда дерешься несподручно нос в нос стоять. Теоретически. Сам не дерусь, я только на форуме смелый.
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
ну в общем получилось так. Говнокот, но по-крайней мере работает
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; //отступление
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
JPEG ну конечно говнокод. По-хорошему должно быть что-то такое:
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 | } |
Пытаюсь перенести 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 ); }
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
JPEG используй pEfxAPI, там уже есть нужная функция спавна кусков для мессаги TE_BREAKMODEL, которая аллочит темпэнтитю и задаёт ей все параметры, вот код из ксаш-движка:
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; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
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; |
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
точнее даже видимо 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