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=1363)
Отправлено (_-=ZhekA=-_) 19-06-2008 в 21:57:
Ищу исходный код
Ищу исходный код монстра_Kate из азур шип, монстра_Отис из Оппосиг форс или Влю шифт, монстра_barniel из азур шип
Если у кого имеется, выложите плиз
Зарание большое Спасибо ! 
__________________
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
Отправлено NameLesS 19-06-2008 в 22:45:
монстр барниэль есть в сборнике туторов Тренсфера
http://www.trensfer.narod.ru/hl-sdkt_1.0.rar
Отправлено (_-=ZhekA=-_) 20-06-2008 в 06:07:
Цитата:
Спасибо
Но код и тутор по барниэль я и брал из этого учебника
C++ Source Code:
1 | class CBarniel: public CBarney//Наследуем класс |
7 | void BarneyFirePistol ( void ); |
9 | void PainSound ( void ); |
10 | void DeathSound ( void ); |
11 | void DeclineFollowing( void ); |
12 | void AlertSound( void ); |
13 | int TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType); |
14 | Schedule_t *GetSchedule ( void ); |
17 | LINK_ENTITY_TO_CLASS( monster_barniel, CBarniel); |
19 | int CBarniel :: Classify ( void ) |
21 | return CLASS_PLAYER_ALLY; |
24 | void CBarniel :: BarneyFirePistol ( void ) |
26 | Vector vecShootOrigin; |
27 | UTIL_MakeVectors(pev->angles); |
28 | vecShootOrigin = pev->origin + Vector( 0, 0, 55 ); |
29 | Vector vecShootDir = ShootAtEnemy( vecShootOrigin ); |
30 | Vector angDir = UTIL_VecToAngles( vecShootDir ); |
31 | SetBlending( 0, angDir.x ); |
32 | pev->effects = EF_MUZZLEFLASH; |
33 | FireBullets(1, vecShootOrigin, vecShootDir, VECTOR_CONE_2DEGREES, 1024, BULLET_MONSTER_9MM ); |
34 | int pitchShift = RANDOM_LONG( 0, 20 ); |
36 | if ( pitchShift > 10 ) |
41 | EMIT_SOUND_DYN( ENT(pev), CHAN_WEAPON, "barniel/bn_attack2.wav", 1, ATTN_NORM, 0, 100 + pitchShift ); |
42 | CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin, 384, 0.3 ); |
46 | void CBarniel :: Spawn() |
51 | SET_MODEL(ENT(pev), STRING(pev->model)); |
53 | SET_MODEL(ENT(pev), "models/Barniel.mdl"); |
55 | UTIL_SetSize(pev, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX); |
56 | pev->solid = SOLID_SLIDEBOX; |
57 | pev->movetype = MOVETYPE_STEP; |
58 | m_bloodColor = BLOOD_COLOR_RED; |
59 | pev->health = gSkillData.barneyHealth; |
60 | pev->view_ofs = Vector ( 0, 0, 50 ); |
61 | m_flFieldOfView = VIEW_FIELD_WIDE; |
62 | m_MonsterState = MONSTERSTATE_NONE; |
65 | m_afCapability = bits_CAP_HEAR | bits_CAP_TURN_HEAD | bits_CAP_DOORS_GROUP; |
67 | SetUse( FollowerUse ); |
70 | void CBarniel :: Precache() |
73 | PRECACHE_MODEL((char*)STRING(pev->model)); |
75 | PRECACHE_MODEL("models/Barniel.mdl"); |
77 | PRECACHE_SOUND("barniel/bn_attack1.wav" ); |
78 | PRECACHE_SOUND("barniel/bn_attack2.wav" ); |
79 | PRECACHE_SOUND("barney/ba_attack2.wav" ); |
80 | PRECACHE_SOUND("barniel/bn_pain1.wav"); |
81 | PRECACHE_SOUND("barniel/bn_die1.wav"); |
83 | CTalkMonster::Precache(); |
86 | void CBarniel :: TalkInit() |
88 | CTalkMonster::TalkInit(); |
89 | m_szGrp[TLK_ANSWER] = "BN_ANSWER"; |
90 | m_szGrp[TLK_QUESTION] = "BN_QUESTION"; |
91 | m_szGrp[TLK_IDLE] = "BN_IDLE"; |
92 | m_szGrp[TLK_STARE] = "BN_STARE"; |
93 | m_szGrp[TLK_USE] = "BN_OK"; |
94 | m_szGrp[TLK_UNUSE] = "BN_WAIT"; |
95 | m_szGrp[TLK_STOP] = "BN_STOP"; |
96 | m_szGrp[TLK_NOSHOOT] = "BN_SCARED"; |
97 | m_szGrp[TLK_HELLO] = "BN_HELLO"; |
98 | m_szGrp[TLK_PLHURT1] = "!BN_CUREA"; |
99 | m_szGrp[TLK_PLHURT2] = "!BN_CUREB"; |
100 | m_szGrp[TLK_PLHURT3] = "!BN_CUREC"; |
101 | m_szGrp[TLK_PHELLO] = NULL; |
102 | m_szGrp[TLK_PIDLE] = NULL; |
103 | m_szGrp[TLK_PQUESTION] = "BN_PQUEST"; |
104 | m_szGrp[TLK_SMELL] = "BN_SMELL"; |
105 | m_szGrp[TLK_WOUND] = "BN_WOUND"; |
106 | m_szGrp[TLK_MORTAL] = "BN_MORTAL"; |
110 | void CBarniel :: PainSound ( void ) |
112 | if (gpGlobals->time < m_painTime) |
114 | m_painTime = gpGlobals->time + RANDOM_FLOAT(0.5, 0.75); |
115 | EMIT_SOUND_DYN( ENT(pev), CHAN_VOICE, "barniel/bn_pain1.wav", 1, ATTN_NORM, 0, GetVoicePitch()); |
118 | void CBarniel :: DeathSound ( void ) |
120 | EMIT_SOUND_DYN( ENT(pev), CHAN_VOICE, "barniel/bn_die1.wav", 1, ATTN_NORM, 0, GetVoicePitch()); //ea?aou caoe |
123 | void CBarniel :: AlertSound( void ) |
125 | if ( m_hEnemy != NULL ) |
129 | PlaySentence( "BN_ATTACK", RANDOM_FLOAT(2.8, 3.2), VOL_NORM, ATTN_IDLE ); |
134 | int CBarniel :: TakeDamage( entvars_t* pevInflictor, entvars_t* pevAttacker, float flDamage, int bitsDamageType) |
136 | int ret = CTalkMonster::TakeDamage(pevInflictor, pevAttacker, flDamage, bitsDamageType); |
137 | if ( !IsAlive() || pev->deadflag == DEAD_DYING ) |
139 | if ( m_MonsterState != MONSTERSTATE_PRONE && (pevAttacker->flags & FL_CLIENT) ) |
141 | m_flPlayerDamage += flDamage; |
142 | if ( m_hEnemy == NULL ) |
144 | if ( (m_afMemory & bits_MEMORY_SUSPICIOUS) || IsFacing( pevAttacker, pev->origin ) ) |
146 | PlaySentence( "BN_MAD", 4, VOL_NORM, ATTN_NORM ); |
147 | Remember( bits_MEMORY_PROVOKED ); |
148 | StopFollowing( TRUE ); |
152 | PlaySentence( "BN_SHOT", 4, VOL_NORM, ATTN_NORM ); |
153 | Remember( bits_MEMORY_SUSPICIOUS ); |
156 | else if ( !(m_hEnemy->IsPlayer()) && pev->deadflag == DEAD_NO ) |
158 | PlaySentence( "BN_SHOT", 4, VOL_NORM, ATTN_NORM ); |
164 | Schedule_t *CBarniel :: GetSchedule ( void ) |
166 | if ( HasConditions( bits_COND_HEAR_SOUND ) ) |
169 | pSound = PBestSound(); |
170 | ASSERT( pSound != NULL ); |
171 | if ( pSound && (pSound->m_iType & bits_SOUND_DANGER) ) |
172 | return GetScheduleOfType( SCHED_TAKE_COVER_FROM_BEST_SOUND ); |
174 | if ( HasConditions( bits_COND_ENEMY_DEAD ) && FOkToSpeak() ) |
176 | PlaySentence( "BN_KILL", 4, VOL_NORM, ATTN_NORM ); |
178 | switch( m_MonsterState ) |
180 | case MONSTERSTATE_COMBAT: |
182 | if ( HasConditions( bits_COND_ENEMY_DEAD ) ) |
184 | return CBaseMonster :: GetSchedule(); |
186 | if ( HasConditions( bits_COND_NEW_ENEMY ) && HasConditions( bits_COND_LIGHT_DAMAGE) ) |
187 | return GetScheduleOfType( SCHED_SMALL_FLINCH ); |
189 | return GetScheduleOfType( SCHED_ARM_WEAPON ); |
190 | if ( HasConditions( bits_COND_HEAVY_DAMAGE ) ) |
191 | return GetScheduleOfType( SCHED_TAKE_COVER_FROM_ENEMY ); |
194 | case MONSTERSTATE_ALERT: |
195 | case MONSTERSTATE_IDLE: |
196 | if ( HasConditions(bits_COND_LIGHT_DAMAGE | bits_COND_HEAVY_DAMAGE)) |
198 | return GetScheduleOfType( SCHED_SMALL_FLINCH ); |
200 | if ( m_hEnemy == NULL && IsFollowing() ) |
202 | if ( !m_hTargetEnt->IsAlive() ) |
204 | StopFollowing( FALSE ); |
209 | if ( HasConditions( bits_COND_CLIENT_PUSH ) ) |
211 | return GetScheduleOfType( SCHED_MOVE_AWAY_FOLLOW ); |
213 | return GetScheduleOfType( SCHED_TARGET_FACE ); |
216 | if ( HasConditions( bits_COND_CLIENT_PUSH ) ) |
218 | return GetScheduleOfType( SCHED_MOVE_AWAY ); |
223 | return CTalkMonster::GetSchedule(); |
226 | void CBarniel::DeclineFollowing( void ) |
228 | PlaySentence( "BN_POK", 2, VOL_NORM, ATTN_NORM ); |
C++ Source Code:
3 | //When player asks Otis to follow: |
14 | OT_WAIT2 otis/slowingyoudown |
17 | OT_WAIT5 otis/standguard |
26 | OT_QUESTION1 otis/rightdirection |
27 | OT_QUESTION2 otis/getanyworse |
28 | OT_QUESTION3 otis/gladof |
29 | OT_QUESTION4 otis/aliencombat |
30 | OT_QUESTION5 otis/somethingmoves |
31 | OT_QUESTION6 otis/noise |
36 | OT_ANSWER3 otis/alright |
43 | OT_ANSWER10 otis/dontguess |
46 | OT_ANSWER14 otis/dontask |
47 | OT_ANSWER15 otis/suppose |
49 | OT_ANSWER17 otis/cantfigure |
51 | OT_ANSWER19 otis/talkmuch |
52 | OT_ANSWER20 otis/dejavu |
83 | OT_ATTACK1 otis/leftovers |
84 | OT_ATTACK2 otis/yourback |
87 | OT_HEAR0 otis/hearsomething |
88 | OT_HEAR1 otis/soundsbad |
95 | OT_CUREB otis/insurance |
98 | OT_SCARED0 otis/donthurtem |
99 | OT_SCARED1 otis/leavealone |
104 | OT_MORTAL0 otis/imdead |
105 | OT_MORTAL1 otis/hitbad |
107 | OT_MISC0 otis/stupidmachines |
На основе этого кода я сделал всех трех монстров путем изменения имени модели и энтити и все они наботаю, НО проблема со звуками для ОТИСА у меня разрешить не получается
Помогите пожалуйста 
__________________
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
Отправлено Тренсфер 20-06-2008 в 07:11:
Последнее это звуки отиса как я понял ?
Просто замени приставки все слов в кавычках в void CBarniel :: TalkInit() с BN на OT. Вообще если звуки у олтиса все соответствены по названиям звукам барни. Просто замени везде BN на OT в словах в кавычках.
__________________
Хотелось бы, чтобы не только хотелось...
Отправлено Дядя Миша 20-06-2008 в 19:14:
Насчет Отиса не знаю, но вот есть доктор_розенберг, из моего восстановленного кода для блюшифта. (на сайте лежит).
Основные изменения - доктор не начинает бояться игрока, если тот случайно в него пальнул и кажется здоровья у него побольше.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено (_-=ZhekA=-_) 20-06-2008 в 19:15:
Цитата:
Тренсфер писал:
Последнее это звуки отиса как я понял ?
Просто замени приставки все слов в кавычках в void CBarniel :: TalkInit() с BN на OT. Вообще если звуки у олтиса все соответствены по названиям звукам барни. Просто замени везде BN на OT в словах в кавычках.
Спасибо за совет, но пока простыми заменами не обойтись
Лан я еще поковыряюсь может получится 
__________________
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