FAQ DE CON SCRIPT v1.0  FAQ oficial de Duke Espaa
===================================================


CONTENIDOS
----------

1) ESTRUCTURAS BSICAS DE CON
   1.1) ACTION
   1.2) ACTOR
   1.3) AI
   1.4) STATE
   1.5) USERACTOR
   1.6) CONSTRUCCIN IF
   1.7) MOVE
   1.8) DEFINICIONES EN CON Y BLOQUES DE CDIGO
2) LISTA DE PALABRAS CLAVE (KEYWORDS)
3) APENDICE A: SOBRE LAS ARMAS
4) APENDICE B: SOBRE LA PALETA
5) APENDICE C: SOBRE LOS STATES PRE-DEFINIDOS



================================================================================================

1) ESTRUCTURAS BSICAS DE CON
-----------------------------

Vamos a pasar a un punto muy importante del lenguaje CON, sus estructuras bsicas. Estas nos permitirn modificar o crear nuevos efectos mediante unos sencillos comandos y que pueden ser usadas en nuestros mapas, mods o TCs.



1.1) ACTION
-----------

El action se usa para animar un grupo de sprites directamente sin necesidad de tocar los grficos directamente con el Editart. Tambin nos vale para configurar los ngulos que tendr el sprite. Su estructura es:

action <name> <startframe> <frames> <viewtype> <incvalue> <delay>

<name>
Es el nombre de la accin (la id). No puede superar los 64 caracteres de longitud.  

<startframe>
Es la tile de comienzo.

<frames>
Es el nmero total de imgenes que tienen que pasar.

<viewtype>
Solo los ngulos que queremos que tenga el sprite. El nmero va de 1  8 siendo 1 una sola imagen y a partir de 2 la generacin tridimensional del sprite. Los ngulos tienen que ir seguidos, por ejemplo tenemos un sprite con 3 ngulos y dos frames. Si el sprite es el 490 tiene que ser:
490,491,492: la primera frame con los 3 ngulos.
493,494,495: la segunda frame con los 3 ngulos.

<incvalue>
Es la direccin de la animacin, 1 significa que van hacia delante y -1 hacia atrs. 

<delay>
Determina la velocidad de la animacin. A valores ms altos la animacin es ms lenta.



1.2) ACTOR
----------

Un actor es un sprite con programacin y tiene la siguiente estructura:

actor <name> <strength> <action> <speed> <aifunction> 
{
cdigo
} 
enda

<name>
Es el nombre del sprite (la id o el nmero de grfico)

<strength>
Es la vida del actor. Si es 0 no puede ser destruido.

<action>
Es la accin inicial del actor.

<speed>
Es la velocidad del actor cuando se mueve. Si es 0 no se mover inicialmente.

<aifunction>
Es una rutina de inteligencia artificial. Slo para enemigos.

{cdigo}
Es el cdigo del actor. Para ms informacin ver LISTA DE PALABRAS clave (KEYWORDS).

enda
Termina la programacin del sprite.

Notas:
En la versin 1.3d no se pueden agregar nuevos actores, habr que programarlos sobre alguno existente. En la versin 1.4 y la versin 1.5 esto se har mediante la estructura useractor.



1.3) AI
-------

Una ai es una rutina de inteligencia artificial. Esto es usado principalmente para enemigos. Su estructura es:

ai <name> <action> <speed> <type>

<name>
Es el nombre o id de la rutina de inteligencia artificial.

<action>
Es la accin que se realizar en esta ai. Se repetir constantemente mientras la ai este activa.

<speed>
Es la velocidad del movimiento cuando este activa esta rutina. Los valores negativos no sern admitidos aqu.

<type>
Es el tipo de ai que se va a realizar. Los tipos admitidos son:

* faceplayer: Mira al jugador.
* geth: El sprite se mueve en direccin horizontal. 
* getv: El sprite se mueve en direccin vertical.
* randomangle: Genera un ngulo aleatorio donde el actor se mueve. Solo trabaja con enemigos.
* faceplayerslow: Lo mismo que faceplayer pero se hace ms despacio.
* spin: El actor gira constantemente.
* faceplayersmart: el actor estar ligeramente adelantado con respecto a la posicin del jugador, haciendo posible que los enemigos te sigan lentamente.
* fleeenemy: El actor se encara con el jugador.
* jumptoplayer: El actor salta con el jugador.
* seekplayer: El actor encuentra al jugador ms cercano.
* furthestdir: El actor se encara con el jugador cuando est lejos.
* dodgebullet: El actor procura esquivar los disparos.



