HLFX.Ru Forum
Показать все 12 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Gauss (https://hlfx.ru/forum/showthread.php?threadid=1196)


Отправлено Brainiac2008 14-03-2008 в 14:11:

Gauss

Можно ли сделать так, чтобы лучи гаусса не кончали игрока самоубийством? (для синглплеера)


Отправлено Ku2zoff 14-03-2008 в 14:24:

Brainiac2008 ты имеешь ввиду отражение луча от стенки на 90 градусов прямо в игрока? В принципе можно вообще убрать отражение лучей.

C++ Source Code:
1
if ( pEntity->ReflectGauss() )
2
{
3
  float n;
4
 
5
  pentIgnore = NULL;
6
 
7
  n = -DotProduct(tr.vecPlaneNormal, vecDir);
8
 
9
  if (n < 0.5) // 60 degrees //условие отражения лучей, если его убрать они не отражаются от стен
10
  {
11
    // ALERT( at_console, "reflect %f\n", n );
12
    // reflect
13
    Vector r;
14
 
15
    r = 2.0 * tr.vecPlaneNormal * n + vecDir;
16
    flMaxFrac = flMaxFrac - tr.flFraction;
17
    vecDir = r;
18
    vecSrc = tr.vecEndPos + vecDir * 8;
19
    vecDest = vecSrc + vecDir * 8192;
20
 
21
    // explode a bit
22
    m_pPlayer->RadiusDamage( tr.vecEndPos, pev, m_pPlayer->pev, flDamage * n, CLASS_NONE, DMG_BLAST );
23
 
24
    nTotal += 34;
25
 
26
    // lose energy
27
    if (n == 0) n = 0.1;
28
    flDamage = flDamage * (1 - n);
29
  }
30
  else
31
  {
32
 


Отправлено Brainiac2008 14-03-2008 в 20:51:

А сквозь стены они проникать всё-равно будут? (хочу эту возможность оставить)
И вообще, что с этими строками делать надо, удалять вообще, или что? Что конкретно удалить?


Отправлено Brainiac2008 16-03-2008 в 14:12:

Удалил все эти строки, не помогло, всё-равно убивает.


Отправлено XaeroX 16-03-2008 в 14:48:

Brainiac2008 если ты удалил все эти строки, то дллка у тебя как минимум не скомпилится. Так что говорить "не помогло" не стоит

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!


Отправлено Brainiac2008 16-03-2008 в 15:49:

Всё нормально скомпилилось, 0 ошибок.


Отправлено Brainiac2008 17-03-2008 в 08:30:

так что мне делать с этим кодом, если не удалять?


Отправлено Brainiac2008 18-03-2008 в 08:17:

К черту вас, буду методом тыка подбирать.


Отправлено Scrama 18-03-2008 в 11:09:

Brainiac2008 Надо было удалить кусок, начинающийся с if (n < 0.5) и заканчивающийся соответсвующей скобкой }
Но, имхо, надо проверять в TakeDamage (или как оно там называется) не сам ли себя игрок фигачит, а не отражение удалять.

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Brainiac2008 18-03-2008 в 11:37:

Удалил как ты сказал.
error C2181: illegal else without matching if
Error executing cl.exe.


Отправлено Ku2zoff 18-03-2008 в 11:42:

Brainiac2008 удаляешь else и скобку за ним, и закрывающую скобку внизу.

>>error C2181: illegal else without matching if

Сначала хоть чуть-чуть выучи синтаксис c++ а потом уже ищи ошибки


Отправлено Brainiac2008 18-03-2008 в 11:58:

Ух! Замечательно!
Ku2zoff
Спасибо!


Временная зона GMT. Текущее время 23:37.
Показать все 12 сообщений этой темы на одной странице

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