FAQ's with SCRIPT v1.0 - official Duke Spain FAQ
===================================================


CONTENTS
----------

1) BASIC STRUCTURES OF WITH
(1.1) ACTION
(1.2) ACTOR
(1.3) AI
(1.4) STATE
(1.5) USERACTOR
(1.6) CONSTRUCTION IF
(1.7) MOVE
(1.8) DEFINITIONS IN WITH AND CODE BLOCKS
(2) LIST OF KEYWORDS (KEYWORDS)
(3) APPENDIX A: ABOUT WEAPONS
(4) APPENDIX B: ON THE PALLET
(5) APPENDIX C: ABOUT THE PRE-DEFINED STATES



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

1) BASIC STRUCTURES OF WITH
-----------------------------

We will pass to a very important point of the language, its basic structures. These allow us to modify or create new effects using a few simple commands and which can be used in our maps, mods or TC's.



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

The "action" is used to encourage a group of sprites directly without having to touch the graphics with the Editart. Also worth to set angles that will have the sprite. Its structure is:

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

< name >
It is the name of the action (the id). It may not exceed 64 characters in length.

< startframe >
It is the top tile.

< frames >
It is the total number of images that have to go.

< viewtype >
Just the angles that we want to have the sprite. The number is 1-8 with 1 being a single image and from 2 3D sprite generation. The angles have to be followed, for example we have a sprite with 3 angles and two frames. If the sprite is the 490 you must be:
490,491,492: the first frame with the 3 angles.
493,494,495: the second frame with 3 angles.

< incvalue >
It is the direction of animation, 1 means they will forward and - 1 back.

< delay >
It determines the speed of the animation. At higher values the animation is slower.



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

An "actor" is a sprite with programming and has the following structure:

actor < name > < strength > < action > < speed > < aifunction >
{
code
}
ENDA

< name >
It is the name of the sprite (the id or the number of graph)

< strength >
It is the life of the actor. If it is "0" you can not be destroyed.

< action >
It is the initial action of the actor.

< speed >
The speed of the actor is when it moves. If it is "0" you will not move initially.

< aifunction >
It is a routine of artificial intelligence. Only for enemies.

{code}
It is the code of the actor. For more information see "List of keywords (KEYWORDS)".

ENDA
It ends the programming of the sprite.

Notes:
In version 1.3d you can not add new actors, you should schedule them on any existing. In version 1.4 and version 1.5 this will be done through the structure useractor.



(1.3) AI
-------

A "ai" is a routine of artificial intelligence. This is mainly used for enemies. Its structure is:

AI < name > < action > < speed > < type >

< name >
It is the name or id of the routine of artificial intelligence.

< action >
It is the action that will take place in this ai. He is repeated constantly while the ai this active.

< speed >
It is the speed of the movement when it activates this routine. Negative values are not allowed here.

< type >
It is the kind of ai is to be performed. Supported types are:

* faceplayer: look at the player.
* geth: the sprite moves in horizontal direction.
* getv: sprite moves vertically.
* randomangle: generates a random angle where the actor moves. It only works with enemies.
* faceplayerslow: the same as faceplayer but is slower.
* spin: the performer rotates constantly.
* faceplayersmart: the actor will be slightly in advance with regard to the player's position, making it possible that the enemies follow you slowly.
* fleeenemy: the actor faces with the player.
* jumptoplayer: the actor jumps with the player.
* seekplayer: the actor finds the nearest player.
* furthestdir: the actor faces with the player when it is far away.
* dodgebullet: the actor attempts to dodge the shots.



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

A state is a subroutine scheduled outside the actor and that can be used in many actors. Its structure is:

State < name >
{
code
}
ends

< name >
It is the name of the state.

{code}
It is the code of the state. For more information see "List of keywords (KEYWORDS)".

ends
Determines the end of the state.

Example:

State findgoldenapple / / definition of state
{
quote 150 / / this is the code that will be executed.
addphealth 10
}
ends / / here just the code.

To call it a player we have to write:
State < name >



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

This structure only works in versions 1.4 and 4.5. It is similar to the structure an actor. Its structure is:

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

< type >
It is the kind of actor, it supports the values:

* enemy: is an enemy. It starts about 1 second after being seen by the player.
* notenemy: is not an enemy. The code is always executed.
* enemystayput: it is an enemy and not let the initial sector when it moves.

< name >
It is the name or id of the actor.

< strength >
It is the resistance of the enemy. 0 means that it can not be destroyed.