1.4) STATE
----------

Un state es una subrutina programada fuera del actor y que puede ser usada en muchos actores. Su estructura es:

state <name> 
{
cdigo
} 
ends

<name>
Es el nombre del state.

{cdigo}
Es el cdigo del state. Para ms informacin ver LISTA DE PALABRAS clave (KEYWORDS).

ends
Determina el final del state.

Ejemplo:

state findgoldenapple   // Definicin de state
{
  quote 150             // Esto es el cdigo que se va a ejecutar.
  addphealth 10
}
ends                    // Aqu acaba el codigo.

Para llamarlo en un actor tenemos que escribir:
state <name>



1.5) USERACTOR
--------------

Esta estructura solo funciona en las versiones 1.4 y 4.5. Es similar a la estructura actor. Su estructura es:

useractor <type> <name> <strength> {cdigo}

<type>
Es el tipo de actor, admite los valores:

* enemy : Es un enemigo. Empieza a funcionar aproximadamente 1 segundo despus de ser visto por el jugador.
* notenemy : No es un enemigo. El cdigo se ejecuta siempre.
* enemystayput : Es un enemigo y no deja el sector inicial cuando se mueve.

<name>
Es el nombre o id del actor.

<strength>
Es la resistencia del enemigo. 0 significa que no puede ser destruido.

{cdigo}
Es el cdigo del actor. Para ms informacin ver LISTA DE PALABRAS clave (KEYWORDS).

<action>
Es el action inicial.

<speed>
Es la velocidad con la que se mueve el actor. 0 significa que no se mueve.

<aifunction>
Es la rutina ai inicial del actor.



1.6) CONSTRUCCIN IF
--------------------

Las estructuras if son las estructuras condicionales. Son la base de este lenguaje y se ejecutan cuando son verdad, por ejemplo:

ifphealthl MAXPLAYERHEALTH // si es verdad que la vida del jugador es menor que MAXPLAYERHEALTH
  {
    addphealth MAXPLAYERHEALTH // aade a la vida del jugador MAXPLAYERHEALTH
  }
else // si no es verdad que la vida del jugador es menor que MAXPLAYERHEALTH
  {
    quote 999 // imprime en pantalla el texto con la id 999
  }



1.7) MOVE
---------

Es la velocidad con la que se mueve el actor. Se suelen usar en actores o states. Se definen como:

move <name> <horizontal> <vertical> <directions>

<name>
Es el nombre o id del movimiento.

<horizontal>
Velocidad horizontal.

<vertical>
Velocidad vertical.

<directions>
Es la direccin del movimiento. Los valores admitidos son:

* faceplayer: Mira al jugador.
* geth: El sprite se mueve en direccin horizontal. 
* getv: El sprite se mueve en direccin vertical.
* randomangle: Genera un ngulo aleatorio donde el actor se mueve. Solo trabaja con enemigos.
* faceplayerslow: Lo mismo que faceplayer pero se hace ms despacio.
* spin: El actor gira constantemente.
* faceplayersmart: el actor estar ligeramente adelantado con respecto a la posicin del jugador, haciendo posible que los enemigos te sigan lentamente.
* fleeenemy: El actor se encara con el jugador.
* jumptoplayer: El actor salta con el jugador.
* seekplayer: El actor encuentra al jugador ms cercano.
* furthestdir: El actor se encara con el jugador cuando est lejos.
* dodgebullet: El actor procura esquivar los disparos.

Una vez que este definido lo llamamos para usarlo en un state o un actor como: 
move <name>

Tiene que ser definidos fuera del cdigo de un actor, useractor o state.



1.8) DEFINICIONES EN CON Y BLOQUES DE CDIGO
--------------------------------------------

En lenguaje CON se pueden hacer diferentes tipos de definiciones y todas comienzan con define. Las definiciones ms bsicas son las que contienen solamente define y sirven para definir constantes, por ejemplo:

define MI_CONSTANTE 0

Estas definiciones pueden ser usadas posteriormente para la id cuando programas un actor o para configurar una velocidad. Para ms informacin ver LISTA DE PALABRAS CLAVE (KEYWORDS).

Pero existen otro tipo de definiciones, las cuales son para un uso concreto:

* definelevelname
* definequote
* defineskillname
* definesound
* definevolumename

Su uso es el siguiente:


definelevelname <eps> <lvl> <mapname> <par time> <3drealms>

