При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Кодинг > Кодинг для Half-Life 1
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2019, 23:57  #21
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

[ Цитата ] Сообщение от Flash: насчет наследования свойств, кто-то недавно писал о баге энтити, из-за того что остались свойства от предыдущей.
Вот это самый нехороший "баг". На самом деле типо "фича". Об этом и я писал не один раз на хлфх, и ещё некоторые товарищи. Ксер что-то отнекивался по этому поводу, дескать, это фундаментальная механика джека, или типа того. Я уже привык обращать энтити-браш в мировой браш, перед сменой класснейма, чтобы свойства не наследовались.
Ku2zoff вне форума Ответить с цитированием
Старый 22.02.2019, 14:34  #22
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

[ Цитата ] Сообщение от Ku2zoff: Забыл сказать, что надо подключить com_model.h в pm_shared.c, и удалить оттуда декларации hull_s и ещё чего-то там, что уже есть в com_model.h.
По поводу первой ошибки, хз, как ты её вообще умудрился получить, потому что g_hulls_fixed объявлена до PM_FixHullsMinsMaxs и PM_FixPlayerMinsMaxs.

Ku2zoff, подумав, добавил 17.02.2019 в 23:10
Не будет компилиться - скину аттачем все файлы, где заюзан этот код, скопипастишь точно в те места, где у меня.

