Ru/Importing CSS Weapons Into HL2: Difference between revisions
m (obsolete language category)  | 
				|||
| (3 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
{{  | {{lang|Importing_CSS_Weapons_Into_HL2|title=Портирования оружия CSS в HL2}}  | ||
|title=Портирования оружия CSS в HL2  | |||
}}  | |||
=Секция 1 - Редактирование модели=  | =Секция 1 - Редактирование модели=  | ||
РЕДАКТИРОВАНИЕ: ПРОПУЩЕН ЭТОТ РАЗДЕЛ (SDK 2013 будет работать с любой существующей модели CSS без редактирования модели, просто   | РЕДАКТИРОВАНИЕ: ПРОПУЩЕН ЭТОТ РАЗДЕЛ (SDK 2013 будет работать с любой существующей модели CSS без редактирования модели, просто требуется добавить пару строк кода, чтобы удалить одну или две ошибки)  | ||
<br>  | <br>  | ||
=Секция 2 - Точная настройка модели=    | =Секция 2 - Точная настройка модели=    | ||
После того как вы имеете v_model.mdl и w_model.mdl вам надо будет установить и настроить модели на оружие с помощью скрипта файла оружия. Разместите новое оружие например weapon_357.txt внутри 'scripts'   | После того как вы имеете v_model.mdl и w_model.mdl вам надо будет установить и настроить модели на оружие с помощью скрипта файла оружия. Разместите новое оружие, например weapon_357.txt внутри папки 'scripts' (C:\Program Files\Steam\SteamApps\sourcemods\MODNAME\scripts).  | ||
Теперь, чтобы исправить проблему   | Теперь, чтобы исправить проблему отображение оружия только на левой стороне экрана внутри скрипта файла оружия, добавьте эти две строки:    | ||
<code>  | <code>  | ||
  "BuiltRightHanded" "0"    |   "BuiltRightHanded" "0"    | ||
  "AllowFlipping" "1"     |   "AllowFlipping" "1"     | ||
</code>  | </code>  | ||
Это   | Это укажет какое значение принять консольной переменной  cl_righthand, которую мы сейчас и добавим; откройте 'c_baseviewmodel.cpp' и найдите 25 строку(38 в 2013), которая выглядит так:  | ||
<  | <source lang="cpp">  | ||
#ifdef CSTRIKE_DLL    | |||
	ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );    | |||
#endif     | |||
</  | </source>  | ||
И   | И поставьте комментарий на верхней и нижней строки:    | ||
<  | <source lang="cpp">  | ||
  // #ifdef CSTRIKE_DLL    |   // #ifdef CSTRIKE_DLL    | ||
 	ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );    | |||
  // #endif     |   // #endif     | ||
</  | </source>  | ||
Далее перейдите к 173 строке и поставьте комментарий на эти строки следующим образом:  | |||
  <  |   <source lang="cpp">  | ||
  // #ifdef CSTRIKE_DLL  |   // #ifdef CSTRIKE_DLL  | ||
  	// If cl_righthand is set, then we want them all right-handed.  |   	// If cl_righthand is set, then we want them all right-handed.  | ||
| Line 42: | Line 37: | ||
  	}  |   	}  | ||
  // #endif  |   // #endif  | ||
</  | </source>  | ||
Это   | Это создаст консольную переменную, которая будет указывать на какой стороне экрана будет отображаться оружие. Если вы хотите, чтобы оружие отображалось на левой стороне экрана, то введите в консоль <code>cl_righthand 0</code>. Теперь можно сохранить и скомпилировать клиент.  | ||
<br>  | <br>  | ||
=Секция 3 - Optional Tweaks=  | =Секция 3 - Optional Tweaks=  | ||
Если вы не используете   | Если вы не используете частицы вспышки выстрелов (которые вы должны использовать, они же офигенные!), тогда у вас могут возникнуть проблемы со старыми частицами у оружий из CS:S. В этом случае используйте фикс, описанный ниже.  | ||
В c_baseanimating.cpp, на строке 3024(4181 в 2013), поставьте комментарий так, как написано здесь:  | |||
<source lang="cpp">  | |||
  			if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )  |   			if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )  | ||
  			{  |   			{  | ||
| Line 61: | Line 56: | ||
  				*/  |   				*/  | ||
  			}  |   			}  | ||
</source>  | |||
и вставьте следующий код после комментария  | и вставьте следующий код после комментария:  | ||
<source lang="cpp">  | |||
<  | |||
  				if ( input->CAM_IsThirdPerson() )  |   				if ( input->CAM_IsThirdPerson() )  | ||
  				{  |   				{  | ||
| Line 78: | Line 72: | ||
  				}  |   				}  | ||
  				g_pEffects->MuzzleFlash( attachOrigin, attachAngles, 1.0, MUZZLEFLASH_TYPE_DEFAULT );  |   				g_pEffects->MuzzleFlash( attachOrigin, attachAngles, 1.0, MUZZLEFLASH_TYPE_DEFAULT );  | ||
</  | </source>  | ||
Откройте fx.cpp, и под <code>pParticle->m_vecVelocity.Init();</code> в <code>FX_MuzzleFlash</code>, поставьте следующий код:  | |||
<source lang="cpp">  | |||
  		C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();  |   		C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();  | ||
  		Vector velocity = pPlayer->GetLocalVelocity();  |   		Vector velocity = pPlayer->GetLocalVelocity();  | ||
  		pParticle->m_vecVelocity += velocity;  |   		pParticle->m_vecVelocity += velocity;  | ||
</source>  | |||
Наслаждайтесь!  | Наслаждайтесь!  | ||
Ferrety (ferrety6012@gmail.com)  | Ferrety (ferrety6012@gmail.com)  | ||
{{ACategory|Tutorials}}  | |||
Latest revision as of 02:50, 22 August 2024
Секция 1 - Редактирование модели
РЕДАКТИРОВАНИЕ: ПРОПУЩЕН ЭТОТ РАЗДЕЛ (SDK 2013 будет работать с любой существующей модели CSS без редактирования модели, просто требуется добавить пару строк кода, чтобы удалить одну или две ошибки)
Секция 2 - Точная настройка модели
После того как вы имеете v_model.mdl и w_model.mdl вам надо будет установить и настроить модели на оружие с помощью скрипта файла оружия. Разместите новое оружие, например weapon_357.txt внутри папки 'scripts' (C:\Program Files\Steam\SteamApps\sourcemods\MODNAME\scripts).
Теперь, чтобы исправить проблему отображение оружия только на левой стороне экрана внутри скрипта файла оружия, добавьте эти две строки: 
"BuiltRightHanded" "0" 
"AllowFlipping" "1"  
Это укажет какое значение принять консольной переменной  cl_righthand, которую мы сейчас и добавим; откройте 'c_baseviewmodel.cpp' и найдите 25 строку(38 в 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 0. Теперь можно сохранить и скомпилировать клиент.
Секция 3 - Optional Tweaks
Если вы не используете частицы вспышки выстрелов (которые вы должны использовать, они же офигенные!), тогда у вас могут возникнуть проблемы со старыми частицами у оружий из CS:S. В этом случае используйте фикс, описанный ниже.
В c_baseanimating.cpp, на строке 3024(4181 в 2013), поставьте комментарий так, как написано здесь:
 			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, и под pParticle->m_vecVelocity.Init(); в FX_MuzzleFlash, поставьте следующий код:
 		C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
 		Vector velocity = pPlayer->GetLocalVelocity();
 		pParticle->m_vecVelocity += velocity;
Наслаждайтесь!
Ferrety (ferrety6012@gmail.com)