Define el nombre de un nivel del episodio <eps> y el nmero de nivel <lvl> como <mapname> (que es un conjunto de carteres. Configuramos una serie de tiempo para el resumen (cuando pulsas el nukebutton), <partime> y <3drealms>.


definequote <value> <string>

Configura una serie de caracteres <string> con la id <value> para ser posteriormente llamados como quote <value>. Por ejemplo

Fuera del cdigo de cualquier sprite, actor o state:
definequote 999 ESTE ES MI QUOTE  
Fuera del cdigo de cualquier sprite, actor o state:
quote 999 // Imprimo mi quote cuando llamo a la id con el comando quote


defineskillname <skill> <string> (Solo en versiones 1.4 y 1.5)

Define el nivel nombre de nivel de dificultad con el nmero <skill> y le cambia el nombre especificado en <string>. Esto es solo para los mens. 


definesound <value> <file> <pitch1> <pitch2> <priority> <type> <volume>

Este comando define un sonido. El sonido va definido como una id <value> (Dos sonidos no pueden tener la misma id). Despus llamamos al archivo que se va a reproducir en <file> (solo archivos .voc o .wav). <pitch1> y <pitch2> son variaciones en la reproduccin del sonido, pueden tener valores positivos o negativos as hacemos que no siempre suenen igual y le demos variedad. <priority> acepta valores que oscilan entre 0-255 para saber cuales reproducir cuando hay muchos sonidos en reproduccin (un valor alto para una prioridad alta). <type> es el tipo de sonido en el juego, y <volume> es el volumen con el que se reproduce, los valores oscilan entre -32,767 a 32,767.  


definevolumename <episode> <name> (Solo en versiones 1.4 y 1.5)

Define los nombres de los episodios. <episode> es nmer de episodio y <name> es el nmero de caracteres con los que llamamos al episodio.



Los bloques de cdigo van entre los smbolos { y }. Estos se usaran cada vez que queramos juntar una serie de comandos y que se apliquen todos cuando  se cumpla cierta condicin (los comandos que empiezan por if). Por ejemplo:

ifpdistl 5000 // Condicin
   { // Comienza el bloque de comandos
   ai MI_AI
   quote 200
    resetactioncount
   } // Termina el bloque de comandos

Como se puede ver es muy intuitivo pero hay que tener en cuenta que son necesarios cuando queremos ejecutar dos o ms comandos, para uno no es necesario poner estas llaves aunque sean admitidas al compilar el script.

Hay otros tres smbolos que aparecen mucho pero no tienen una utilidad de en la ejecucin, son simplemente de carcter aclarativo para el programador. Son:

//
/*
*/

Con ellos podremos comentar nuestro cdigo y asi sabes un tiempo despus porque pusimos tal comando.
El primero, // es para una lnea. Cuando se compile saltara todo lo que encuentre a partir de este smbolo hasta que finalice la lnea. En el ejemplo anterior: 

ifpdistl 5000 // Condicin

Se ejecutara ifpdistl 5000 y ser ignorado Condicin ya que es nuestro comentario.

Los otros dos smbolos, /* y */ van juntos. Estos son bloques de comentarios. Cuando los pongamos le estaremos diciendo al compilador que comience a ignorar todo lo que esta entre /* y que tiene que acabar de ignorar cuando encuentre */.





2) LISTA DE PALABRAS CLAVE (KEYWORDS)
-------------------------------------

Ahora vamos a pasar a la esencia de este script: su lista completa de keywors o palabras clave con el que podremos construir nuestros cdigos para efectos, enemigos, etc.

action <name> <startframe> <frames> <viewtype> <incvalue> <delay>
VER SECCIN 1.1


action <name>
Empieza la accin que esta definida como <name>


actor <name> <strength> <action> <speed> <aifunction> {actor code} enda
VER SECCIN 1.2


addammo <weapon> <amount>
Aade al jugador actual el nmero de municin especificada por <amount> a la arma <weapon>. Los valores permitidos por weapon:

    KNEE_WEAPON
    PISTOL_WEAPON
    SHOTGUN_WEAPON
    CHAINGUN_WEAPON
    RPG_WEAPON
    HANDBOMB_WEAPON
    SHRINKER_WEAPON
    TRIPBOMB_WEAPON
    DEVISTATOR_WEAPON
    FREEZE_WEAPON
    GROW_WEAPON [Solo para las versiones 1.4 y 1.5]


addinventory <item> <amount>
Aade al inventorio <item> la cantidad <amount>. Los item soportados son:

