Esta es una entidad bastante sencillita con la que podemos desencadenar acontecimientos mediante la suma, resta, multiplicación y división de valores. Ejemplo practico:
Estamos en una sala con 4 enemigos y queremos que la puerta de salida se abra únicamente cuando hayamos acabado con todos… ¿como hacemos esto? pues nada mas sencillo que programar un math_counter que cuente hasta 4 para iniciar el evento de la apertura de puertas y que por cada enemigo muerto se le sume 1 al math_counter, de este modo al matar a los 4 enemigos el math_counter abrirá la puerta y es imposible que esto suceda antes de haberlos matado a todos.
Esto es una visión general para que entendáis de que va esta entidad, ahora vamos a ver sus diferentes opciones, outputs, etc…
Name: Es necesario darle un nombre para manipular la entidad, añadirle inputs y demás cosas (como pasa con casi todas las entidades vaya).
Start Disabled: Si queremos que empiece activo o inactivo.
Initial Value: Es el valor con el que comenzará la entidad. Si queremos que al contar 4 desencadene algún acontecimiento y en este campo ponemos 2 la entidad empezara con 2 puntos ya sumados con lo que solo habría que sumarle 2 mas y, por contra, si ponemos en este campo 0 la entidad comenzaría sin ningún punto por lo que habrá que sumarle los 4 puntos.
Minimum Legal Value: Valor mínimo.
Maximum Legal Value: Valor máximo.
Estos dos últimos campos están relacionados con algunos outputs que veremos en breve.
Kill: Elimina la entidad.
KillHierarchy: Elimina la entidad y sus creaciones.
Add: Le suma al math_counter los puntos que indiquemos en el parámetro de este input.
AddOutput: Le añade un output que introduzcamos en el parámetro de este input al math_counter.
Enable: Activa la entidad.
Disable Desactiva la entidad.
Subtract: Le resta al math_counter los puntos que indiquemos en el parámetro de este input.
Multiply: Multiplica el valor inicial (Initial Value) del math_counter por el valor introducido en el parámetro de este input.
Divide Divide el valor inicial (Initial Value) del math_counter entre el valor introducido en el parámetro de este input.
SetHitMax: Cambia el “Maximum Legal Value” por el valor introducido en el parámetro de este input.
SetHitMin: Cambia el “Minimum Legal Value” por el valor introducido en el parámetro de este input.
SetValue: Cambia el “Initial Value” por el valor introducido en el parámetro de este input.
SetValueNoFire: Cambia el “Initial Value” por el valor introducido en el parámetro de este input, pero sin aplicar ningún cambio a otras entidades.
GetValue: Desencadena todos los outputs programados en esta entidad que comiencen por “OnGetValue”.
OnKilled: Se desencadena al eliminar el math_counter.
OutValue: Envía el “Initial Value” del math_counter a una entidad como si estuviese escrito en el campo “setHitMax” o “SetHitMin”. Cada vez que se modifique el “initial Value” del math_counter, este volverá a mandar el “initial Value” a la entidad (como una actualización). Eso si, todo esto no sucederá si usamos el input “SetValueNoFire”.
OnHitMax: Se desencadenará cuando, al sumarle o restarle puntos al math_counter, su “initial Value” alcance el mismo valor que hayamos metido en el campo Maximum Legal Value de las opciones.
OnHitMin: Se desencadenará cuando, al sumarle o restarle puntos al math_counter, su “initial Value” alcance el mismo valor que hayamos metido en el campo Minimum Legal Value de las opciones.
He aquí los outputs con los que tenían relación los campos Maximum Legal Value y Minimum Legal Value que comentábamos al principio.
OnGetValue: Se desencadena con el input “GetValue”.
También podéis echarle un ojo al articulo original de la wiki de valve: