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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Обсуждаем исходники различных модов Half-Life (https://hlfx.ru/forum/showthread.php?threadid=1669)


Отправлено fire64 04-01-2009 в 16:24:

Drakulla, у меня их 4 варианта из разных модов
если надо могу выложить

так же могу выложить 2 разных кода физической веревки и других энтить, npc и weapon из опфора

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Ku2zoff 04-01-2009 в 16:26:

fire64 стой, стой, а где ты выкопал физ верёвку? Она нормальная или просто висит неподвижно?


Отправлено fire64 04-01-2009 в 16:57:

я сам этот код не тестил, поэтому не могу сказать работает он или нет, впрочем смотри сам

код взят из raven_sourcev1.0

объявление класса

C++ Source Code:
1
//=======================
2
// Opposing Force Rope
3
//=======================
4
class CRope : public CBaseToggle
5
{
6
public:
7
  void Spawn( void );
8
  void KeyValue( KeyValueData *pkvd );
9
  void Precache ( void );
10
  void Initialize ( void );
11
 
12
  int m_iSegments;
13
  BOOL m_fDisabled;
14
  Vector vecAngles;
15
 
16
  string_t m_EndingModel;
17
  string_t m_BodyModel;
18
};
19
//=======================
20
// Opposing Force Rope Segment
21
//=======================
22
class CRopeSample : public CBaseToggle
23
{
24
public:
25
  void Spawn ( void );
26
  void Precache ( void );
27
  void GetAttachment ( int iAttachment, Vector &origin, Vector &angles );
28
  void CreateSample ( void );
29
  void Initialize ( void );
30
  void EXPORT RopeTouch ( CBaseEntity *pOther );
31
  void EXPORT RopeThink ( void );
32
 
33
  int m_iSegments;
34
  BOOL m_fFirstSegment;
35
  BOOL m_fDisabled;
36
  BOOL m_fElectrified;
37
  string_t m_Model;
38
  string_t m_EndingModel;
39
 
40
public:
41
  static CRopeSample *CreateSample( Vector vecOrigin, Vector vecAngles, string_t m_BodyModel, string_t m_EndingModel, BOOL m_fDisabled, int m_iSegments, BOOL m_fElectrified, CBaseEntity *pOwner );
42
};


сам код
C++ Source Code:
1
//=======================
2
// Opposing Force Rope
3
//=======================
4
 
5
LINK_ENTITY_TO_CLASS( env_rope, CRope );
6
void CRope :: Spawn ( void )
7
{
8
  pev->effects |= EF_NODRAW;
9
  Precache();
10
  Initialize();
11
}
12
void CRope :: Precache ( void )
13
{
14
  //PRECACHE_MODEL( (char *)STRING(m_BodyModel) );
15
  //PRECACHE_MODEL( (char *)STRING(m_EndingModel) );
16
  PRECACHE_MODEL( "models/wire_blue8.mdl" );
17
  PRECACHE_MODEL( "models/wire_copper16.mdl" );
18
}
19
void CRope :: KeyValue( KeyValueData *pkvd )
20
{
21
  if (FStrEq(pkvd->szKeyName, "segments"))
22
  {
23
    m_iSegments = atoi(pkvd->szValue);
24
    pkvd->fHandled = TRUE;
25
  }
26
  if (FStrEq(pkvd->szKeyName, "bodymodel"))
27
  {
28
    m_BodyModel = atoi(pkvd->szValue);
29
    pkvd->fHandled = TRUE;
30
  }
31
  else if (FStrEq(pkvd->szKeyName, "endingmodel"))
32
  {
33
    m_EndingModel = atoi(pkvd->szValue);
34
    pkvd->fHandled = TRUE;
35
  }
36
  else if (FStrEq(pkvd->szKeyName, "disable"))
37
  {
38
    m_fDisabled = atoi(pkvd->szValue);
39
    pkvd->fHandled = TRUE;
40
  }
41
  else
42
    CBaseEntity::KeyValue( pkvd );
43
}
44
void CRope :: Initialize ( void )
45
{
46
  vecAngles.z = 270;
47
  BOOL m_fElectrified = FALSE;
48
  CRopeSample *pSegment = CRopeSample::CreateSample( pev->origin, vecAngles, m_BodyModel,  m_EndingModel, m_fDisabled, m_iSegments, m_fElectrified, this );
49
}
50
//=======================
51
// Opposing Force Rope Sample
52
//=======================
53
CRopeSample *CRopeSample::CreateSample( Vector vecOrigin, Vector vecAngles, string_t m_BodyModel, string_t m_EndingModel, BOOL m_fDisabled, int m_iSegments, BOOL m_fElectrified, CBaseEntity *pOwner )
54
{
55
  CRopeSample *pSegment = GetClassPtr( (CRopeSample *)NULL );
56
 
57
  UTIL_SetOrigin( pSegment->pev, vecOrigin );
58
  pSegment->pev->angles = vecAngles;
59
  pSegment->pev->owner = pOwner->edict();
60
  pSegment->m_Model = m_BodyModel;
61
  pSegment->m_EndingModel = m_EndingModel;
62
  pSegment->m_iSegments = m_iSegments;
63
  pSegment->m_fDisabled = m_fDisabled;
64
  pSegment->m_fElectrified = m_fElectrified;
65
  pSegment->m_iSegments = m_iSegments;
66
  pSegment->Spawn();
67
 
68
  return pSegment;
69
}
70
void CRopeSample :: Spawn ( void )
71
{
72
  Precache();
73
  Initialize();
74
  pev->movetype = MOVETYPE_PUSH;
75
  pev->solid = SOLID_BBOX;
76
  pev->gravity = 1;
77
 
78
  //if ( m_iSegments == 0 )
79
    //	SET_MODEL(ENT(pev), STRING( m_EndingModel ));
80
  //else
81
    //	SET_MODEL(ENT(pev), STRING( m_Model ));
82
 
83
  if ( m_iSegments == 0 )
84
    SET_MODEL(ENT(pev), "models/wire_copper16.mdl");
85
  else
86
    SET_MODEL(ENT(pev), "models/wire_blue8.mdl");
87
 
88
  SetTouch ( RopeTouch );
89
 
90
  UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0));