Valor   Nombre          Descripcin
0       GET_STEROIDS    Esteroides
1       GET_SHIELD      Armadura
2       GET_SCUBA       Equipo de submarinismo
3       GET_HOLODUKE    Holoduke
4       GET_JETPACK     Jetpack
6       GET_ACCESS      Tarjetas. El color del actor indicara cual debe aadir.
7       GET_HEATS       Gafas de visin nocturna.
9       GET_FIRSTAID    Botiquin de inventorio.
10      GET_BOOTS       Botas.


addkills
Aade 1 al contador de enemigos que el jugador ha matado.


addphealth <amount>
Aade al jugador actual una cantidad <amount> de vida.


addstrength <value>
Aade al actor actual una cantidad <value> de resistencia.


addweapon <weapon> <ammo>
Aade al jugador actual una cantidad de municin <ammo> al arma <weapon>. Los valores aceptados por <weapon> son:
   
    PISTOL_WEAPON
    SHOTGUN_WEAPON
    CHAINGUN_WEAPON
    RPG_WEAPON
    HANDBOMB_WEAPON
    SHRINKER_WEAPON
    TRIPBOMB_WEAPON
    DEVISTATOR_WEAPON
    FREEZE_WEAPON

    GROW_WEAPON [Slo versiones 1.4 y 1.5]


ai <name> <action> <speed> <type>
VER SECCIN 1.3


ai <name>
Empieza la ai que esta definida como <name>


break
Deja automticamente el bloque de cdigo que se este ejecutando.


cactor <actor>
Cambia el cdigo de un actor por el cdigo de otro actor que este identificados como <actor>. Esto es muy til cuando queremos hacer un enemigo y que empiece con distintas posturas pero con el mismo cdigo, es decir, pequeas variaciones.


clipdist <value>
Este valor oscila entre los valores de 0-255. Cuando un sprite o actor es bloqueado (tecla B en Build), este comando simula un campo de fuerza (que no te deja pasar cuando llegues a la distancia especificada en <value>). El valor de 255 es equivalente a la distancia 1024 (el cuadrado ms grande de la rejilla de Build). Por defecto est configurado como 32. Este atributo no trabaja con todos los sprites as que puede dar algn efecto no deseado. 


count <number>
Es un contador interno del sprite. Cuando llamamos a este comando configuramos el contador interno como <value>.


cstat <mask>
Es un comando que hace que el sprite tenga una serie de caractersticas, habitualmente denominadas flags. Las flags permitidas por este comando son:

    1 = Hace al sprite bloqueado
    2 = Hace que el sprite se pueda ver por todos los lados
    4 = Lo hace plano segn el eje X
    8 = Lo hace plano segn el eje Y
    16 = Dibuja al sprite como una textura de pared (WALL)
    32 = Dibuja al sprite como una textura de suelo
    64 = Hace que el sprite plano solo se vea por un lado
    128 = Hace que el sprite este medio sumergido
    256 = Hace que el sprite se un slido (que no le atraviesen las balas)
    1,024 = reservado
    2,048 = reservado
    4,096 = reservado
    8,192 = reservado
    16,384 = reservado
    32768 = Invisible

Para combinar varias caractersticas, simplemente tenemos que sumar los valores.


cstator <mask> (Slo versiones 1.4 y 1.5)
Es un comando que hace que el sprite tenga una serie de caractersticas, habitualmente denominadas flags. Las flags permitidas por este comando son:

    1 = Hace al sprite bloqueado
    2 = Hace que el sprite se pueda ver por todos los lados
    4 = Lo hace plano segn el eje X
    8 = Lo hace plano segn el eje Y
    16 = Dibuja al sprite como una textura de pared (WALL)
    32 = Dibuja al sprite como una textura de suelo
    64 = Hace que el sprite plano solo se vea por un lado
    128 = Hace que el sprite este medio sumergido
    256 = Hace que el sprite se un slido (que no le atraviesen las balas)
    32768 = Invisible

Para combinar varias caractersticas, simplemente tenemos que sumar los valores.


debris <type> <amount>
Esta keyword hace que aparezca <type> en una cantidad especificada. Los <type> admitidos son:

    SCRAP1
    SCRAP2
    SCRAP3
    SCRAP4
    SCRAP5
    SCRAP6


debug <parameter>
Imprime en la pantalla el valor de <parameter>. Si el juego est cargado, se imprimir el valor en la pantalla aunque se puede especificar que lo haga en un archivo de salida para testear un mapa, por ejemplo:
"duke3d.exe -map test.map /q8 > test.log


define <string> <value>
VER SECCIN 1.8


