¡Crea partidas de formas que antes eran impensables gracias al Workshop! En el Workshop, podrás crear una secuencia de comandos para agregar reglas y condiciones de juego únicas en los modos de juego tradicionales de Overwatch que ya conoces. Las reglas pueden hacer muchas cosas, como cambiar el funcionamiento de las habilidades o los movimientos de los héroes, modificar cómo los jugadores reciben daño o sanaciones, o incluso mostrar texto en determinadas circunstancias.
Un modo de juego popular que puedes crear es Suelo de lava, donde tu héroe se prenderá fuego si toca el suelo:
Índice
- Cómo acceder al Workshop
- Cómo crear una secuencia de comandos
- Cómo depurar tu secuencia de comandos
- Cómo compartir tu secuencia de comandos
- Cómo abrir una secuencia de comandos
- Consejos y trucos
Cómo acceder al Workshop
Para acceder al Workshop, haz clic en Jugar > Explorador de partidas > Crear > Configuración > Workshop.
Cómo crear una secuencia de comandos
Para crear una secuencia de comandos, debes hacer lo siguiente:
Una vez que hayas hecho todo eso, podrás agregar cuantas reglas, condiciones y acciones quieras en el espacio permitido.
Cómo agregar una regla
Las reglas son piezas altamente personalizables que conforman tu secuencia de comandos. Cada secuencia de comandos debe tener al menos una regla.
Cada regla tiene un comentario opcional y contiene lo siguiente:
- Evento: Define cuándo se ejecutará la regla. Para más información, consulta Cómo seleccionar un evento.
- Condiciones: Una lista opcional de cosas que deben ser verdaderas para que se aplique la regla. Para más información, consulta Cómo agregar una condición.
- Acciones: Una lista de cosas que ocurren cuando se cumplen el evento y las condiciones. Para más información, consulta Cómo agregar una acción .
Para agregar una regla, haz clic en Agregar regla.
Cómo seleccionar un evento
Un evento define cuándo se ejecutará la regla. Cuando un evento ocurre en el juego, se crea una instancia de la regla. Cada instancia evalúa condiciones y ejecuta acciones independientemente de las demás instancias.
Una vez que se crea una regla en el editor, se agrega automáticamente un evento. Debes especificar qué tipo de evento quieres.
Para especificar un tipo de evento, haz lo siguiente:
- Haz clic en el menú desplegable junto a Evento.
-
Selecciona uno de los siguientes:
Tipo de evento Comentario En curso - Global Crea una única instancia de esta regla cuando comienza la partida. Esta instancia permanece activa durante toda la partida.
- Dado que la instancia permanece activa durante toda la partida, una condición puede algunas veces cumplirse y otras veces no. Una vez que una condición se cumple por primera vez, las acciones comenzarán a ejecutarse.
- Cuando la lista de condiciones no se cumple, pero luego vuelve a cumplirse, las acciones intentarán ejecutarse nuevamente.
En curso - Cada jugador Crea una instancia de esta regla para cada jugador que se una a la partida. Esta instancia permanece activa hasta que el jugador abandone la partida o esta finalice. Cada instancia hace un seguimiento de las condiciones y las acciones y las ejecuta de forma separada.
- Dado que la instancia permanece activa mientras el jugador se encuentre en la partida, una condición puede algunas veces cumplirse y otras veces no. Una vez que una condición se cumple por primera vez, las acciones comenzarán a ejecutarse.
- Cuando la lista de condiciones no se cumple, pero luego vuelve a cumplirse, las acciones intentarán ejecutarse nuevamente.
El jugador obtuvo una eliminación Ejecuta la regla cada vez que un jugador obtiene una eliminación. Solo una instancia de la regla puede estar activa en un jugador determinado a la vez.
- Cuando un jugador elimina a alguien, se verifican las condiciones. Si todas las condiciones se cumplen, las acciones se ejecutarán. Si alguna condición no se cumple, las acciones no se ejecutarán.
El jugador asestó un golpe de gracia Ejecuta la regla cada vez que un jugador asesta un golpe de gracia. Solo una instancia de la regla puede estar activa en un jugador determinado a la vez.
- Cuando un jugador asesta el golpe de gracia a un oponente, se verifican las condiciones. Si todas las condiciones se cumplen, las acciones se ejecutarán. Si alguna condición no se cumple, las acciones no se ejecutarán.
El jugador infligió daño Ejecuta la regla cada vez que un jugador inflige daño. Solo una instancia de la regla puede estar activa en un jugador determinado a la vez.
- Cuando un jugador inflige daño a un oponente, se verifican las condiciones. Si todas las condiciones se cumplen, las acciones se ejecutarán. Si alguna condición no se cumple, las acciones no se ejecutarán.
El jugador recibió daño Ejecuta la regla cada vez que un jugador recibe daño. Solo una instancia de la regla puede estar activa en un jugador determinado a la vez.
- Cuando un jugador recibe daño de un oponente, se verifican las condiciones. Si todas las condiciones se cumplen, las acciones se ejecutarán. Si alguna condición no se cumple, las acciones no se ejecutarán.
El jugador murió Ejecuta la regla cada vez que un jugador muere. Solo una instancia de la regla puede estar activa en un jugador determinado a la vez.
- Cuando un jugador muere, se verifican las condiciones. Si todas las condiciones se cumplen, las acciones se ejecutarán. Si alguna condición no se cumple, las acciones no se ejecutarán.
-
En caso de ser necesario, especifica el equipo o el jugador que debería verse afectado por este evento. Las opciones son las siguientes:
Opción Comentario Todos El evento se aplicará a todos los equipos (incluye a todos los jugadores en los modos de todos contra todos) Equipo 1 (o el nombre actual del equipo) El evento solo se aplicará a los miembros de este equipo Equipo 2 (o el nombre actual del equipo) El evento solo se aplicará a los miembros de este equipo Opción Comentario Todos El evento se aplicará a todos los jugadores Posiciones 0 a 5 El evento solo se aplicará a los jugadores de las posiciones especificadas. En una partida de equipos, dos jugadores pueden ocupar una posición (una posición por equipo). Posiciones 6 a 11 El evento solo se aplicará a los jugadores de las posiciones especificadas. Solo se aplicará en los modos de juego de todos contra todos. Héroe determinado El evento solo se aplicará a aquellos jugadores que hayan reaparecido con ese héroe.
Cómo agregar una condición
Luego de que hayas agregado una regla y un evento, tendrás la opción de agregar una o más condiciones. Las condiciones son una lista de cosas que deben ser verdaderas antes de que la regla pueda ejecutar su lista de acciones. Si la condición pertenece a una regla con un tipo de evento "En curso - Global" o "En curso - Cada jugador", esta se verificará continuamente para detectar si es verdadera. Si pertenece a una regla de cualquier otro tipo, se verificará cuando ocurra el evento especificado. Si una regla no tiene condiciones, la lista de acciones intentará ejecutarse no bien ocurra el evento. Una condición está compuesta de dos valores, los cuales utilizan un operador para comparar y verificar si la condición es verdadera o falsa. Para más información, consulta Valores.
Para agregar una condición, haz lo siguiente:
- Haz clic en Agregar junto a Condiciones.
- Completa los campos que corresponden a Valor.
- Nota: Cuando un valor tiene una entrada (por ejemplo, el valor "Héroe de", el cual necesita saber de cuál jugador se adquirirá el héroe), la entrada de dicho valor aparecerá con sangría justo abajo.
- Selecciona un operador. Los operadores son los siguientes:
- == Igual a
- != Distinto a
- > Mayor que
- >= Mayor o igual que
- < Menor que
- <= Menor o igual que
Verifica si la cantidad total de jugadores en la partida es igual a la cantidad de jugadores vivos.
- Valor: "Cantidad de jugadores vivos" - Verifica la cantidad total de jugadores vivos
- Equipo: Equipo - Verifica todos los jugadores de un equipo
- Equipo: Todos - Verifica todos los jugadores de todos los equipos
- Operador: == - Significa que, para que esta condición sea verdadera, el primer valor debe ser igual al segundo.
- Valor: "Cantidad de jugadores vivos" - Verifica la cantidad total de jugadores vivos
- Equipo: Equipo - Verifica todos los jugadores de un equipo
- Equipo: Todos - Verifica todos los jugadores de todos los equipos
Otros ejemplos
- IsFlagBeingCarried(Victim) == False: El jugador que fue eliminado no debe haber estado transportando la bandera
- IsCrouching(Event Player) == True: El jugador donde el evento está activo debe estar agachado
- NumberOfFinalBlows(Attacker) > 10: El jugador que está atacando asestó más de 10 golpes de gracia.
Cómo agregar una acción
Una acción es algo que modifica la partida. Las acciones se ejecutan siguiendo un orden de arriba hacia abajo. Para que la lista de acciones comience a ejecutarse, haz lo siguiente:
- El evento vinculado a la regla debe haber ocurrido
- Todas las condiciones de la regla deben ser verdaderas (o no hay condiciones)
- Si el tipo de evento es "En curso - Global" o "En curso - Cada jugador", la lista de acciones se ejecutará cuando cada condición se cumpla por primera vez. Cuando la lista de condiciones no se cumple, pero luego vuelve a cumplirse, las acciones intentarán ejecutarse nuevamente.
Con la excepción de la acción de espera (para más información, consulta Acción de espera), todas las acciones se ejecutan y finalizan de manera inmediata. Una acción está compuesta de cero o más entradas, las cuales describen cómo se modifica la partida. Cada entrada recibe un valor, el cual es un fragmento de información o una orden sobre cómo obtener información. Para más información, consulta Valores.
Para agregar una acción, haz lo siguiente:
- Haz clic en Agregar junto a Acciones.
- Selecciona una acción, la cual describe cómo se modificará la partida.
- Selecciona un valor en el menú desplegable para cada nueva entrada que aparece.
- Nota: Algunas acciones crearán un objeto o un comportamiento continuo. Dichas acciones pueden tener una entrada llamada "Reevaluación". Esta entrada establece si las demás entradas de esta acción son fijas (el objeto o el comportamiento continuo permanecerán sin cambios) o dinámicas (el objeto o el comportamiento continuo se modificará dado que el valor asignado a la entrada cambia).
Acciones
- Pause Match Time: Pausa el tiempo de la partida actual
- Modify the Global Variable(T, Add, 5): Aumenta la variable global "T" en 5
- Set Invisible(Event Player, Enemies): Provoca que el jugador que ejecuta esta regla se vuelva invisible para los enemigos
Acciones con una entrada de reevaluación
- Create Icon(All Players(All Teams), Global Variable(P), Alert, Position): Crea un ícono de alerta visible para todos aquellos que se encuentran en la ubicación especificada por la variable global "P". Reevalúa la posición continuamente, de modo que si la variable global "P" cambia más tarde, la posición del ícono cambiará a la nueva ubicación.
- Create Icon(All Players(All Teams), Global Variable(P), Alert, None): Crea un ícono de alerta visible para todos aquellos que se encuentran en la ubicación especificada por la variable global "P". No reevalúa nada, de modo que, incluso si la variable global "P" cambia más tarde, la posición del ícono no se actualizará.
Tipos de acción
Si bien existen muchas acciones posibles, hay algunas que deberías tener en cuenta:
Bucle es una acción que provoca que la ejecución de la lista de acciones se reinicie desde el comienzo. Existen cuatro tipos de acción de bucle:
- Repetir: Reinicia siempre la lista de acciones
- Repetir si: Reinicia la lista de acciones si la entrada de condición de la acción es falsa o presenta un valor diferente a 0
- Repetir si la condición es verdadera: Reinicia la lista de acciones si todas las condiciones de la regla se están cumpliendo en ese momento
- Repetir si la condición es falsa: Reinicia la lista de acciones si alguna de las condiciones de la regla no se está cumpliendo en ese momento
Una acción de bucle se permite solo si se puede garantizar que una acción de espera se ejecutará antes del comienzo de la lista de acciones.
Bien | Mal |
---|---|
Esto se encuentra permitido, ya que espera antes de comenzar el bucle. |
Esto no se encuentra permitido, ya que se ejecutaría indefinidamente sin espera alguna. |
La acción de espera es una acción que causa que el tiempo pase antes de que se pueda ejecutar la siguiente acción. El tiempo mínimo de espera es de 0.25 segundos.
Existen tres opciones de comportamiento para la acción de espera:
- Ignorar condición: Si se selecciona esta opción, la ejecución de las acciones no podrá ser interrumpida por condiciones u otros eventos.
- Si el tipo de evento es "En curso - Global" o "En curso - Cada jugador", las condiciones que alternan entre cumplirse y no cumplirse no provocarán ningún efecto.
- Si el evento es de cualquier otro tipo y un evento de dicho tipo se produce en el mismo jugador del evento, el evento será ignorado completamente.
- Cancelar cuando es falso: Si se selecciona esta opción, la lista de acciones dejará de ejecutarse si las condiciones dejan de cumplirse.
- Reiniciar cuando es verdadero: Si se selecciona esta opción, la ejecución de las acciones se restablecerá a la primera acción si ocurre alguno de los siguientes supuestos:
- El tipo de evento es "En curso - Global" o "En curso - Cada jugador" y las condiciones pasan de no cumplirse a cumplirse.
- El evento es de cualquier otro tipo, un evento que se produce en el mismo jugador del evento, y todas las condiciones se cumplen.
Información adicional
El valor Cadena genera una cadena. Presenta las siguientes entradas:
- Cadena: El texto que se mostrará. Si el texto contiene un número entre llaves, este será reemplazado por el valor proporcionado en la entrada correspondiente.
- {0}: El valor que se convertirá en texto antes de reemplazar el {0} de la cadena. Este valor puede ser de cualquier tipo.
- {1}: El valor que se convertirá en texto antes de reemplazar el {1} de la cadena. Este valor puede ser de cualquier tipo.
- {2}: El valor que se convertirá en texto antes de reemplazar el {2} de la cadena. Este valor puede ser de cualquier tipo.
- String(“Hello”, Null, Null, Null): Produce la cadena “Hello”
- String(“{0} vs. {1}”, Hero(Ana), Hero(Pharah), Null): Produce la cadena “Ana vs. Pharah”
Las cadenas pueden combinarse para formar cadenas más complejas:
- String(“{0} vs. {1}”, Hero(Ana), String("{0} y {1}", Hero(Pharah), Hero(Genji), Null), Null): Produce la cadena “Ana vs. Pharah y Genji”
Las cadenas no pueden utilizarse en condiciones ni almacenarse en variables debido a complicaciones que surgen cuando los jugadores utilizan diferentes idiomas en la misma partida personalizada.
Un valor es un fragmento de información (o una orden sobre cómo obtener información) proporcionado a la entrada de una condición, una acción u otro valor. Los valores pueden combinarse entre sí.
Existen muchísimos valores, pero aquí no los definiremos a todos. Podrás encontrar todas las definiciones en el Editor del Workshop. Te presentamos algunos valores que probablemente encontrarás:
Valor | Comentario |
---|---|
Número | Proporciona un valor real en un intervalo especificado por la entrada |
Vector | Proporciona un valor tridimensional en un intervalo especificado por la entrada. Se utiliza para las posiciones y las direcciones. |
Equipo | Indica un equipo determinado (por ejemplo, equipo 1, equipo 2) o todos los equipos |
Héroe | Indica un héroe determinado |
Nulo | Indica la ausencia de un jugador o una entidad |
Verdadero | Proporciona el valor de verdadero |
Falso | Proporciona el valor de falso |
Comparar | Proporciona el valor de verdadero o falso según si la comparación que describe es verdadera o falsa |
Jugador del evento | Proporciona el jugador que ejecuta la instancia de la regla (el resultado será nulo si no existe dicho jugador) |
Atacante | Indica el atacante de la instancia de la regla (el resultado será nulo si no hay atacantes) |
Víctima | Indica la víctima de la instancia de la regla (el resultado será nulo si no hay víctimas) |
Elemento de matriz actual | Proporciona el valor actual sometido a consideración cuando se lo utiliza junto con los valores Es verdadero para cualquiera, Es verdadero para todos, Matriz filtrada o Matriz ordenada |
Un valor puede almacenarse en una matriz, que es un conjunto de varios valores.
- Varias acciones y valores pueden crear o modificar una matriz.
- Por ejemplo, el valor "Todos los jugadores" te proporciona una matriz de todos los jugadores que se encuentran actualmente en la partida.
- Además, puedes crear tus propias matrices utilizando la operación "Anexar a la matriz" de la acción "Modificar variable global" o "Modificar variable de jugador".
- Si una entrada espera una matriz, pero recibe otro tipo de valor, el valor se copiará a una matriz de un único elemento para el beneficio de la entrada. De forma similar, si una entrada espera otro tipo de valor, pero recibe una matriz, se utilizará el primer valor de la matriz (o el número 0 si la matriz está vacía).
Una variable es un sitio en el que se puede almacenar un valor para extraerse más tarde. Salvo las cadenas, cualquier valor puede almacenarse en una variable. Todas las variables comienzan con un valor numérico 0.
Existen dos tipos de variables en una secuencia de comandos:
- Variable global: Existen 26 variables globales, ordenadas de la A a la Z. Cada variable contiene un valor o matriz de valores separados.
- Variable de jugador: Cada jugador tiene 26 variables, ordenadas de la A a la Z. Cada variable contiene un valor o matriz de valores separados.
Existen tres operaciones que pueden realizarse en una variable:
- Establecer: Las acciones "Establecer variable global" y "Establecer variable de jugador" establecerán la variable a un nuevo valor y reemplazarán el valor anterior.
- Modificar: "Las acciones "Modificar variable global" y "Modificar variable de jugador" modifican el valor de una variable utilizando una operación aritmética determinada (por ejemplo, sumar, multiplicar, etc.) o una operación matricial (anexar, eliminar).
- Seguir: Las acciones "Seguir variable global con el tiempo", "Seguir variable de jugador con el tiempo", "Seguir variable global según la tasa" y "Seguir variable de jugador según la tasa" modifican gradualmente la variable con el tiempo o según una tasa especificada.
- El destino del seguimiento puede ser un número o un vector (o cualquier valor cuyo resultado sea un número o un vector).
- Si el destino es un número, el valor de la variable necesitará ser un número antes de que comience el seguimiento para que dicho seguimiento funcione correctamente.
- Si el destino es un vector, el valor de la variable necesitará ser un vector antes de que comience el seguimiento para que dicho seguimiento funcione correctamente.
- Si la reevaluación se encuentra habilitada para el destino, el seguimiento se actualizará según resulte necesario para perseguir un destino modificado, incluso si anteriormente se hubiera alcanzado el destino. Para más información sobre la reevaluación, consulta Cómo agregar una acción.
- Puedes cancelar un seguimiento utilizando las acciones "Detener seguimiento de variable global" y "Detener seguimiento de variable de jugador".
- Cuando se cancela un seguimiento, la variable conserva su valor actual, el cual puede encontrarse en un punto intermedio entre el comienzo del seguimiento y el destino.
- El destino del seguimiento puede ser un número o un vector (o cualquier valor cuyo resultado sea un número o un vector).
Ejemplos
¿Listo para zambullirte en la acción? ¡Prueba crear uno de estos modos de juego! Te enseñaremos todo lo que necesitas agregar y por qué debes hacerlo:
Te enseñaremos a crear Suelo de lava, una partida donde los héroes se queman y reciben daño si se encuentran en el suelo.
- Primero, asegúrate de elegir los mapas en los que deseas jugar.
- Haz clic en Jugar > Explorador de partidas > Crear > Configuración > Mapas.
- Selecciona el mapa donde deseas probar la partida y deshabilita los demás.
- Luego, ingresa a Workshop.
- Haz clic en Atrás.
- Haz clic en Workshop.
- ¡Llegó la hora de crear una secuencia de comandos! Agreguemos nuestra primera regla.
- Haz clic en Agregar regla.
- En la sección Comentario, ingresa Comenzar a quemar si se encuentra en el suelo. De esta forma, sabrás que esta es la regla que provoca que los jugadores comiencen a quemarse cuando tocan el suelo.
- Ahora, cambia el tipo de evento para saber cuándo debería ejecutarse esta regla.
- En el menú desplegable de Evento, selecciona En curso - Cada jugador. Esto indica que la regla se evaluará de forma separada para cada jugador de la partida.
- Deja los demás menús desplegables con las opciones predeterminadas.
- Ahora, agreguemos una condición. Esta condición determinará si se ejecutará o no la regla. ¡También puedes dejar la condición vacía si quieres que la regla se ejecute siempre!
- En Condiciones, haz clic en Agregar.
- En el primer menú desplegable de Valor, selecciona En el suelo. Este valor será verdadero siempre que el jugador se encuentre en el suelo.
- Deja todos los demás menús desplegables con las opciones predeterminadas y haz clic en Aceptar.
- Jugador del evento significa "el jugador a quien se le aplica actualmente la regla".
- Por último, agregaremos una acción. Las acciones son aquello que ocurre cuando la condición es verdadera.
- Esta acción provocará que un héroe comience a quemarse cuando esté en el suelo.
- En Acciones, haz clic en Agregar.
- En el menú desplegable de Acción, selecciona Establecer estado.
- En el menú desplegable de Estado, selecciona En llamas.
- En Duración, cambia el control deslizante numérico a 10,000.
- Deja todos los demás menús desplegables con las opciones predeterminadas y haz clic en Aceptar.
- Esta acción provocará que un héroe comience a quemarse cuando esté en el suelo.
- ¡Probemos si tu héroe se quema cuando toca el suelo!
- Haz clic en Atrás dos veces.
- En la pantalla Crear partida, haz clic en Comenzar.
- Selecciona un héroe.
- En cuanto entres a la partida, tu héroe debería estar en llamas.
- Presiona Esc y haz clic en Abrir Editor de Workshop para seguir construyendo tu secuencia de comandos.
- Ahora, agreguemos otra regla para garantizar que los héroes no se quemarán si están saltando o si se encuentran en el aire.
- En lugar de agregar una nueva regla desde el comienzo, copiemos la última que creamos.
- Junto a la regla que creaste, haz clic en Copiar.
- Haz clic en Pegar regla.
- Cambia la descripción a Dejar de quemar si se encuentra en el aire. De esta forma, sabrás que esta es la regla que provoca que los héroes dejen de quemarse cuando están saltando o se encuentran en el aire.
- Conserva el tipo de evento existente.
- Ahora, editemos la condición. Esta condición determinará si se ejecutará o no la regla.
- Haz clic en la condición existente que dice "Is On Ground(Event Player) == True".
- En el menú desplegable de Valor, selecciona Falso.
- Deja todos los demás menús desplegables con las opciones existentes y haz clic en Aceptar.
- Ahora, editemos la acción. Esta acción provocará que tu héroe deje de quemarse si no se encuentra en el suelo.
- Haz clic en la acción existente que dice "Set Status (Event Player, Null, Burning, 10000)".
- En el menú desplegable de Acción, selecciona Eliminar estado.
- En el menú desplegable de Estado, selecciona En llamas.
- Deja todos los demás menús desplegables con las opciones existentes y haz clic en Aceptar.
- ¡Probemos si el héroe deja de quemarse cuando se encuentra en el aire!
- Haz clic en Atrás dos veces.
- En cuanto entres a la partida, tu héroe debería estar en llamas. Salta y fíjate si tu héroe ya no está en llamas.
- Presiona Esc y haz clic en Abrir Editor de Workshop para seguir construyendo tu secuencia de comandos.
- Por último, haremos que el héroe reciba daño cuando se encuentra en el suelo.
- Expande la regla "Comenzar a quemar si se encuentra en el suelo".
- En Acciones, haz clic en Agregar. Esta acción provocará que el héroe reciba daño mientras se encuentre en el suelo.
- En el menú desplegable de Acción, selecciona Daño con el tiempo.
- En Duración, cambia el control deslizante numérico a 9999.
- En Daño por segundo, cambia el control deslizante numérico a 30.
- Deja todos los demás menús desplegables con las opciones predeterminadas y haz clic en Aceptar.
- Expande la regla "Dejar de quemar si no se encuentra en el suelo".
- En Acciones, haz clic en Agregar . Esta acción provocará que el héroe deje de recibir daño mientras no se encuentre en el suelo.
- En el menú desplegable de Acción, selecciona Detener todo el daño con el tiempo .
- Probemos si tu héroe recibe daño cuando se encuentra en el suelo y si no recibe daño cuando se encuentra en el aire o está saltando.
- Haz clic en Atrás dos veces.
- Sal del cuarto de reaparición para ver si tu héroe comienza a recibir daño.
- Salta y fíjate si tu héroe deja de recibir daño.
- ¡Lo lograste! ¡Ahora el suelo es lava!
Ahora te presentaremos una guía más detallada de un modo de juego llamado Combate a muerte reflejado. En este modo de juego, hay varias rondas cortas donde todos juegan con el mismo héroe. Al final de cada ronda, cada jugador reaparecerá donde se encontraba con un nuevo héroe, el cual es seleccionado siguiendo el orden de una lista aleatorizada y predeterminada. Cuando finaliza la última ronda, el jugador con más eliminaciones gana.
Por ejemplo, en una partida, todos pueden comenzar como McCree y luego cambiar a Pharah en la segunda ronda. En una partida diferente, pueden comenzar como Widowmaker y luego cambiar a Ashe en la segunda ronda. Debido a cómo se genera esta lista, ¡es poco probable que vuelvas a jugar utilizando la misma lista de héroes dos veces!
Ahora, ¡hagamos una secuencia de comandos para Combate a muerte reflejado!
- Haz clic en Jugar > Explorador de partidas > Crear > Configuración > Workshop.
- Primero, crearemos la regla que hace la lista de héroes que pueden usarse.
- Esta lista se almacenará en la variable global "L" como matriz.
- Las matrices pueden ser cualquier cosa: una lista de jugadores, una lista de héroes, una lista de números, un único valor o incluso ningún valor (conocida como una matriz "vacía").
- Cada valor de la matriz se almacena en un índice único que comienza a contarse a partir de 0. A veces, un índice y su valor se denominan un elemento.
- El orden de una matriz es importante, de modo que
[Reaper, Winston, Mercy]
conforman una matriz distinta a[Mercy, Winston, Reaper]
. - Las matrices pueden contener una combinación de tipos. Por ejemplo, se puede tener la siguiente matriz:
[123, Reaper, True, -4.5]
. - Si una entrada espera una matriz, pero se le proporciona un único valor, la entrada recibirá dicho valor dentro de una matriz de un solo elemento.
- Si una entrada espera un único valor, pero se le proporciona una matriz, la entrada recibirá el primer valor de la matriz (o 0 si la matriz está vacía).
- Agrega una regla e ingresa un comentario para recordar qué hace esta regla.
- Establece el tipo de evento como En curso - Global. Esto significa que solo se ejecutará una única instancia de esta regla.
- Dado que la regla no tiene condiciones, comenzará a ejecutarse no bien comience la partida.
- Agrega una acción con lo siguiente:
- Acción: Establecer variable global
- Variable: L
- Valor: Héroe
- Héroe: Un héroe que quieras utilizar.
- Acción: Establecer variable global
- Sin embargo, tener un solo héroe para jugar en la partida es aburrido. ¡Agreguemos más! Agrega cuantas acciones desees haciendo lo siguiente:
- Acción: Modificar variable global
- Variable: L
- Operación: Anexar
- Valor: Héroe
- Héroe: Un héroe que quieras utilizar.
[0, Pharah, Hanzo, Ana,...]
. - Acción: Modificar variable global
- Agreguemos la última acción para esta regla. Esta regla tomará una copia aleatorizada de la variable global "L" (la matriz de héroes), copiará una parte de la matriz, la cual ahora se encuentra aleatorizada y comienza en la posición 0, e incluirá la cantidad de héroes que debería tener el modo de juego. Luego, esta copia se almacenará en la variable global "L", lo cual generará un subconjunto reorganizado aleatoriamente de la lista de héroes original que proporcionaste.
- Por ejemplo: Si la lista inicial de héroes fuera
[Ashe, Doomfist, Hanzo, McCree, Pharah, Soldado: 76, Zenyatta, Widowmaker, Ana]
, la matriz aleatorizada podría ser[Hanzo, Pharah, Widowmaker, Ana, Ashe, Doomfist, Soldado: 76, Zenyatta, McCree]
y el segmento podría ser[Hanzo, Pharah, Widowmaker, Ana, Ashe, Doomfist]
.
- Por ejemplo: Si la lista inicial de héroes fuera
- Esta lista se almacenará en la variable global "L" como matriz.
- La siguiente regla garantiza que, sin importar las circunstancias, todos los jugadores usen el mismo héroe todo el tiempo.
- Agrega una regla e ingresa un comentario para recordar qué hace esta regla.
- Establece el tipo de evento como En curso - Cada jugador. Esto significa que cada jugador ejecutará su propia instancia de la regla.
- Agrega dos condiciones, las cuales deben ser verdaderas para forzar el héroe:
- El número de ronda, la variable global "R", debe ser menor que la cantidad total de héroes en la lista de héroes. Si no es menor, no se forzarán más héroes y la partida finalizará. El número de ronda comienza a contarse desde 0. Por este motivo, si una partida tiene 6 rondas, el número de ronda final será 5. Se entiende que la variable global "R" nunca se establece en 0, ya que todas las variables comienzan con un valor predeterminado 0.
- Valor: Variable global
- Variable: R
- Operador: <
- Valor: Conteo de
- Matriz: Variable global
- Variable: L
- Matriz: Variable global
- Valor: Variable global
- Verifica si el héroe que un jugador determinado está usando actualmente debe ser diferente al héroe deseado para dicho número de ronda. El "jugador determinado" se encuentra representado por el valor "Jugador del evento", un valor especial que hace referencia al jugador que ejecuta actualmente una instancia de la regla. El "héroe deseado" para la ronda actual es el héroe almacenado en el índice correspondiente de la lista de héroes (variable global "L"). Dado que la ronda actual está almacenada en la variable global "R", se puede obtener el héroe deseado utilizando "Valor en la matriz".
- Valor: Héroe de
- Jugador: Jugador del evento
- Operador: !=
- Valor: Valor en la matriz
- Matriz: Variable global
- Variable: L
- Índice: Variable global
- Variable: R
- Matriz: Variable global
- Valor: Héroe de
- El número de ronda, la variable global "R", debe ser menor que la cantidad total de héroes en la lista de héroes. Si no es menor, no se forzarán más héroes y la partida finalizará. El número de ronda comienza a contarse desde 0. Por este motivo, si una partida tiene 6 rondas, el número de ronda final será 5. Se entiende que la variable global "R" nunca se establece en 0, ya que todas las variables comienzan con un valor predeterminado 0.
- Una vez que sabemos que el jugador debe cambiar de héroe, agrega dos acciones que ejecutarán lo siguiente:
- La primera acción forzará al jugador del evento a usar el héroe deseado. La primera entrada de la acción es el jugador cuyo héroe debería ser forzado. La segunda entrada es el héroe, de modo que se proporcionará el héroe deseado.
- Acción: Comenzar a forzar a un jugador a usar un héroe
- Jugador: Jugador del evento
- Héroe: Valor en la matriz
- Matriz: Variable global
- Variable: L
- Índice: Variable global
- Variable: R
- Matriz: Variable global
- La segunda acción precarga el siguiente héroe en la lista para que el jugador pueda ver rápidamente el cambio de héroes. Cada jugador precarga el héroe de manera separada, aun cuando todos usen el mismo héroe. Esto se debe a que cada jugador puede necesitar precargar un diseño diferente para el héroe. Si usas Agregar valor para agregar 1 a la variable global "R", podrás ordenar a la acción que precargue el siguiente héroe en lugar del héroe actual. En la última ronda, el resultado será un índice de matriz que se encuentra fuera del límite de la variable global "L" de la matriz. Este resultado es normal, ya que se entiende que todos los valores que se encuentran fuera del límite de una matriz equivalen a 0. Por este motivo, una acción que espera un héroe y obtiene 0 no tendrá efecto.
- Acción: Precargar héroe
- Jugador: Jugador del evento
- Héroe: Valor en la matriz
- Matriz: Variable global
- Variable: L
- Índice: Agregar
- Valor: Variable global
- Variable: R
- Valor: Número
- Número: 1.00
- Valor: Variable global
- Matriz: Variable global
- La primera acción forzará al jugador del evento a usar el héroe deseado. La primera entrada de la acción es el jugador cuyo héroe debería ser forzado. La segunda entrada es el héroe, de modo que se proporcionará el héroe deseado.
- La siguiente regla que haremos establece cada ronda como si no se hubiera inicializado todavía.
- Agrega una regla e ingresa un comentario para recordar qué hace esta regla.
- Establece el tipo de evento como En curso - Global. Esto significa que solo se ejecutará una única instancia de esta regla.
- Agrega tres condiciones, las cuales deben ser verdaderas para que comience la ronda:
- La partida debe estar en curso. Eso significa que la pantalla de Forma tu equipo y el tiempo de preparación ya han transcurrido, pero la partida todavía no ha finalizado.
- Valor: Partida en curso
- Operador: ==
- Valor: Verdadero
- La variable global "I" debe ser falsa. Esta variable se utiliza para indicar si la ronda actual se ha inicializado. Si la variable global "I" nunca ha sido establecida, tendrá un valor 0, lo cual equivale a falso en comparaciones como esta.
- Valor: Variable global
- Variable: I
- Operador: ==
- Valor: Falso
- Valor: Variable global
- El número de ronda, la variable global "R", debe ser menor que la cantidad total de héroes en la lista de héroes.
- Valor: Variable global
- Variable: R
- Operador: <
- Valor: Conteo de
- Matriz: Variable global
- Variable: L
- Matriz: Variable global
- Valor: Variable global
- La partida debe estar en curso. Eso significa que la pantalla de Forma tu equipo y el tiempo de preparación ya han transcurrido, pero la partida todavía no ha finalizado.
- Una vez que sabemos que todas las condiciones son verdaderas, la ronda necesita inicializarse. Para ello, agrega algunas acciones:
- La primera acción le dirá al modo de juego original que la partida no debería finalizar siguiendo criterios normales. En un Combate a muerte, eso significa que la partida no finalizará porque el tiempo se acaba o porque alguien alcanza el límite de puntuación. Una vez que se ejecute esta acción, la partida no finalizará hasta que la secuencia de comandos vuelva a habilitar la finalización integrada del modo de juego o bien se declare explícitamente a un ganador.
- Acción: Deshabilitar la finalización integrada del modo de juego
- La siguiente acción transforma la duración actual del modo de juego a la duración de una ronda.
- Acción: Establecer tiempo de la partida
- Tiempo: Número
- Número: 60.00
- Esta acción establece la variable global "I" como verdadera, de modo que la inicialización no volverá a ocurrir hasta que la variable global "I" vuelva a ser falsa.
- Acción: Establecer variable global
- Variable: I
- Valor: Verdadero
- La primera acción le dirá al modo de juego original que la partida no debería finalizar siguiendo criterios normales. En un Combate a muerte, eso significa que la partida no finalizará porque el tiempo se acaba o porque alguien alcanza el límite de puntuación. Una vez que se ejecute esta acción, la partida no finalizará hasta que la secuencia de comandos vuelva a habilitar la finalización integrada del modo de juego o bien se declare explícitamente a un ganador.
- Esta regla espera a que se acabe el tiempo de la ronda actual antes de avanzar a la siguiente.
- Agrega una regla e ingresa un comentario para recordar qué hace esta regla.
- Establece el tipo de evento como En curso - Global. Esto significa que solo se ejecutará una única instancia de esta regla.
- Agrega dos condiciones, las cuales deben ser verdaderas para que la partida avance a la siguiente ronda:
- La partida debe estar en curso. Eso significa que la pantalla de Forma tu equipo y el tiempo de preparación ya han transcurrido, pero la partida todavía no ha finalizado.
- Valor: Partida en curso
- Operador: ==
- Valor: Verdadero
- El tiempo actual de la partida debe ser 0, lo cual significa que se ha acabado el tiempo de la ronda.
- Valor: Tiempo de la partida
- Operador: ==
- Valor: Número
- Número: 0.00
- La partida debe estar en curso. Eso significa que la pantalla de Forma tu equipo y el tiempo de preparación ya han transcurrido, pero la partida todavía no ha finalizado.
- Como respuesta a que estas condiciones sean verdaderas y que la ronda haya finalizado, la partida avanzará al siguiente número de ronda y marcará la ronda como desinicializada. Para ello, agrega dos acciones:
- Esta acción notifica a las demás reglas que la partida ha avanzado a la ronda siguiente.
- Acción: Modificar variable global
- Variable: R
- Operación: Sumar
- Valor: Número
- Número: 1.00
- Esta acción establece la variable global "I" como falsa, lo cual notifica a las demás reglas que una nueva ronda necesita inicializarse.
- Acción: Establecer variable global
- Variable: I
- Valor: Falso
- Esta acción notifica a las demás reglas que la partida ha avanzado a la ronda siguiente.
- La última regla finaliza la partida una vez que se hayan jugado todas las rondas.
- Agrega una regla e ingresa un comentario para recordar qué hace esta regla.
- Establece el tipo de evento como En curso - Global. Esto significa que solo se ejecutará una única instancia de esta regla.
- Agrega una condición, la cual verificará si la variable global "R" es igual que la cantidad de elementos en la variable global "L". De ser así, significa que se ha jugado una ronda con cada héroe de la lista de héroes. Cuando esto ocurra, la partida debería finalizar.
- Valor: Variable global
- Variable: R
- Operador: ==
- Valor: Conteo de
- Matriz: Variable global
- Variable: L
- Matriz: Variable global
- Valor: Variable global
- Una vez que la condición sea verdadera, esta acción volverá a habilitar la finalización integrada del modo de juego. Dado que el temporizador se encontrará en 0, el modo de juego finalizará la partida inmediatamente y comenzará el procedimiento estándar de fin de partida.
- Acción: Habilitar la finalización integrada del modo de juego
Cómo depurar tu secuencia de comandos
Una vez que hayas creado una secuencia de comandos, podrás utilizar el Inspector de Workshop para observar cómo se ejecuta tu secuencia de comandos en el juego, ver qué acciones y condiciones se encuentran activas y detectar problemas en tu secuencia de comandos.
Para acceder al Inspector de Workshop, haz lo siguiente:
- Inicia una partida con la secuencia de comandos que has creado.
- Presiona Esc.
- Presiona Abrir depurador de secuencia de comandos
- Presiona Habilitar. Esta función no se encuentra habilitada de manera predeterminada.
El Inspector de Workshop está compuesto por los siguientes elementos:
- Entrada: La Entrada te permite saber qué está ocurriendo.
- Comentario: Muestra el comentario vinculado a la regla.
- Condición: Enumera las condiciones que deben cumplirse para que se ejecuten las acciones.
- Acción: Enumera las acciones ejecutadas.
- Depurador de línea de tiempo: El depurador de línea de tiempo te permite avanzar o retroceder en el tiempo durante el transcurso de la partida.
Cómo compartir tu secuencia de comandos
Una vez que hayas creado una secuencia de comandos asombrosa, podrás compartirla con todo el mundo (o solo con tus amigos) durante los siguientes seis meses. Las secuencias de comandos que creas pueden utilizarse en cualquier plataforma, independientemente de la plataforma en la cual las hayas creado.
Para compartir una secuencia de comandos, haz lo siguiente:
- Haz clic en Jugar > Explorador de partidas > Crear > Configuración > Compartir .
- Haz clic en Copiar.
- ¡Envía el enlace a todos!
Cómo abrir una secuencia de comandos
Si quieres utilizar una secuencia que alguien ha compartido, haz lo siguiente:
- Haz clic en Jugar > Explorador de partidas > Crear > Configuración > Importar .
- Ingresa el enlace.
- Haz clic en Aceptar.
Consejos y trucos
- Puedes acceder al Inspector de Workshop con mayor facilidad al asignarle un atajo. Para ello, haz clic en Esc > Opciones > Controles. Desplázate hacia abajo hasta encontrar Abrir Inspector de Workshop y asígnale una tecla.
- ¡El Inspector de Workshop no solo te dirá qué sucedió, sino también qué no sucedió (y por qué)!
- ¡No te olvides de los modos de juego predeterminados! Puede haber determinadas configuraciones ya existentes que puedes utilizar para no tener que crear soluciones manualmente.
- Si un evento no se ejecuta de la forma esperada, es posible que tu jugador del evento ya esté ejecutando la lista de acciones. Echa un vistazo a las acciones de espera de tu regla, sobre todo si alguna está configurada para ignorar condiciones.
- Para elegir una ubicación determinada en el mapa, utiliza el valor "Vector" y haz clic en el ícono de la cámara.
- El valor "Apareció" es útil si quieres que la lógica se ejecute solo después de que un jugador tenga un héroe en la partida.
- Si quieres que tus reglas se ejecuten solo después de las fases de preparación y de Forma tu equipo de la partida, utiliza el valor "Partida en curso".
- A menudo, asignar un valor a una variable y observarla en el Inspector de Workshop es la forma más fácil de entender cuál es el resultado del valor durante la partida.
- Puedes almacenar el último efecto o ícono creado en una variable de jugador utilizando el valor "Última entidad creada". Esto te permite establecer una referencia a la entidad para poder destruirla más tarde.
- Combina Matrices filtradas con valores tales como "Todos los jugadores que están en el objetivo" o "Jugadores dentro del radio" para filtrar con facilidad aquellos jugadores que cumplen determinados criterios (por ejemplo, si están muertos, si están vivos, si tienen un efecto de estado, etc.).
- Si necesitas un comportamiento de bifurcación, puedes utilizar la acción "Omitir si" para omitir cualquier cantidad de acciones si una condición determinada es verdadera. Al hacer esto, es posible que las acciones omitidas necesiten una acción "Abortar" para impedir que se ejecuten ambas bifurcaciones.
- Puedes filtrar las listas desplegables al escribir.
- Si tu valor espera una matriz como parámetro, pero no la recibe, colocará la entrada en una matriz de tamaño 1.
- Lo mismo ocurre a la inversa. Si tu valor espera un único fragmento de información, pero recibe una matriz, utilizará el elemento de la posición 0 de dicha matriz.
- Divide tu trabajo en varias acciones o condiciones para descubrir con mayor facilidad dónde se encuentran los errores.
- Si no sabes qué hace una acción, una entrada o un valor, puedes colocar el mouse sobre el elemento en la PC o elegir "Mostrar detalles" en la consola para ver una explicación.
- ¡No te olvides de completar la sección Comentario para recordar qué hace tu regla!
- ¡Haz pruebas a menudo!