HLFX.Ru Forum Страницы (5): [1] 2 3 4 5 »
Показать все 70 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нуб вопросы Superuser8 (https://hlfx.ru/forum/showthread.php?threadid=4561)


Отправлено Superuser8 17-03-2015 в 11:49:

Хитрота Нуб вопросы Superuser8

Приветствую уважаемые форумчане! Завёл эту тему вот с какой целью, объяснить некоторые непонятные для меня моменты в SDK 2.3
Буду спрашивать здесь, по мере накопления этих самых вопросов.

Начну пожалуй. Кто расскажет для чего служат файлы genericmonster.cpp и playermonster.cpp?


Отправлено JPEG 17-03-2015 в 12:33:

Цитата:
Superuser8 писал:
genericmonster.cpp

ну там же написано, что это энтити monster_generic

Добавлено 17-03-2015 в 15:33:

"playermonster.cpp" походу для вырезанной уже энтити, которая могла использоваться в скриптовых сценах, но не использовалась - модель игрока за всю игру мы не видим

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


Отправлено Superuser8 17-03-2015 в 13:09:

Yo Den благодарю)
Покопавшись, нашёл несколько файлов ненужных для компиляции

AI_BaseNPC_Schedule.cpp - што это, я так и не понял
bloater.cpp - монстрик из беты, недоделан
h_cine.cpp - тоже наследие из беты
squad.h - не понял для чего
tempmonster.cpp - заготовка для монстра

У себя ещё вырезал airtank за не надобностью.

P.S интересует энтитя world_items


Отправлено JPEG 17-03-2015 в 13:50:

"squad.h" не используется никак
world_items http://twhl.info/wiki.php?id=211 позволяет добавить костюм, антидот, батарею для хэва и секьюрити кард, но для них обычно используют энтити item_

Добавлено 17-03-2015 в 16:50:

тут есть чуть про AI_BaseNPC_Schedule.cpp http://ralertmod.narod.ru/hlra-articles-tasks.htm

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


Отправлено Superuser8 17-03-2015 в 14:33:

Хмм, интересно...
Опытным путём было установлено что world_items всё-таки используется в оригинальном hl. Причём как-то хаотично, на стандартных картах встречается и item_battery ( к примеру ) и world_items с type 44

Вот список карт на которых присутствует данная энтити ( в основном это батарейки )
c1a0d - на этой карте мы берём костюм, костюм к слову выставлен тоже через world_items с type 45 ( вот почему он пропал когда я попытался вырезать эту энтити из кода )
c1a1
c1a1a
c1a2a
c1a2c
c2a5
c2a5b
c3a2d
t0a0b
t0a0b1

P.S на карте c2a1a тоже имеется world_items, правда тип выставлен в значение 36.
В коде ничего подобного нет


Отправлено JPEG 17-03-2015 в 14:40:

антидод 42,
секьюрити кард 43,
костюм 44,
батарея 45,
больше в хл нет. "Причём как-то хаотично, на стандартных картах встречается и item_battery ( к примеру ) и world_items с type 44" да потому что энтити item_ придумали позже, и поначалу всё выставляли в ворлд итем

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


Отправлено Superuser8 17-03-2015 в 14:44:

Yo Den спасибо за разъяснения)


Отправлено JPEG 17-03-2015 в 14:49:

c2a1a world_items 36 (синие квадраты), походу тут какие-нить патроны раньше размещались, но как-то слишком ровно уж

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


Отправлено KiQ 17-03-2015 в 15:03:

Superuser8 так ты подредактируй энтити в bspшках да и все

__________________
-Brain is dead-


Отправлено Superuser8 17-03-2015 в 15:04:

KiQ уже


Отправлено Superuser8 23-03-2015 в 17:53:

Экспериментирую с hud, интересует как сделан отступ цифр от иконки костюма
Например, числа отступают от иконки здоровья с помощью HealthWidth ( HealthWidth закомментирован )


И иконка брони


Вот вопрос, где редактируется этот же самый отступ цифр для иконки костюма?

Добавлено 23-03-2015 в 22:53:

И вообще может кто объяснить как рисовать иконку и сами цифры?


Отправлено Ku2zoff 23-03-2015 в 20:06:

Цитата:
Superuser8 писал:
И вообще может кто объяснить как рисовать иконку и сами цифры?

Для рисования иконки используется SPR_DrawAdditive, для рисования цифр HUD_DrawNumber. Отступ - координата x, что указывается в аргументах этих функций. Классический пример использования на пальцах:
1. Определяем x, к примеру, x = gHUD.m_iFontHeight (высота цифры). Получается, отступ от левого края экрана (переменная x) будет равен
gHUD.m_iFontHeight
2. Рисуем спрайт с помощью SPR_DrawAdditive.
3. Прибавляем к x ширину спрайта, т.е. gHUD.GetSpriteRect(указатель_на_спрайт).right - gHUD.GetSpriteRect(указатель_на_спрайт).left. Теперь x будет равен
gHUD.m_iFontHeight + (gHUD.GetSpriteRect(указатель_на_спрайт).right - gHUD.GetSpriteRect(указатель_на_спрайт).left)
4. Прибавляем к x отступ по нашему усмотрению. Сюда-то и пишешь либо нужное тебе число, либо значение, рассчитанное с учётом текущего разрешения (ScreenWidth(какая-то_цифра)). x будет равен
gHUD.m_iFontHeight + (gHUD.GetSpriteRect(указатель_на_спрайт).right - gHUD.GetSpriteRect(указатель_на_спрайт).left) + некое_таинственное_число.
5. Рисуем цифры с числом брони/здоровья.
...
6. Profit!!!


Отправлено Superuser8 23-03-2015 в 22:57:

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



Помогите, спасите

C++ Source Code:
1
y = ScreenHeight - gHUD.m_iFontHeight - gHUD.m_iFontHeight / 2;
2
x = ScreenWidth / 10;
3
 
4
SPR_Set(gHUD.GetSprite(m_HUD_cross), r, g, b);
5
SPR_DrawAdditive(0, x, y, &gHUD.GetSpriteRect(m_HUD_cross));
6
 
7
x += gHUD.GetSpriteRect(m_HUD_cross).right - gHUD.GetSpriteRect(m_HUD_cross).left;
8
x = gHUD.DrawHudNumber(x, y, DHN_3DIGITS | DHN_DRAWZERO, m_iHealth, r, g, b);


Отправлено ***FantoM*** 23-03-2015 в 23:12:

Цитата:
Superuser8 писал:
Но вот осталось только индикатор здоровья передвинуть ближе к краю экрана

что ты имеешь в виду
тебе надо сам индикатор передвинуть
или индикатор и иконку +


Отправлено Superuser8 23-03-2015 в 23:21:

***FantoM*** цифры вместе с иконкой здоровья


Временная зона GMT. Текущее время 08:18. Страницы (5): [1] 2 3 4 5 »
Показать все 70 сообщений этой темы на одной странице

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