definelevelname <eps> <lvl> <mapname> <par time> <3drealms>
VER SECCIN 1.8


definequote <value> <string>
VER SECCIN 1.8


defineskillname <skill> <string>
VER SECCIN 1.8


definesound <value> <file> <pitch1> <pitch2> <priority> <type> <volume>
VER SECCIN 1.8


definevolumename <episode> <name>
VER SECCIN 1.8


else
VER SECCIN 1.6


endofgame <number>
Cuando matas a un enemigo final configura el tiempo que tiene que pasar hasta que se reproduce la animacin del final. Aproximadamente el nmero 30 equivale a 1 segundo. 


fall
Hace que un actor caiga al suelo.


gamestartup
Este comando hace que se carguen una serie de definiciones. Las definiciones las damos a continuacin y tienen que estar en ese orden y no pueden ni faltar ni sobrar ninguna ms o menos de las que hay. Para modificarlas hay que buscar el "define" correspondiente a la definicin. El comando tiene la forma:

           gamestartup DEFAULTVISIBILITY GENERICIMPACTDAMAGE MAXPLAYERHEALTH
                           STARTARMORHEALTH  RESPAWNACTORTIME RESPAWNITEMTIME
                           RUNNINGSPEED GRAVITATIONALCONSTANT RPGBLASTRADIUS
                           PIPEBOMBRADIUS SHRINKERBLASTRADIUS TRIPBOMBBLASTRADIUS
                           MORTERBLASTRADIUS BOUNCEMINEBLASTRADIUS SEENINEBLASTRADIUS
                           MAXPISTOLAMMO MAXSHOTGUNAMMO MAXCHAINGUNAMMO
                           MAXRPGAMMO MAXHANDBOMBAMMO MAXSHRINKERAMMO
                           MAXDEVISTATORAMMO MAXTRIPBOMBAMMO MAXFREEZEAMMO
                           MAXGROWAMMO CAMERASDESTRUCTABLE NUMFREEZEBOUNCES
                           FREEZERHURTOWNER QSIZE TRIPBOMBLASERMODE



getlastpal
Configura al actor con la ltima paleta (color) usada.


globalsound <sound>
Caraga el sonido con la id <sound> para que suene por todo el mapa.


guts <type> <amount>
Hace aparecer las tripas <type> con la cantidad <amount>. Los <type> aceptados son:

    JIBS1
    JIBS2
    JIBS3
    JIBS4
    JIBS5
    JIBS6
    HEADJIB/LEGJIB/ARMJIB  (trooper)
    LIZMANARM1/LIZMANLEG1  (lizman)
    DUKETORSO/DUKELEG/DUKEGUN (duke)


hitradius <radius> <1> <2> <3> <4>
Simula la onda expansiva de una explosin de radio <radius>. Los nmeros <1>, <2>, <3> y <4> son el dao que produce <4> es cerca del centro y <1> es lo ms alejado del centro. Va por nmeros ya que se divide en 4 partes para hacer distintos daos segn la distancia a la explosin.


ifaction <action>
Testea si se est produciendo la action <action>.


ifactioncount <number>
Testea si el contador de action est actualmente en el nmero <number>.


ifactor <actorid>
Testea si el actor actual es <actorid>.


ifactornotstayput
Testea si el actor actual est activado.


ifai <ainame>
Testea si se est ejecutando la ai <ainame>.


ifangdiffl <angle> (Slo versiones 1.4 y 1.5)
Testea si la diferencia de los ngulos del jugador y del sprite actual es menor que <angle>.


ifangdiffg <angle> (Slo versiones 1.4 y 1.5)
Testea si la diferencia de los ngulos del jugador y del sprite actual es mayor que <angle>.


ifawayfromwall
Testea si el actor se dirige hacia una pared (incluso en sectores rojos).


ifbulletnear
Testea si pasan proyectiles (balas) cerca del actor.


ifcansee
Testea si el actor puede ver al jugador.


ifcanseetarget
Teseta si el actor puede ver al jugador.


ifcanshoottarget
Testea si el actor puede disparar al jugador.


ifceilingdistl <number>
Testea si la distancia al techo es menor que <number>.


ifcount <number>
Testea si el contador interno del actor es igual a <number>.


ifdead
Testea si el actor actual est muerto.


iffloordistl <number>
Testea si la distancia al suelo es menor que <number>.


ifgapzl <number>
Testea si la distancia del techo y el suelo segn la posicin del actor es menor que <number>.


