HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 65 66 67 68 [69] 70 71 72 73 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Ku2zoff писал:
Ан нет, в движке захардкоден определённый набор на каждую секцию.

ты же entity_state_t не поменяешь вот так просто.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Дядя Миша ну, а если я захочу weapondata_t расширить? Там блин вообще доступны только 4 иузера и 4 фузера. И по три из них уже заняты. Издевательство какое-то. Уж могли бы и 4 вузера дать моддерам, и 4 еузера. Первые для всяких разбросов и прочих направлений, а вторые для предиктинга ракет и лазерных точек, например.

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

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

Старое сообщение 03-07-2017 10:31
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Ku2zoff писал:
ну, а если я захочу weapondata_t расширить?

ну расширяй. Только бинарную совместимость к чертям поломаешь.
Ты что думаешь это чисто халфовские проблемы? А ты в курсе что система совместимых комманд x86 предусматривает опкод в виде одного байта, из-за чего как легко догадаться следует, что этих самых опкодов не может быть физически более 256, а комманд у современных процессоров несколько больше, если учитывать все MMX и SSE. Ты в курсе через какую жопу делаются эти расширения? Бралась одна неиспользуемая команда и за ней ставилась еще одна. А потом по аналогии - с соседом такая же шняга. И на этих костылях совместимости построено практически всё семейство x86.
Но ситуация несколько улучшилась при переходе на 64-х разрядную архитектуру, там уже постарались учесть большинство ошибок проектирования, допущенных в 70-е.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:
там уже постарались учесть большинство ошибок проектирования, допущенных в 70-е.

Я бы не сказал, что ошибок. Просто в то время такого скромного набора было достаточно. Как и 640 кб хватало всем. А потом, ВНЕЗАПНО оказалось, что оказывается технологии не стоят на месте, и аппаратные лимиты можно преодолеть. Правда, в угоду совместимости, лимиты преодолевали костылями. Но если бы не совместимость, не было бы у нас такого многообразия софта под винду.

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

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

Старое сообщение 03-07-2017 15:22
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

Ну щас весь софт пересоберут под x64, как-никак достаточно веская причина. А десятка, если не путаю только 64-х битной и бывает.

Цитата:
Ku2zoff писал:
не последнюю роль сыграли поджимающие сроки и жадный издатель

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

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:
А десятка, если не путаю только 64-х битной и бывает.

Нет, есть x86. В основном, конечно для недобуков и виндопланшетов, с 1-2 гб памяти. ЧСП, ленивые китайцы ставят на бюджетные версии ноутбуков с 2 гб памяти x64 версию (как и на более дорогие), и иной раз найти x86 драйвера для экзотических железок просто нереально. В итоге имеем 1.7 гб доступными (250-300 мб отдано встроенной графике), около 0.9-1.2 гб жрёт винда с висящими в фоне бесполезными утилитами от производителя, а пользователю остаётся для работы в районе 500 мб. Учитывая, что винчестеры в ноутбуках аццки медленные на 5200 об/мин, получаем ещё и тормозящий файл подкачки. На выходе получается этакая тормозная хрень, которая не может не то что в работу и игры, даже в интернет и кино показать не может. Правда, это всё решается накаткой какой-нибудь x86 бубунты, которая ест от силы 500 мб памяти в простое. Но здесь добавляются проблемы с видеодрайвером. Капец короче.
Цитата:
Дядя Миша писал:
исключение только интерфейс для рендеринга студиомоделей.

Хм, интересно, почему серверный блендинг не сделали даже в версии сдк 2.4?

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

Старое сообщение 03-07-2017 16:30
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Дядя Миша ну так и клиентский код тоже внутри движка есть. Но, тем не менее он продублирован в клиентке через интерфейс студиомодельрендерера, а в СДК даже есть пример кастомного 4-way блендинга. Почему на сервере нет такого примера, и почему блендинг не продублирован - зогадко.

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

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

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

Рейтинг



Цитата:
Ku2zoff писал:
Почему на сервере нет такого примера

Ты что так и не смог его подключить?

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Да смог, уже давно. Не совсем такой, как в кс, но работает как надо.

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

Старое сообщение 04-07-2017 07:38
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



Как играть в WON-версию с музыкой с виртуального CD-привода?

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

Старое сообщение 04-07-2017 11:57
- За что?
Sigurth
Частый гость

Дата регистрации: May 2015
Проживает: Красноярск
Сообщений: 95
Возраст: 27

Рейтинг



Ku2zoff Кстати, вот таким образом в хл сохраняется в сейврестор структура dynpitchvol_t у ambient_generic

C++ Source Code:
DEFINE_ARRAY( CAmbientGeneric, m_dpv, FIELD_CHARACTER, sizeof(dynpitchvol_t) ),

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

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

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

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

Рейтинг



Sigurth там написан огромный комментарий по этому поводу. То есть, сохраняется структура как бинарные данные, и менять её (в коде) не стоит, если важно, чтобы старые сохранения загружались корректно. Но, тем не менее, этот вариант прекрасно мне подходит.

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

C++ Source Code:
int WeaponClips[MAX_WEAPONS][MAX_WEAPON_CLIPS];

В первых скобках у нас m_iId оружия, а во вторых m_iMaxClips этого оружия. Значение каждого конкретного int'а - есть количество патронов в магазине с данным номером данного оружия. Целую структуру заводить не нужно, незачем хранить название патронов (его можно взять из ItemInfo оружия) и номер магазина (он уже хранится во вторых скобках). Даже не обязательно заводить для каждого оружия свои магазины (выглядит глупо, если два оружия используют одинаковые, то зачем их дублировать), можно вместо m_iId использовать энумератор, а индекс оружия хранить в базовом классе в виде m_iClipType, например.

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

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

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

Рейтинг



Цитата:
Ku2zoff писал:
Перезаряжаются циклично, запоминают количество патронов внутри себя

В халфе же есть m_iClip, чтобы запомнить кол-во патронов в магазине. Ну ввёл бы флаг-маску, типо FITEM_LAST_AMMO (1<<31) и ставил в переменную m_iClip. И было бы понятно сразу
if( FBitSet( m_iClip, FITEM_LAS_AMMO ))
есть патрон в стволе
else нет патрона в стволе
А ты какие-то структурки начал лепить, моссивчеги. К чему вот это всё?
Мастер в своём XDM занимается примерно тем же самым. Там где по смыслу достаточно одной строчки, он лепит какие-то фабрики и классы. Индусский кот.

__________________
My Projects: download page

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

Цитата:

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

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

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

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

Рейтинг



Цитата:
Дядя Миша писал:
А ты какие-то структурки начал лепить, моссивчеги. К чему вот это всё?

Про биты я знаю, но изначальная цель не запоминать есть патрон в стволе, или нет, а помнить остаток патронов в каждом запасном магазине, а не только в данный момент заряженном. Можно конечно сделать как в DoD: просто выбрасывать магазин при перезарядке. Но иногда игрок может по привычке перезарядить ствол как в халфе, если выстрелил 1-2 патрона. Ещё захотелось мне сделать как в Firearms, чтобы магазины можно было заряжать несколько раз подряд.

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

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



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


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

Временная зона GMT. Текущее время 11:23. Новая тема    Ответить
Страницы (260): « Первая ... « 65 66 67 68 [69] 70 71 72 73 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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