HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- корявые p_model.mdl (https://hlfx.ru/forum/showthread.php?threadid=892)
Отправлено rocksTaa 21-09-2007 в 12:09:
корявые p_model.mdl
у меня апять тупик в мультиплеере ведь необходимо иметь нормальную р_модель, вот тут та и косяк сделал ak47 и р_модель скелета позаимствовал у мр5 но отказывается держать калаш 2мя руками только в прыжке как это исправить?
__________________
rt
Отправлено XaeroX 21-09-2007 в 12:52:
rocksTaa префикс анимации игрока в Deploy "mp5" стоит? Не свой вписал, случаем?
__________________
Отправлено rocksTaa 21-09-2007 в 13:12:
ты имееш ввиду это посмотри так нетак?____>>>
BOOL Cak47::Deploy( )
{
g_engfuncs.pfnSetClientMaxspeed(m_pPlayer->edict(), 30 );
return DefaultDeploy("models/v_ak47.mdl", "models/p_ak47.mdl",
ak47_DEPLOY," mp5 ");
}
__________________
rt
Отправлено XaeroX 21-09-2007 в 13:27:
Надо не " mp5 ", а "mp5" писать.
__________________
Отправлено rocksTaa 21-09-2007 в 14:10:
не понят тоеть?--Надо не " mp5 ", а "mp5" писать.
Добавлено 21-09-2007 в 18:10:
ах да вот ещё что добавил новые модельки патронов на земле типа рожок к ак47 вот так--void Cak47AmmoClip::Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/w_ammo762.mdl");
CBasePlayerAmmo::Spawn( );
}
void Cak47AmmoClip::Precache( void )
{
PRECACHE_MODEL ("models/w_ammo762.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");--НО в игре когда ставлю аммо ак47 там рожка нет и даже нет звука его подема может где ещё надо модели прекешить?
__________________
rt
Отправлено rocksTaa 22-09-2007 в 08:58:
а понял вопрос об анимации снят а про патроны всё ещё стоит
и вот ещё что в мультиплеере при смерти игрока его выкидывает в винду с сообщением типа-- SV_StartSound: voiume 461.
__________________
rt
Отправлено XaeroX 22-09-2007 в 10:55:
rocksTaa
1) на форуме есть тег [cоde] - пожалуйста пользуйся им.
2) выложи все, что относится к рожку (не забывая про п.1), включая описание класса, LINK_ENTITY_TO_CLASS и т.п.
Цитата:
rocksTaa писал:
и вот ещё что в мультиплеере при смерти игрока его выкидывает в винду с сообщением типа-- SV_StartSound: voiume 461
где-то громкость слишком высокая
хотя этот баг иногда вообще непонятно отчего вылезти может__________________
Отправлено rocksTaa 22-09-2007 в 16:41:
ну незнаю вот собсно калаш глянь что там непрально
C++ Source Code:
1 | ******************************************/ |
14 | LINK_ENTITY_TO_CLASS( weapon_ak47, Cak47 ); |
30 | pev->classname = MAKE_STRING("weapon_ak47"); |
32 | SET_MODEL(ENT(pev), "models/w_ak47.mdl"); |
38 | void Cak47::Precache( void ) |
40 | PRECACHE_MODEL("models/v_ak47.mdl"); |
41 | PRECACHE_MODEL("models/p_ak47.mdl"); |
42 | PRECACHE_MODEL("models/w_ak47.mdl"); |
43 | PRECACHE_MODEL("models/w_ammo762.mdl"); |
45 | m_iShell = PRECACHE_MODEL ("models/shell.mdl"); |
47 | PRECACHE_SOUND ("weapons/ak47-1.wav"); |
48 | PRECACHE_SOUND ("weapons/ak47-2.wav"); |
50 | m_event = PRECACHE_EVENT( 1, "events/ak47.sc" ); |
53 | int Cak47::GetItemInfo(ItemInfo *p) |
55 | p->pszName = STRING(pev->classname); |
56 | p->pszAmmo1 = "ammo_ak47"; // The type of ammo it uses |
57 | p->iMaxAmmo1 = 90; // Max ammo the player can carry |
58 | p->pszAmmo2 = NULL; // No secondary ammo |
60 | p->iMaxClip = 30; // The clip size |
61 | p->iSlot = 2; // The number in the HUD |
62 | p->iPosition = 2; // The position in a HUD slot |
64 | p->iId = m_iId = 17; // The weapon id |
65 | p->iWeight = 15; // for autoswitching |
70 | int Cak47::AddToPlayer( CBasePlayer *pPlayer ) |
72 | if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) ) |
74 | MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev ); |
84 | g_engfuncs.pfnSetClientMaxspeed(m_pPlayer->edict(), 200 ); |
85 | return DefaultDeploy("models/v_ak47.mdl", "models/p_ak47.mdl", |
89 | void Cak47::PrimaryAttack() |
91 | // don't fire if empty |
95 | m_flNextPrimaryAttack = 0.15; |
100 | m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME; |
101 | m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH; |
103 | // one less round in the clip |
106 | // add a muzzle flash |
107 | m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH; |
109 | // player "shoot" animation |
110 | m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); |
112 | Vector vecSrc(m_pPlayer->GetGunPosition()); |
113 | Vector vecAim(m_pPlayer->GetAutoaimVector(AUTOAIM_2DEGREES)); |
114 | Vector vecAcc(VECTOR_CONE_2DEGREES); |
115 | Vector vecDir(m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAim, vecAcc, 8192,BULLET_PLAYER_MP5, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed )); |
117 | PLAYBACK_EVENT_FULL( FEV_NOTHOST, m_pPlayer->edict(), m_event, 0.0, |
118 | (float *)&g_vecZero, (float *)&g_vecZero, |
119 | vecDir.x, vecDir.y, 0, 0, (m_iClip ? 0 : 1), 0 ); |
121 | m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1; |
122 | m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat(m_pPlayer->random_seed, 1.085,2.085); |
126 | void Cak47::Reload( void ) |
128 | DefaultReload( 30, ak47_RELOAD, 2.7 ); |
131 | void Cak47::WeaponIdle( void ) |
135 | m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES ); |
137 | if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase()) |
140 | SendWeaponAnim( ak47_IDLE ); |
142 | m_flTimeWeaponIdle = UTIL_SharedRandomFloat(m_pPlayer->random_seed, 10, 15); |
147 | class Cak47AmmoClip : public CBasePlayerAmmo |
149 | virtual void Spawn( void ); |
150 | virtual void Precache( void ); |
151 | virtual BOOL AddAmmo( CBaseEntity *pOther ); |
155 | void Cak47AmmoClip::Spawn( void ) |
158 | SET_MODEL(ENT(pev), "models/w_ammo762.mdl"); |
159 | CBasePlayerAmmo::Spawn( ); |
162 | void Cak47AmmoClip::Precache( void ) |
164 | PRECACHE_MODEL ("models/w_ammo762.mdl"); |
165 | PRECACHE_SOUND("items/9mmclip1.wav"); |
168 | BOOL Cak47AmmoClip::AddAmmo( CBaseEntity *pOther ) |
170 | int bResult = (pOther->GiveAmmo(30, "ammo_ak47",90) != -1); |
173 | EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM); |
__________________
rt
Отправлено XaeroX 22-09-2007 в 16:59:
LINK_ENTITY_TO_CLASS( ammo_ak47, Cak47AmmoClip );
добавь.
__________________
Отправлено rocksTaa 23-09-2007 в 14:41:
спс всё работает, вот ещё что хотелось бы спросить оч оч оч нужна отдача но не та что в хл а как наприер в кс но тока круче чтоп после 2-4 выстрелов ствол задрался в небеса как это реализовать?
__________________
rt
Отправлено XaeroX 23-09-2007 в 15:20:
rocksTaa где-то был тутор в инете, поищи по словам GetViewAngles/SetViewAngles.
__________________
Отправлено FiEctro 23-09-2007 в 16:08:
>> спс всё работает, вот ещё что хотелось бы спросить оч оч оч нужна отдача но не та что в хл а как наприер в кс но тока круче чтоп после 2-4 выстрелов ствол задрался в небеса как это реализовать?
Вах
http://www.resourcecode.de/view.php?id=1722
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено rocksTaa 24-09-2007 в 04:55:
пасиба но я помойму читал что в этой статье чёт савсем не то но всёравно попробую.
Добавлено 24-09-2007 в 08:55:
вот ещёб глок научить нормально стрелять тока при нажатии на мышку вот это былоб дело.
__________________
rt
Отправлено rocksTaa 24-09-2007 в 10:02:
ОЧЕНЬ страшный баг:вобщем добавил я сибе смок пуф при попадании в стену но он работает не прально, пуф есть но с квадратной чёрной окоёмкой игра не скрывает чёрный фон спритерса помогите чем смогите вот код пуфа:
C++ Source Code:
1 | void EV_HLDM_SmokePuff( pmtrace_t *pTrace, float *vecSrc, float *vecEnd ) |
6 | pe = gEngfuncs.pEventAPI->EV_GetPhysent( pTrace->ent ); |
8 | if ( pe && pe->solid == SOLID_BSP ) |
9 | { // if it's a solid wall / entity |
10 | char chTextureType = CHAR_TEX_CONCRETE; |
16 | pTextureName = (char *)gEngfuncs.pEventAPI->EV_TraceTexture( pTrace->ent, vecSrc, vecEnd ); |
20 | strcpy( texname, pTextureName ); |
21 | pTextureName = texname; |
23 | // strip leading '-0' or '+0~' or '{' or '!' |
24 | if (*pTextureName == '-' || *pTextureName == '+') |
29 | if (*pTextureName == '{' || *pTextureName == '!' || *pTextureName == '~' || *pTextureName == ' ') |
35 | strcpy( szbuffer, pTextureName ); |
36 | szbuffer[ CBTEXTURENAMEMAX - 1 ] = 0; |
39 | chTextureType = PM_FindTextureType( szbuffer ); |
42 | bool fDoPuffs = false; |
43 | bool fDoSparks = false; |
46 | switch (chTextureType) |
48 | // do smoke puff and eventually add sparks |
50 | case CHAR_TEX_CONCRETE: |
51 | fDoSparks = (gEngfuncs.pfnRandomLong(1, 4) == 1); |
63 | fDoSparks = (gEngfuncs.pfnRandomLong(1, 2) == 1); |
79 | case CHAR_TEX_COMPUTER: |
86 | vec3_t angles, forward, right, up; |
88 | VectorAngles( pTrace->plane.normal, angles ); |
90 | AngleVectors( angles, forward, up, right ); |
91 | forward.z = -forward.z; |
94 | int iWallsmoke = gEngfuncs.pEventAPI->EV_FindModelIndex ("sprites/smokepuff.spr"); |
97 | TEMPENTITY *pTemp = gEngfuncs.pEfxAPI->R_TempSprite( |
99 | forward * gEngfuncs.pfnRandomFloat(10, 30) + right * gEngfuncs.pfnRandomFloat(-6, 6) + up * gEngfuncs.pfnRandomFloat(0, 6), |
106 | FTENT_SPRANIMATE | FTENT_FADEOUT |
110 | { // sprite created successfully, adjust some things |
111 | pTemp->fadeSpeed = 2.0; |
112 | pTemp->entity.curstate.framerate = 20.0; |
113 | pTemp->entity.curstate.renderamt = a; |
114 | pTemp->entity.curstate.rendercolor.r = r; |
115 | pTemp->entity.curstate.rendercolor.g = g; |
116 | pTemp->entity.curstate.rendercolor.b = b; |
123 | gEngfuncs.pEfxAPI->R_SparkShower( pTrace->endpos ); |
__________________
rt
Отправлено XaeroX 24-09-2007 в 10:43:
попробуй заменить kRenderTransAlpha на kRenderTransAdd.
__________________