{code}
It is the code of the actor. For more information see "List of keywords (KEYWORDS)".

< action >
It is the initial action.

< speed >
It is the speed with which the actor moves. 0 means that it does not move.

< aifunction >
It is the original ai of the actor.



(1.6) CONSTRUCTION IF
--------------------

If structures are conditional structures. They are the basis of this language and are executed when they are true, for example:

ifphealthl MAXPLAYERHEALTH / / if it is true that the life of the player is less than MAXPLAYERHEALTH
{
addphealth MAXPLAYERHEALTH / / adds to the life of the player MAXPLAYERHEALTH
}
else / / if it is not true that the life of the player is less than MAXPLAYERHEALTH
{
quote 999 / / prints the text on screen with the id 999
}



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

It is the speed with which the actor moves. They are typically used on actors or states. They are defined as:

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

< name >
It is the name or id of the movement.

< horizontal >
Horizontal speed.

< vertical >
Vertical speed.

< directions >
It is the direction of motion. The supported values are:

* faceplayer: look at the player.
* geth: the sprite moves in horizontal direction.
* getv: sprite moves vertically.
* randomangle: generates a random angle where the actor moves. It only works with enemies.
* faceplayerslow: the same as faceplayer but is slower.
* spin: the performer rotates constantly.
* faceplayersmart: the actor will be slightly in advance with regard to the player's position, making it possible that the enemies follow you slowly.
* fleeenemy: the actor faces with the player.
* jumptoplayer: the actor jumps with the player.
* seekplayer: the actor finds the nearest player.
* furthestdir: the actor faces with the player when it is far away.
* dodgebullet: the actor attempts to dodge the shots.

Once this set we call it for use in a state or an actor such as:
move < name >

It has to be defined outside of an actor, useractor or state code.



(1.8) DEFINITIONS IN WITH AND CODE BLOCKS
--------------------------------------------

In language with different types of definitions are possible and all start with "defined". The most basic definitions are those which contain only "defined" and used to define constants, for example:

set sf_foo 0

These definitions can be used later for the id when an actor programs or to set a speed. For more information see "List of keywords (KEYWORDS)".

But there are other definitions, which are for a specific use:

* definelevelname
* definequote
* defineskillname
* definesound
* definevolumename

Its use is as follows:


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

Defines the name of a level of the < eps > episode and the number of < mapname > < lvl > level (which is a set of housings. We set up a time series for the summary (when you press the nukebutton), < partime > and < 3drealms >.


definequote < value > < string >

Set up a series of characters < string > with < value > the id to be called later as quote < value >. For example

Outside the code of any sprite, actor or state:
definequote 999 this is my QUOTE
Outside the code of any sprite, actor or state:
quote 999 / / print my quote when I call to the id with the quote command


defineskillname < skill > < string > (only in versions 1.4 and 1.5)

It defines the level name of level of difficulty with the number < skill > and change the name specified in < string >. This is only for the menus.


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

This command defines a sound. The sound is defined as one id < value > (two sounds may not have the same id). Then call the file that is going to play in < file > (.wav or .voc files only). < pitch1 > and < pitch2 > are variations in the sound reproduction, can have positive or negative values, so we do that they do not always equal and give variety. < priority > accepts values ranging between 0-255 to know which play when there are many sounds in playback (a high value for a high priority). < type > is the type of sound in the game, and < volume > is the volume that reproduces, the values range from - 32,767 to 32,767.


definevolumename < episode > < name > (only in versions 1.4 and 1.5)

It defines the names of the episodes. < episode > is episode numer and < name > is the number of characters that we call the episode.



Code blocks are among the symbols "{" and "}". These will be used whenever we want to put together a series of commands and all apply when certain condition (commands that begin with if). For example:

ifpdistl 5000 / / condition
{/ / Starts the command block}
AI MI_AI
quote 200
resetactioncount
} / / End script block

As you can see it is very intuitive but should take into account that they are necessary when you want to run two or more commands, for one, it is not necessary to put these keys even if they are admitted to compile the script.

There are other three symbols which appear much but do not have a utility's execution, are simply clearing character for the programmer. They are:

//
/*
*/

With them we will be able to comment our code and so know later why we put such command.
The first, "/ /" is for a line. When it is compiled it pop up whatever is from this symbol until the end of the line. In the previous example:

ifpdistl 5000 / / condition

Run 'ifpdistl 5000' and 'Status' will be ignored since it is our comment.