у меня в итоге не скомпилилился код( Если не трудно, тогда аттачем лучше

Yo Den, подумав, добавил 22.02.2019 в 14:54
[ Цитата ] Сообщение от Ku2zoff: Логическая цепочка: топикстартер уже несколько лет не может решить проблему с масштабом хуллов. Топикстартер спрашивал на хлфх про развороты модели игрока по yaw от третьего лица, прилагая гифки с моделями машинок из хлралли. Значит, он делает мод с машинками, и хочет уменьшить хуллы, чтобы машинки в его моде могли достаточно долго кататься по прямой в пределах стандартной сетки.
да по сути просто делаю модель небольшого города, а потом можно будет хоть гоночки, хоть зомби-сити или мод про разрушение города сделать, без разницы. Монстров можно и через генерики вызывать, чтоб не застревали, либо повыше их ставить, всё равно я ориентируюсь на вид от 3 лица, поэтому внутри зданий монстры не нужны

Последний раз редактировалось Yo Den, 22.02.2019 в 14:54.
Yo Den вне форума Ответить с цитированием
Старый 22.02.2019, 19:03  #23
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

Вот тебе pm_shared.c от моих старых исходников, где использовался даунскейл. Всё, что в #ifdef _HALFSCALE - уменьшенный масштаб. Всё, что вне этого дефайна - стандартный.

Ku2zoff, подумав, добавил 22.02.2019 в 19:07
Остальные не вижу смысла кидать, т.к. там обнуление g_hulls_fixed в двух местах, да поправленные GetHullBounds. Я уже всё выше написал, что и где. Размеры хуллов только не забудь подогнать под свои. GetHullBounds обязательно надо юзать исправленные, и формат хулл-файла для компиляторов старый валвэшный (кваковский?) с круглыми скобками и четырьмя хуллами, а не зхлтэшный без скобок и с тремя хуллами.
[ Вложения ]
Тип файла: 7z pm_shared.7z (20.7 Кбайт, 71 просмотров)

Последний раз редактировалось Ku2zoff, 22.02.2019 в 19:07.
Ku2zoff вне форума Ответить с цитированием
Старый 22.02.2019, 19:45  #24
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 Ku2zoff: в кваке хуллы совсем менять нельзя было.
Дядя Миша вне форума Ответить с цитированием
Старый 22.02.2019, 22:10  #25
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

[ Цитата ] Сообщение от Ku2zoff: Вот тебе pm_shared.c от моих старых исходников, где использовался даунскейл. Всё, что в #ifdef _HALFSCALE - уменьшенный масштаб. Всё, что вне этого дефайна - стандартный.

Ku2zoff, подумав, добавил 22.02.2019 в 19:07
Остальные не вижу смысла кидать, т.к. там обнуление g_hulls_fixed в двух местах, да поправленные GetHullBounds. Я уже всё выше написал, что и где. Размеры хуллов только не забудь подогнать под свои. GetHullBounds обязательно надо юзать исправленные, и формат хулл-файла для компиляторов старый валвэшный (кваковский?) с круглыми скобками и четырьмя хуллами, а не зхлтэшный без скобок и с тремя хуллами.
спасибо, уже почти скомпилилось

код с int CL_DLLEXPORT HUD_GetHullBounds нужно ставить вместо int DLLEXPORT HUD_GetHullBounds в cdll_int? Или в клиент.цпп ставить?
Yo Den вне форума Ответить с цитированием
Старый 22.02.2019, 22:18  #26
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

Который с дефайном экспорта - клиентский. Который без него - серверный. Но, по сути функции одинаковые. Единственное, в cdll_int.cpp нету дефайнов векторов, но ты можешь их туда скопировать из util.h.

Ku2zoff, подумав, добавил 22.02.2019 в 22:28
[ Цитата ] Сообщение от Flash: Например у тебя активно окно текстур, в хамере достаточно убрать курсор с окна и можно например свободно пользоваться к примеру передвижением в 3д, в джеке емнип надо было сделать дополнительный клик, что бы убрать фокус с окошка.
Это не баг джека, а особенность QT, я так думаю. Так что да, это не исправить. Только если сменить фреймворк. В хаммере, насколько мне известно, вообще обычный MFC.

Последний раз редактировалось Ku2zoff, 22.02.2019 в 22:30.
Ku2zoff вне форума Ответить с цитированием
Старый 22.02.2019, 23:51  #27
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

[ Цитата ] Сообщение от Ku2zoff: Который с дефайном экспорта - клиентский. Который без него - серверный. Но, по сути функции одинаковые. Единственное, в cdll_int.cpp нету дефайнов векторов, но ты можешь их туда скопировать из util.h.
Ну а я так понимаю, что cdll_int можно не редактировать, если мод мп? А для чего в коде есть и обычные хуллы, помимо уменьшенных:
Код:
#ifdef _HALFSCALE // ku2zoff: масштаб
#define VEC_HULL_MIN		-18
#define VEC_HULL_MAX		18
#define VEC_DUCK_HULL_MIN	-9
#define VEC_DUCK_HULL_MAX	9
#define VEC_VIEW			14
#define VEC_DUCK_VIEW		6
#define JUMP_HEIGHT			23.0
#define SUPERJUMP_HEIGHT	28.0
#else
#define VEC_HULL_MIN		-36
#define VEC_HULL_MAX		36
#define VEC_DUCK_HULL_MIN	-18
#define VEC_DUCK_HULL_MAX	18
#define VEC_VIEW			28
#define VEC_DUCK_VIEW		12
#define JUMP_HEIGHT			45.0
#define SUPERJUMP_HEIGHT	56.0
#endif

, по-умолчанию причём у меня задействованы обычные, а как вызвать HALFSCALE то?

Yo Den, подумав, добавил 23.02.2019 в 00:00
а, при подключении игрока задействуется уменьшенный хулл, но видимо без правки cdll_int у меня и не включается

Yo Den, подумав, добавил 23.02.2019 в 00:09
только я переименовал CL_DLLEXPORT на DLLEXPORT... хз, можно ли так

Последний раз редактировалось Yo Den, 23.02.2019 в 00:09.
Yo Den вне форума Ответить с цитированием
Старый 23.02.2019, 10:06  #28
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

[ Цитата ] Ну а я так понимаю, что cdll_int можно не редактировать, если мод мп?
В любом случае нужно обе функции GetHullBounds изменять, т.к. PM_Move вызывается и на клиенте, и на сервере. pm_shared же.
[ Цитата ] А для чего в коде есть и обычные хуллы, помимо уменьшенных:
Это я оставил на всякий пожарный, чтобы была возможность собрать исходники для обычного масштаба.
[ Цитата ] а как вызвать HALFSCALE то?
Во народ пошёл. Либо в Preprocessor Definitions запихни _HALFSCALE, либо вручную в начале файла #define _HALFSCALE. А вообще, можно и без этого дефайна копипастить только сам код, в него завёрнутый.
[ Цитата ] только я переименовал CL_DLLEXPORT на DLLEXPORT... хз, можно ли так
Заголовок функции не надо вообще трогать, ты содержимое меняй. Если у тебя старый HLSDK, естественно, там макросы отличаются кое-где.
Ku2zoff вне форума Ответить с цитированием
Старый 23.02.2019, 13:46  #29
xDShot
xDShot
Генерал-Полковник
Регистрация: 20.12.2010
Адрес: Санкт-Петербург
Возраст: 26
Сообщения: 1,819
Замечания: 2


По умолчанию

[ Цитата ] Меняй размеры хуллов насильно в PM_Move
Мегакостылище
xDShot вне форума Ответить с цитированием
Старый 23.02.2019, 15:19  #30
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

2 xDShot:
Увы, только так можно сменить хуллы и на сервере и на клиенте. То есть это годится и для мультиплеера. Лишь для сингла можно сделать хак только в CL_InitInput, или как там эта функция называется. В Quake Remake есть этот код. Но я от него отказался и заюзал буржуйский вариант с исправлениями, чтобы работало не только у локального игрока, но и приконнектившихся к серверу.

Последний раз редактировалось Ku2zoff, 23.02.2019 в 15:30.
Ku2zoff вне форума Ответить с цитированием
Старый 23.02.2019, 16:28  #31
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

Код:
1>..\pm_shared\pm_shared.c(173) : error C2143: syntax error : missing ';' before 'type'
1>..\pm_shared\pm_shared.c(178) : error C2065: 'i' : undeclared identifier
1>..\pm_shared\pm_shared.c(184) : error C2065: 'j' : undeclared identifier
1>..\pm_shared\pm_shared.c(215) : error C2143: syntax error : missing ';' before 'type'
1>..\pm_shared\pm_shared.c(215) : error C2143: syntax error : missing ';' before 'type'
1>..\pm_shared\pm_shared.c(215) : error C2143: syntax error : missing ')' before 'type'
1>..\pm_shared\pm_shared.c(215) : error C2143: syntax error : missing ';' before 'type'
1>..\pm_shared\pm_shared.c(215) : warning C4552: '<' : operator has no effect; expected operator with side-effect
1>..\pm_shared\pm_shared.c(215) : error C2059: syntax error : ')'
1>..\pm_shared\pm_shared.c(216) : error C2143: syntax error : missing ';' before '{'
Речь про этот участок:
Код:
void PM_FixHullsMinsMaxs()
{
	if (g_hulls_fixed)
		return;

	int i, j;

	if (!g_worldmodel)
		g_worldmodel = pmove->physents[0].model;

	for (i = 1; i < 4; i++)
	{
		VectorCopy(hull_mins[i - 1], g_worldmodel->hulls[i].clip_mins);
		VectorCopy(hull_maxs[i - 1], g_worldmodel->hulls[i].clip_maxs);
	}

	for (j = 0; j < 512; j++)
	{
		if (g_worldmodel[j].type == mod_brush)
		{
			for (i = 1; i < 4; i++)
			{
				VectorCopy(hull_mins[i - 1], g_worldmodel[j].hulls[i].clip_mins);
				VectorCopy(hull_maxs[i - 1], g_worldmodel[j].hulls[i].clip_maxs);
			}
		}
	}
	pmove->Con_DPrintf("Fixing hulls' mins/maxs.\n");
	g_hulls_fixed = 1;
}

У меня sdk 2.3 с сайта хлфх, студия 2005. Пробовал
ставить for( int i = 1; i < 4; I++ ) вместо int i; for (i = 1; i < 4; i++) , но разницы никакой. Также ещё добавлял com_model.h в проект, но всё тоже самое
Yo Den вне форума Ответить с цитированием
Старый 24.02.2019, 18:21  #32
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

2 Yo Den:
Разбирайся сам. Этот код прекрасно компилится и для SDK 2.3, и даже 6-ой студией. Если ты не разбираешься в элементарщине, я тебе не помощник. Такие глупости про DLLEXPORT и CL_DLLEXPORT спрашиваешь, ну. Да это ОДНО И ТО ЖЕ, просто в разных версиях SDK макросы разные. В одной CL_DLLEXPORT, в другой DLLEXPORT.

>>ставить for( int i = 1; i < 4; I++ ) вместо int i; for (i = 1; i < 4; i++) , но разницы никакой. Также ещё добавлял com_model.h в проект, но всё тоже самое

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

Переходи уже на ксаш, а? Там не надо вот этих хаков. Только GetHullBounds поменять, и всё.
Ku2zoff вне форума Ответить с цитированием
Старый 24.02.2019, 18:24  #33
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

Между прочим в кутри aas это тожы клипноды 😊
Дядя Миша вне форума Ответить с цитированием
Старый 24.02.2019, 20:46  #34
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

[ Цитата ] Сообщение от Ku2zoff: 2 Yo Den:
Разбирайся сам. Этот код прекрасно компилится и для SDK 2.3, и даже 6-ой студией. Если ты не разбираешься в элементарщине, я тебе не помощник. Такие глупости про DLLEXPORT и CL_DLLEXPORT спрашиваешь, ну. Да это ОДНО И ТО ЖЕ, просто в разных версиях SDK макросы разные. В одной CL_DLLEXPORT, в другой DLLEXPORT.

>>ставить for( int i = 1; i < 4; I++ ) вместо int i; for (i = 1; i < 4; i++) , но разницы никакой. Также ещё добавлял com_model.h в проект, но всё тоже самое

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

Переходи уже на ксаш, а? Там не надо вот этих хаков. Только GetHullBounds поменять, и всё.
извиняюсь, не хотел надоедать) Ксаш не, буду дальше пробовать
Yo Den вне форума Ответить с цитированием
Старый 25.02.2019, 06:19  #35
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 30
Сообщения: 312