ifgotweaponce <number>
Si <number> es 0 en el juego multijugador con la opcin de spawn desactivada el jugador solo podr coger las armas que no tenga. Si es 1 el jugador no podr coger todas las armas (tambin en modo multijugador). 


ifhitspace
Testea si el jugador pulsa ESPACIO


ifhitweapon
Testea si el actor es alcanzado por algn proyectil.


ifinouterspace
Este comando ser verdad si ifinspace es verdad y adems la textura BigSpace aplicada al techo tiene la paleta 0.


ifinspace
Testea si est en el Espacio (con las texturas de techo de Espacio). 


ifinwater
Testea si el actor est debajo del agua.


ifmove <name>
Testea si se est ejecutando el comando move con la id <name>.


ifmultiplayer
Testea si se est jugando en multijugador.


ifnosounds
Testea si en el actor no se est reproduciendo ningn sonido.


ifnotmoving
Testea si el actor no se est moviendo.


ifonwater
Testea si el actor est flotando en el agua.


ifoutside
Testea si el jugador est en un exterior.


ifp  <type>
Testea unas series de acciones del jugador. Los <type> admitidos son:

    pstanding    = Duke est parado
    pwalking     = Duke est caminando
    prunning     = Duke est corriendo
    pducking     = Duke est agachado
    pfalling     = Duke est cayendo 
    pjumping     = Duke est saltando
    phigher      = Duke est ms alto que otro jugador
    pwalkingback = Duke est andando hacia atrs.
    prunningback = Duke est corriendo hacia atrs.
    pkicking     = Duke est dando una patada.
    pshrunk      = Duke es pequeo (alcanzado por el shrinker)
    pjetpack     = Duke est volando con el jetpack
    ponsteroids  = Duke est usando los esteroides
    ponground    = Duke tiene ambos pies en el suelo
    palive       = Duke no est muerto
    pdead        = Duke est muerto
    pfacing      = Duke Est de cara con otro actor


ifpdistg <number>
La distancia al jugador es mayor que <number>.


ifpdistl <number>
La distancia al jugador es menor que <number>.


ifphealthl <number>
La vida del jugador es menor que <number>.


ifphealthg <number>
La vida del jugador es mayor que <number>.


ifpinventory <item> <amount>
Testea si el jugador tiene el inventorio <item> con la cantidad <amount>. Los <item> aceptados son:

    GET_STEROIDS
    GET_HEATS
    GET_BOOTS
    GET_SHIELD
    GET_SCUBA
    GET_HOLODUKE
    GET_JETPACK
    GET_FIRSTAID
    GET_ACCESS


ifrespawn
En un enemigo, testea si el modo respawn est activado.


ifrnd <number>
Este comando genera un probabilidad y los valores aceptados oscilan entre 0-256. El 256 equivale a un 100% de probabilidad por lo que siempre ejecutara el cdigo que le sigue. 


ifspawnedby <actor>
Chequea si el actor actual apareci por un spawn en el actor <actor>.


ifspritepal <number>
Chequea si la paleta actual del actor es igual a <number>.


ifsquished
Chequea si el actor ha sido aplastado.


ifstrength <number>
Chequea si la vida del actor es igual a <number>.


ifwasweapon <weapon>
Chequea si el actor ha sido alcanzado por un disparo de la arma <weapon>. Los valores aceptados en weapon son:

    KNEE
    SHOTSPARK1 (Pistola, ametralladora o escopeta)
    RPG
    SHRINKSPARK
    FREEZEBLAST
    FIRELASER
    SPIT
    RADIUSEXPLOSION (Tripbomb)
    COOLEXPLOSION1
    FIREEXT

    GROWSPARK [Slo versiones 1.4 y 1.5]


include <filename>
Incluye el archivo CON <filename> en la compilacin. til para dividir el cdigo en varios archivos CON.


killit
Elimina el actor actual del juego.


lotsofglass <amount>
Aparecen una cantidad <amount> de trozos de cristal.


mail <number> (Slo versiones 1.4 y 1.5)
Aparecen una cantidad <amount> de cartas volando.


mikesnd
Reproduce el sonido asociado al micrfono (se configura en Build con el hitag).


money <number>
Aparecen una cantidad <amount> de billetes volando.


move <name> <horizontal> <vertical> <directions>
VER SECCIN 1.7


music <episode> <m1> <m2> ...
Define las msicas .mid de los niveles del episodio <episode>. Ver USER.CON.


nullop
Equivale a "{}", el bloque de cdigo vacio.


operate
Hace que el actor actual pueda abrir una puerta si la tiene al lado.