91
  if (m_iSegments != 0)
92
  {
93
    CreateSample();
94
  }
95
  else
96
  {
97
    SetThink ( RopeThink );
98
    pev->nextthink = gpGlobals->time + 0.1;
99
  }
100
}
101
void CRopeSample :: Initialize ( void )
102
{
103
}
104
void CRopeSample :: RopeTouch ( CBaseEntity *pOther )
105
{
106
  Vector vecEnd, vecSrc, vecAngles;
107
  TraceResult		tr1;
108
 
109
  if ( pOther->IsPlayer() )
110
  {
111
    GET_ATTACHMENT( ENT(pev), 0, vecEnd, NULL );
112
    UTIL_TraceLine( vecSrc, vecEnd, ignore_monsters, ENT(pev), &tr1 );
113
 
114
    pOther->pev->flags = PFLAG_ON_ROPE;
115
  }
116
  else
117
  {
118
    GET_ATTACHMENT( ENT(pev), 0, vecEnd, NULL );
119
    UTIL_TraceLine( vecSrc, vecSrc + vecEnd, ignore_monsters, ENT(pev), &tr1 );
120
  }
121
}
122
void CRopeSample :: RopeThink ( void )
123
{
124
  Vector vecSrc, vecAngles;
125
  entvars_t *pevOwner = VARS( pev->owner );
126
  if ( pevOwner )
127
  {
128
    if ( FClassnameIs( pevOwner, "env_rope" ) )
129
    {
130
      pev->origin = pevOwner->origin;
131
    }
132
    else
133
    {
134
      GET_ATTACHMENT( ENT(pevOwner), 0, vecSrc, NULL );
135
      pev->origin = vecSrc;
136
 
137
      pev->nextthink = gpGlobals->time + 0.1;
138
    }
139
  }
140
}
141
void CRopeSample :: Precache ( void )
142
{
143
  PRECACHE_SOUND( "items/rope1.wav" );
144
  PRECACHE_SOUND( "items/rope2.wav" );
145
  PRECACHE_SOUND( "items/rope3.wav" );
146
 
147
  PRECACHE_MODEL("sprites/xflare1.spr");
148
 
149
  PRECACHE_SOUND( "items/grab_rope.wav" );
150
 
151
  //PRECACHE_MODEL( (char *)STRING(m_Model) );
152
  //PRECACHE_MODEL( (char *)STRING(m_EndingModel) );
153
 
154
  PRECACHE_MODEL( "models/wire_copper16.mdl" );
155
  PRECACHE_MODEL( "models/wire_blue8.mdl" );
156
}
157
void CRopeSample :: GetAttachment ( int iAttachment, Vector &origin, Vector &angles )
158
{
159
  GET_ATTACHMENT( ENT(pev), iAttachment, origin, angles );
160
}
161
void CRopeSample :: CreateSample( void )
162
{
163
  Vector vecSrc, vecAngles;
164
  m_iSegments --;
165
 
166
  GetAttachment ( 0, vecSrc, vecAngles );
167
  vecAngles.z = 270;
168
  CRopeSample *pSegment = CRopeSample::CreateSample( vecSrc, vecAngles, m_Model, m_EndingModel, m_fDisabled, m_iSegments, m_fElectrified, this );
169
 
170
  SetThink ( RopeThink );
171
  pev->nextthink = gpGlobals->time + 0.1;
172
}
173
LINK_ENTITY_TO_CLASS( rope_sample, CRopeSample );
174
 


вроде бы где-то валялся код еще одной веревки

надеюсь злые админы мне балы за оффтоп не поставят

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 04-01-2009 в 18:43:

PFLAG_ON_ROPE - вот это самое интересное.
Полные сорцы выложить можешь? И заодно - откуда они все-таки взялись?

__________________

xaerox on Vivino


Отправлено fire64 04-01-2009 в 19:17:

player.h