The other two symbols, "/ *" and "* /" go together. These are blocks of comments. When say them you will be telling the compiler to start to ignore everything that is between "/ *" and that has to end ignore when you find "* /".



(2) LIST OF KEYWORDS (KEYWORDS)
-------------------------------------

Now let's move to the essence of this script: your complete list of keywords or keywords with which we can build our codes for effects, enemies, etc.

action < name > < startframe > < frames > < viewtype > < incvalue > < delay >
SEE SECTION 1.1


action < name >
It starts the action is defined as < name >


actor < name > < strength > < action > < speed > < aifunction > {actor code} enda
SEE SECTION 1.2


addammo < weapon > < amount >
The current player adds the number of ammunition specified by < amount > to < weapon > weapon. The values permitted by weapon:

KNEE_WEAPON
PISTOL_WEAPON
SHOTGUN_WEAPON
CHAINGUN_WEAPON
RPG_WEAPON
HANDBOMB_WEAPON
SHRINKER_WEAPON
TRIPBOMB_WEAPON
DEVISTATOR_WEAPON
FREEZE_WEAPON
GROW_WEAPON [only for versions 1.4 and 1.5]


addinventory < item > < amount >
Add to the < item > inventory < amount > quantity. The supported item are:

Value name description
0 GET_STEROIDS steroids
1 GET_SHIELD armor
2 GET_SCUBA equipment of scuba diving
3 GET_HOLODUKE Holoduke
4 GET_JETPACK Jetpack
6 GET_ACCESS cards. The actor color indicate to which must be added.
7. Night vision goggles GET_HEATS.
9 GET_FIRSTAID Kit inventory.
10 GET_BOOTS boots.


addkills
Add 1 to the counter of enemies that the player has killed.


addphealth < amount >
The current player add a < amount > amount of life.


addstrength < value >
Add a < value > amount of resistance to current actor.


addweapon < weapon > < ammo >
The current player add a quantity of ammunition < ammo > to < weapon > gun. The values accepted by < weapon > are:

PISTOL_WEAPON
SHOTGUN_WEAPON
CHAINGUN_WEAPON
RPG_WEAPON
HANDBOMB_WEAPON
SHRINKER_WEAPON
TRIPBOMB_WEAPON
DEVISTATOR_WEAPON
FREEZE_WEAPON

GROW_WEAPON [only versions 1.4 and 1.5]


AI < name > < action > < speed > < type >
SEE SECTION 1.3


AI < name >
Start the ai is defined as < name >


break
Automatically leaves the block of code that is running.


< player > cactor
Change the code of an actor to another actor that this code identified as < player >. This is very useful when we want to make an enemy and that starts with different positions but the same code, that is, small variations.


clipdist < value >
This value ranges from 0-255 values. When a sprite or actor is locked (button "B" in Build), this command simulates a force field (which does not let you pass when you arrive at the distance specified in < value >). The value of 255 is equivalent to the distance 1024 (the largest Build grid square). By default it is set to 32. This attribute does not work with all sprites so you can give any unwanted effects.


count < number >
It is an internal counter of the sprite. When we call to this command configure the internal counter as < value >.


cstat < mask >
It is a command that makes the sprite have a number of features, usually called flags. The flags allowed for this command are:

1 = Makes the blocked sprite
2 = Allows the sprite is everywhere
4 = Makes it flat along the X axis
8 = Makes it flat along the axis and
16 = Draws the sprite as a texture of wall (WALL)
32 = Draws the sprite as a soil texture
64 = Makes the single flat sprite look on one side
128 = Makes the sprite this submerged environment
256 = Makes the sprite is a solid (that not through you bullets)
1,024 = reserved
2048 = reserved
4,096 = reserved
8,192 = reserved
16,384 = reserved
32768 = Invisible

To combine several features, we just have to add the values.


cstator < mask > (only versions 1.4 and 1.5)
It is a command that makes the sprite have a number of features, usually called flags. The flags allowed for this command are:

1 = Makes the blocked sprite
2 = Allows the sprite is everywhere
4 = Makes it flat along the X axis
8 = Makes it flat along the axis and
16 = Draws the sprite as a texture of wall (WALL)
32 = Draws the sprite as a soil texture
64 = Makes the single flat sprite look on one side
128 = Makes the sprite this submerged environment
256 = Makes the sprite is a solid (that not through you bullets)
32768 = Invisible

To combine several features, we just have to add the values.


< type > < amount > debris
This keyword causes < type > to appear by a specified amount. The < type > supported are:

SCRAP1
SCRAP2
SCRAP3
SCRAP4
SCRAP5
SCRAP6


