Убираем урон от падения

From Valve Developer Community
< Ru
Revision as of 17:45, 13 August 2023 by Pee (talk | contribs) (Pee moved page Removing Fall Damage:ru to Removing fall damage/ru: changing case, might as well switch to multipage as well)
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)

Данный туториал поможет вам предотвратить получение урона игроком от падения, если данная функция требуется в вашем моде. Убрать получение урона довольно просто. В этом туториале использован код Синглплеера SDK 2013, но он также может быть использован и для более ранних версий.

Изменение кода

Синглплеер 2013

1. Найдите Hl2_player.cpp в проекте сервера Server(game)/Source Files\HL2 DLL\Hl2_player.cpp который размещён по пути src/game/client/hl2/Hl2_player.cpp
2. Найдите это if условие там (строки 2294-2303)


// ignore fall damage if instructed to do so by input  
if ( ( info.GetDamageType() & DMG_FALL ) && m_flTimeIgnoreFallDamage > gpGlobals->curtime )  
{  
	// usually, we will reset the input flag after the first impact. However there is another input that  
	// prevents this behavior.  
	if ( m_bIgnoreFallDamageResetAfterImpact )  
	{  
		m_flTimeIgnoreFallDamage = 0;  
	}  
	return 0;  
}


3. Уберите, закомментируйте или приведите к следующему виду данный участок кода:


// Всегда игнорировать урон от падения
if ( info.GetDamageType() & DMG_FALL )
{
	return 0;
}


Пояснение
До этого урон от падения не наносился, если был установлен специальный cvar. Теперь урона от падения не будет всегда.