HLFX.Ru Forum Страницы (264): « Первая ... « 160 161 162 163 [164] 165 166 167 168 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

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)


Отправлено Дядя Миша 31-08-2020 в 22:04:

Ну имя ты какое задавал для wglGetProcAddress?
К тому же можно еще попробовать через стандартный виндовый GetProcAddress

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 31-08-2020 в 23:18:

Цитата:
Дядя Миша писал:
Ну имя ты какое задавал для wglGetProcAddress?

C++ Source Code:
SAFE_GET_PROC(glLockArraysEXT, PFNGLLOCKARRAYSEXTPROC, "glLockArraysEXT");
По аналогии с загрузкой других расширений в старом ксашмоде. Через GetProcAddress тоже пробовал. Не получилось.

Добавлено 01-09-2020 в 06:18:

Разобрался. Это я дурак - совал функции glLockArraysEXT в качестве аргументов mon->firstvertex и mon->numvertices без проверки, существует ли mon. В который раз убедился, что надо на этапе загрузки выводить всё в консоль, чтобы не гадать, что поддерживается, а что нет.


Отправлено KorteZZ 01-09-2020 в 06:52:

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

__________________

Killing Floor: Horzine Outbreak


Отправлено Ku2zoff 01-09-2020 в 07:29:

Цитата:
KorteZZ писал:
в итоге трупаки перестали разлетаться на ошметки при взрыве.

pev->solid = SOLID_NOT?

Есть один неплохой способ. В pm_shared.c нужно завести функцию int PM_Ignore. Привести её к такому виду:
C++ Source Code:
1
int PM_Ignore(physent_t *pe)
2
{
3
  if (pe->iuser3 == -1)
4
    return 1;
5
 
6
  return 0;
7
}
Потом, согласно моему тутору, вставить вызовы этой функции куда надо, заменяя вызовы каких надо функций. Далее, надо всего лишь поставить мёртвому монстру pev->iuser3 = -1. Можно это сделать в defaultai.cpp, функция GetScheduleOfType, кейс SCHED_DIE:
C++ Source Code:
case SCHED_DIE:
{
  pev->iuser3 = -1;
  return &slDie[ 0 ];
}
А можно в функции CBaseMonster :: Killed. Не знаю, где надёжнее, я не тестировал.

Добавлено 01-09-2020 в 14:29:

Есть ещё один способ: UTIL_SetSize(pev, g_vecZero, g_vecZero). Но он плох тем, что монстр опять же перестаёт получать урон, а потом ему надо заново задавать размеры, когда анимация смерти закончилась.


Отправлено KorteZZ 01-09-2020 в 08:21:

Спасибо большое! Попробуем!

__________________

Killing Floor: Horzine Outbreak


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

Цитата:
Ku2zoff писал:
"glLockArraysEXT"

попробуй ARB или вообще без EXT.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FreeSlave 01-09-2020 в 09:22:

По мне так проблема с монстрами даже не в том, что они преграждают путь для игрока во время умирания (игрок может и подождать), а в том, что впоследствии их трупы мешают движению всяких брашевых энтить типа дверей и пушаблей. Соответственно для передвижения пушабли приходится эти самые трупы разбивать, а уж сколько раз трупы хедкрабов застревали в дверях - не пересчитать. С одной стороны, в этом есть смысл, но чаще всего лишь мешает. Ku2zoff, может напишешь тутор на этот счёт? Разумеется, с сохранением возможности разбивать/взрывать трупы.

__________________
I'm on github
I'm on opendesktop.org


Отправлено KorteZZ 01-09-2020 в 09:39:

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

__________________

Killing Floor: Horzine Outbreak


Отправлено Ku2zoff 01-09-2020 в 09:52:

Цитата:
FreeSlave писал:
может напишешь тутор на этот счёт?

Даже не знаю, как лучше было бы это сделать. Физика энтить запрятана в движок, интерфейсов для её вызовов из дллки кроме StartFrame в голдсорсе нету. А через то, что имеется, придётся делать хаками. Вообще, для регулировки коллизии есть функция pfnShouldCollide, но она сломана с тех самых пор, как её добавили. Исправлена только в ReHLDS и ксаше. Первый - это выделенный сервер для сраной каэсочки, а во втором есть нормальный интерфейс для физики, так что этот вариант отпадает. Делать через pev->groupinfo такое себе: пушабли перестанут коллайдить не только с трупами, но и друг с другом. А может быть для пушаблей это не сработает, у них ведь вообще уникальный мувтип. Я бы сделал проще: чтобы пушабли и двери наносили трупам дамаг и "кусковали" их мгновенно при касании.

Добавлено 01-09-2020 в 16:52:

Цитата:
Дядя Миша писал:
попробуй ARB или вообще без EXT.

Уже исправил. Поначалу бессмысленно линковал в клиентку то glext, то glew, и вылетало. Я завёл проверку в ините: если wglGetProcAddress не возвращает glLock\UnlockArraysEXT - мониторы не работают. Вылетать перестало. Ну я грешным делом решил, что расширения могли быть дропнуты на уровне драйвера, тащем-то им уже по 20 лет. Оказалось, линковать вообще ничего не нужно, достаточно просто вызвать wglGetProcAddress. После этого вылеты продолжились, как оказалось из-за того, что я загонял NULL аргументы в glLockArraysEXT. Кстати, когда эти функции заработали, фпс упал на 10-15 пунктов.


Отправлено Crystallize 01-09-2020 в 09:57:

Цитата:
KorteZZ писал:
А туториал должен обучать. Какие проблемы? Как их можно решить? Что и для чего делается? И прочие вопросы, которые появляются в головах новичков.

А вы видели когда-нибудь такие туториалы?


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

Цитата:
Ku2zoff писал:
Кстати, когда эти функции заработали, фпс упал на 10-15 пунктов.

так надо сначала скомпилировать эти арраи. Ксерокс в своё время конечно тоже отжог - монитор это 4 вертекса. Нахрена он этот полигон компилировал в отдельный массив есть величайшая загадка.

__________________
My Projects: download page

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

Цитата:

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


Отправлено KorteZZ 01-09-2020 в 10:16:

Crystallize
К сожалению, такое - редкость. Видел на ютубе по монтированию видео в Вегасе. Там чел толково объяснял что да как и почему.

__________________

Killing Floor: Horzine Outbreak


Отправлено Ku2zoff 01-09-2020 в 13:33:

Цитата:
Crystallize писал:
А вы видели когда-нибудь такие туториалы?

Туториалы нашего сообщества это, по сути, не обучающие статьи, а примеры работ с описанием. И хорошо, если с описанием, а не просто "Этот код сюда, а этот код туда". Я в последнее время стараюсь описывать что и для чего делается. Внутри своего кода для себя оставляю комменты, чтобы через долгое время быстро вспомнить, что и зачем.


Отправлено Ku2zoff 03-09-2020 в 18:03:

В общем, закончил мониторы. Теперь без зависимости от cvaLib.lib. Обнаружил неприятный бажочек: они видны сквозь стены. Отсечение по фрустуму работает, если отвернуться, фпс вырастает. Как можно это поправить?


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

включить запись в буффер глубины

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 06:37. Страницы (264): « Первая ... « 160 161 162 163 [164] 165 166 167 168 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

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