Debug < parameter >
It prints on the screen the value of < parameter >. If the game is loaded, the value on the screen will be printed while you can specify to do so in an output file to test a map, for example:
' duke3d.exe - map test.map /q8 > test.log '


sets < string > < value >
SEE SECTION 1.8


definelevelname < eps > < lvl > < mapname > < couple time > < 3drealms >
SEE SECTION 1.8


definequote < value > < string >
SEE SECTION 1.8


defineskillname < skill > < string >
SEE SECTION 1.8


definesound < value > < file > < pitch1 > < pitch2 > < priority > < type > < volume >
SEE SECTION 1.8


definevolumename < episode > < name >
SEE SECTION 1.8


else
SEE SECTION 1.6


endofgame < number >
When you kill a final enemy sets the time that has to pass until the animation of the final plays. Approximately 30 number equals 1 second.


fall
It makes a player to fall to the ground.


gamestartup
This command makes a series of definitions to be loaded. She is the following definitions and they must be in that order and they can neither Miss nor overrun any more or less than those that exist. To modify them should find the corresponding to the definition 'defines'. The command has the form:

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
QSIZE TRIPBOMBLASERMODE FREEZERHURTOWNER



getlastpal
Configures the actor with the last (color) palette used.


globalsound < sound >
CARAGA sound with the id < sound > in order to play across the map.


guts < type > < amount >
It brings up casings < type > with < amount > quantity. The < type > accepted are:

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


hitradius < radius > < 1 > < 2 > < 3 > < 4 >
It simulates the Shockwave from an explosion of < radius > RADIUS. Numbers, < 1 >, < 2 >, < 3 > and < 4 > are the damage that produces < 4 > is the Centre and < 1 > is as far away from the Center. It goes by numbers as it is divided into 4 parts to do different damage according to the distance to the explosion.


ifAction < action >
Test if the < action > action is occurring.


ifactioncount < number >
Test if the counter action is currently number < number >.


ratio < actorid >
Test if the current player is < actorid >.


ifactornotstayput
Test if the current player is activated.


IFAI < ainame >
Test if the < ainame > ai is running.


ifangdiffl < angle > (only versions 1.4 and 1.5)
Test if the difference in the angles of the player and the current sprite is less than < angle >.


ifangdiffg < angle > (only versions 1.4 and 1.5)
Test if the difference in the angles of the player and the current sprite is greater than < angle >.


ifawayfromwall
Test if the actor is directed towards a wall (even in red areas).


ifbulletnear
Test if they become projectiles (bullets) close to the actor.


ifcansee
Test if the actor can see the player.


ifcanseetarget
Teseta if the actor can see the player.


ifcanshoottarget
Test if the actor can shoot at the player.


ifceilingdistl < number >
Test if the distance to the ceiling is less than < number >.


ifcount < number >
Test if the internal counter of the actor is equal to < number >.


ifdead
Test if the current player is dead.


iffloordistl < number >
Test if the distance to the ground is less than < number >.


ifgapzl < number >
Test if the distance from the ceiling and the floor depending on the position of the actor is less than < number >.


ifgotweaponce < number >
If < number > 0 in the multiplayer game with the option to spawn off the only player you can catch weapons that don't. If 1 the player can not take all weapons (also in multiplayer mode).


ifhitspace
Test if the player presses space


ifhitweapon
Test if the actor is hit by a projectile.


ifinouterspace
This command it will be true if ifinspace is true and also the BigSpace texture applied to the ceiling has the palette 0.


ifinspace
Test if you are in space (with textures of roof space).


ifinwater
Test if the actor is under water.


ifmove < name >
Test if the move command is running with the id < name >.


ifmultiplayer
Test if you are playing in multiplayer.


ifnosounds
Test if in the actor is not playing any sound.


ifnotmoving
Test if the actor is not moving.


ifonwater
Test if the actor is floating in the water.


ifoutside
Test if the player is in an exterior.


IFP < type >
Test a series of actions of the player. The < type > supported are:

pstanding = Duke stands
pwalking = Duke is walking
prunning = Duke is running
pducking = Duke is Crouching
pfalling = Duke is falling
pjumping = Duke is jumping
phigher = Duke is higher than another player
pwalkingback = Duke is walking backwards.
prunningback = Duke running back.
pkicking = Duke is giving a kick.
pshrunk = Duke is small (reached by the shrinker)
pjetpack = Duke is flying with the jetpack
ponsteroids = Duke is using steroids
ponground = Duke has both feet on the ground
palive = Duke is not dead
pdead = Duke is dead
pfacing = Duke is in the face with another actor


