Импорт CSS Оружия в HL2

From Valve Developer Community
Revision as of 04:24, 29 November 2016 by LeoMad (talk | contribs) (Created page with "{{otherlang2 |title=Импорт CSS Оружия в HL2 |en=Importing_CSS_Weapons_Into_HL2 }} =Секция 1 - Редактирование модели= РЕДАКТИРО...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
English

Секция 1 - Редактирование модели

РЕДАКТИРОВАНИЕ: Пропущен этот раздел (SDK 2013 будет работать с любой существующей модели CSS без редактирования модели, просто немного кодирования требуется, чтобы удалить одну или две ошибки)

Секция 2 - Точная настройка модели

После того как вы имеете v_model.mdl и w_model.mdl вам надо будет установить и настроить модели на оружие с помощью скрипт оружия файл. Разместите новое оружие например weapon_357.txt внутри 'scripts' папки (C:\Program Files\Steam\SteamApps\sourcemods\MODNAME\scripts).

Теперь, чтобы исправить проблему CSS оружия отображалась только на левой стороне экрана мы можем сделать следующее.

Внутри скрипта оружия файл, добавить эти две строки:

"BuiltRightHanded" "0" 
"AllowFlipping" "1"  

Это будет посылать информацию клиенту относительно к команде cl_righthand, который мы включим в следующем; найдите папку своего мода src (C:\MODNAME\src\cl_dll) или ("C:\MODNAME\src\game\client" для Source SDK 2013) и откройте 'c_baseviewmodel.cpp' и крутите вниз до строки 25 (35 в 2013) и ищите строку которая выглядит следующим образом:

#ifdef CSTRIKE_DLL 
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." ); 
#endif  

И просто закомментируйте верхние и нижние строки вроде так:

// #ifdef CSTRIKE_DLL 
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." ); 
// #endif  

И перейти к строке 173 и закомментируйте эти строки следующим образом:


// #ifdef CSTRIKE_DLL
	// If cl_righthand is set, then we want them all right-handed.
	CBaseCombatWeapon *pWeapon = m_hWeapon.Get();
	if ( pWeapon )
	{
		const FileWeaponInfo_t *pInfo = &pWeapon->GetWpnData();
		return pInfo->m_bAllowFlipping && pInfo->m_bBuiltRightHanded != cl_righthand.GetBool();
	}
// #endif

Это позволит cl_righthand квар активироваться и модель оружия будет не будет отображаться на неправильной стороне экрана. Теперь можно просто сохранить и скомпилировать.

Section 3 - Optional Tweaks

Если вы не используете частиц вспышки выстрелов (which you really should be, they're very pretty!) вы можете иметь некоторые проблемы со старым стилем вспышки выстрелов при использовании CSS оружие. В этом случае вы можете использовать исправление ниже.

В c_baseanimating.cpp, на строке 3024 (after the big switch statement), закомментировать код таким образом, это выглядит следующим образом.

			if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )
			{
				/*
				GetAttachment( iAttachment+1, attachOrigin, attachAngles );
				int entId = render->GetViewEntity();
				ClientEntityHandle_t hEntity = ClientEntityList().EntIndexToHandle( entId );
				tempents->MuzzleFlash( attachOrigin, attachAngles, atoi( options ), hEntity, bFirstPerson );
				*/
			}

и вставьте следующий код после комментария.

 				if ( input->CAM_IsThirdPerson() )
 				{
 					C_BaseCombatWeapon *pWeapon = GetActiveWeapon();
 					pWeapon->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
 				}
 				else
 				{
 					C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
 					CBaseViewModel *vm = pPlayer->GetViewModel();
 					vm->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
 					engine->GetViewAngles( attachAngles );
 				}
 				g_pEffects->MuzzleFlash( attachOrigin, attachAngles, 1.0, MUZZLEFLASH_TYPE_DEFAULT );

Перейти к fx.cpp, under the statement pParticle->m_vecVelocity.Init(); в FX_MuzzleFlash, поставьте следующий код.

		C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
		Vector velocity = pPlayer->GetLocalVelocity();
		pParticle->m_vecVelocity += velocity;

Наслаждайтесь!

Ferrety (ferrety6012@gmail.com)