palfrom <intensity> <red> <green> <blue>
Cambia la paleta de la vista del jugador pudiendo crear efectos en la visin. Todos los valores oscilan entre 0-64.


paper <number> (Slo versiones 1.4 y 1.5)
Aparecen una cantidad <amount> de papeles volando.


pkick
Hace que el jugador actual o ms cercano de una patada.


pstomp
Hace que el jugador actual o ms cercano mire hacia abajo y camine hacia el actor ms cercano (si lo hay).


quote <number>
Imprime en pantalla el texto quote identificado con la id <number>.


resetactioncount
Resetea el contador de la accin. Recuerdese que cuenta frames o imgenes que se producen en ese actor.


resetcount
Configura el contador interno del actor como 0.


resetplayer
En multijugador enva al jugador actual a la posicin inicial. En modo de un solo jugador resetea el nivel.


respawnhitag
Este comando activa hasta 9 o menos respawns de actores que tengan el mismo lotag que el hitag del actor actual (en el que se encuentra este comando).


shoot <weapon>
El actor dispara el arma <weapon>. Los valores para <weapon> aceptados son:

    KNEE
    SHOTSPARK1 (La pistola)
    SHOTGUN
    CHAINGUN
    RPG
    SHRINKSPARK
    DEVISTATORBLAST
    FREEZEBLAST
    FIRELASER
    SPIT
    BOUNCEMINE
    MORTER
    COOLEXPLOSION1
    BLOODSPLAT1
    BLOODSPLAT2
    BLOODSPLAT3
    BLOODSPLAT4

    GROWSPARK [Slo versiones 1.4 y 1.5]


sizeat <x> <y> (Slo versiones 1.4 y 1.5)
Este comando hace que el actor tenga el tamao especificado por <x> e <y> de una sola vez (instantneamente).


sizeto <x> <y>
Este comando hace que el actor tenga el tamao especificado por <x> e <y> gradualmente.


sleeptime <time>
Este comando hace que el actor se duerma durante el tiempo especificado despus de ser visto por el jugador.


sound <sound>
Reproduce el sonidos con la id <sound>.


soundonce <sound>
Reproduce el sonidos con la id <sound> pero la diferencia con el anterior es que este solo permite reproducir el sonido una vez por nivel.


spawn <actor>
Hace aparecer el actor <actor>.


spritepal <number>
Configura la paleta del actor como <number>.


state <statename>
Llama al state <statename> y ejecuta su cdigo.


stopsound <sound>
Detiene la reproducin del sonido con la id <sound>.


strength <number>
Cambia la resistencia del actor por <number>.


tip
El jugador reproduce la animacin de dar un billete.


tossweapon
Este comando hace que el jugador que muere aparezca de nuevo en el juego con el arma con la que muri. 


wackplayer
Este comando hace que la pantalla se incline a un lado cuando se llama al comando.




3) APENDICE A: SOBRE LAS ARMAS
------------------------------

Nmero  Nombre        Dispara Impacta Resistencia (vida)   Notas

26      HEAVYHBOMB      no       no        s              *crea 1670 produce dao
916     FIREEXT         no       s        s*             *presenta resistencia
940     BOUNCEMINE      s       no        s              *crea 1670 produce dao
1,360	COOLEXPLOSION1	s	 s	   s	
1,625	FIRELASER	s	 s	   s	
1,636   SPIT            s       s        s 
1,641	FREEZEBLAST	s	 s	   s	
1,642   DEVISTATORBLAST s       no        s              usa el cdigo de 2605 
                                                           *crea 2605, produce dao
1,646	SHRINKSPARK	s	 s	   s	
1,650   MORTER          s       no        s              *crea 1670, produce dao
1,670   RADIUSEXPLOSION no*      s        s*             *Tiene radio (onda expansiva)
2,296	BLOODSPLAT1	s	 no	   no	
2,297	BLOODSPLAT2	s	 no	   no	
2,298	BLOODSPLAT3	s	 no	   no	
2,299	BLOODSPLAT4	s	 no	   no	
2,521   KNEE            s       s        s*              *aade rnd(5)+1
2,536   CHAINGUN        s       no        s*              usa el cdigo de 2595
                                                            *aade rnd(5)+1
2,566   TRIPBOMB        no       no*       s               *Crea 1670, produce dao.
2,595   SHOTSPARK1      s       s        s*              Puede ser modificada 
                                                            *aade rnd(5)+1