ifpdistg < number >
The distance the player is greater than < number >.


ifpdistl < number >
The distance the player is less than < number >.


ifphealthl < number >
The life of the player is less than < number >.


ifphealthg < number >
The life of the player is greater than < number >.


ifpinventory < item > < amount >
If the player has with the number < amount > inventory < item > test. The < item > accepted are:

GET_STEROIDS
GET_HEATS
GET_BOOTS
GET_SHIELD
GET_SCUBA
GET_HOLODUKE
GET_JETPACK
GET_FIRSTAID
GET_ACCESS


ifrespawn
In an enemy, test if the spawn mode is activated.


ifrnd < number >
This command generates a probability and accepted values range between 0-256. The 256 is equivalent to a 100% probability that always execute the code that follows you.


ifspawnedby < player >
It checks whether the current actor appeared a spawn in the < player > actor.


ifspritepal < number >
It checks whether the current palette of the actor is equal to < number >.


ifsquished
It checks whether the actor has been crushed.


ifstrength < number >
Check if the life of the actor is equal to < number >.


ifwasweapon < weapon >
Checks if the actor has been reached by a shot of the weapon < weapon >. Weapon-accepted values are:

KNEE
SHOTSPARK1 (gun, Minigun or shotgun)
RPG
SHRINKSPARK
FREEZEBLAST
FIRELASER
SPIT
RADIUSEXPLOSION (Tripbomb)
COOLEXPLOSION1
FIREEXT

GROWSPARK [only versions 1.4 and 1.5]


include < filename >
Includes the file with < filename > in the compilation. Useful to divide the code into multiple files with.


killit
Removes the current performer of the game.


lotsofglass < amount >
Appear a < amount > amount of pieces of glass.


mail < number > (only versions 1.4 and 1.5)
Appear an amount < amount > letters flying.


mikesnd
Plays the sound associated with the microphone (is set to Build with the hitag).


money < number >
Appear a < amount > amount of tickets flying.


move < name > < vertical > < horizontal > < directions >
SEE SECTION 1.7


< episode > < m1 > < m2 > music...
It defines levels of the episode < episode > .mid music. See USER.WITH.


nullop
Equivalent to "{}", empty code block.


operate
Does the current actor can open a door if you have it on the side.


palfrom < intensity > < network > < green > < blue >
Change the palette from the view of the player and can create effects on vision. All values range between 0-64.


paper < number > (only versions 1.4 and 1.5)
Appear a < amount > amount of papers flying.


pkick
Makes the current or closest kick player.


pstomp
It makes the current or closest player down and walk towards the actor closer (if any).


quote < number >
Prints the text identified quote on screen with the id < number >.


resetactioncount
Resets the counter of the action. Remember that frames or images that occur in that actor.


ResetCount
Configures the internal counter of the actor as 0.


resetplayer
In multiplayer it sends the current player to the starting position. In a single-player level reset mode.


respawnhitag
This active command until 9 or less respawns of actors that have the same lotag than the hitag of current actor (in which this command is encountered).


shoot < weapon >
The actor shoot the weapon < weapon >. The accepted values for < weapon > are:

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

GROWSPARK [only versions 1.4 and 1.5]


sizeat < x > < and > (only versions 1.4 and 1.5)
This command gives the actor the size specified by < x > e < and > one time (instantly).


sizeTo < x > < and >
This command gives the actor the size specified by < x > e < and > gradually.


sleeptime < time >
This command makes that the actor is "sleep" during the specified time after being seen by the player.


< sound > sound
Plays back the sound with the id < sound >.


soundonce < sound >
Plays back the sound with the id < sound > but the difference with the previous is that this only allows to play the sound once per level.


spawn < player >
It brings up the < player > actor.


spritepal < number >
Sets the palette of the actor as < number >.


< statename > State
It calls the < statename > state and executes your code.


stopsound < sound >
Stops the playback of the sound with the id < sound >.


< number > strength
It changes the resistance of the actor by < number >.


Tip
The player plays the animation to a ticket.


tossweapon
This command displays the player dying back in the game with the weapon with which died.


wackplayer
This command causes the screen to tilt to one side when called to the command.


(3) APPENDIX A: ABOUT WEAPONS
------------------------------

Number name shoot impact resistance (life) notes

