![]() |
Показать все 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
Приветствую уважаемые форумчане! Завёл эту тему вот с какой целью, объяснить некоторые непонятные для меня моменты в SDK 2.3
Буду спрашивать здесь, по мере накопления этих самых вопросов.
Начну пожалуй. Кто расскажет для чего служат файлы genericmonster.cpp и playermonster.cpp?
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Yo Den благодарю)
Покопавшись, нашёл несколько файлов ненужных для компиляции
AI_BaseNPC_Schedule.cpp - што это, я так и не понял
bloater.cpp - монстрик из беты, недоделан
h_cine.cpp - тоже наследие из беты
squad.h - не понял для чего
tempmonster.cpp - заготовка для монстра
У себя ещё вырезал airtank за не надобностью.
P.S интересует энтитя world_items
"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
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Хмм, интересно...
Опытным путём было установлено что 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.
В коде ничего подобного нет
антидод 42,
секьюрити кард 43,
костюм 44,
батарея 45,
больше в хл нет. "Причём как-то хаотично, на стандартных картах встречается и item_battery ( к примеру ) и world_items с type 44" да потому что энтити item_ придумали позже, и поначалу всё выставляли в ворлд итем
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Yo Den спасибо за разъяснения)
c2a1a world_items 36 (синие квадраты), походу тут какие-нить патроны раньше размещались, но как-то слишком ровно уж
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Superuser8 так ты подредактируй энтити в bspшках да и все
__________________
-Brain is dead-
KiQ уже
Экспериментирую с hud, интересует как сделан отступ цифр от иконки костюма
Например, числа отступают от иконки здоровья с помощью HealthWidth ( HealthWidth закомментирован )
И иконка брони
Вот вопрос, где редактируется этот же самый отступ цифр для иконки костюма?
Добавлено 23-03-2015 в 22:53:
И вообще может кто объяснить как рисовать иконку и сами цифры?
Немного побыдлокодив, добился почти того, чего хотел. Но вот осталось только индикатор здоровья передвинуть ближе к краю экрана.
Помогите, спасите
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*** цифры вместе с иконкой здоровья
Superuser8
как было ?
Добавлено 24-03-2015 в 05:26:
если да то вот
if (gHUD.m_iWeaponBits & (1<<(WEAPON_SUIT)))
{
HealthWidth = gHUD.GetSpriteRect(gHUD.m_HUD_number_0).right - gHUD.GetSpriteRect(gHUD.m_HUD_number_0).left;
int CrossWidth = gHUD.GetSpriteRect(m_HUD_cross).right - gHUD.GetSpriteRect(m_HUD_cross).left;
y = ScreenHeight - gHUD.m_iFontHeight - gHUD.m_iFontHeight / 2;
x = CrossWidth /2;
SPR_Set(gHUD.GetSprite(m_HUD_cross), r, g, b);
SPR_DrawAdditive(0, x, y, &gHUD.GetSpriteRect(m_HUD_cross));
x = CrossWidth + HealthWidth / 2;
x = gHUD.DrawHudNumber(x, y, DHN_3DIGITS | DHN_DRAWZERO, m_iHealth, r, g, b);
x += HealthWidth/2;
int iHeight = gHUD.m_iFontHeight;
int iWidth = HealthWidth/10;
FillRGBA(x, y, iWidth, iHeight, 255, 160, 0, a);
}
***FantoM*** спасибо конечно, но оригиналы исходников есть и у меня
Меня больше интересуют ошибки в моём коде
Superuser8
сделай как в Paranoia
***FantoM*** что сделать?
броню и жизни как в Paranoia
***FantoM*** зачем мне делать броню и жизни как в Paranoia?
Меня стандартный hud устраивает
Почему hud на разных разрешениях ведёт себя по разному? И можно ли это исправить?
P.S на разрешении 640x480 элементы hud находятся в правильной позиции
Хочу чтобы и на остальных разрешениях было так же
Потому что спрайты не масштабируются под разрешение (ограничение софтварного рендера).
__________________
Ku2zoff
Вариант 2 легко распространяется на вариант 1 - вместо тга-картинок рисуем спрайты под каждое разрешение. И заодно с софтваром прекрасно совместимо.
А п.3 с софтваром не совместим категорически - там не работает триапи в 2д (столкнулся с этим, когда делал всплывающие цифры очков в хеткрап френзе).
__________________
XaeroX про спрайты для каждого разрешения правда не подумал...
А пункт 3 мне всё-таки более симпатичен. Я сам в софтваре не играю, и не думаю, что играющих в нём большой процент. В конце концов, можно для софтвара сделать хаки. Чтобы элементы не съезжали и не перекрывали друг друга.
Господа! Чем отличается такая конструкция
1 | switch ( RANDOM_LONG( 0, 1 ) ) |
2 | { |
3 | case 0: |
4 | iAnim = MP5_LONGIDLE; |
5 | break; |
6 |
7 | default: |
8 | case 1: |
9 | iAnim = MP5_IDLE1; |
10 | break; |
11 | } |
1 | if (flRand <= 0.5) |
2 | { |
3 | iAnim = PYTHON_IDLE1; |
4 | m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + (70.0/30.0); |
5 | } |
6 | else if (flRand <= 0.7) |
7 | { |
8 | iAnim = PYTHON_IDLE2; |
9 | m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + (60.0/30.0); |
10 | } |
11 | else if (flRand <= 0.9) |
12 | { |
13 | iAnim = PYTHON_IDLE3; |
14 | m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + (88.0/30.0); |
15 | } |
16 | else |
17 | { |
18 | iAnim = PYTHON_FIDGET; |
19 | m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + (170.0/30.0); |
20 | } |
Superuser8 во второй конструкции тупо больше анимаций. Первый вариант предпочтительнее, если выбор делается из 2-3х анимаций, а второй - когда из большего количества.
Superuser8 отличие в том, что в операторе switch может быть только целочисленное выражение, а во втором случае float.
__________________
Ku2zoff И чем же тонна if else`ов лучше switch case? Особенно в случаи рандома.
Люди, подскажите где находится физика халфовских партиклей и можно ли её использовать для поведения брошенного оружия?
Superuser8 где ты видел, чоб реальное оружие отскакивало как партикли?
__________________
-Brain is dead-
KiQ Это я в свенкупе подсмотрел, там выброшенное оружие может ложиться на неровную поверхность, и всякое такое
Отскоки можно ведь и не кодить
Superuser8 ну так просто бери angles с плейна под веапонбоксом
__________________
-Brain is dead-
Интересует вот это
1 | #define SUIT_REPEAT_OK 0 |
2 | #define SUIT_NEXT_IN_30SEC 30 |
3 | #define SUIT_NEXT_IN_1MIN 60 |
4 | #define SUIT_NEXT_IN_5MIN 300 |
5 | #define SUIT_NEXT_IN_10MIN 600 |
6 | #define SUIT_NEXT_IN_30MIN 1800 |
7 | #define SUIT_NEXT_IN_1HOUR 3600 |
Люди, поставил флаг ITEM_FLAG_SELECTONEMPTY веапону, но при выборе не показывается вьюмодель. По моему она где-то обнуляется но я не могу найти где именно ( нет проверки на этот флаг )
Выручайте
Ребят, помогите советом. Как можно избавиться от weaponbox?
То есть чтобы weaponbox не принимал модель оружия, но оружие выкидывалось именно как entity.
Можно даже на пальцах, а вообще приму любую помощь
Ну, годик это займёт. Если это всё делать прямо по-честному, то надо продумывать грамотный attach/detach для оружия, сохранение/восстановление параметров... Как это в ориг.хл сделать не помню.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Superuser8 а зачем? Что от этого изменится? Количество выбрасываемых патронов можно регулировать. Так же можно запретить паковать в weaponbox всё, кроме какого-то определённого оружия и его патронов. ЕМНИП, в кс выбрасывается weaponbox, а не энтитя оружия.
Можно переписать это с AMXX в твой мод для псевдо-физики оружий азаз
Ребят, помогите срезать клиентские пушки.
Ну прям полностью. Со всеми их UseDecrement, туалетами, вилками и etc...
Очень надо
Superuser8 Поиск рулит.
__________________
Base Defense on Steam, ModDB
PLut не не не. Я уже это давно сделал. Там на клиенте ещё нужно убрать файлы из папки hl, срезать все CLIENT_WEAPONS и может чего ещё о чём я не в курсе
Superuser8 Ну тогда опять поиск рулит, ищешь по файлам проекта всё связанное с клиентскими пушками и комментишь/удаляешь. Я, кстати, не так давно до конца вырезал их, ибо были траблы со временем в оружии, оно неправильно считалось по какой-то волшебной причине.
__________________
Base Defense on Steam, ModDB
PLut т.е для Base Defense вырезал? Траблов в мульте не было?
Я тут побаловался с опцией cl_lw, играл по сети в HL на лицензии.
Разницы вообще не заметно, правда при пинге ~100 мне показалось что попадать по врагам стало немного труднее
Superuser8 ну так убери дефайн CLIENT_WEAPONS из свойств обоих проектов. Удали папку hl из cl_dll. И всего делов. Для чистоты эксперимента можешь вырезать весь код, обёрнутый в #ifdef CLIENT_WEAPONS. Если правильно сделаешь, всё будет работать. Ну только эгон и гаусс не будут рисовать свои эффекты при cl_lw 1. Это уже код самих оружий надо ковырять. Смотри Дядь Мишин спирит.
Добавлено 22-07-2015 в 21:30:
Ku2zoff уже начал. Удалил папку hl, пофиксил пару ошибок. Ксаш не может прожевать клиент. Так что есть ещё чем заняться
Добавлено 22-07-2015 в 21:17:
Если всё получится, надо накатать тутор по этому делу
Superuser8 Лагов не было никаких, вот с клиентскими пушками были: стреляешь из мп5, пули вылетают, а анимация куда-то потерялась. Сейчас работает отлично, тестировал на серваке американском с 200 пингом, причем на той версии, что сейчас есть в доступе свободном, т.е. на старой, где еще много фиксов нет и работа с сетью ужасная, ибо было рассчитано на кооператив для двоих из одной страны с мощным интернетом. Даже с пингом 200 вполне реально играть, в будущем буду развивать серверы для бдефа. Следующий сервер вполне возможно будет в Польше, для европы, думаю, будет самое то.
Так что практика побеждает, а не теория. Клиентские пушки - неоправданная заморочка, на мой взгляд, более того, сделанная через одно место. Эффект с отключеным кваром и полным удалением этого хлама из кода несравним - для справки.
__________________
Base Defense on Steam, ModDB
PLut отлично! Спасибо за ответ)
Добавлено 22-07-2015 в 22:59:
Ах да, совем забыл...
В таком случае код пушек нужно переносить полностью в сервер?
Добавлено 23-07-2015 в 02:50:
В общем получилось, почти закончил.
Правда не знаю что делать с эвентами ( PLAYBACK_EVENT_FULL )
Их тоже нужно вырезать?
Ku2zoff короче сейчас я сделал так:
Удалил вот это из всех оружий
1 | int flags; |
2 | #if defined( CLIENT_WEAPONS ) |
3 | flags = FEV_NOTHOST; |
4 | #else |
5 | flags = 0; |
6 | #endif |
PLAYBACK_EVENT_FULL( FEV_NOTHOST | FEV_RELIABLE, m_pPlayer->edict(), m_usGaussFire, 0.01, (float *)&m_pPlayer->pev->origin, (float *)&m_pPlayer->pev->angles, 0.0, 0.0, 0, 0, 0, 1 ); |
У меня с этими эвентами и клиентскими пушками мерзкая запара вышла. Если игрок не локальный, то есть рассинхрон в проигрывании звуков и анимаций чейнгана. Начинает проигрываться клиентский эвент, а через долю секунды серверный. Флаг FEV_NOTHOST вообще приводит к непроигрыванию эвентов у локального игрока время от времени, хотя клиентские пушки активны. Пока не придумал как это забороть. Ещё с монтировкой проблема: на клиенте нужно зеркало FindHullIntersection и рассчёта попадания/промаха. На сервере мы попадаем по стенке, а на клиенте нет. В спиритах 1.7 и 1.9 такая проблема. Тоже пока не решил её.
Добавлено 23-07-2015 в 04:12:
Ku2zoff не знаю в тему будет или нет, но тут есть клиентский FindHullIntersection
http://half-life.ru/forum/showthread.php?threadid=7428
Ku2zoff а на клиенте стёкла/ящики/монстры хорошо трейсятся? (у меня пока нет клиентских пушек т.к. меня взбесил хак с weapondata_s.. или clientdata_s.. и лучами пылесоса... и пока не стал делать, но план был)
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Я бы не стал. Ведь понадобятся звуки материалов, которые на клиенте просто не существуют (я не про текстуры)...
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Если выпилить предсказание, то это по ходу будет неприятно играть с пингом 150-200.
ILZM Даже если предсказание не выпиливать, играть с пингом 150-200 не особо приятно. Более того, выпилен предикт пушек, а не игрока.
__________________
Base Defense on Steam, ModDB
Мне вот интересно. Если убрать предсказание и с сервера отправлять сообщение для эффектов попадания и для анимации оружия, то будет ли overflow? Ну там 32 игрока в одном месте, у которых PVS одинаковый, выстрелили.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Не вырезал. Они не работают так как это сделано в ХЛ. Но всё к тому идёт. Ну очень уж не хочется делать хак с лучами пылесоурса.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Так режь уже эту мразоту!!! Тогда и появится шанс на 60 оружий...
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] что ты такой сердитый человек-то? Сердиться будешь - себе дороже...
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Я по делу сержусь.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Нет. Тебе просто нужно научиться пользоваться годным компилятором и бугет от клиентских пушек пропадёт.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Временная зона GMT. Текущее время 02:29. | Показать все 70 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024