2,605   RPG             s       s        s*              *Dao doble por impacto directo.
2,613   SHOTGUN         s       no        s*              usa el cdigo de 2595, 
                                                            aade rnd(5)+1


Sobre las armas y su nmero:

Numero    Nombre en CON:

0	  KNEE_WEAPON
1	  PISTOL_WEAPON
2	  SHOTGUN_WEAPON
3	  CHAINGUN_WEAPON
4	  RPG_WEAPON
5	  HANDBOMB_WEAPON
6	  SHRINKER_WEAPON
7	  DEVISTATOR_WEAPON
8	  TRIPBOMB_WEAPON
9	  FREEZE_WEAPON




4) APENDICE B: SOBRE LA PALETA
------------------------------

Los cdigos de los colores son:

    0 = Normal
    1 = Azul
    2 = Rojo
    4 = Negro
    5 = Todas las sombras rojas hasta llegar al marrn
    6 = Verde de visin nocturna
    7 = Amarillo-verde
    8 = Verde claro
    10 = Color azul se transforma en: Rojo
    11 = Color azul se transforma en: Verde claro
    12 = Color azul se transforma en: Verde-grisaceo
    13 = Color azul se transforma en: Gris oscuro
    14 = Color azul se transforma en: Verde oscuro
    15 = Color azul se transforma en: Marrn
    16 = Color azul se transforma en: Azul oscuro
    17 = Color azul se transforma en: Azul
    18 = Igual que el 11
    19 = Color azul se transforma en: Rojo
    20 = Color azul se transforma en: Azul
    21 = Color azul se transforma en: Rojo
    22 = Color azul se transforma en: Gris claro
    23 = Color azul se transforma en: Amarillo
    25 = Minor Color azul se transforma en: Rojo



5) APENDICE C: SOBRE LOS STATES PRE-DEFINIDOS
---------------------------------------------

state jib_sounds
Reproduce sonidos de cuando revientas a los enemigos con el RPG.

state standard_jibs
Aparecen tripas

state genericshrunkcode
Hace encoger a un actor y lo aplasta si ests a la distancia adecuada.

state genericgrowcode (Slo versiones 1.4 y 1.5)
Hace agrandar a un actor hasta reventarlo

state blimphitstate
Aparecen explosiones, trozos de metal, hace desaparecer al actor y otras cosas.

state rats
Aparecen ratas.

state toughgalspeech (Slo versiones 1.4 y 1.5)
Reproduce sonidos cuando hablas con las mujeres.

state jibfood (Slo versiones 1.4 y 1.5)
Hace desaparecer la comida y aparecen tripas.

state breakobject (Slo versiones 1.4 y 1.5)
Hace rompibles a los objetos.

state headhitstate
Es llamado cuando el jugador est muy daado. 

state burningstate
Hace quemar a un actor.

state steamcode
Para el vapor, quita vida.

state burningbarrelcode
Cdigo para el barril que arde.

state getcode
Obtiene un item y lo prepara para el respawn.

state randgetweapsnds
Sonidos cuando el jugador coge un arma.

state getweaponcode
El jugador coge un arma y la prepara para el respawn.

state respawnit
Respawn del inventorio en multijugador.

state quikget
Cdigo para la atomic health u otros otro objetos. No se produce respawn.

state quikweaponget
Codigo para obtener las armas.

state firestate
Cdigo para el fuego.

state drop_ammo
Cdigo para soltar armas.

state drop_battery
Suelta la municin de la chaingun.

state drop_sgshells
Suelta la municin de la escopeta.

state drop_shotgun
Suelta la escopeta.

state drop_chaingun
Suelta la chaingun.

state random_wall_jibs
Aparece sangre en las paredes.

state femcode
Cdigo de las mujeres.

state killme
Sonido de killme cuando pulsas espacio.

state tipme
Sonido cuando das dinero a una mujer.

state toughgaltalk (Slo versiones 1.4 y 1.5)
Hace hablar a una mujer cuando presiona el jugador ESPACIO.

state troop_body_jibs
Tripas del liztroop.

state liz_body_jibs
Tripas del lizard

state standard_pjibs
Tripas de Duke.

state handle_dead_dukes
Cdigo para hacer charcos de sangre, etc. cuando Duke muere. Tambin usado para hacer desaparecer las partes de Duke cuando se juega en multijugador.

state check p_standard
Animaciones de Duke andando, saltando, etc.

state rf
Cambia el cstat de 4 si ifrnd 128 sino el cstat es 0. Esto se hace para hacer planos los cadaveres para que no se vean todos iguales.

