Ai Goal Police

Esta es una de las multiples entidades de inteligencia artificial de Source y su función es básicamente servir de puesto de vigilancia para los npc_metropolice. Si quieres que un metropolice vigile una puerta por ejemplo sin que abandone su posición aporreando a todo aquel que intente cruzarla esta es tu entidad xDD

Cuando tu le asignas a un npc_metropolice un ai_goal_police este permanecerá fielmente en la posición de esta ai_goal_police pase lo que pase. También podemos programar la entidad para que el policía te persiga si intentas avasallarle o si le tiras objetos pero después de perseguirte un rato volverá a su sitio.

En resumidas cuentas es una entidad de gorila de discoteca xDDDD. La entidad se puede configurar para que el policía se quede estático en la posición del ai_goal_police pase lo que pase o para que nos persiga si le tocamos los (censurado) xD. Eso si antes de pasar a configurar nuestro ai_goal_police configuremos a nuestro police.

Npc Metropolice

No vamos a profundizar mucho en el metropolice, simplemente vamos a configurar un par de opciones:

Name: Le pondremos un nombre, el que queramos.

Weapons: Es el arma que llevará, nosotros vamos a ponerle para este caso un “Stun Stick”.

En la pestaña Flags vamos a desclickear todas las flag, que no quede ni una clickada.

Y ahora ya pasemos a configurar nuestro ai_goal_police de las 2 formas.

Policía Estático

Con esta configuración el policía no se moverá de su sitio ni aunque le mentes a su madre, la pestaña de opciones ha de quedar configurada así:

Name: Es donde introduciremos el nombre de la entidad para poder meterle outputs (yo he puesto goal_police pero da igual el nombre que pongáis mientras pongáis uno).

Parent: Esta opción sirve para emparentar esta entidad a otra. Si lo hacemos, este ai_goal_police, se moverá a la vera de la entidad que hayamos introducido en el campo Parent (no nos interesa para nada emparentarlo en este caso).

Pitch Yaw Roll (Y Z X): Aquí se muestran las coordenadas del punto a donde esta mirando la entidad. Rellenar este campo es importante puesto que el policía mirará a donde mire la entidad y si esta vigilando una puerta no quedaría muy bien que que estuviese de narices contra la puerta y dando la espalda al que se acerque (esto va a depender de donde coloquéis vosotros esta entidad).

Radius: Este es un radio esférico (el que vemos en la foto), su amplitud dependerá del valor que metamos (con un valor de 60 sera mas pequeño que con un valor de 120 para que me entendais). Si lo cruzamos el policía se mosqueará y nos dirá que retrocedamos (si no lo hacemos nos arriesgamos a un porrazo). Nosotros vamos a poner un valor de 60 que es poca distancia por que el policía no se va a mover (quedaría raro que nos amenace a 20 metros y que no vienese a por nosotros).

Target: Aquí introduciremos el nombre de la entidad con la que se mosqueará el policía al cruzar el Radius. En este caso (y en la mayoría) nos pondremos a nosotros (vamos a poner !player).

Bien, una vez configurada la pestaña de opciones pasaremos a configurar la pestaña de Flags:

Solamente hay 2:

Knock-out target past crossing plane: Si la clickamos el policía nos atacará si nos vamos detrás de el. Imaginémonos que el policía esta pegado de espaldas a una pared virtual… pues al cruzar esa pared virtual el policía vendrá a zurrarnos automáticamente (aunque estemos a mas de 30 metros de el). No nos interesa clickarla en este caso.

Do not leave post: Si la clickamos el policía nunca se moverá de su puesto por nada del mundo mientras este activa la entidad (esto es exactamente lo que queremos asique… ¡click!)

La entidad ya esta lista pero faltan 2 cosas mas…

1- El estado global del mapa debe cambiarse con un env_global a “Gordon pre-criminal”:

Name: No hace falta nombre pero si queréis podéis ponerle uno.

Initial State: Poned “On” en este campo.

Global State To Set: Aquí seleccionad “Gordon pre-criminal” en el desplegable.

En la pestaña flags clickad también la única flag que tiene “Set initial state”

2- Necesitamos una entidad que le asigne al policía nuestra ai_goal_police, por ejemplo un logic_auto. En este logic_auto que hemos puesto añadiremos el siguiente output:

“OnMapSpawn” “Supermadero” (el nombre que le hayamos dado al npc_metropolice) “SetPoliceGoal” “goal_police” (el nombre que le hayamos dado a nuestro ai_goal_police) “0.00”

Ya esta listo nuestro policía estático, ahora vamos con el dinámico.

Policía Dinámico

Con esta configuración el policía vendrá corriendo a darnos de porrazos si le hinchamos las narices. Ahora, para que esta configuración de policía dinámico funcione hay que clickar un par de flags en el metropolice que para la de policía estático no hacían falta:

Allowed to respond to thrown objects: Esta es para que se cabree si le lanzamos un objeto y venga a zurrarnos.

Fall to ground: Si os soy sincera no tengo ni la mas remota idea de para que sirve pero mejor que la clickeeis.

y ya esta, madero listo para la acción (el logic_auto y el env_global si que no hace falta tocarlos para nada).

Ahora vamos con las opciones del ai_goal_police (solo escribiré las que se tengan que modificar):

En la pestaña opciones no necesitaremos cambiar nada pero en la opción “Radius” le podemos poner un valor mas alto de 60 si queremos para que nos avise desde lejos si nos interesa (para que apreciéis la diferencia os recomiendo poner un valor de 120 por ejemplo).

En la pestaña flags deberéis desclickear la flag “Do not leave post” y entonces quedara así:

También podréis apreciar la diferencia entre el radio actual (120) del ai_goal_police y el anterior (60).

Y con estos ligeros cambios tendríamos un policía dinámico capaz de cargar contra todo aquel que le mire mal.

Final

Espero que lo hayáis comprendido todo y os sea de utilidad esta entidad ^^

Para mas información sobre el uso del logic_auto y el env_global echadle un ojo a las entradas Usando los logic_auto y Uso del env_global de la wiki.

source/mapas/ia_source_ai_goal_police.txt · Última modificación: 2011/06/15 17:31 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki



GAS Style basado en Prototype Style © 2008 ShadowFlames Development
Original Design by Frost - Maintained and Modified by Ika

Traducción al español por Huan Manwë