По умолчанию

>>Также ещё добавлял com_model.h в проект, но всё тоже самое

com_model.h нужно подключать обязательно. Патамушта там есть структура model_t. И так ты получишь доступ к model->hulls. Ещё там есть структура hull_t, определение которой уже имеется в pm_shared.c:
Код:
typedef struct hull_s
{
	dclipnode_t	*clipnodes;
	mplane_t	*planes;
	int			firstclipnode;
	int			lastclipnode;
	vec3_t		clip_mins;
	vec3_t		clip_maxs;
} hull_t;
Этот код нужно удалить из pm_shared.c при подключении com_model.h Ну и ещё до кучи modtype_t и dclipnode_t, mplane_t. Потому что это всё есть в com_model.h
Ku2zoff вне форума Ответить с цитированием
Старый 10.03.2019, 17:30  #36
Yo Den
Yo Den
Капитан
Регистрация: 02.10.2013
Возраст: 28
Сообщения: 902
Замечания: 1


По умолчанию

В общем, как я и думал, проблема оказалась в различии версий студии, поставил
Код:
void PM_FixHullsMinsMaxs()
{
	int i, j;

	if (g_hulls_fixed)
		return;
вместо
Код:
void PM_FixHullsMinsMaxs()
{
	if (g_hulls_fixed)
		return;

	int i, j;
и
Код:
void PM_FixPlayerMinsMaxs(void)
{
	int i;

	for (i = 0; i < 4; i++)
вместо
Код:
void PM_FixPlayerMinsMaxs(void)
{
	for (int i = 0; i < 4; i++)

и всё заработало
Yo Den вне форума Ответить с цитированием
Старый 10.03.2019, 18:09  #37
GNU/Hurt
GNU/Hurt
Maïté
Регистрация: 05.03.2014
Сообщения: 1,097


По умолчанию

2 Ku2zoff:
>Только новые студии обосрут первый вариант, за объявление переменной i внутри цикла, если эта i заюзана ещё где-то помимо этого цикла.
WAT, они же в разных областях видимости?
GNU/Hurt вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:11.


Designed by FT-502, TRU[email protected] Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2021 by CS-Mapping.com.ua Community