HLFX.Ru Forum Страницы (268): « Первая ... « 75 76 77 78 [79] 80 81 82 83 » ... Последняя »
Показать все 4007 сообщений этой темы на одной странице

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)


Отправлено Smykov 14-09-2017 в 18:43:

Может глупые вопросы, но после работы в 3ds привык при создании локации, чтобы было без лишних полигонов и чётко по размеру. Хотя понимаю, направления программ отличаются.
1) Возможна ли работа с метрическими величинами(сантиметрами и миллиметрами)?
2) Есть ли возможность задавать фиксированный размер объектов? Например, что если потребуется создать комнату 400см x 300см x 300см. Конечно, я могу примерно сам подогнать, задав величину grid'а, и растягивать по сетке, но мне кажется по любому есть более лучшее решение, в котором, примерно как в 3ds, заполнив поля параметров объекта.
3) Есть ли возможность изменить местоположение объекта, задав координаты? Наподобие панели в 3ds XYZ.


Отправлено Crystallize 15-09-2017 в 01:30:

В Хаммере(Джеке) насколько я знаю
1)нет
2)нет
3)нет


Отправлено Ku2zoff 15-09-2017 в 04:45:

semerjon смотря в чём ты работаешь. Если речь про хаммер и джек, то:
1). Нет. Умножай сам размеры на 2.5, получишь сантиметры. (1 юнит ~ 1 дюйм).
2). Можно использовать заранее заготовленные куски карты (с известными тебе размерами) и масштабировать их с помощью инструмента "Трансформировать".
3). Можно сдвинуть объект относительно текущего положения на определённое кол-во юнитов, используя инструмент, как в п.2.

И вообще, постарайся выкинуть из головы мысли о метрической системе и точном соответствии размеров и масштабов игровых объектов объектам ИРЛ. ИРЛ размеры и пропорции выглядят в игре очень маленькими. Помещения получаются тесными, а проходы узкими. Делай карты на глаз, сверяясь с оригиналом, тогда будет выглядеть хорошо.


Отправлено JPEG 15-09-2017 в 08:00:

Цитата:
Ku2zoff писал:
semerjon тогда будет выглядеть хорошо.

пока в этих объектах не появятся npc) Вот на скрине отчётливо видно, что на стульях сидят будто бы 12-летние дети. С эти можно только свыкнуться и забить

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Ku2zoff 15-09-2017 в 11:43:

Yo Den а мне норм. Есть конечно диспропорция, но сильно заметна она лишь на статических картинках. Играя в Паранойю, я вообще не обращал на это внимания, даже в глаза не бросалось.


Отправлено Дядя Миша 15-09-2017 в 18:11:

Цитата:
Yo Den писал:
что на стульях сидят будто бы 12-летние дети

так это модельки такие. Ну не 12-летние, а 17-летние.
Всякое бывает. Иной и в 12 лет может под два метра вымахать, а ума-то нет.

__________________
My Projects: download page

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

Цитата:

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


Отправлено JPEG 15-09-2017 в 18:43:

Цитата:
Дядя Миша писал:
так это модельки такие. Ну не 12-летние, а 17-летние.
Всякое бывает. Иной и в 12 лет может под два метра вымахать, а ума-то нет.

ну, с такими книжищами, которые на полках сзади них лежат, можно за них не беспокоиться

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено Smykov 16-09-2017 в 12:12:

Возможно, немного туго объясню вопрос.
Допустим, задача создать локацию в виде куба. Для этого мы 6 раз создаем браш и внутри локации нашей локации будет сущность игрока. По сути, для нашего персонажа требуется 6 полигонов от всех этих 6 брашей. Вопрос. Что происходит с полигонами брашей, которые не попадают в обзор игрока? А ведь, даже если с помощью noclip выйти за пределы куба, то мы не будем видеть эти стороны прямоугольников, а будем видеть нашу локацию(то что внутри куба).
И ещё, чтобы бы если был инструмент создания плоскости (plane из 3ds), а не box'ы "вытягивать". Я понимаю, что если создать браш размера нашей локации, и внутрь браша вставить сущность игрока, то, точно не помню, игрок при спавне в нём застрянет и вроде звуки воды ещё будут. Но я к тому, что если создавать 6 брашей, то будут лишние полигоны, которые игрок не сможет видеть и займут лишнюю память.
Думаю вы поняли, что я хотел сказать. Хотя личные догадки тоже есть, возможно компилятор предусматривает, что не будет попадать в обзор и отсекает лишнее.


Отправлено Дядя Миша 16-09-2017 в 15:49:

Цитата:
Yo Den писал:
ну, с такими книжищами

Книга - источник знаний

__________________
My Projects: download page

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

Цитата:

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


Отправлено Eternal12 16-09-2017 в 17:52:

Появилась идея сделать мирную зону. Заметил что func_water имеет на несколько видов оружия действие как запрет выстрела в воде (например mp5).

