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

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)


Отправлено 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:

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

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


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

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