Ru/Importing CSS Weapons Into HL2: Difference between revisions
m (obsolete language category) |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|Importing_CSS_Weapons_Into_HL2|title=Портирования оружия CSS в HL2}} | ||
|title=Портирования оружия CSS в HL2 | |||
}} | |||
=Секция 1 - Редактирование модели= | =Секция 1 - Редактирование модели= | ||
РЕДАКТИРОВАНИЕ: | РЕДАКТИРОВАНИЕ: ПРОПУЩЕН ЭТОТ РАЗДЕЛ (SDK 2013 будет работать с любой существующей модели CSS без редактирования модели, просто требуется добавить пару строк кода, чтобы удалить одну или две ошибки) | ||
<br> | <br> | ||
=Секция 2 - Точная настройка модели= | =Секция 2 - Точная настройка модели= | ||
После того как вы имеете v_model.mdl и w_model.mdl вам надо будет установить и настроить модели на оружие с помощью | После того как вы имеете 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 03: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)