void CMP5::PrimaryAttack()
{
// don't fire underwater
if (m_pPlayer->pev->waterlevel == 3)

Следовательно подскажите в какую сторону копать либо делать новую копию func_water и вырезать от туда все лишнее что бы было как не в водной среде. Либо копать в сторону функции waterlevel == 3. Выслушаю все мнения по этому поводу.


Отправлено Smykov 16-09-2017 в 19:27:

Eternal12, думаю можно попробовать сделать что-то наподобие func_buyzone из кс, или хотя бы зоны для спасения заложников(func_ не знаю название). только не знаю, как бы дополнить pev каким-нибудь int peacezone. типо waterlevel - переменная, хранящая значение находимся ли мы в воде, а peacezone - находимся ли мы в мирной зоне.
Если всё это сделать, тогда думаю можно просто дополнить функцию ItemPostFrame класса CBasePlayerWeapon проверкой значения peacezone.

if ( (m_pPlayer->pev->peacezone==0) (m_pPlayer->pev->button & IN_ATTACK2) && CanAttack( m_flNextSecondaryAttack, gpGlobals->time, UseDecrement() ) )
{
if ( pszAmmo2() && !m_pPlayer->m_rgAmmo[SecondaryAmmoIndex()] )
{
m_fFireOnEmpty = TRUE;
}

m_pPlayer->TabulateAmmo();
SecondaryAttack();
m_pPlayer->pev->button &= ~IN_ATTACK2;
}
else if ( (m_pPlayer->pev->peacezone==0) (m_pPlayer->pev->button & IN_ATTACK) && CanAttack( m_flNextPrimaryAttack, gpGlobals->time, UseDecrement() ) )
{
if ( (m_iClip == 0 && pszAmmo1()) || (iMaxClip() == -1 && !m_pPlayer->m_rgAmmo[PrimaryAmmoIndex()] ) )
{
m_fFireOnEmpty = TRUE;
}

m_pPlayer->TabulateAmmo();
PrimaryAttack();
}

Или же просто, блок проверяющий нажатие клавиш огня заключить в условие.


Отправлено Eternal12 18-09-2017 в 03:59:

Цитата:
semerjon писал:
Eternal12, думаю можно попробовать сделать что-то наподобие func_buyzone из кс, или хотя бы зоны для спасения заложников(func_ не знаю название). только не знаю, как бы дополнить pev каким-нибудь int peacezone. типо waterlevel - переменная, хранящая значение находимся ли мы в воде, а peacezone - находимся ли мы в мирной зоне.
Если всё это сделать, тогда думаю можно просто дополнить функцию ItemPostFrame класса CBasePlayerWeapon проверкой значения peacezone.

if ( (m_pPlayer->pev->peacezone==0) (m_pPlayer->pev->button & IN_ATTACK2) && CanAttack( m_flNextSecondaryAttack, gpGlobals->time, UseDecrement() ) )
{
if ( pszAmmo2() && !m_pPlayer->m_rgAmmo[SecondaryAmmoIndex()] )
{
m_fFireOnEmpty = TRUE;
}

m_pPlayer->TabulateAmmo();
SecondaryAttack();
m_pPlayer->pev->button &= ~IN_ATTACK2;
}
else if ( (m_pPlayer->pev->peacezone==0) (m_pPlayer->pev->button & IN_ATTACK) && CanAttack( m_flNextPrimaryAttack, gpGlobals->time, UseDecrement() ) )
{
if ( (m_iClip == 0 && pszAmmo1()) || (iMaxClip() == -1 && !m_pPlayer->m_rgAmmo[PrimaryAmmoIndex()] ) )
{
m_fFireOnEmpty = TRUE;
}

m_pPlayer->TabulateAmmo();
PrimaryAttack();
}

Или же просто, блок проверяющий нажатие клавиш огня заключить в условие.


http://articles.thewavelength.net/237/
нашёл тутор только связанный с jail.

(Теперь я добавил boolean для CBasePlayer для серверной DLL, чтобы ссылаться, если игрок находится в тюрьме или нет.
КОД

bool m_bInJail; )

не знаю куда добавить bool m_bInJail;
А так же не могу в Player.cpp найти PlayerPrethink


Отправлено Smykov 18-09-2017 в 20:45:

Eternal12
Похоже, нужно просто дополнить сам класс CBasePlayer свойством bool m_bInJail(файл Player.h). И по поводу PlayerPrethink, может в других версиях как-то по другому, но у меня PreThink. Чтобы лучше ориентироваться пользуйся окном классов. Сразу открываешь hldll - CBasePlayer - PreThink.


Отправлено Eternal12 19-09-2017 в 03:54:

Цитата:
semerjon писал:
Eternal12
Похоже, нужно просто дополнить сам класс CBasePlayer свойством bool m_bInJail(файл Player.h). И по поводу PlayerPrethink, может в других версиях как-то по другому, но у меня PreThink. Чтобы лучше ориентироваться пользуйся окном классов. Сразу открываешь hldll - CBasePlayer - PreThink.


Угу спасибо теперь разобрался, перепутал исходники когда то их испортил и не удалил и там в нём искал того что удалено было.


Отправлено Ku2zoff 19-09-2017 в 11:32:

Задача такая: есть функ_валл, который должен быть несолиден только для игрока. То есть игнорить его должна только трасса в pm_shared. Все прочие должны в него упираться, чтобы оставались декали, взрывались гранаты, не могли пройти монстры. Как это сделать? Копал в сторону PM_PlayerTrace, там последним аргументом принимается int, который видимо индекс игнорируемой энтити. Но это не индекс. Что это, и в правильном ли направлении я вообще думаю?

Добавлено 19-09-2017 в 18:32:

Думал не туда UTIL_SetGroupTrace помогает решить задачу.


Временная зона GMT. Текущее время 17:10. Страницы (268): « Первая ... « 75 76 77 78 [79] 80 81 82 83 » ... Последняя »
Показать все 4007 сообщений этой темы на одной странице

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