Ru/Authoring a Logical Entity/Code: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
m (obsolete language category)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Создание Логической Энтити/Код}}<source lang="cpp">
{{Underlinked|date=January 2024}}
{{DISPLAYTITLE:Создание логической сущности/Код}}<source lang="cpp">
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ========
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ========
//
//
// Назначение: Простая логическая энтити со счетчиком
// Назначение: Простая логическая сущность со счетчиком
// посылающая команды на output при достижении порога.
// посылающая команды на output при достижении порога.
//
//
Line 52: Line 53:


//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Назначение: Обработка входящих значений (tick input) от других энтити
// Назначение: Обработка входящих значений (tick input) от других сущностей
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void CMyLogicalEntity::InputTick( inputdata_t &inputData )
void CMyLogicalEntity::InputTick( inputdata_t &inputData )
Line 73: Line 74:
== См. Также ==
== См. Также ==


*[[Authoring a Logical Entity:ru|Создание Логической Энтити]]
*{{L|Authoring a Logical Entity|Создание логической сущности}}


[[Category:Programming:ru]]
{{ACategory|Programming}}
[[Category:Russian]]

Latest revision as of 03:41, 22 August 2024

Underlinked - Logo.png
This article needs more Wikipedia icon links to other articles to help Wikipedia icon integrate it into the encyclopedia. Please help improve this article by adding links Wikipedia icon that are relevant to the context within the existing text.
January 2024
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ========
//
// Назначение: Простая логическая сущность со счетчиком
// посылающая команды на output при достижении порога.
//
//=============================================================================

#include "cbase.h"

class CMyLogicalEntity : public CLogicalEntity
{
	public:
	DECLARE_CLASS( CMyLogicalEntity, CLogicalEntity );
	DECLARE_DATADESC();

	// Конструктор
	CMyLogicalEntity ()
	{
		m_nCounter = 0;
	}

	// Input функция
	void InputTick( inputdata_t &inputData );

	private:

	int	m_nThreshold;	// Пороговое значение, по достижению которого активируется output
	int	m_nCounter;	// Внутренний счётчик

	COutputEvent	m_OnThreshold;	// Output событие, когда счётчик достигает порогового значения
};

LINK_ENTITY_TO_CLASS( my_logical_entity, CMyLogicalEntity  );

// Начало описания наших данных для класса
BEGIN_DATADESC( CMyLogicalEntity  )

// Для сохранения/загрузки
DEFINE_FIELD( m_nCounter, FIELD_INTEGER ),

// Связывает наши переменные с ключевыми значениями из Hammer
DEFINE_KEYFIELD( m_nThreshold, FIELD_INTEGER, "threshold" ),

// Связывает наше input название из Hammer с нашей input функцией
DEFINE_INPUTFUNC( FIELD_VOID, "Tick", InputTick ),

// Связывает наш ouput с output названием, используемым Hammer
DEFINE_OUTPUT( m_OnThreshold, "OnThreshold" ),

END_DATADESC()

//-----------------------------------------------------------------------------
// Назначение: Обработка входящих значений (tick input) от других сущностей
//-----------------------------------------------------------------------------
void CMyLogicalEntity::InputTick( inputdata_t &inputData )
{
	// Увеличение нашего счетчика
	m_nCounter++;

	// Проверяем достиг ли счетчик порогового значения
	if ( m_nCounter >= m_nThreshold )
	{
		// Запуск output события
		m_OnThreshold.FireOutput( inputData.pActivator, this );
		
		// Сбрасывание нашего счетчика
		m_nCounter = 0;
	}
}

См. Также