Страницы (2): [1] 2 » Показать все 19 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- как сделать взрывной арбалет ? (https://hlfx.ru/forum/showthread.php?threadid=5474)
как сделать взрывной арбалет ?
решил я немного изменить арбалет сделать его взрывным в одиночной игре
получилось но появилась проблема.В мультиплеере после попадания в тело они взрываются а в одиночной они взрываются только в сене после попадания в тело монстра стрелы не взрываются как сделать наоборот чтобы они взрывались ?
__________________
илья
Re: как сделать взрывной арбалет ?
__________________
илья
илья2 выкинь из BoltTouch весь код, кроме вызова ExplodeThink. Там есть условие if (pOther->pev->takedamage), а внутри него ещё условие if ( !g_pGameRules->IsMultiplayer() ). Так вот. Если объект, которого касается болт, может получать урон (первое условие), то болт "убивается" без вызова взрыва, если режим игры одиночный (второе условие). В мультиплеере болт "убивается" через взрыв, а в сингле вот тем вторым условием, чтоб в воздухе не висел.
спасибо помогло ты крут.И ещё кое что как изменить скорость выстрела стрелы при прицеливании чтобы как в мультиплеере было ?
__________________
илья
илья2 чтобы стрела мгновенно долетала? Ищи второе условие g_pGameRules->IsMultiplayer(). Там есть выбор, как стрелять. Только взрываться болты не будут.
блин а мне надо чтобы они взрывались
Добавлено 03-04-2020 в 12:22:
проверил ну как ты и говорил не взрываются
__________________
илья
илья2 при мгновенном долёте вообще болт не выстреливается. Делается обычная TraceAttack, типа как при выстреле. А в точке попадания создаётся на стороне клиента темпэнтитя с моделью болта + искры. Создай в точке попадания взрыв, а клиентскую часть с имитацией воткнутого в стену болта убери.
поподробнее можно
Добавлено 03-04-2020 в 12:36:
А в точке попадания а где эта точка попадания
__________________
илья
илья2 весь код за тебя писать не буду, накидаю примерно серверную часть со взрывом. Клиентскую сам отредактируешь.
void CCrossbow::FireSniperBolt(), там есть условие #ifndef CLIENT_DLL. Замени содержимое условия на это:
1 | if (tr.flFraction < 1.0) |
2 | { |
3 | Vector vecEnd = tr.vecEndPos + tr.vecPlaneNormal * 8; |
4 |
5 | int iContents = UTIL_PointContents(vecEnd); |
6 | int iScale = 10; |
7 |
8 | MESSAGE_BEGIN(MSG_PVS, SVC_TEMPENTITY, vecEnd); |
9 | WRITE_BYTE(TE_EXPLOSION); |
10 | WRITE_COORD(vecEnd.x); |
11 | WRITE_COORD(vecEnd.y); |
12 | WRITE_COORD(vecEnd.z); |
13 | if (iContents != CONTENTS_WATER) |
14 | { |
15 | WRITE_SHORT(g_sModelIndexFireball); |
16 | } |
17 | else |
18 | { |
19 | WRITE_SHORT(g_sModelIndexWExplosion); |
20 | } |
21 | WRITE_BYTE(iScale); // scale * 10 |
22 | WRITE_BYTE(15); // framerate |
23 | WRITE_BYTE(TE_EXPLFLAG_NONE); |
24 | MESSAGE_END(); |
25 |
26 | ::RadiusDamage(vecEnd, pev, m_pPlayer->pev, pev->dmg, 128, CLASS_NONE, DMG_BLAST | DMG_ALWAYSGIB); |
27 | } |
круто помогло
Добавлено 03-04-2020 в 12:57:
было бы прикольно добавить взрывной лук как из фильма рембо и крутую модель вставить
Добавлено 03-04-2020 в 12:58:
ну это я так фантазия разыгралась
Добавлено 03-04-2020 в 13:03:
если ещё чтонибуть нужно я приду еще раз.
__________________
илья
да спасибо почитаю
Добавлено 03-04-2020 в 17:45:
можно я тебе ёще один вопрос спрошу а что это за функция ?
if ( !g_pGameRules->IsMultiplayer() )
{
Killed( pev, GIB_NEVER );
}
__________________
илья
g_pGameRules->IsMultiplayer(), говоря простым языком это переменная. Когда она равна 1, то в игре мультиплеер. Когда равна 0, тогда в игре сингл. Восклицательный знак означает логическое отрицание. g_pGameRules->IsMultiplayer() - это мультиплеер. !g_pGameRules->IsMultiplayer() - это ЕСЛИ НЕ мультиплеер. Давай-ка подучи азы языка Си. Выглядеть все эти условия, сравнения и приведения переменных могут по-разному, но базовый набор знаков, которые участвуют в логических операциях везде один. Ну и документацию и туторы по халфе тоже стоит подучить, если хочешь сам писать взрывные луки, не прося ни у кого подсказки.
Добавлено 03-04-2020 в 22:38:
а если мультиплеер арбалетный болт появляется да
Добавлено 03-04-2020 в 19:03:
да ты прав но ты не думаешь что эта функция какета не нужная в этой пушке
Добавлено 03-04-2020 в 20:58:
pev->dmg,-что ж ты здесь дамаг та не поставил забыл
надо было так pev->dmg = 40,
а то сижу мучаюсь блин.
__________________
илья
Временная зона GMT. Текущее время 18:12. | Страницы (2): [1] 2 » Показать все 19 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024