ДА НЕ КАК! Стал бы я городить свои интерфейсы, если бы в халфе было можно. Народ извращался следующим способом в тринити - получал хэндл клиентки, и дергал Mod_Handle из клиентского интерфейса. Это разумеется работало только для листен-сервера. Дедикатед-сервер уже упадёт. Да и вообще способ откровенно стрёмный, хотя и рабочий.
Цитата:
Ku2zoff писал: А почему в халфе невозможен прекэш налету, уже после спауна энтить? Именно из-за вот этих вот дел с моделями и их индексами?
Нет. Банальная лень. В кваке его не делали, т.к. не было особой нужды, но уже в ку2 его ввели. Собственно прэкеш - это отсылка имени и индекса модели на клиент. В халфе и первокваке это было возможно сделать только для накопленного массива моделей и передать их все разом. А во время игры это делается для каждой модели отдельно и соответствующую сетевую мессагу просто поленились сделать. А потом вообще завязали это всё на даунлод ресурсов, который тоже не умел горячий прекэш и стало еще сложнее что-то переделать.
Дядя Миша писал: ДА НЕ КАК! Стал бы я городить свои интерфейсы, если бы в халфе было можно.
Выходит, придётся грузить повторно, дублируя то, что уже загрузил движок. Вот засада. Ну и пофиг. Лишь бы работало.
Цитата:
Дядя Миша писал: Народ извращался следующим способом в тринити - получал хэндл клиентки, и дергал Mod_Handle из клиентского интерфейса. Это разумеется работало только для листен-сервера. Дедикатед-сервер уже упадёт. Да и вообще способ откровенно стрёмный, хотя и рабочий.
Не, это вообще правда стрёмно. Дедикатед-сервер должен работать в любом случае.
В общих чертах - загрузил в память (mdl, bsp, spr). А в данном случае нужно получить model_t каждой энтити, которая имеет модель (mdl, bsp, spr). Пока не знаю, как это сделать, т.к. ещё не разобрался, как это делает движок. После кода дллок (на С с классами) код движка на чистом C выглядит крайне непонятно. Учитывая, что множество переменных и массивов разбросаны по разным файлам, сориентироваться очень трудно.
Дядя Миша ну а каким образом я это пойму, не изучив как досконально сорцы ксаша? (Я это делать не планирую потому, что форкать его не собираюсь). Ну и польза от этого будет довольно сомнительная, учитывая конечную цель.
Оба алерта выдают одинаковое имя. Осталось проверить, действительно ли модель доступна на сервере. И вообще, будет ли это работать.
Хм. Для поездов, брейкаблей, функ_валлов, функ_баттонов возвращает модель, для пушаблей нет (наверное потому, что они не SOLID_BSP). Для монстров соответственно тоже, т.к. надо возвращать не physents[i].model, а physents[i].studiomodel. Будем копать.
А вот что я скажу.
Будут проблемы там, где вы их не ждёте.
А именно: В Tyrian изменение масштаба в 2 раза привело к тому, что прожектайлы стали пролетать сквозь игрока не разрываясь, (не все, а часть и периодически), сбить их тоже стало проблематичным из-за малого размера.
Дядя Миша а если вместо pmove->physents использовать pmove->visents? Судя по комментарию, объекты будут не только доступные для коллизии, но вообще все отрендеренные в данный момент. Но всё равно мало, максимум 600 объектов.
Добавлено 02-02-2017 в 08:21:
Цитата:
Ghoul [BB] писал: В Tyrian изменение масштаба в 2 раза привело к тому, что прожектайлы стали пролетать сквозь игрока не разрываясь, (не все, а часть и периодически), сбить их тоже стало проблематичным из-за малого размера.
С игроком проблемы? Подозреваю, что ты размеры хулла не менял. Ни в компиляторах, ни в коде. Уменьшить игрока в два раза можно, влепив ему флаг FL_DUCKING на постоянку. Ну а проджектайлы? Они же и так точечные. Их зачем уменьшать?
Ku2zoff писал: Ну а проджектайлы? Они же и так точечные. Их зачем уменьшать?
Нет, не точечные. У ракет и прочего есть хитбоксы.
Цитата:
Ku2zoff писал: Подозреваю, что ты размеры хулла не менял.
Размеры хула тоже уменьшил сообразно, в коде.
В компиляторе карты не менял и карту не перекомпиливал, это и не нужно было - размер на карте влияет, чтоб игрок во все дырки мог пролезть, в какие он должен.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Короче, как я понял, никаким образом модели на сервере не получить, не загружая их заново внутри дллки. Игра по уменьшению хуллов не стоит свеч. Проще увеличить размер карты и заменить обычные темпэнтити кастомными. Ну и исправить прочие недочёты, которые возникнут из-за увеличившегося размера карты.