Here is a full explanation of the scripting:
Command list (Indented stuff should be appended to the end of the first less indented command above it)
Parameters are shown between '<' and '>'.
goto line <num>
spawn
player <Name$, X, Y, Col as dword, Size, Life as float, Speed as float, Reload, BulletSize, BulletDamage as float, BulletSpeed as float>
friend <Name$, X, Y, Col as dword, Size, Life as float, Speed as float, Reload, BulletSize, BulletDamage as float, AI, BulletSpeed as float>
enemy <Name$, X, Y, Col as dword, Size, Life as float, Speed as float, Reload, BulletSize, BulletDamage as float, AI, BulletSpeed as float>
solid <Name$, X, Y, Col as dword, Size, Life, Breakable as boolean, Affects as byte, Force as float>
explosion <X, Y, colour as dword, size as integer>
destroy
player <Name$>
friend <Name$>
enemy <Name$>
solid <Name$>
set/add/subtract
player
name <Name$, Newname$>
life <Name$, value as float>
colour <Name$, value as dword>
size <Name$, value as float>
reload <Name$, value as float>
speed <Name$, value as float>
angle <Name$, value as float>
bullet damage <Name$, value as float>
bullet size <Name$, value as float>
friend/enemy
name <Name$, Newname$>
life <Name$, value as float>
colour <Name$, value as dword>
size <Name$, value as float>
reload <Name$, value as float>
speed <Name$, value as float>
angle <Name$, value as float>
bullet damage <Name$, value as float>
bullet size <Name$, value as float>
ai <Name$, value as byte>
solid
name <Name$, Newname$>
life <Name$, value as float>
colour <Name$, value as dword>
size <Name$, value as float>
force <Name$, value as float>
alter life <Name$, value as float>
breakable <Name$, value as boolean>
affects <Name$, value as byte>
bullet bullet collision on <*NO PARAMS*>
bullet bullet collision off <*NO PARAMS*>
wait for
second <value>
frame <value>
pause for
seconds <value>
frames <value>
Parameter descriptions:
Num/Value : A number used for the command
Name : A name (or group) for the entity, used for referring to it later. (If the same name is used for multiple entities of the same type, every entity of that type with that name will be affected by the command)
X/Y: Screen coordinates
Col: DBPro DWORD colour value for the entity
Size: Size!
Life: Life of entity (May be a decimal value)
Speed: Speed in pixels per loop (May be a decimal value)
Reload: Loops before entity can shoot again
Bullet size: Size in pixels of the entity's bullets
Bullet damage: Damage to victim's life. (Could be negative for a healer!)
Bullet speed: Speed of bullet in pixels per loop (May be a decimal value)
AI: AI level of entity (0 : Sitting duck) (1 : Shoots and moves randomly) (2 : Shoots and avoids bullets)
Force: Solidness of a solid (0.0 = Fully passable, 1.0 = Fully solid)
Affects: Specifies which entities a solid affects. Is made by doing a bitwise AND of each required entity's bit values (Given later). 0 affects all entities.
Alter-life: Specifies the amount a solid alters an entities life if it touches it.
Breakable: Specifies if a solid is destroyed when its health becomes sub-zero. (1 = True, 0 = False)
Command explanations:
Goto line : Changes the current line of script execution to a custom value.
Spawn ... : Creates a new entity of the specified type with the specified starting properties.
Destroy ... : Destroys all previously created entities with the chosen name.
set/add/subtract ... : Alters an entity's properties
wait for ... : pauses script execution until the frames/seconds elapsed since the program was run is greater than or equal to the value given.
pause for ... : pauses script execution for a given number of seconds/frames
Script format:
Each command is written on its own line. If the program reaches the end of the script, it will stop execution. The script will not run a program loop between lines, so you have to make sure that the script finishes, or there is a pause often enough.
An example script is included in the download.