Ru/Importing CSS Weapons Into HL2: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (obsolete language category)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|Importing_CSS_Weapons_Into_HL2|title=Портирования оружия CSS в HL2}}
|title=Портирования оружия CSS в HL2
|en=Importing_CSS_Weapons_Into_HL2
}}
=Секция 1 - Редактирование модели=
=Секция 1 - Редактирование модели=


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


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


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


Теперь, чтобы исправить проблему CSS оружия отображалась только на левой стороне экрана мы можем сделать следующее.
Теперь, чтобы исправить проблему отображение оружия только на левой стороне экрана внутри скрипта файла оружия, добавьте эти две строки:  
 
Внутри скрипта оружия файл, добавить эти две строки:  
<code>
<code>
  "BuiltRightHanded" "0"  
  "BuiltRightHanded" "0"  
  "AllowFlipping" "1"   
  "AllowFlipping" "1"   
</code>
</code>
Это будет посылать информацию клиенту относительно к команде cl_righthand, который мы включим в следующем; найдите папку своего мода src (C:\MODNAME\src\cl_dll) или ("C:\MODNAME\src\game\client" для [[Source SDK 2013]]) и откройте 'c_baseviewmodel.cpp' и крутите вниз до строки 25 (35 в 2013) и ищите строку которая выглядит следующим образом:  
Это укажет какое значение принять консольной переменной  cl_righthand, которую мы сейчас и добавим; откройте 'c_baseviewmodel.cpp' и найдите 25 строку(38 в 2013), которая выглядит так:
<code>
<source lang="cpp">
#ifdef CSTRIKE_DLL  
#ifdef CSTRIKE_DLL  
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );  
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );  
#endif   
#endif   
</code>
</source>
И просто закомментируйте верхние и нижние строки вроде так:  
И поставьте комментарий на верхней и нижней строки:  
<code>
<source lang="cpp">
  // #ifdef CSTRIKE_DLL  
  // #ifdef CSTRIKE_DLL  
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );  
ConVar cl_righthand( "cl_righthand", "1", FCVAR_ARCHIVE, "Use right-handed view models." );  
  // #endif   
  // #endif   
</code>
</source>
И перейти к строке 173 и закомментируйте эти строки следующим образом:
Далее перейдите к 173 строке и поставьте комментарий на эти строки следующим образом:
  <code>
  <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
</code>
</source>
Это позволит cl_righthand квар активироваться и модель оружия будет не будет отображаться на неправильной стороне экрана. Теперь можно просто сохранить и скомпилировать.
Это создаст консольную переменную, которая будет указывать на какой стороне экрана будет отображаться оружие. Если вы хотите, чтобы оружие отображалось на левой стороне экрана, то введите в консоль <code>cl_righthand 0</code>. Теперь можно сохранить и скомпилировать клиент.
<br>
<br>


=Секция 3 - Optional Tweaks=
=Секция 3 - Optional Tweaks=


Если вы не используете частиц вспышки выстрелов (which you really should be, they're very pretty!) вы можете иметь некоторые проблемы со старым стилем вспышки выстрелов при использовании CSS оружие. В этом случае вы можете использовать исправление ниже.
Если вы не используете частицы вспышки выстрелов (которые вы должны использовать, они же офигенные!), тогда у вас могут возникнуть проблемы со старыми частицами у оружий из CS:S. В этом случае используйте фикс, описанный ниже.
 
В c_baseanimating.cpp, на строке 3024 (after the big switch statement), закомментировать код таким образом, это выглядит следующим образом.


В 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">
<pre>
  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 );
</pre>
</source>
 
Перейти к fx.cpp, under the statement <code>pParticle->m_vecVelocity.Init();</code> в <code>FX_MuzzleFlash</code>, поставьте следующий код.


Откройте 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)


[[Category:Tutorials]]
{{ACategory|Tutorials}}

Latest revision as of 03:50, 22 August 2024

English (en)Русский (ru)Translate (Translate)

Секция 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)