AccionMenu
Permite definir las opciones que aparecen en el menú de acciones del jugador. Cada
entidad sólo permite definir una acción del menú.
Menú de acciones
Parámetros de esta entidad:
Activa
Con valor 'True' esta acción se aplicará al menú de acciones.
Con valor 'False' esta acción no se aplicará al menú de acciones.
Num_acción
Número de acción (entre 1 y 8).
Es el número de acción, de las 8 disponibles, que queremos cambiar. Las opciones están numeradas
del 1 al 8 de arriba a abajo.
Verbo
Nombre de la acción.
Texto que representará la acción que llevará a acabo el jugador cuando la seleccione.
Este texto puede ser cualquier cosa, aunque normalmente son verbos como: Leer, Comer, Usar, Robar, etc... o lo que se te ocurra.
Rellena este parámetro únicamente con el símbolo menos '-' y esta acción del menú de acciones del jugador
no será procesada por el sistema.
Acerca de esta entidad:
Esta lista muestra los números de acción correspondientes al orden de las acciones con sus respectivos nombres por defecto:
1 Usar
2 Entregar
3 Tomar
4 Mostrar
5 Comprar
6 Vender
7 Leer
8 Poner
Debes usar entidades 'AccionMenu' para cambiar las opciones que te interese modificar
para adaptar este menú a las necesidades de tu juego.
Recuerda que cada entidad es sólo para modificar el nombre de una acción del
menú.
Sitúa estas entidades en el primer nivel de tu juego para que se vean en
todos los niveles.
Para que este menú le aparezca al jugador al pulsar la tecla de inventario (tecla 'i')
debes poner el valor 'Z' del parámetro 'Acciones_XY' de la entidad Marcador con valor 1.
¿ Para que sirven estas acciones ?:
De hecho el efecto de estas acciones lo definirás tú con comandos en ficheros
de comandos .INI. Básicamente se usan para procesar una determinada serie
de comandos en función de la acción que seleccione el jugador combinada con el
objeto que tenga seleccionado en su inventario de objetos.
¿ Cómo realiza el jugador una acción de este tipo ?:
1.- El jugador se sitúa en el lugar del nivel que desea realizar la acción.
2.- Hace aparecer el inventario de objetos con la tecla 'i'.
3.- Usando las teclas de selección de objeto del inventario (por defecto las flechas derecha e
izquierda del teclado numérico), seleccionará el objeto que quiere que intervenga
en la acción.
4.- Seguidamente usando las teclas de selección de acción del menú de acciones
(por defecto las teclas arriba y abajo del teclado numérico), seleccionará la
acción que quiere realizar combinada con el objeto que tiene seleccionado.
5.- Finalmente pulsará la tecla 'Acción' (por defecto la tecla de espacio) para
realizar la acción combinada. El jugador verá en la parte inferior de la pantalla
la acción combinada que intenta realizar, independientemente de si esa acción será
procesada o no.
Yo como desarrollador del juego ... ¿ Cómo detecto y proceso esas acciones que realiza el jugador ?:
Cada vez que el jugador realiza una acción de este tipo, de forma completamente
automática, Entidad 3D guarda en la variable 'ACCION_SELECCIONADA' el texto de
la acción que ha seleccionado el jugador, también guarda en la variable 'OBJETO_SELECCIONADO'
el número de objeto que tiene seleccionado en el inventario de objetos.
Pues ya te imaginas lo simple que resultará detectar la acción y el objeto
que está utilizando el jugador cuando haya pulsado la tecla 'Acción'. Bastará
usar en un fichero .INI asociado a una entidad, un simple 'IF COND' con dos condiciones para detectarlo.
Ejemplo 1:
IF COND ACCION_SELECCIONADA=Usar COND OBJETO_SELECCIONADO=3
ACCI TEXT El jugador quiere usar el objeto 3 aqui
ENDIF
Como ves, de ti depende realizar los comandos que creas convenientes para las
combinaciones de acciones que establezcas en tu juego.
Observa que la detección del objeto usando la variable 'OBJETO_SELECCIONADO' no se realiza como en otros comandos
de esta forma '3_tarjeta.act=1', sino que se debe utilizar el número de objeto directamente.
Si usas la detección de acciones en ficheros .INI asociados a entidades, es
importante para que funcione, que el parámetro 'Boton_accion' de la entidad
que uses, esté a 'True'.
Si, eso está muy bien para detectar y procesar acciones en lugares determinados,
pero ... ¿ como hago para por ejemplo detectar cuando el jugador se tome una
pócima en cualquier momento y lugar del juego ?:
Para eso debes crear un fichero de comandos .INI independiente que se
procesará cada vez que el jugador realice una acción de este tipo. El nombre de
este fichero debes indicarlo en la entidad Configuracion parámetro 'FicheroAcciones'.
Será pues en ese fichero de acciones donde deberemos detectar y procesar las
posibles acciones que quiera realizar el jugador en cualquier momento y lugar del
juego:
Ejemplo 2:
En un fichero que llamaremos 'accion_general.ini' tendríamos lo siguiente:
IF COND ACCION_SELECCIONADA=Tomar COND OBJETO_SELECCIONADO=4
ACCI TEXT Te has tomado la pocima
ACCI QINV 4_pocima.act
ACCI DSAL 50
ENDIF
En el parámetro 'FicheroAcciones' de la entidad 'Configuracion' habremos puesto: accion_general.ini
También se pueden detectar acciones que prevemos que puede intentar el
jugador y que no tienen una finalidad concreta en el juego pero no queremos
que el jugador se quede sin algún tipo de respuesta:
Ejemplo 3:
IF COND ACCION_SELECCIONADA=Entregar COND OBJETO_SELECCIONADO=5
ACCI TEXT Ese libro de codigos es como chino para mi, quita ese libro de mi vista
ENDIF
El jugador también puede seleccionar alguna acción del menú de acciones y
no seleccionar ningún objeto en el inventario de objetos, por lo que la acción
será simplemente el propio nombre de la acción, sin objeto asociado. En este
caso el contenido de la variable 'OBJETO_SELECCIONADO' valdrá 0.
Esto también lo podremos detectar de la siguiente forma:
Ejemplo 4:
IF COND ACCION_SELECCIONADA=Activar COND OBJETO_SELECCIONADO=0
ACCI TEXT El panel de control que has activado muestra el código: AF1D75
ENDIF
Otros ejemplos:
Ejemplo 5:
Vender unos planos (objeto número 16):
IF COND ACCION_SELECCIONADA=Vender COND OBJETO_SELECCIONADO=16
ACCI TEXT Gracias por los planos secretos. Toma tus 6000 euros
ACCI QINV 16_planos.act
ACCI OPE+ DINERO 6000
ENDIF
Ejemplo 6:
El jugador entrega un lingote de oro en espera de favores. Un favor puede ser hacer desaparecer
un matón que está en una puerta que impide pasar al jugador:
IF COND ACCION_SELECCIONADA=Entregar COND OBJETO_SELECCIONADO=17
ACCI TEXT Gracias por tu aportacion. ¡John, dejalo pasar!
ACCI QINVUSO 17_lingotes.act
ACCI VIS0 maton1.act 0
ENDIF
El funcionamiento de la tecla 'Acción' cuando el jugador no tenga en pantalla
el menú de acciones, sigue siendo igual que en anteriores versiones de Entidad 3D
que no poseían el menú de acciones, es decir, lanzará el fichero de comandos asociado a la entidad si esa entidad
tiene a 'True' el parámetro 'Boton_accion'.
Coloca, en el primer nivel, tantas entidades 'AccionMenu' como nombres
de acciones quieras cambiar. Las entidades pueden estar situadas en cualquier
parte del nivel mientras se encuentren en el interior del mapa.
Si no quieres cambiar ninguna de las acciones que ya existen por
defecto en el menú de acciones, no es necesario que uses ninguna entidad 'AccionMenu'
en todo tu juego.
Consulta la sección Anexo Inventario para conocer
más detalles sobre el menú de acciones.