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

From Valve Developer Community
Jump to: navigation, search
English

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