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 | //======================= |
3 | //======================= |
4 | class CRope : public CBaseToggle |
8 | void KeyValue( KeyValueData *pkvd ); |
9 | void Precache ( void ); |
10 | void Initialize ( void ); |
16 | string_t m_EndingModel; |
19 | //======================= |
20 | // Opposing Force Rope Segment |
21 | //======================= |
22 | class CRopeSample : public CBaseToggle |
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 ); |
38 | string_t m_EndingModel; |
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 ); |
сам код
C++ Source Code:
1 | //======================= |
3 | //======================= |
5 | LINK_ENTITY_TO_CLASS( env_rope, CRope ); |
6 | void CRope :: Spawn ( void ) |
8 | pev->effects |= EF_NODRAW; |
12 | void CRope :: Precache ( void ) |
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" ); |
19 | void CRope :: KeyValue( KeyValueData *pkvd ) |
21 | if (FStrEq(pkvd->szKeyName, "segments")) |
23 | m_iSegments = atoi(pkvd->szValue); |
24 | pkvd->fHandled = TRUE; |
26 | if (FStrEq(pkvd->szKeyName, "bodymodel")) |
28 | m_BodyModel = atoi(pkvd->szValue); |
29 | pkvd->fHandled = TRUE; |
31 | else if (FStrEq(pkvd->szKeyName, "endingmodel")) |
33 | m_EndingModel = atoi(pkvd->szValue); |
34 | pkvd->fHandled = TRUE; |
36 | else if (FStrEq(pkvd->szKeyName, "disable")) |
38 | m_fDisabled = atoi(pkvd->szValue); |
39 | pkvd->fHandled = TRUE; |
42 | CBaseEntity::KeyValue( pkvd ); |
44 | void CRope :: Initialize ( void ) |
47 | BOOL m_fElectrified = FALSE; |
48 | CRopeSample *pSegment = CRopeSample::CreateSample( pev->origin, vecAngles, m_BodyModel, m_EndingModel, m_fDisabled, m_iSegments, m_fElectrified, this ); |
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 ) |
55 | CRopeSample *pSegment = GetClassPtr( (CRopeSample *)NULL ); |
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; |
70 | void CRopeSample :: Spawn ( void ) |
74 | pev->movetype = MOVETYPE_PUSH; |
75 | pev->solid = SOLID_BBOX; |
78 | //if ( m_iSegments == 0 ) |
79 | // SET_MODEL(ENT(pev), STRING( m_EndingModel )); |
81 | // SET_MODEL(ENT(pev), STRING( m_Model )); |
83 | if ( m_iSegments == 0 ) |
84 | SET_MODEL(ENT(pev), "models/wire_copper16.mdl"); |
86 | SET_MODEL(ENT(pev), "models/wire_blue8.mdl"); |
88 | SetTouch ( RopeTouch ); |
90 | UTIL_SetSize(pev, Vector( 0, 0, 0), Vector(0, 0, 0)); |
97 | SetThink ( RopeThink ); |
98 | pev->nextthink = gpGlobals->time + 0.1; |
101 | void CRopeSample :: Initialize ( void ) |
104 | void CRopeSample :: RopeTouch ( CBaseEntity *pOther ) |
106 | Vector vecEnd, vecSrc, vecAngles; |
109 | if ( pOther->IsPlayer() ) |
111 | GET_ATTACHMENT( ENT(pev), 0, vecEnd, NULL ); |
112 | UTIL_TraceLine( vecSrc, vecEnd, ignore_monsters, ENT(pev), &tr1 ); |
114 | pOther->pev->flags = PFLAG_ON_ROPE; |
118 | GET_ATTACHMENT( ENT(pev), 0, vecEnd, NULL ); |
119 | UTIL_TraceLine( vecSrc, vecSrc + vecEnd, ignore_monsters, ENT(pev), &tr1 ); |
122 | void CRopeSample :: RopeThink ( void ) |
124 | Vector vecSrc, vecAngles; |
125 | entvars_t *pevOwner = VARS( pev->owner ); |
128 | if ( FClassnameIs( pevOwner, "env_rope" ) ) |
130 | pev->origin = pevOwner->origin; |
134 | GET_ATTACHMENT( ENT(pevOwner), 0, vecSrc, NULL ); |
135 | pev->origin = vecSrc; |
137 | pev->nextthink = gpGlobals->time + 0.1; |
141 | void CRopeSample :: Precache ( void ) |
143 | PRECACHE_SOUND( "items/rope1.wav" ); |
144 | PRECACHE_SOUND( "items/rope2.wav" ); |
145 | PRECACHE_SOUND( "items/rope3.wav" ); |
147 | PRECACHE_MODEL("sprites/xflare1.spr"); |
149 | PRECACHE_SOUND( "items/grab_rope.wav" ); |
151 | //PRECACHE_MODEL( (char *)STRING(m_Model) ); |
152 | //PRECACHE_MODEL( (char *)STRING(m_EndingModel) ); |
154 | PRECACHE_MODEL( "models/wire_copper16.mdl" ); |
155 | PRECACHE_MODEL( "models/wire_blue8.mdl" ); |
157 | void CRopeSample :: GetAttachment ( int iAttachment, Vector &origin, Vector &angles ) |
159 | GET_ATTACHMENT( ENT(pev), iAttachment, origin, angles ); |
161 | void CRopeSample :: CreateSample( void ) |
163 | Vector vecSrc, vecAngles; |
166 | GetAttachment ( 0, vecSrc, vecAngles ); |
168 | CRopeSample *pSegment = CRopeSample::CreateSample( vecSrc, vecAngles, m_Model, m_EndingModel, m_fDisabled, m_iSegments, m_fElectrified, this ); |
170 | SetThink ( RopeThink ); |
171 | pev->nextthink = gpGlobals->time + 0.1; |
173 | LINK_ENTITY_TO_CLASS( rope_sample, CRopeSample ); |
вроде бы где-то валялся код еще одной веревки
надеюсь злые админы мне балы за оффтоп не поставят__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено XaeroX 04-01-2009 в 18:43:
PFLAG_ON_ROPE - вот это самое интересное.
Полные сорцы выложить можешь? И заодно - откуда они все-таки взялись?
__________________
Отправлено 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 нашел, правда они его не заюзали. Видимо, утянули из Ксаша, а потом забыли, зачем
А веревка там, судя по всему, не работает. Так, не понту для, а в.. ради написали этот код.
__________________
Отправлено Ku2zoff 04-01-2009 в 20:29:
Цитата:
XaeroX писал:
Посмотрел сорцы. Обычная сборная солянка из разнообразных спецэффектов. Я там даже свой cvaLib нашел, правда они его не заюзали. Видимо, утянули из Ксаша, а потом забыли, зачем
Почти один в один с комментарием про Arrange Mode
Щас поглядим так ли всё скверно...
Отправлено XaeroX 04-01-2009 в 20:36:
Ku2zoff ну видимо и сами сорцы - копипаста с Арранжмода
__________________
Отправлено 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 писал:
Внаглую своровали отрисовку БСП из паранойи
А что такого? Можно подумать, в параное изобрели что-то невероятное?
Если бы ее авторы не хотели, чтобы их код где-то юзали, они бы его не выкладывали. Как я не выкладываю сорцы хлфх __________________
Отправлено Ku2zoff 05-01-2009 в 07:42:
(_-=ZhekA=-_) я боюсь это дело будет по жэсти глючить и вылетать. Пусть лучше кто-нибудь с 2005-ой студией скомпилит дллки.