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

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)
Dead End - Icon.png
This article has no Wikipedia icon links to other VDC articles. Please help improve this article by adding links Wikipedia icon that are relevant to the context within the existing text.
January 2024


Данный туториал поможет вам предотвратить получение урона игроком от падения, если данная функция требуется в вашем моде. Убрать получение урона довольно просто. В этом туториале использован код Синглплеера 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. Теперь урона от падения не будет всегда.