#define PFLAG_OBSERVER ( 1<<5 ) // player is locked in stationary cam mode. Spectators can move, observers can't.
#define PFLAG_ON_ROPE ( 1<<6 ) //Added Physics flag for grapple



исходный код мода Raven City залил сюда

http://upload.com.ua/link/900628602/

зеркало
http://files.filefront.com/Raven+Ci...;/fileinfo.html

вот небольшой список опфоровских энтитей

monster_zombie_soldier
monster_zombie_barney
weapon_pipewrench ( есть обе атаки )
weapon_sporelauncher
ammo_762
weapon_sniperrifle
weapon_shockrifle
monster_otis
game_timer
trigger_playerfreeze
info_savetitle
rope_sample
env_rope
weapon_knife
monster_human_medic_ally - медик нормально лечит
monster_gonome

и другие


там вроде еще stencil тени, MotionBlur и еше какие-то opengl эффекты.

еще добавлены cg шейдеры и партикл система

я подробно код не изучал, а потому не могу сказать что еще они меняли в коде

кстати там солюшены под 2005 студию

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 04-01-2009 в 19:59:

Посмотрел сорцы. Обычная сборная солянка из разнообразных спецэффектов. Я там даже свой cvaLib нашел, правда они его не заюзали. Видимо, утянули из Ксаша, а потом забыли, зачем
А веревка там, судя по всему, не работает. Так, не понту для, а в.. ради написали этот код.

__________________

xaerox on Vivino


Отправлено Ku2zoff 04-01-2009 в 20:29:

Цитата:
XaeroX писал:
Посмотрел сорцы. Обычная сборная солянка из разнообразных спецэффектов. Я там даже свой cvaLib нашел, правда они его не заюзали. Видимо, утянули из Ксаша, а потом забыли, зачем


Почти один в один с комментарием про Arrange Mode
Щас поглядим так ли всё скверно...


Отправлено XaeroX 04-01-2009 в 20:36:

Ku2zoff ну видимо и сами сорцы - копипаста с Арранжмода

__________________

xaerox on Vivino


Отправлено Ku2zoff 04-01-2009 в 20:55:

XaeroX насколько я помню в Арранжмоде "опенгыэльные риокеновские верёвки" которые нифига не работают, а тут серверная. И она не похожа на тот код, что когда-то показывал тов. ТоММиК.

1. Итак, сразу же нашёл в клиенте незнакомый мне код блюра.
2. Выдранная из Паранойи загрузка Crash Dump или как его там...
3. Код для работы с бсп файлами, ооочень похож на gl_quake.cpp из П.
4. Lensflare, надеюсь работает, самому писать лень
5. Проверка фрустума из П.
6. Тени от БУзера.
7. Загрузчик текстур из тутора по шейдерной воде(не помню чьего) - значит за модом волочится devil.dll
8. Дождик БУзера.
9. ВГУИ титры из П.
...
10. Новые зомби сделаны копипастом старых файлов. ИМХО наследование классов рулит.


Отправлено fire64 04-01-2009 в 21:03:

кстати если кому интересно вот еще код, с npc из op4

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

http://www.moddb.com/mods/zombie-x-...a6-last-version

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено FreeSlave 04-01-2009 в 21:34:

нужно бы все сорцы опфора собрать, проверить и куда-нибудь выложить Кстати гоном, который лежал на сайте OpforSDK имеет пару багов, но рабочий. Других монстров ещё не проверял.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Ku2zoff 04-01-2009 в 22:00:

С горем пополам скомпилил клиентскую дллку этого Рейвен Сити.(Додумались же буржуи его заточить под 2005 студию). Что понравилось:

1. Они там что-то сделали, из-за чего тени стали накладываться на модели.
2. Тени могут быть динамические и от нескольких источников света, правда нада для это сами источники закодить.

Что не понравилось:

1. Внаглую своровали отрисовку БСП из паранойи.
2. Если партикл_систем не находит спрайт, то вылезает виндовсовское окошко с ошибкой, но игра не вылетает, и так до бесконечности.
3. Понапихали кучу всего, а элементарную паузу с громкостью к фмоду не сделали.

З.Ы. Ну ничего, я выдеру всё что мне нужно подправлю и сделаю наконец графический патч для ХЛ(обещал ведь).


Отправлено (_-=ZhekA=-_) 04-01-2009 в 22:06:

Ku2zoff
Выложи готовые дллки Если не трудно, а то просто у меня на 6 студии не компилиться это чудо

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено XaeroX 04-01-2009 в 22:15:

Цитата:
Ku2zoff писал:
Внаглую своровали отрисовку БСП из паранойи

А что такого? Можно подумать, в параное изобрели что-то невероятное?
Если бы ее авторы не хотели, чтобы их код где-то юзали, они бы его не выкладывали. Как я не выкладываю сорцы хлфх

__________________

xaerox on Vivino


Отправлено Ku2zoff 05-01-2009 в 07:42:

(_-=ZhekA=-_) я боюсь это дело будет по жэсти глючить и вылетать. Пусть лучше кто-нибудь с 2005-ой студией скомпилит дллки.


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

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