# Sistema Generacion Civiles con Traidores

Este sistema se pueden añadir, sin mucho esfuerzo, civiles en los mapas de juego.\
Ademas añade un sistema si se activa, que aleatoriamente algunos de ellos se pueden convertir en la faccion contraria, y ademas una probabilidad que aunque se conviertan saquen el arma para atacar o no, con un tiempo aleatorio o de que huyan por miedo o planten cara.

Para añadirlo el proceso y configuracion es sencillo.\
En el workbench, en el buscador de recursos, buscamos el prefab **BH\_AICivilianSpawner.et**, como se ve en la siguiente imagen, y lo ponemos en el mapa en la zona que deseemos. Puedes poner tantos prefabs de estos como se quieran poner en el mapa.\
No es necesario meterlo dentro de *(Area/Layer)*, \[color=#0000BF]**se puede dejar fuera de ellos**\[/color], funciona exactamente igual y evitamos complejidad de Herarquias.

![](/files/c7903d6ff45b7ab82efad964754b101915aed252)

Una vez puesto, ya viene con valores por defecto, pero se explican a continuacion cada uno de ellos por secciones.

### ***SISTEMA DE GENERACION DE CIVILES***

![](/files/438323d1936ee61ae70292e16a4cd03be1690219)

#### Parametros

* ***Minimun Distance To Player***: Distancia del jugador a la que se empezaran a generar los civiles.
* ***Check Distance Each Seconds***: Segundos que realiza el chequeo para ver si el jugador esta a la distancia anterior.
* ***Waypoint Prefab***: Prefab del waypoint que haran los civiles cuando spawnen.
* ***Waypoint Range***: Rango de distancia del waypoint. Contra mas grande, mas amplia es la zona donde spawnean los civiles.
* ***Show Range in Editor***: Si se quiere ver el waypoint en el editor.
* ***Civ Count***: Cantidad de civiles que spawnearan.
* ***Civ Count Nightmight***: Cuando sea de noche, spawnearan la mitad de civiles que se pongan en la cantidad anterior.
* ***Civ Prefabs***: Prefabs de los civiles que se deseen que spawnen. De base estan configurados todos lso prefabs del juego base. Se pueden cambiar/añadir si se añade otro mod.
* ***Group Prefab***: Prefab del grupo por defecto. Si se cambian atrubitos de un grupo y se quiere coger sobre ese prefab, se puede cambiar. El grupo defecto es el del juego base.
* ***Use Shared Group***: Si se desea crear un grupo para todos los civiles spawneados en esa zona, o un grupo por cada civil. Si se usa el sistema de espias, se recomienda desmarcar esta opcion.
* ***Civ Pick Random***: Elegir aleatoriamente civiles de la lista de los prefabs. Si se desmarca, se cogenh en orden de lista.
* ***Civ Get Damage***: Añade una venda a cada civil para que se pueda vendar.
* ***Disable Gamemaster Access***: Desactivar el acceso a dichos civiles desde el game master.

### ***SISTEMA DE ESPIAS ENTRE LOS CIVILES***

**BH Spy System**

#### Parametros

![](/files/a45e0dbffc31955e5a1bbb6d1f9bc016086e5bf9)

* ***Enable Spy System***: Activar el sistema de espias entre los civiles.
* ***Spy Chance***: Porcentaje de civiles sàwneados que se convertiran a espias.
* ***Spy Detection Distance***: Distancia del jugador que detectara si es espia.
* ***Spy Attack Chance***: Probabilidad de espias que sacaran el arma y dispararan.
* ***Spy Revert Distance***: Distancia del jugador a la que se volvera de nuevo civil el espia.
* ***Spy Enemy Faction Key***: Faccion enemiga a la que se convertira el espia cuando detecte al jugador.
* ***Spy Civilian Faction Key***: Faccion a la que se revertira el civil cuando el jugador se aleje.
* ***Spy Hint Faction Key***: Faccion a la que debe salirle el mensaje de advertencia.
* ***Spy Weapon Prefab***: Prefab del arma que llevara el espia guardada en la ropa.
* ***Spy Magazine Prefab***: Prefab del cargador del arma que vaya a llevar el espia.
* ***Spy Magazine Count***: Numero de cargadores que llevara el espia encima para su uso.
* ***Spy Hint Title***: Titulo del mensaje de advertencia, que saldra cuando haya un espia.
* ***Spy Hint Description***: Descripcion del mensaje de advertencia.
* ***Spy Hint Duration***: Duracion que estara visible el mensaje de advertencia.
* ***Spy Check Interval***: Cada cuanto tiempo de revisarse para que un espia se convierta en civil.

#### **BH Spy Behavior**

![](/files/6a471887d3d626222b77786e96546e25312bb3f1)

#### Parametros

* ***Spy Reaction Time Min***: Tiempo minimo en el cual sacara el arma una vez se delate.
* ***Spy Reaction Time Max***: Tiempo maximo en el cual sacara el arma una vez se delate.
* ***Spy Flee Chance***: Probabilidad de que el espia huya una vez transcurra el tiempo de reaccion. Valor de 0 al 100%. 0 siempre ataca.
* ***Spy Cooldown***: Cada cuanto tiempo (en segundos) se revisa para que no se activen al mismo tiempo todos los espias, de haber mas de uno.

#### Mensajero

Se a añadido este sistema dentro del componente para darle mas vida a los civiles. Con este sistema ahora un civil aleatorio en vez de disparar saldra "huyendo" hacia un punto que le asignemos. Ejemplo:\
\&#xNAN;*Llegan los jugadores a la ciudad donde hay civiles enemigos entre la poblacion civil, pues uno de ellos cuando los detecte, en vez de disparar se dirigira hacia la base del enemigo para avisar.*

El sistema actua sobre los SF de scenario framework, asi que las posibilidades que se pueden hacer son muy variadas.

<figure><img src="https://i.imgur.com/rYokgr4.png" alt=""><figcaption></figcaption></figure>

Para tenerlo disponible, solo tenemos que configurarlo.

#### Parametros

* ***Enable Spy Messenger:*** Activar el sistema de mensajero.
* ***Messenger Destination Name:*** Nombre de la entidad a la que la IA se dirijira. **Se recomienda usar un slotWaypoint, dentro de un Area/Layer**
* ***Messenger Arrival Radius:*** Radio de Messenger Destination Name, el cual detectara a la IA.
* ***Messenger Show Hint:*** Activar mensaje del tipo HINT, informando a los jugadores que una IA les va a delatar.
* ***Messenger Hint Faction Key:*** Faccion de los jugadores que recibiran la notificacion.
* ***Messenger Hint Tittle:*** Titulo del mensaje.
* ***Messenger Hint Description:*** Descripcion del mensaje.
* ***Messenger Hint Duration:*** Duracion del mensaje en pantalla.
* ***On Messenger Arrival Actions:*** Acciones SF que se activaran cuando la IA lleve al punto destino.

### ***AÑADIR A OTROS MODS***

Para utilizar este sistema con otros mods de civiles, hay que añadir un componente al prefab base de dicha faccion de civiles.\
Localizar el prefab "xx\_Base.et" y genera un **Overwrite** en tu mision, con el mismo nombre, para que sobreescriba el base del mod.\
Edita el nuevo prefab creado.\
En el inspector del prefab, se debe añadir el componente **BH\_CivilianSpyComponent**, como se ve en la siguiente imagen.

![](/files/55122fb6f65f0570d6ab865389a6bdd6e70b9460)

En este componente hay una pequeña configuracion, pero que en el modulo principal se sobreescribe.

![](/files/f9487948b3fb41f0896f4801aec99d3ab1bd0bb4)

Esto lo he ehcho asi, por si se necesita algun civil con alguna configuracion distinta a la del modulo que se pone en mision. De esta manera se tiene control total de cada civil, si fuese necesario para el editor.

Aunque he puesto aqui que hace cada parametro, en el editor sale un mensaje "en español" de la descripcion de cada uno de ellos.

Es compatible con el componente BH\_CivilianKillManager si se implementa este en el Gamemode.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bhelma.gitbook.io/bhelma-core/sistema-generacion-civiles-con-traidores.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