26 HEAVYHBOMB no no yes * creates 1670 damage
916 FIREEXT no Yes Yes * * resistance
940 BOUNCEMINE yes no yes * creates 1670 damage
1,360 COOLEXPLOSION1 Yes Yes Yes
1,625 FIRELASER Yes Yes Yes
1,636 SPIT Yes Yes Yes
1,641 FREEZEBLAST Yes Yes Yes
1,642 DEVISTATORBLAST yes no Yes use the code 2605
* creates 2605, damage
1,646 SHRINKSPARK Yes Yes Yes
1,650 MORTER yes no yes * creates 1670, damage
1,670 RADIUSEXPLOSION no * Yes Yes * * has (shock wave)
2,296 BLOODSPLAT1 yes no
2,297 BLOODSPLAT2 yes no
2,298 BLOODSPLAT3 yes no
2,299 BLOODSPLAT4 yes no
2,521 KNEE Yes Yes Yes * * adds rnd (5) + 1
2,536 CHAINGUN yes no Yes * use code of 2595
* Adds rnd (5) + 1
2,566 TRIPBOMB no no * yes * creates 1670, damage.
2,595 SHOTSPARK1 Yes Yes Yes * can be modified
* Adds rnd (5) + 1
2,605 RPG Yes Yes Yes * * double damage by direct impact.
2,613 SHOTGUN yes no Yes * use code 2595,
It adds rnd (5) + 1


On their numbers and weapons:

Number name in with:

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) APPENDIX B: ON THE PALLET
------------------------------

The colour codes are:

0 = Normal
1 = Blue
2 = Red
4 = Black
5 = All red to Brown shadows
6 = Night vision Green
7 = Yellow-green
8 = Light green
10 = Color blue turns into: Red
11 = Color blue turns into: light green
12 = Color blue turns into: Green-gray
13 = Color blue turns into: dark grey
14 = Color blue turns into: dark green
15 = Color blue turns into: Brown
16 = Color blue turns into: dark blue
17 = Color blue turns into: Blue
18 = Same as 11
19 = Color blue turns into: Red
20 = Color blue turns into: Blue
21 = Color blue turns into: Red
22 = Color blue turns into: light grey
23 = Color blue turns into: yellow
25 = Minor Color blue turns into: Red



(5) APPENDIX C: ABOUT THE PRE-DEFINED STATES
---------------------------------------------

State jib_sounds
It plays sounds when you burst the enemies with the RPG.

State standard_jibs
Are casings

State genericshrunkcode
It does shrink an actor and crushes it if you are at the right distance.

genericgrowcode State (only versions 1.4 and 1.5)
Does enlarge an actor until you drop it

State blimphitstate
Explosions, pieces of metal are, it banishes the actor and other things.

State rats
Rats are.

toughgalspeech State (only versions 1.4 and 1.5)
It plays sounds when you talk to women.

jibfood State (only versions 1.4 and 1.5)
It makes the food disappear and appear casings.

breakobject State (only versions 1.4 and 1.5)
It makes breakable objects.

State headhitstate
It is called when the player is severely damaged.

State burningstate
It does burn an actor.

State steamcode
For steam, removes life.

State burningbarrelcode
Code for barrel burning.

State getcode
Gets an item and prepares it for the spawn.

State randgetweapsnds
Sound when the player picks up a gun.

State getweaponcode
The player picks up a weapon and prepares it for the spawn.

State respawnit
Spawn of the inventory in multiplayer.

State quikget
The atomic health code or other artifacts. There is no respawn.

State quikweaponget
Code to obtain weapons.

State firestate
Code for fire.

State drop_ammo
Code to release weapons.

State drop_battery
Loose ammunition of the chaingun.

State drop_sgshells
Loose ammunition for the shotgun.

State drop_shotgun
Release the gun.

State drop_chaingun
Release the chaingun.

State random_wall_jibs
Blood appears on the walls.

State femcode
Code of women.

State killme
Sound of killme when you press space.

State tipme
Sound when you give money to a woman.

toughgaltalk State (only versions 1.4 and 1.5)
We talk to a woman when pressed the player space.

State troop_body_jibs
Casings of the liztroop.

State liz_body_jibs
Casings of the lizard

State standard_pjibs
Duke's guts.

State handle_dead_dukes
Code for making puddles of blood, etc. when Duke dies. Also used to make disappear of Duke parts when playing in multiplayer.

State check p_standard
Duke animations walk, jumping, etc.

State rf
Changes the cstat of 4 If ifrnd 128 but the cstat is 0. This is done to make planes the corpses for all are not equal.



